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:
Frank Wang 2019-04-11 16:05:31 +08:00 committed by Jianhong Chen
parent 3e45175eae
commit 19652be07e
1 changed files with 12 additions and 4 deletions

View File

@ -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;
}