From: Andi Kleen Date: Sat, 21 Jul 2007 15:09:54 +0000 (+0200) Subject: x86_64: Report the pending irq if available in smp_affinity X-Git-Tag: v2.6.23-rc1~142 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=42ee2b74140b69fa24da1c671b03c9f8019e6f62;p=linux-2.6 x86_64: Report the pending irq if available in smp_affinity Otherwise smp_affinity would only update after the next interrupt on x86 systems. Cc: Thomas Gleixner Cc: Ingo Molnar Signed-off-by: Andi Kleen Signed-off-by: Linus Torvalds --- diff --git a/kernel/irq/proc.c b/kernel/irq/proc.c index b4f1674fca..50b81b9804 100644 --- a/kernel/irq/proc.c +++ b/kernel/irq/proc.c @@ -19,7 +19,15 @@ static struct proc_dir_entry *root_irq_dir; static int irq_affinity_read_proc(char *page, char **start, off_t off, int count, int *eof, void *data) { - int len = cpumask_scnprintf(page, count, irq_desc[(long)data].affinity); + struct irq_desc *desc = irq_desc + (long)data; + cpumask_t *mask = &desc->affinity; + int len; + +#ifdef CONFIG_GENERIC_PENDING_IRQ + if (desc->status & IRQ_MOVE_PENDING) + mask = &desc->pending_mask; +#endif + len = cpumask_scnprintf(page, count, *mask); if (count - len < 2) return -EINVAL;