• G
    usb: add pid check at the first of uhci_handle_td() · 5f77e06b
    Gonglei 提交于
    pid can be gotten from uhci device memory in uhci_handle_td(),
    so the guest can trigger assert qemu if we get an invalid pid.
    And the uhci spec 2.1.2 tells us The Host Controller sets Host
    Controller Process Error bit to 1 when it detects a fatal error
    and indicates that the Host Controller suffered a consistency
    check failure while processing a Transfer Descriptor. An example
    of a consistency check failure would be finding an illegal PID
    field while processing the packet header portion of the TD.
    When this error occurs, the Host Controller clears the Run/Stop
    bit in the Command register to prevent further schedule execution.
    
    We'd better to set UHCI_STS_HCPERR and kick an interrupt, check
    the pid value at the first of uhci_handle_td function.
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1070027Signed-off-by: NGonglei <arei.gonglei@huawei.com>
    Message-id: 1455867238-4720-1-git-send-email-arei.gonglei@huawei.com
    
    [ applied minor codestyle fix ]
    Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
    5f77e06b
hcd-uhci.c 39.2 KB