aboutsummaryrefslogtreecommitdiff
path: root/net/unix/af_unix.c
diff options
context:
space:
mode:
authorSujit Reddy Thumma <sthumma@codeaurora.org>2014-04-14 09:11:22 +0530
committerSujit Reddy Thumma <sthumma@codeaurora.org>2014-04-14 09:11:22 +0530
commit0bc5eaae9c6a2b27f804b2f4ec1f1f9112368a33 (patch)
treeec642082c1ecf27b4f00970011ab75553064983c /net/unix/af_unix.c
parent6ddb099c2e12d0f526f56eea7a8de59ba0347b86 (diff)
mmc: core: fix block request queue hang during data crc errors
When data CRC errors occur during write transactions, mmc block layer queries the card for successful writes. If the card reports bytes requested as bytes successfully written, the mmc block layer will end the request with blk_end_request(). If there is a following async request pending for execution, the request is thrown away while handling CRC errors leading to hang in request queue. The hang is visible when user issues a sync() system call. The sequence of events are as follows - mmcqd -> fetch a request -> send it to host driver -> fetch another request -> wait for previous request to complete -> previous request is in error -> skip sending current request to host driver and do error handling for previous request in error. During the last step, after error handling is completed the mmc block layer does not requeue the current request which is skipped and hence the request is infinitely stuck in the driver. Change-Id: I9528fbe3ccb5b723fcd0793f86cca43906c4c29c Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org>
Diffstat (limited to 'net/unix/af_unix.c')
0 files changed, 0 insertions, 0 deletions