diff --git a/drivers/storage/usbscsid/src/main.rs b/drivers/storage/usbscsid/src/main.rs index 097f61f39b..d90966dd52 100644 --- a/drivers/storage/usbscsid/src/main.rs +++ b/drivers/storage/usbscsid/src/main.rs @@ -2,6 +2,7 @@ use std::collections::BTreeMap; use std::env; use driver_block::{Disk, DiskScheme, ExecutorTrait}; +use log::error; use syscall::{Error, EIO}; use xhcid_interface::{ConfigureEndpointsReq, PortId, XhciClientHandle}; @@ -107,7 +108,13 @@ fn daemon(daemon: daemon::Daemon) -> ! { println!("DISK CONTENT: {}", base64::encode(&buffer[..])); } - let event_queue = event::EventQueue::new().unwrap(); + let event_queue = match event::EventQueue::new() { + Ok(q) => q, + Err(e) => { + error!("usbscsid: failed to create event queue: {e}"); + std::process::exit(1); + } + }; event::user_data! { enum Event { @@ -133,13 +140,14 @@ fn daemon(daemon: daemon::Daemon) -> ! { //libredox::call::setrens(0, 0).expect("nvmed: failed to enter null namespace"); - event_queue - .subscribe( - scheme.event_handle().raw(), - Event::Scheme, - event::EventFlags::READ, - ) - .unwrap(); + if let Err(e) = event_queue.subscribe( + scheme.event_handle().raw(), + Event::Scheme, + event::EventFlags::READ, + ) { + error!("usbscsid: failed to subscribe to events: {e}"); + std::process::exit(1); + } for event in event_queue { let event = match event {