Message ID | 20210423150123.24468-1-bostroesser@gmail.com |
---|---|
State | New |
Headers | show |
Series | scsi: target: tcmu: Return from tcmu_handle_completions if cmd_id not found | expand |
On Fri, 23 Apr 2021 17:01:23 +0200, Bodo Stroesser wrote: > If tcmu_handle_completions finds an invalid cmd_id while looping > over cmd responses from userspace, it sets TCMU_DEV_BIT_BROKEN > and breaks the loop, which means that it does further handling > for the tcmu device. > > Skip that handling by replacing 'break' with 'return'. > > [...] Applied to 5.13/scsi-fixes, thanks! [1/1] scsi: target: tcmu: Return from tcmu_handle_completions if cmd_id not found https://git.kernel.org/mkp/scsi/c/9814b55cde05 -- Martin K. Petersen Oracle Linux Engineering
diff --git a/drivers/target/target_core_user.c b/drivers/target/target_core_user.c index eec2fd573e2b..198d25ae482a 100644 --- a/drivers/target/target_core_user.c +++ b/drivers/target/target_core_user.c @@ -1413,7 +1413,7 @@ static int tcmu_run_tmr_queue(struct tcmu_dev *udev) return 1; } -static unsigned int tcmu_handle_completions(struct tcmu_dev *udev) +static bool tcmu_handle_completions(struct tcmu_dev *udev) { struct tcmu_mailbox *mb; struct tcmu_cmd *cmd; @@ -1456,7 +1456,7 @@ static unsigned int tcmu_handle_completions(struct tcmu_dev *udev) pr_err("cmd_id %u not found, ring is broken\n", entry->hdr.cmd_id); set_bit(TCMU_DEV_BIT_BROKEN, &udev->flags); - break; + return false; } tcmu_handle_completion(cmd, entry);
If tcmu_handle_completions finds an invalid cmd_id while looping over cmd responses from userspace, it sets TCMU_DEV_BIT_BROKEN and breaks the loop, which means that it does further handling for the tcmu device. Skip that handling by replacing 'break' with 'return'. Additionally change tcmu_handle_completions from unsigned int to bool, since the value used in return already is bool. Signed-off-by: Bodo Stroesser <bostroesser@gmail.com> --- drivers/target/target_core_user.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)