mmc: fix host release issue after discard operation
authorRay Jui <rjui@broadcom.com>
Sat, 26 Oct 2013 18:03:44 +0000 (11:03 -0700)
committerlintao <lintao@rock-chips.com>
Fri, 7 Mar 2014 12:09:22 +0000 (20:09 +0800)
commit5c6b103edb2dae5cf1906e5d67af15c329e87ade
tree2dbd05b35b11a5f3a6780a33de38778c548c64d5
parent3cb50076ba3fcd25754d9efe583a918d3b365473
mmc: fix host release issue after discard operation

Under function mmc_blk_issue_rq, after an MMC discard operation,
the MMC request data structure may be freed in memory. Later in
the same function, the check of req->cmd_flags & MMC_REQ_SPECIAL_MASK
is dangerous and invalid. It causes the MMC host not to be released
when it should.

This patch fixes the issue by marking the special request down before
the discard/flush operation.

Reported by: Harold (SoonYeal) Yang <haroldsy@broadcom.com>
Signed-off-by: Ray Jui <rjui@broadcom.com>
Reviewed-by: Seungwon Jeon <tgih.jun@samsung.com>
Acked-by: Seungwon Jeon <tgih.jun@samsung.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/card/block.c