diff --git a/drivers/staging/unisys/visorbus/visorchipset.c b/drivers/staging/unisys/visorbus/visorchipset.c index 543218f11e0a..00fd02f5a71f 100644 --- a/drivers/staging/unisys/visorbus/visorchipset.c +++ b/drivers/staging/unisys/visorbus/visorchipset.c @@ -130,11 +130,16 @@ static ssize_t boottotool_show(struct device *dev, char *buf) { struct efi_spar_indication efi_spar_indication; + int err; - visorchannel_read(chipset_dev->controlvm_channel, - offsetof(struct spar_controlvm_channel_protocol, - efi_spar_ind), &efi_spar_indication, - sizeof(struct efi_spar_indication)); + err = visorchannel_read(chipset_dev->controlvm_channel, + offsetof(struct spar_controlvm_channel_protocol, + efi_spar_ind), + &efi_spar_indication, + sizeof(struct efi_spar_indication)); + + if (err) + return err; return sprintf(buf, "%u\n", efi_spar_indication.boot_to_tool); }