From 19652be07ea78b9c5581d76ecf6fecd511d46eb0 Mon Sep 17 00:00:00 2001 From: Frank Wang Date: Thu, 11 Apr 2019 16:05:31 +0800 Subject: [PATCH] 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 --- drivers/usb/gadget/f_rockusb.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/drivers/usb/gadget/f_rockusb.c b/drivers/usb/gadget/f_rockusb.c index 39e0a30c3a..25900ce6b2 100644 --- a/drivers/usb/gadget/f_rockusb.c +++ b/drivers/usb/gadget/f_rockusb.c @@ -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; }