diff options
author | Jingkui Wang <jkwang@google.com> | 2019-03-20 11:16:26 -0700 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2019-05-01 01:50:22 -0700 |
commit | e23231ccffb149108bb9f80d0b467b24153fcbfa (patch) | |
tree | f3fbc6f32dfef4dbdd7b8c99f6e5815722379d0f /devices/src/usb/xhci/ring_buffer.rs | |
parent | d5f6608f3eb79fa9d058704252f7b91d69954490 (diff) | |
download | crosvm-e23231ccffb149108bb9f80d0b467b24153fcbfa.tar crosvm-e23231ccffb149108bb9f80d0b467b24153fcbfa.tar.gz crosvm-e23231ccffb149108bb9f80d0b467b24153fcbfa.tar.bz2 crosvm-e23231ccffb149108bb9f80d0b467b24153fcbfa.tar.lz crosvm-e23231ccffb149108bb9f80d0b467b24153fcbfa.tar.xz crosvm-e23231ccffb149108bb9f80d0b467b24153fcbfa.tar.zst crosvm-e23231ccffb149108bb9f80d0b467b24153fcbfa.zip |
usb: fix serial devices by removing device context verification
1. Removed for device slot reset and evaluate context. The verification was unnecessary and may cause some guest kernel operations to fail. 2. The context was updated after dequeue pointer set 3. Reset device when it's attached. 4. Add seccomp rules to allow the above reset. The verification was copied from another implementation which works for adb, but does not work with serial devices. The verification is also not part of the spec, so we removed it here. BUG=b:131336977 TEST=local build and test Change-Id: Ifd7994ff5512346d1bab27654e60c97a602da8a6 Signed-off-by: Daniel Verkamp <dverkamp@chromium.org> Signed-off-by: Zach Reizner <zachr@google.com> Reviewed-on: https://chromium-review.googlesource.com/1558934 Tested-by: kokoro <noreply+kokoro@google.com>
Diffstat (limited to 'devices/src/usb/xhci/ring_buffer.rs')
-rw-r--r-- | devices/src/usb/xhci/ring_buffer.rs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/devices/src/usb/xhci/ring_buffer.rs b/devices/src/usb/xhci/ring_buffer.rs index 5e2c570..72c9ec0 100644 --- a/devices/src/usb/xhci/ring_buffer.rs +++ b/devices/src/usb/xhci/ring_buffer.rs @@ -85,6 +85,11 @@ impl RingBuffer { } }; + usb_debug!( + "{}: adding trb to td {}", + self.name.as_str(), + addressed_trb.trb + ); td.push(addressed_trb); if !addressed_trb.trb.get_chain_bit().map_err(Error::TrbChain)? { usb_debug!("trb chain is false returning"); |