diff options
Diffstat (limited to 'drivers/mmc/card/queue.c')
| -rw-r--r-- | drivers/mmc/card/queue.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/mmc/card/queue.c b/drivers/mmc/card/queue.c index bf14642a576a..708057261b38 100644 --- a/drivers/mmc/card/queue.c +++ b/drivers/mmc/card/queue.c @@ -33,7 +33,8 @@ static int mmc_prep_request(struct request_queue *q, struct request *req)  	/*  	 * We only like normal block requests and discards.  	 */ -	if (req->cmd_type != REQ_TYPE_FS && req_op(req) != REQ_OP_DISCARD) { +	if (req->cmd_type != REQ_TYPE_FS && req_op(req) != REQ_OP_DISCARD && +	    req_op(req) != REQ_OP_SECURE_ERASE) {  		blk_dump_rq_flags(req, "MMC bad request");  		return BLKPREP_KILL;  	} @@ -64,6 +65,8 @@ static int mmc_queue_thread(void *d)  		spin_unlock_irq(q->queue_lock);  		if (req || mq->mqrq_prev->req) { +			bool req_is_special = mmc_req_is_special(req); +  			set_current_state(TASK_RUNNING);  			mq->issue_fn(mq, req);  			cond_resched(); @@ -79,7 +82,7 @@ static int mmc_queue_thread(void *d)  			 * has been finished. Do not assign it to previous  			 * request.  			 */ -			if (mmc_req_is_special(req)) +			if (req_is_special)  				mq->mqrq_cur->req = NULL;  			mq->mqrq_prev->brq.mrq.data = NULL;  | 
