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

gpio: rtd: Fix signedness bug in probe

The "data->irqs[]" array holds unsigned int so this error handling will
not work correctly.

Fixes: eee636bff0dc ("gpio: rtd: Add support for Realtek DHC(Digital Home Center) RTD SoCs")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

authored by

Dan Carpenter and committed by
Bartosz Golaszewski
c8fb5a52 576db734

+9 -6
+9 -6
drivers/gpio/gpio-rtd.c
··· 525 525 struct device *dev = &pdev->dev; 526 526 struct gpio_irq_chip *irq_chip; 527 527 struct rtd_gpio *data; 528 + int ret; 528 529 529 530 data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL); 530 531 if (!data) 531 532 return -ENOMEM; 532 533 533 - data->irqs[0] = platform_get_irq(pdev, 0); 534 - if (data->irqs[0] < 0) 535 - return data->irqs[0]; 534 + ret = platform_get_irq(pdev, 0); 535 + if (ret < 0) 536 + return ret; 537 + data->irqs[0] = ret; 536 538 537 - data->irqs[1] = platform_get_irq(pdev, 1); 538 - if (data->irqs[1] < 0) 539 - return data->irqs[1]; 539 + ret = platform_get_irq(pdev, 1); 540 + if (ret < 0) 541 + return ret; 542 + data->irqs[1] = ret; 540 543 541 544 data->info = device_get_match_data(dev); 542 545 if (!data->info)