Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp2714065pxv; Sun, 11 Jul 2021 23:34:34 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwkogkp1YRCPzjdrAnlQ/U4zi+f9pk9BWLGHGb5eyNUYqluPD6qStvYvS7fisd92ytcBCFO X-Received: by 2002:a17:906:81da:: with SMTP id e26mr21415799ejx.352.1626071674614; Sun, 11 Jul 2021 23:34:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626071674; cv=none; d=google.com; s=arc-20160816; b=TXB7LofIBIVMA2xEOIUt/57sVTJwGtrp1jNSn3S1DQNJD8p13bGpQpXWeHf4kfNa9b gAFhbjlkHhvEAqUd8HlyMkFDE9ShJ32KosNsMOHxaPgtFL7KUbOmNYSanY8CnWAWrUd9 TQbDQyvrjPM9nTU4zcd3xgZzYu17OyOlr9Mq/Lkh1jzUHFW7gK2LrcxXO7dE7bGjGuV4 LEnA9WKNIaJxGjl6yD+1xWsk6i9B3RHAxCwNftiwN1yMNLKwIoZKWiJOCKNiC0pHN8iA WTBqnzD0Gr2IvpwhjYV2BMxXY5XWrR4V+3nGoluaUpV65wPaFJjyoZdfj/VbBr/pCtOc Wv0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=eJBk2wM+kOBve5gDhO4vCTh0zFFarXv7+9Ri7N9HaPA=; b=Pm/DnOJMJUkCMFYWwqEfU0fAbPYAIdEpE81hbDRHkONYAcxFkZSrwjNnyTIOFWx9ns 5ea1gp1Ybr/OVae4TgHOjmZr82pAxLu7IOCS9zbqbi6k/lzxQBZI8kZaeYHbsAySQW4W v8XGZixGDIhWN0vk8yx8Rrr7raDYGiu+akj31n7g/n0QqgIB/XqhsPktfCIaAktUtZg6 rioP3rIkYwcjg1/jl6B1DYFbonwRHoza+ZclBTLeovCGs4ypFxvia8BQ3w2BZwiLttMB fIE+F4CVDnnJPrnj78n35gdTU0ZLOlm05JRSzLU3zcjOfqzlu9KUf+sMiAiLnLNSJ1N7 JZng== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=YtjMHpno; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id 30si16423795ejl.646.2021.07.11.23.34.06; Sun, 11 Jul 2021 23:34:34 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=YtjMHpno; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237000AbhGLGfq (ORCPT + 99 others); Mon, 12 Jul 2021 02:35:46 -0400 Received: from mail.kernel.org ([198.145.29.99]:53236 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234931AbhGLGaw (ORCPT ); Mon, 12 Jul 2021 02:30:52 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 6722F61283; Mon, 12 Jul 2021 06:28:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626071284; bh=y/MxTgp0vK74yPTxvMNX8UTk6/jxeDv7w0Orj9HWdH8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YtjMHpnoV4AIU4URhHADjJXpjEUH8g2MO8aZ92WMIDGqAO5nxNznbQIVtesAGa7df EIl9DWOVDnAh5Uw2peI5phrFLnHqt7Mc4Kv7bAyOFPSEg+/uix0YczLMj/HLgvjnmK gtmbu9w2aPDw+v4PhpqsYN8n1uuMhkWSlet4t+cM= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Michael Brunner , Bean Huo , Adrian Hunter , Ulf Hansson Subject: [PATCH 5.4 346/348] mmc: block: Disable CMDQ on the ioctl path Date: Mon, 12 Jul 2021 08:12:10 +0200 Message-Id: <20210712060750.048844708@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210712060659.886176320@linuxfoundation.org> References: <20210712060659.886176320@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Bean Huo commit 70b52f09080565030a530a784f1c9948a7f48ca3 upstream. According to the eMMC Spec: "When command queuing is enabled (CMDQ Mode En bit in CMDQ_MODE_EN field is set to ‘1’) class 11 commands are the only method through which data transfer tasks can be issued. Existing data transfer commands, namely CMD18/CMD17 and CMD25/CMD24, are not supported when command queuing is enabled." which means if CMDQ is enabled, the FFU commands will not be supported. To fix this issue, just simply disable CMDQ on the ioctl path, and re-enable CMDQ once ioctl request is completed. Tested-by: Michael Brunner Signed-off-by: Bean Huo Acked-by: Adrian Hunter Fixes: 1e8e55b67030 (mmc: block: Add CQE support) Cc: stable@vger.kernel.org Link: https://lore.kernel.org/r/20210504203209.361597-1-huobean@gmail.com Signed-off-by: Ulf Hansson Signed-off-by: Greg Kroah-Hartman --- drivers/mmc/core/block.c | 8 ++++++++ 1 file changed, 8 insertions(+) --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c @@ -1053,6 +1053,12 @@ static void mmc_blk_issue_drv_op(struct switch (mq_rq->drv_op) { case MMC_DRV_OP_IOCTL: + if (card->ext_csd.cmdq_en) { + ret = mmc_cmdq_disable(card); + if (ret) + break; + } + fallthrough; case MMC_DRV_OP_IOCTL_RPMB: idata = mq_rq->drv_op_data; for (i = 0, ret = 0; i < mq_rq->ioc_count; i++) { @@ -1063,6 +1069,8 @@ static void mmc_blk_issue_drv_op(struct /* Always switch back to main area after RPMB access */ if (rpmb_ioctl) mmc_blk_part_switch(card, 0); + else if (card->reenable_cmdq && !card->ext_csd.cmdq_en) + mmc_cmdq_enable(card); break; case MMC_DRV_OP_BOOT_WP: ret = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_BOOT_WP,