]> www.infradead.org Git - users/dwmw2/linux.git/commit
platform/x86: ideapad-laptop: Make the scope_guard() clear of its scope
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 29 Aug 2024 16:50:32 +0000 (19:50 +0300)
committerHans de Goede <hdegoede@redhat.com>
Wed, 4 Sep 2024 18:17:31 +0000 (20:17 +0200)
commita093cb667c3ff5eadd4b23ddf996d9ccae9b7ac6
tree7dbff4de9dac50ab27ca37ffd0738c96d16f4d0d
parent24b6616355f7eb2a839776578b104a0348b4f77f
platform/x86: ideapad-laptop: Make the scope_guard() clear of its scope

First of all, it's a bit counterintuitive to have something like

int err;
...
scoped_guard(...)
err = foo(...);
if (err)
return err;

Second, with a particular kernel configuration and compiler version in
one of such cases the objtool is not happy:

  ideapad-laptop.o: warning: objtool: .text.fan_mode_show: unexpected end of section

I'm not an expert on all this, but the theory is that compiler and
linker in this case can't understand that 'result' variable will be
always initialized as long as no error has been returned. Assigning
'result' to a dummy value helps with this. Note, that fixing the
scoped_guard() scope (as per above) does not make issue gone.

That said, assign dummy value and make the scope_guard() clear of its scope.
For the sake of consistency do it in the entire file.

Fixes: 7cc06e729460 ("platform/x86: ideapad-laptop: add a mutex to synchronize VPC commands")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202408290219.BrPO8twi-lkp@intel.com/
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20240829165105.1609180-1-andriy.shevchenko@linux.intel.com
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
drivers/platform/x86/ideapad-laptop.c