mmc: fix host release issue after discard operation
authorRay Jui <rjui@broadcom.com>
Sat, 26 Oct 2013 18:03:44 +0000 (11:03 -0700)
committerChris Ball <chris@printf.net>
Mon, 13 Jan 2014 17:48:10 +0000 (12:48 -0500)
commitf662ae48ae67dfd42739e65750274fe8de46240a
tree0e8d4bf385454dc12f29bcf190553a8defc69732
parent89d7e5c131228a8f0d8b0cb48b459c62152bf620
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