Messages in this thread | | | From | Jiang Liu <> | Subject | [PATCH v3 0/4] normalize return value of chip->irq_set_affinity() | Date | Fri, 30 Mar 2012 23:11:32 +0800 |
| |
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
| |