mirror of
https://github.com/torvalds/linux.git
synced 2024-11-27 14:41:39 +00:00
mfd: sm501: Fix mismatches of request_mem_region
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@gmail.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
This commit is contained in:
parent
f2a19c5b78
commit
b88aa85098
@ -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;
|
||||
|
||||
if (!sm->gpio.registered)
|
||||
return;
|
||||
@ -1103,8 +1103,7 @@ static void sm501_gpio_remove(struct sm501_devdata *sm)
|
||||
gpiochip_remove(&gpio->high.gpio);
|
||||
|
||||
iounmap(gpio->regs);
|
||||
release_resource(gpio->regs_res);
|
||||
kfree(gpio->regs_res);
|
||||
release_mem_region(iobase, 0x20);
|
||||
}
|
||||
|
||||
static inline int sm501_gpio_isregistered(struct sm501_devdata *sm)
|
||||
@ -1427,8 +1426,7 @@ static int sm501_plat_probe(struct platform_device *dev)
|
||||
return sm501_init_dev(sm);
|
||||
|
||||
err_claim:
|
||||
release_resource(sm->regs_claim);
|
||||
kfree(sm->regs_claim);
|
||||
release_mem_region(sm->io_res->start, 0x100);
|
||||
err_res:
|
||||
kfree(sm);
|
||||
err1:
|
||||
@ -1637,8 +1635,7 @@ static int sm501_pci_probe(struct pci_dev *dev,
|
||||
return 0;
|
||||
|
||||
err4:
|
||||
release_resource(sm->regs_claim);
|
||||
kfree(sm->regs_claim);
|
||||
release_mem_region(sm->io_res->start, 0x100);
|
||||
err3:
|
||||
pci_disable_device(dev);
|
||||
err2:
|
||||
@ -1673,8 +1670,7 @@ static void sm501_pci_remove(struct pci_dev *dev)
|
||||
sm501_dev_remove(sm);
|
||||
iounmap(sm->regs);
|
||||
|
||||
release_resource(sm->regs_claim);
|
||||
kfree(sm->regs_claim);
|
||||
release_mem_region(sm->io_res->start, 0x100);
|
||||
|
||||
pci_disable_device(dev);
|
||||
}
|
||||
@ -1686,8 +1682,7 @@ static int sm501_plat_remove(struct platform_device *dev)
|
||||
sm501_dev_remove(sm);
|
||||
iounmap(sm->regs);
|
||||
|
||||
release_resource(sm->regs_claim);
|
||||
kfree(sm->regs_claim);
|
||||
release_mem_region(sm->io_res->start, 0x100);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user