• Matthew Garrett's avatar
    xhci: Make handover code more robust · e955a1cd
    Matthew Garrett authored
    My test platform (Intel DX79SI) boots reliably under BIOS, but frequently
    crashes when booting via UEFI. I finally tracked this down to the xhci
    handoff code. It seems that reads from the device occasionally just return
    0xff, resulting in xhci_find_next_cap_offset generating a value that's
    larger than the resource region. We then oops when attempting to read the
    value. Sanity checking that value lets us avoid the crash.
    
    I've no idea what's causing the underlying problem, and xhci still doesn't
    actually *work* even with this, but the machine at least boots which will
    probably make further debugging easier.
    
    This should be backported to kernels as old as 2.6.31, that contain the
    commit 66d4eadd "USB: xhci: BIOS handoff
    and HW initialization."
    Signed-off-by: default avatarMatthew Garrett <mjg@redhat.com>
    Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
    Cc: stable@vger.kernel.org
    e955a1cd
pci-quirks.c 26.8 KB