mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-03 09:41:54 +09:00
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
This commit is contained in:
@@ -824,8 +824,21 @@ static irqreturn_t pca953x_irq_handler(int irq, void *devid)
|
||||
ret = pca953x_irq_pending(chip, pending);
|
||||
mutex_unlock(&chip->i2c_lock);
|
||||
|
||||
for_each_set_bit(level, pending, gc->ngpio)
|
||||
handle_nested_irq(irq_find_mapping(gc->irq.domain, level));
|
||||
if (ret) {
|
||||
ret = 0;
|
||||
|
||||
for_each_set_bit(level, pending, gc->ngpio) {
|
||||
int nested_irq = irq_find_mapping(gc->irq.domain, level);
|
||||
|
||||
if (unlikely(nested_irq <= 0)) {
|
||||
dev_warn_ratelimited(gc->parent, "unmapped interrupt %d\n", level);
|
||||
continue;
|
||||
}
|
||||
|
||||
handle_nested_irq(nested_irq);
|
||||
ret = 1;
|
||||
}
|
||||
}
|
||||
|
||||
return IRQ_RETVAL(ret);
|
||||
}
|
||||
|
||||
@@ -425,7 +425,7 @@ static __poll_t lineevent_poll(struct file *file,
|
||||
|
||||
static ssize_t lineevent_get_size(void)
|
||||
{
|
||||
#ifdef __x86_64__
|
||||
#if defined(CONFIG_X86_64) && !defined(CONFIG_UML)
|
||||
/* i386 has no padding after 'id' */
|
||||
if (in_ia32_syscall()) {
|
||||
struct compat_gpioeevent_data {
|
||||
|
||||
Reference in New Issue
Block a user