diff --git a/drivers/storage/usbscsid/src/main.rs b/drivers/storage/usbscsid/src/main.rs index 166921535d..097f61f39b 100644 --- a/drivers/storage/usbscsid/src/main.rs +++ b/drivers/storage/usbscsid/src/main.rs @@ -103,8 +103,9 @@ fn daemon(daemon: daemon::Daemon) -> ! { } let mut buffer = [0u8; 512]; - scsi.read(&mut *protocol, 0, &mut buffer).unwrap(); - println!("DISK CONTENT: {}", base64::encode(&buffer[..])); + if let Ok(()) = scsi.read(&mut *protocol, 0, &mut buffer).map(|_| ()) { + println!("DISK CONTENT: {}", base64::encode(&buffer[..])); + } let event_queue = event::EventQueue::new().unwrap(); @@ -141,10 +142,19 @@ fn daemon(daemon: daemon::Daemon) -> ! { .unwrap(); for event in event_queue { - match event.unwrap().user_data { - Event::Scheme => driver_block::FuturesExecutor - .block_on(scheme.tick()) - .unwrap(), + let event = match event { + Ok(e) => e, + Err(e) => { + eprintln!("usbscsid: event error: {}", e); + continue; + } + }; + match event.user_data { + Event::Scheme => { + if let Err(e) = driver_block::FuturesExecutor.block_on(scheme.tick()) { + eprintln!("usbscsid: scheme tick error: {}", e); + } + } } }