gadget: rockusb: fix cmd exception for r/w vendor storage
It should be marked sense_data error when r/w vendor storage failed. Change-Id: I7e298d4f700ac3ca9648e973258cff521c41ec03 Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
This commit is contained in:
parent
3e45175eae
commit
19652be07e
|
|
@ -358,15 +358,19 @@ static int rkusb_do_vs_write(struct fsg_common *common)
|
|||
rc = vendor_storage_write(vhead->id,
|
||||
(char __user *)data,
|
||||
vhead->size);
|
||||
if (rc < 0)
|
||||
if (rc < 0) {
|
||||
curlun->sense_data = SS_WRITE_ERROR;
|
||||
return -EIO;
|
||||
}
|
||||
} else {
|
||||
/* RPMB */
|
||||
rc =
|
||||
write_keybox_to_secure_storage((u8 *)data,
|
||||
vhead->size);
|
||||
if (rc < 0)
|
||||
if (rc < 0) {
|
||||
curlun->sense_data = SS_WRITE_ERROR;
|
||||
return -EIO;
|
||||
}
|
||||
}
|
||||
|
||||
common->residue -= common->data_size;
|
||||
|
|
@ -427,16 +431,20 @@ static int rkusb_do_vs_read(struct fsg_common *common)
|
|||
rc = vendor_storage_read(vhead->id,
|
||||
(char __user *)data,
|
||||
common->data_size);
|
||||
if (!rc)
|
||||
if (!rc) {
|
||||
curlun->sense_data = SS_UNRECOVERED_READ_ERROR;
|
||||
return -EIO;
|
||||
}
|
||||
vhead->size = rc;
|
||||
} else {
|
||||
/* RPMB */
|
||||
rc =
|
||||
read_raw_data_from_secure_storage((u8 *)data,
|
||||
common->data_size);
|
||||
if (!rc)
|
||||
if (!rc) {
|
||||
curlun->sense_data = SS_UNRECOVERED_READ_ERROR;
|
||||
return -EIO;
|
||||
}
|
||||
vhead->size = rc;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue