x86/IRQ: desc->affinity should strictly represent the requested value
authorJan Beulich <jbeulich@suse.com>
Mon, 22 Jul 2019 09:42:32 +0000 (11:42 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 22 Jul 2019 09:42:32 +0000 (11:42 +0200)
commit4a9dfab767e2f5d1b7b919b07099f3fc87a67fb6
tree6e1dd27cf7d11f5639253e7a9b1ac012d68e8d12
parent472e0b74c5c4720c5aa70c0ad85c587679bde868
x86/IRQ: desc->affinity should strictly represent the requested value

desc->arch.cpu_mask reflects the actual set of target CPUs. Don't ever
fiddle with desc->affinity itself, except to store caller requested
values. Note that assign_irq_vector() now takes a NULL incoming CPU mask
to mean "all CPUs" now, rather than just "all currently online CPUs".
This way no further affinity adjustment is needed after onlining further
CPUs.

This renders both set_native_irq_info() uses (which weren't using proper
locking anyway) redundant - drop the function altogether.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by: Andrew Cooper <andrew.cooper3@citrix.com>
xen/arch/x86/io_apic.c
xen/arch/x86/irq.c
xen/include/xen/irq.h