]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
gpio: wcove: Get rid of error prone casting in IRQ handler
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 29 Jan 2019 14:40:50 +0000 (16:40 +0200)
committerBartosz Golaszewski <bgolaszewski@baylibre.com>
Mon, 15 Feb 2021 10:43:32 +0000 (11:43 +0100)
The casting from int to long on 64-bit platform is error prone.
Replace it with proper type of the variable on stack.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
drivers/gpio/gpio-wcove.c

index 97c5f1d01b626117fa2c4e97441522f2ca94f13e..6b47505f4070a4243dde12dde2603b51c367eafa 100644 (file)
@@ -324,7 +324,8 @@ static struct irq_chip wcove_irqchip = {
 static irqreturn_t wcove_gpio_irq_handler(int irq, void *data)
 {
        struct wcove_gpio *wg = (struct wcove_gpio *)data;
-       unsigned int pending, virq, gpio, mask, offset;
+       unsigned int virq, gpio, mask, offset;
+       unsigned long pending;
        u8 p[2];
 
        if (regmap_bulk_read(wg->regmap, IRQ_STATUS_BASE, p, 2)) {
@@ -339,8 +340,7 @@ static irqreturn_t wcove_gpio_irq_handler(int irq, void *data)
        /* Iterate until no interrupt is pending */
        while (pending) {
                /* One iteration is for all pending bits */
-               for_each_set_bit(gpio, (const unsigned long *)&pending,
-                                                WCOVE_GPIO_NUM) {
+               for_each_set_bit(gpio, &pending, WCOVE_GPIO_NUM) {
                        offset = (gpio > GROUP0_NR_IRQS) ? 1 : 0;
                        mask = (offset == 1) ? BIT(gpio - GROUP0_NR_IRQS) :
                                                                BIT(gpio);