Re: [PATCH] mfd: sm501: fix mismatches of request_mem_region

From: Lee Jones
Date: Mon Dec 09 2019 - 08:13:52 EST


On Mon, 09 Dec 2019, Chuhong Yuan wrote:

> On Mon, Dec 9, 2019 at 5:00 PM Lee Jones <lee.jones@xxxxxxxxxx> wrote:
> >
> > On Sat, 16 Nov 2019, Chuhong Yuan wrote:
> >
> > > This driver misuses release_resource + kfree to match request_mem_region,
> > > which is incorrect.
> > > The right way is to use release_mem_region.
> > > Replace the mismatched calls with the right ones to fix it.
> > >
> > > Signed-off-by: Chuhong Yuan <hslester96@xxxxxxxxx>
> > > ---
> > > drivers/mfd/sm501.c | 19 +++++++------------
> > > 1 file changed, 7 insertions(+), 12 deletions(-)
> > >
> > > diff --git a/drivers/mfd/sm501.c b/drivers/mfd/sm501.c
> > > index 154270f8d8d7..e49787e6bb93 100644
> > > --- a/drivers/mfd/sm501.c
> > > +++ b/drivers/mfd/sm501.c
> > > @@ -1086,8 +1086,7 @@ static int sm501_register_gpio(struct sm501_devdata *sm)
> > > iounmap(gpio->regs);
> > >
> > > err_claimed:
> > > - release_resource(gpio->regs_res);
> > > - kfree(gpio->regs_res);
> > > + release_mem_region(iobase, 0x20);
> > >
> > > return ret;
> > > }
> > > @@ -1095,6 +1094,7 @@ static int sm501_register_gpio(struct sm501_devdata *sm)
> > > static void sm501_gpio_remove(struct sm501_devdata *sm)
> > > {
> > > struct sm501_gpio *gpio = &sm->gpio;
> > > + resource_size_t iobase = sm->io_res->start + SM501_GPIO;
> >
> > Shouldn't this be 'struct resource *'?
>
> sm501_register_gpio() uses resource_size_t, so I use the same type in remove.

Okay. Just for the record, there are a few things I don't like about
this patch, but seeing as it's inline with the current coding style, I
will accept it based on the fact that it would be unreasonable to ask
for the driver to be bought back into line as a prerequisite for
acceptance.

--
Lee Jones [æçæ]
Linaro Services Technical Lead
Linaro.org â Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog