aboutsummaryrefslogtreecommitdiff
path: root/net/unix/af_unix.c
diff options
context:
space:
mode:
authorSujit Reddy Thumma <[email protected]>2014-05-26 10:59:12 +0530
committerChristoph Hellwig <[email protected]>2014-05-28 12:25:13 +0200
commite293313262d3c780632f7888878c982fa0a9bf7e (patch)
tree48b9f96f64240af775f982e2330764319f38af14 /net/unix/af_unix.c
parentbdbe5d2fe67031bf51777afbfa91585efcf9dbf5 (diff)
scsi: ufs: Fix broken task management command implementation
Currently, sending Task Management (TM) command to the card might be broken in some scenarios as listed below: Problem: If there are more than 8 TM commands the implementation returns error to the caller. Fix: Wait for one of the slots to be emptied and send the command. Problem: Sometimes it is necessary for the caller to know the TM service response code to determine the task status. Fix: Propogate the service response to the caller. Problem: If the TM command times out no proper error recovery is implemented. Fix: Clear the command in the controller door-bell register, so that further commands for the same slot don't fail. Problem: While preparing the TM command descriptor, the task tag used should be unique across SCSI/NOP/QUERY/TM commands and not the task tag of the command which the TM command is trying to manage. Fix: Use a unique task tag instead of task tag of SCSI command. Problem: Since the TM command involves H/W communication, abruptly ending the request on kill interrupt signal might cause h/w malfunction. Fix: Wait for hardware completion interrupt with TASK_UNINTERRUPTIBLE set. Signed-off-by: Sujit Reddy Thumma <[email protected]> Reviewed-by: Yaniv Gardi <[email protected]> Tested-by: Dolev Raviv <[email protected]> Acked-by: Vinayak Holikatti <[email protected]> Signed-off-by: Christoph Hellwig <[email protected]>
Diffstat (limited to 'net/unix/af_unix.c')
0 files changed, 0 insertions, 0 deletions