x86 platform drivers: fix gpio leak

when request_irq fails, we should release gpiochip

v2:
fix warning: ignoring return value of 'gpiochip_remove

Signed-off-by: Libo Chen <libo.chen@huawei.com>
Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>

authored by Libo Chen and committed by Matthew Garrett fef8ce16 283672e4

Changed files
+5 -1
drivers
platform
+5 -1
drivers/platform/x86/intel_pmic_gpio.c
··· 288 retval = request_irq(pg->irq, pmic_irq_handler, 0, "pmic", pg); 289 if (retval) { 290 pr_warn("Interrupt request failed\n"); 291 - goto err; 292 } 293 294 for (i = 0; i < 8; i++) { ··· 299 irq_set_chip_data(i + pg->irq_base, pg); 300 } 301 return 0; 302 err: 303 iounmap(pg->gpiointr); 304 err2:
··· 288 retval = request_irq(pg->irq, pmic_irq_handler, 0, "pmic", pg); 289 if (retval) { 290 pr_warn("Interrupt request failed\n"); 291 + goto fail_request_irq; 292 } 293 294 for (i = 0; i < 8; i++) { ··· 299 irq_set_chip_data(i + pg->irq_base, pg); 300 } 301 return 0; 302 + 303 + fail_request_irq: 304 + if (gpiochip_remove(&pg->chip)) 305 + pr_err("gpiochip_remove failed\n"); 306 err: 307 iounmap(pg->gpiointr); 308 err2: