OSDN Git Service

x86/vector: Merge allocate_vector() into assign_vector_locked()
authorDou Liyang <douly.fnst@cn.fujitsu.com>
Fri, 11 May 2018 08:09:56 +0000 (16:09 +0800)
committerThomas Gleixner <tglx@linutronix.de>
Sat, 19 May 2018 13:09:11 +0000 (15:09 +0200)
commit2773397171ac4b6e794ba0b3e34c06cbaf29897a
tree34449c3a9b866cd8e8ae395eb78fd50e0f128360
parent73fcb1a370c76b202d406e95d9dabb76eaccf484
x86/vector: Merge allocate_vector() into assign_vector_locked()

assign_vector_locked() calls allocate_vector() to get a real vector for an
IRQ. If the current target CPU is online and in the new requested affinity
mask, allocate_vector() will return 0 and nothing should be done. But,
assign_vector_locked() calls apic_update_irq_cfg() even in that case which
is pointless.

allocate_vector() is not called from anything else, so the functions can be
merged and in case of no change the apic_update_irq_cfg() can be avoided.

[ tglx: Massaged changelog ]

Signed-off-by: Dou Liyang <douly.fnst@cn.fujitsu.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: hpa@zytor.com
Link: https://lkml.kernel.org/r/20180511080956.6316-1-douly.fnst@cn.fujitsu.com
arch/x86/kernel/apic/vector.c