From: Roland Dreier Date: Thu, 22 Nov 2012 10:00:11 +0000 (-0800) Subject: block: Don't access request after it might be freed X-Git-Tag: v3.7-rc7~9^2 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=893d290f1d7496db97c9471bc352ad4a11dc8a25;p=pandora-kernel.git block: Don't access request after it might be freed After we've done __elv_add_request() and __blk_run_queue() in blk_execute_rq_nowait(), the request might finish and be freed immediately. Therefore checking if the type is REQ_TYPE_PM_RESUME isn't safe afterwards, because if it isn't, rq might be gone. Instead, check beforehand and stash the result in a temporary. This fixes crashes in blk_execute_rq_nowait() I get occasionally when running with lots of memory debugging options enabled -- I think this race is usually harmless because the window for rq to be reallocated is so small. Signed-off-by: Roland Dreier Cc: stable@kernel.org Signed-off-by: Jens Axboe --- Reading git-diff-tree failed