History

x86 platform drivers: fix gpio leak

when request_irq fails, we should release gpiochip v2: fix warning: ignoring return value of 'gpiochip_remove

Libo Chen committed 13 years ago

Commit fef8ce11 parent 283672e1 file · +5 −1Browse files

Showing the changes to drivers/platform (1 of 1 file). Show all

Unified · Split

drivers/platform/x86/intel_pmic_gpio.c+5−1
@@ -288,7 +288,7 @@ static int platform_pmic_gpio_probe(struct platform_device *pdev) · 287 unmodified lines
288 retval = request_irq(pg->irq, pmic_irq_handler, 0, "pmic", pg);288 retval = request_irq(pg->irq, pmic_irq_handler, 0, "pmic", pg);
289 if (retval) {289 if (retval) {
290 pr_warn("Interrupt request failed\n");290 pr_warn("Interrupt request failed\n");
291 goto err;291 goto fail_request_irq;
292 }292 }
293 293
294 for (i = 0; i < 8; i++) {294 for (i = 0; i < 8; i++) {
@@ -299,6 +299,10 @@ static int platform_pmic_gpio_probe(struct platform_device *pdev) · 4 unmodified lines
299 irq_set_chip_data(i + pg->irq_base, pg);299 irq_set_chip_data(i + pg->irq_base, pg);
300 }300 }
301 return 0;301 return 0;
302
303fail_request_irq:
304 if (gpiochip_remove(&pg->chip))
305 pr_err("gpiochip_remove failed\n");
302err:306err:
303 iounmap(pg->gpiointr);307 iounmap(pg->gpiointr);
304err2:308err2: