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

From: Chuhong Yuan
Date: Mon Dec 09 2019 - 04:09:12 EST


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.

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