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

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'gpio-v5.9-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio

Pull GPIO fixes from Linus Walleij:
"Some late fixes: one IRQ issue and one compilation issue for UML.

- Fix a compilation issue with User Mode Linux

- Handle spurious interrupts properly in the PCA953x driver"

* tag 'gpio-v5.9-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
gpio: pca953x: Survive spurious interrupts
gpiolib: Disable compat ->read() code in UML case

+16 -3
+15 -2
drivers/gpio/gpio-pca953x.c
··· 824 824 ret = pca953x_irq_pending(chip, pending); 825 825 mutex_unlock(&chip->i2c_lock); 826 826 827 - for_each_set_bit(level, pending, gc->ngpio) 828 - handle_nested_irq(irq_find_mapping(gc->irq.domain, level)); 827 + if (ret) { 828 + ret = 0; 829 + 830 + for_each_set_bit(level, pending, gc->ngpio) { 831 + int nested_irq = irq_find_mapping(gc->irq.domain, level); 832 + 833 + if (unlikely(nested_irq <= 0)) { 834 + dev_warn_ratelimited(gc->parent, "unmapped interrupt %d\n", level); 835 + continue; 836 + } 837 + 838 + handle_nested_irq(nested_irq); 839 + ret = 1; 840 + } 841 + } 829 842 830 843 return IRQ_RETVAL(ret); 831 844 }
+1 -1
drivers/gpio/gpiolib-cdev.c
··· 425 425 426 426 static ssize_t lineevent_get_size(void) 427 427 { 428 - #ifdef __x86_64__ 428 + #if defined(CONFIG_X86_64) && !defined(CONFIG_UML) 429 429 /* i386 has no padding after 'id' */ 430 430 if (in_ia32_syscall()) { 431 431 struct compat_gpioeevent_data {