Drivers: hv: vmbus: Move handling of VMbus interrupts
authorMichael Kelley <mikelley@microsoft.com>
Tue, 2 Mar 2021 21:38:18 +0000 (13:38 -0800)
committerWei Liu <wei.liu@kernel.org>
Mon, 8 Mar 2021 17:33:00 +0000 (17:33 +0000)
commitd608715d4771cf2d63de07a5d7b026b6f52a70a5
tree73a567821ae3e494a4df3c3f08deffb6b3d8afdc
parent946f4b8680b8ad177f6489e023a1d95e82d502e2
Drivers: hv: vmbus: Move handling of VMbus interrupts

VMbus interrupts are most naturally modelled as per-cpu IRQs.  But
because x86/x64 doesn't have per-cpu IRQs, the core VMbus interrupt
handling machinery is done in code under arch/x86 and Linux IRQs are
not used.  Adding support for ARM64 means adding equivalent code
using per-cpu IRQs under arch/arm64.

A better model is to treat per-cpu IRQs as the normal path (which it is
for modern architectures), and the x86/x64 path as the exception.  Do this
by incorporating standard Linux per-cpu IRQ allocation into the main VMbus
driver, and bypassing it in the x86/x64 exception case. For x86/x64,
special case code is retained under arch/x86, but no VMbus interrupt
handling code is needed under arch/arm64.

No functional change.

Signed-off-by: Michael Kelley <mikelley@microsoft.com>
Reviewed-by: Boqun Feng <boqun.feng@gmail.com>
Link: https://lore.kernel.org/r/1614721102-2241-7-git-send-email-mikelley@microsoft.com
Signed-off-by: Wei Liu <wei.liu@kernel.org>
arch/x86/include/asm/mshyperv.h
arch/x86/kernel/cpu/mshyperv.c
drivers/hv/hv.c
drivers/hv/vmbus_drv.c
include/asm-generic/mshyperv.h