mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
rust/pv_core: Fix UvDeviceInfo::get() method.
`ATTESTATION_NR` flag was not set properly in case the device didn't support `Info` IOCTL call. Closes: https://github.com/ibm-s390-linux/s390-tools/pull/163 Signed-off-by: Vasiliy Suvorov <vsuvorov@gmail.com> Reviewed-by: Steffen Eiden <seiden@linux.ibm.com> Signed-off-by: Steffen Eiden <seiden@linux.ibm.com>
This commit is contained in:
@@ -48,10 +48,15 @@ impl UvDeviceInfo {
|
||||
let mut cmd = uvio_uvdev_info::new_zeroed();
|
||||
match uv.send_cmd(&mut cmd) {
|
||||
Ok(_) => Ok(cmd.into()),
|
||||
Err(crate::Error::Io(e)) if e.raw_os_error() == Some(libc::ENOTTY) => Ok(Self {
|
||||
supp_uvio_cmds: (UvDevice::ATTESTATION_NR as u64).into(),
|
||||
supp_uv_cmds: None,
|
||||
}),
|
||||
Err(crate::Error::Io(e)) if e.raw_os_error() == Some(libc::ENOTTY) => {
|
||||
let mut supp_uvio_cmds = Lsb0Flags64::default();
|
||||
supp_uvio_cmds.set_bit(UvDevice::ATTESTATION_NR);
|
||||
|
||||
Ok(Self {
|
||||
supp_uvio_cmds,
|
||||
supp_uv_cmds: None,
|
||||
})
|
||||
}
|
||||
Err(e) => Err(e),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user