On Thu, Sep 05, 2024 at 10:33:22AM +0200, Hans de Goede wrote: > On 9/4/24 10:18 PM, Andy Shevchenko wrote: > > Wed, Sep 04, 2024 at 08:14:53PM +0200, Hans de Goede kirjoitti: > >> On 8/29/24 6:50 PM, Andy Shevchenko wrote: > >>> 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@xxxxxxxxx> > >>> Closes: https://lore.kernel.org/oe-kbuild-all/202408290219.BrPO8twi-lkp@xxxxxxxxx/ > >>> Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > > > >> Thank you for your patch, I've applied this patch to my review-hans > >> branch: > >> https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans > > > > Have you had a chance to go through the discussion? > > Yes I did read the entire discussion. > > > TL;DR: please defer this. There is still no clear understanding of the root > > cause and the culprit. > > My gist from the discussion was that this was good to have regardless of > the root cause. > > IMHO the old construction where the scoped-guard only guards the function-call > and not the "if (ret)" on the return value of the guarded call was quite ugly / > convoluted / hard to read and this patch is an improvement regardless. Okay, if you think it's good to go, you are welcome! Thanks! -- With Best Regards, Andy Shevchenko