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:
VasiliyS
2024-03-13 18:00:22 +01:00
committed by Steffen Eiden
parent 659483031e
commit a3199d58db

View File

@@ -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),
}
}