Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

gpio: bt8xx: use devm function for memory allocation

Signed-off-by: abdoulaye berthe <berthe.ab@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

authored by

abdoulaye berthe and committed by
Linus Walleij
a435e180 cdf86cd2

+6 -13
+6 -13
drivers/gpio/gpio-bt8xx.c
··· 178 178 struct bt8xxgpio *bg; 179 179 int err; 180 180 181 - bg = kzalloc(sizeof(*bg), GFP_KERNEL); 181 + bg = devm_kzalloc(&dev->dev, sizeof(struct bt8xxgpio), GFP_KERNEL); 182 182 if (!bg) 183 183 return -ENOMEM; 184 184 ··· 188 188 err = pci_enable_device(dev); 189 189 if (err) { 190 190 printk(KERN_ERR "bt8xxgpio: Can't enable device.\n"); 191 - goto err_freebg; 191 + return err; 192 192 } 193 - if (!request_mem_region(pci_resource_start(dev, 0), 193 + if (!devm_request_mem_region(&dev->dev, pci_resource_start(dev, 0), 194 194 pci_resource_len(dev, 0), 195 195 "bt8xxgpio")) { 196 196 printk(KERN_WARNING "bt8xxgpio: Can't request iomem (0x%llx).\n", ··· 201 201 pci_set_master(dev); 202 202 pci_set_drvdata(dev, bg); 203 203 204 - bg->mmio = ioremap(pci_resource_start(dev, 0), 0x1000); 204 + bg->mmio = devm_ioremap(&dev->dev, pci_resource_start(dev, 0), 0x1000); 205 205 if (!bg->mmio) { 206 206 printk(KERN_ERR "bt8xxgpio: ioremap() failed\n"); 207 207 err = -EIO; 208 - goto err_release_mem; 208 + goto err_disable; 209 209 } 210 210 211 211 /* Disable interrupts */ ··· 220 220 err = gpiochip_add(&bg->gpio); 221 221 if (err) { 222 222 printk(KERN_ERR "bt8xxgpio: Failed to register GPIOs\n"); 223 - goto err_release_mem; 223 + goto err_disable; 224 224 } 225 225 226 226 return 0; 227 227 228 - err_release_mem: 229 - release_mem_region(pci_resource_start(dev, 0), 230 - pci_resource_len(dev, 0)); 231 228 err_disable: 232 229 pci_disable_device(dev); 233 - err_freebg: 234 - kfree(bg); 235 230 236 231 return err; 237 232 } ··· 245 250 release_mem_region(pci_resource_start(pdev, 0), 246 251 pci_resource_len(pdev, 0)); 247 252 pci_disable_device(pdev); 248 - 249 - kfree(bg); 250 253 } 251 254 252 255 #ifdef CONFIG_PM