From c9a294ced789205c952d5beefc844fc6f589ef17 Mon Sep 17 00:00:00 2001 From: Alexandre Courbot Date: Wed, 25 May 2022 17:00:58 +0900 Subject: [PATCH] devices: usb: host: don't use Descriptor as temporary descriptor storage We can avoid temporarily storing the descriptor by passing a reference to the providing device directly to EventLoop::add_event(). BUG=233968702 TEST=cargo build Change-Id: I78ce17b8a2c7c8a695cf65597459719812c175a5 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/3670103 Reviewed-by: Dennis Kempin Commit-Queue: Alexandre Courbot Reviewed-by: Daniel Verkamp Reviewed-by: Michael Hoyle Tested-by: kokoro --- .../src/usb/host_backend/host_backend_device_provider.rs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/devices/src/usb/host_backend/host_backend_device_provider.rs b/devices/src/usb/host_backend/host_backend_device_provider.rs index 8919e02ad3..541d161a74 100644 --- a/devices/src/usb/host_backend/host_backend_device_provider.rs +++ b/devices/src/usb/host_backend/host_backend_device_provider.rs @@ -13,7 +13,7 @@ use crate::utils::AsyncJobQueue; use crate::utils::{EventHandler, EventLoop, FailHandle}; use anyhow::Context; -use base::{error, AsRawDescriptor, Descriptor, RawDescriptor, Tube, WatchingEvents}; +use base::{error, AsRawDescriptor, RawDescriptor, Tube, WatchingEvents}; use std::collections::HashMap; use std::mem; use std::time::Duration; @@ -163,8 +163,6 @@ impl ProviderInner { } }; - let device_descriptor = Descriptor(device.as_raw_descriptor()); - let arc_mutex_device = Arc::new(Mutex::new(device)); let event_handler: Arc = Arc::new(UsbUtilEventHandler { @@ -172,7 +170,7 @@ impl ProviderInner { }); if let Err(e) = self.event_loop.add_event( - &device_descriptor, + &*arc_mutex_device.lock(), WatchingEvents::empty().set_read().set_write(), Arc::downgrade(&event_handler), ) {