Branch: refs/heads/next
  Home:   https://github.com/siemens/jailhouse
  Commit: 841d8f3c5fa4c0124fd8a4e1bd71e410e82fb09d
      
https://github.com/siemens/jailhouse/commit/841d8f3c5fa4c0124fd8a4e1bd71e410e82fb09d
  Author: Jan Kiszka <[email protected]>
  Date:   2017-01-17 (Tue, 17 Jan 2017)

  Changed paths:
    M hypervisor/arch/x86/pci.c

  Log Message:
  -----------
  x86: Be graceful with invalid MSI target addresses

Linux seems to write zeros to MSI registers when unregistering an MSI
interrupt:

 [...]
 pci_bus_write_config_dword+0x14/0x20
 __pci_write_msi_msg+0xcc/0x130
 pci_msi_domain_write_msg+0x1d/0x20
 msi_domain_deactivate+0x28/0x30 <-- this writes zeros
 irq_domain_deactivate_irq+0x28/0x40
 irq_shutdown+0x39/0x70
 __free_irq+0x1ee/0x290
 free_irq+0x34/0x80
 tg3_test_interrupt+0x3f/0x230
 tg3_start+0xfa3/0x1130
 [...]
 (taken with 4.9-rt)

Let's check if the target address actually matches the MSI address space
and, if not, simply declare the vector invalid. That will block it from
being used, raising an IOMMU runtime error at most when the device
should fire nevertheless. But we no longer panic the writer.

Signed-off-by: Jan Kiszka <[email protected]>
Tested-by: Rajiv Vaidyanath <[email protected]>


-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to