The expression result >= 0 will be true even if usb_stor_ctrl_transfer() returns an error code. It is necessary to compare result with USB_STOR_XFER_GOOD. Found by Linux Verification Center (linuxtesting.org) with Svace. Signed-off-by: Roman Smirnov <r.smirnov@xxxxxx> Cc: stable@xxxxxxxxxxxxxxx Reviewed-by: Sergey Shtylyov <s.shtylyov@xxxxxx> --- drivers/usb/storage/isd200.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/usb/storage/isd200.c b/drivers/usb/storage/isd200.c index 300aeef160e7..2a1531793820 100644 --- a/drivers/usb/storage/isd200.c +++ b/drivers/usb/storage/isd200.c @@ -774,7 +774,7 @@ static int isd200_write_config( struct us_data *us ) (void *) &info->ConfigData, sizeof(info->ConfigData)); - if (result >= 0) { + if (result == USB_STOR_XFER_GOOD) { usb_stor_dbg(us, " ISD200 Config Data was written successfully\n"); } else { usb_stor_dbg(us, " Request to write ISD200 Config Data failed!\n"); @@ -816,7 +816,7 @@ static int isd200_read_config( struct us_data *us ) sizeof(info->ConfigData)); - if (result >= 0) { + if (result == USB_STOR_XFER_GOOD) { usb_stor_dbg(us, " Retrieved the following ISD200 Config Data:\n"); #ifdef CONFIG_USB_STORAGE_DEBUG isd200_log_config(us, info); -- 2.34.1