Skip to content
  • Eric Farman's avatar
    6178d468
    vfio-ccw: Permit missing IRQs · 6178d468
    Eric Farman authored
    
    
    Commit 690e29b9 ("vfio-ccw: Refactor ccw irq handler") changed
    one of the checks for the IRQ notifier registration from saying
    "the host needs to recognize the only IRQ that exists" to saying
    "the host needs to recognize ANY IRQ that exists."
    
    And this worked fine, because the subsequent change to support the
    CRW IRQ notifier doesn't get into this code when running on an older
    kernel, thanks to a guard by a capability region. The later addition
    of the REQ(uest) IRQ by commit b2f96f9e ("vfio-ccw: Connect the
    device request notifier") broke this assumption because there is no
    matching capability region. Thus, running new QEMU on an older
    kernel fails with:
    
      vfio: unexpected number of irqs 2
    
    Let's adapt the message here so that there's a better clue of what
    IRQ is missing.
    
    Furthermore, let's make the REQ(uest) IRQ not fail when attempting
    to register it, to permit running vfio-ccw on a newer QEMU with an
    older kernel.
    
    Fixes: b2f96f9e ("vfio-ccw: Connect the device request notifier")
    Signed-off-by: default avatarEric Farman <farman@linux.ibm.com>
    Message-Id: <20210421152053.2379873-1-farman@linux.ibm.com>
    Signed-off-by: default avatarCornelia Huck <cohuck@redhat.com>
    6178d468
    vfio-ccw: Permit missing IRQs
    Eric Farman authored
    
    
    Commit 690e29b9 ("vfio-ccw: Refactor ccw irq handler") changed
    one of the checks for the IRQ notifier registration from saying
    "the host needs to recognize the only IRQ that exists" to saying
    "the host needs to recognize ANY IRQ that exists."
    
    And this worked fine, because the subsequent change to support the
    CRW IRQ notifier doesn't get into this code when running on an older
    kernel, thanks to a guard by a capability region. The later addition
    of the REQ(uest) IRQ by commit b2f96f9e ("vfio-ccw: Connect the
    device request notifier") broke this assumption because there is no
    matching capability region. Thus, running new QEMU on an older
    kernel fails with:
    
      vfio: unexpected number of irqs 2
    
    Let's adapt the message here so that there's a better clue of what
    IRQ is missing.
    
    Furthermore, let's make the REQ(uest) IRQ not fail when attempting
    to register it, to permit running vfio-ccw on a newer QEMU with an
    older kernel.
    
    Fixes: b2f96f9e ("vfio-ccw: Connect the device request notifier")
    Signed-off-by: default avatarEric Farman <farman@linux.ibm.com>
    Message-Id: <20210421152053.2379873-1-farman@linux.ibm.com>
    Signed-off-by: default avatarCornelia Huck <cohuck@redhat.com>
Loading