@@ -69,7 +69,10 @@ impl TryFrom<args::ScmiArgs> for VuScmiConfig {
69
69
let device_iterator = cmd_args. device . iter ( ) ;
70
70
for d in device_iterator {
71
71
let mut split = d. split ( ',' ) ;
72
- let name = split. next ( ) . unwrap ( ) . to_owned ( ) ;
72
+ let name = split
73
+ . next ( )
74
+ . ok_or ( "String split failed with None" ) ?
75
+ . to_owned ( ) ;
73
76
let mut properties = vec ! [ ] ;
74
77
for s in split {
75
78
if let Some ( ( key, value) ) = s. split ( '=' ) . collect_tuple ( ) {
@@ -95,18 +98,21 @@ fn start_backend(config: VuScmiConfig) -> Result<()> {
95
98
return Err ( error. to_string ( ) ) ;
96
99
}
97
100
98
- let backend = Arc :: new ( RwLock :: new ( backend_instance. unwrap ( ) ) ) ;
101
+ let backend = Arc :: new ( RwLock :: new ( backend_instance. map_err ( |e| format ! ( "{e}" ) ) ? ) ) ;
99
102
let mut daemon = VhostUserDaemon :: new (
100
103
"vhost-device-scmi" . to_owned ( ) ,
101
104
backend. clone ( ) ,
102
105
GuestMemoryAtomic :: new ( GuestMemoryMmap :: new ( ) ) ,
103
106
)
104
- . unwrap ( ) ;
107
+ . map_err ( |e| format ! ( "{e}" ) ) ? ;
105
108
106
109
// Register devices such as "/dev/iio:deviceX" which can actively notify the frontend to epoll the handler.
107
110
// Then once there is data coming from these devices, an event will be created. (device_event=3)
108
111
let handlers = daemon. get_epoll_handlers ( ) ;
109
- backend. read ( ) . unwrap ( ) . register_device_event_fd ( handlers) ;
112
+ backend
113
+ . read ( )
114
+ . map_err ( |e| format ! ( "{e}" ) ) ?
115
+ . register_device_event_fd ( handlers) ;
110
116
111
117
daemon
112
118
. serve ( & config. socket_path )
0 commit comments