[PATCH v3 0/4] normalize return value of chip->irq_set_affinity()

From: Jiang Liu
Date: Fri Mar 30 2012 - 11:20:09 EST


On x86 platforms, interrupt controller chip's irq_set_affinity() method
always copies affinity mask to irq_data->affinity field but still returns
0(IRQ_SET_MASK_OK). That return value causes the interrupt core logic
unnecessarily copies the mask to irq_data->affinity field again.
So return IRQ_SET_MASK_OK_NOCOPY instead of IRQ_SET_MASK_OK to get rid of
the duplicated copy operation.

This patch also fixes a minor bug in irq_move_masked_irq(), which treats
return value IRQ_SET_MASK_OK_NOCOPY as error code.

v2/v3: split patches to only do one thing in a patch according to Thomas'
suggestion

Jiang Liu (4):
IRQ: correctly handle return value from chip->irq_set_affinity() in
irq_move_masked_irq()
IRQ: introduce irq_do_set_affinity() to reduce duplicated code
IRQ,x86: normalize return value of chip->irq_set_affinity() method
IRQ,IA64: normalize return value of chip->irq_set_affinity() method

arch/ia64/kernel/iosapic.c | 4 +++-
arch/ia64/kernel/msi_ia64.c | 4 ++--
arch/ia64/sn/kernel/irq.c | 2 +-
arch/ia64/sn/kernel/msi_sn.c | 2 +-
arch/x86/kernel/apic/io_apic.c | 11 ++++++-----
arch/x86/platform/uv/uv_irq.c | 2 +-
kernel/irq/internals.h | 3 +++
kernel/irq/manage.c | 39 ++++++++++++++++++++++-----------------
kernel/irq/migration.c | 6 +-----
9 files changed, 40 insertions(+), 33 deletions(-)

--
1.7.5.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/