Re: [PATCH v2 1/1] mfd: intel_quark_i2c_gpio: Don't play dirty trick with const
From: Andy Shevchenko
Date: Wed Apr 14 2021 - 13:52:30 EST
On Wed, Apr 14, 2021 at 06:13:19PM +0100, Lee Jones wrote:
> On Fri, 26 Mar 2021, Lee Jones wrote:
>
> > On Fri, 26 Mar 2021, Andy Shevchenko wrote:
> >
> > > As Linus rightfully noticed, the driver plays dirty trick with const,
> > > i.e. it assigns a place holder data structure to the const field
> > > in the MFD cell and then drops the const by explicit casting. This is
> > > not how it should be.
> > >
> > > Assign local pointers of the cell and resource to the respective
> > > non-const place holders in the intel_quark_i2c_setup() and
> > > intel_quark_gpio_setup().
> > >
> > > Reported-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> > > ---
> > > v2: eliminated bar parameter (Lee)
> > > drivers/mfd/intel_quark_i2c_gpio.c | 26 ++++++++++++--------------
> > > 1 file changed, 12 insertions(+), 14 deletions(-)
> >
> > Neat.
> >
> > Applied, thanks.
>
> Am I still missing patches from you Andy?
Patches for fixes should be applied to for-next as well. I don't know why with
my patches it diverged.
I have already commented on this when kbuild bot complained.
So,
git checkout for-mfd-next
git merge for-mfd-fixes
or equivalent (cherry-pick) will fix that.
> I get:
>
> make --silent --keep-going --jobs=8 O=/home/tuxbuild/.cache/tuxmake/builds/1/tmp ARCH=x86_64 CROSS_COMPILE=x86_64-linux-gnu- 'CC=sccache x86_64-linux-gnu-gcc' 'HOSTCC=sccache gcc' allmodconfig
> make --silent --keep-going --jobs=8 O=/home/tuxbuild/.cache/tuxmake/builds/1/tmp ARCH=x86_64 CROSS_COMPILE=x86_64-linux-gnu- 'CC=sccache x86_64-linux-gnu-gcc' 'HOSTCC=sccache gcc'
> /builds/linux/drivers/mfd/intel_quark_i2c_gpio.c: In function 'intel_quark_i2c_setup':
> /builds/linux/drivers/mfd/intel_quark_i2c_gpio.c:181:25: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
> struct resource *res = intel_quark_i2c_res;
> ^~~~~~~~~~~~~~~~~~~
> /builds/linux/drivers/mfd/intel_quark_i2c_gpio.c: In function 'intel_quark_gpio_setup':
> /builds/linux/drivers/mfd/intel_quark_i2c_gpio.c:203:25: warning: initialization discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
> struct resource *res = intel_quark_gpio_res;
> ^~~~~~~~~~~~~~~~~~~~
>
> Link to the build (see: build.log):
>
> https://builds.tuxbuild.com/1rAMovpd041jvsjfQ538kW3nvYK/
>
> --
> Lee Jones [李琼斯]
> Senior Technical Lead - Developer Services
> Linaro.org │ Open source software for Arm SoCs
> Follow Linaro: Facebook | Twitter | Blog
--
With Best Regards,
Andy Shevchenko