Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp2739047pxv; Mon, 12 Jul 2021 00:21:20 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwHXXTxyL/rVt0B6oMIuzQm94tVvLoPSstTABD0XuFuGkh5i41gn4CWWYMXuBRqgTh9Dl30 X-Received: by 2002:a5e:da0b:: with SMTP id x11mr20625177ioj.192.1626074392653; Mon, 12 Jul 2021 00:19:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626074392; cv=none; d=google.com; s=arc-20160816; b=0T2vENaJM0OTleiR5YzfGDf8QuNt2yHhJAPBEa+sihNCu7CLGCWPdaMxkEkSSF3gIT RFhpKDG1c2Vln9eDzd2SpCMHLEi74ys8O+hicA94iIzNCs4Zxio41AQeFy3H6nupPtcd jfZDUhwmn0EMoVJ62npg5chhOGSwTl7p13s+V3P0rUyBZEkno6HtgsnQZL6pEhBF36c1 6/iP+Ij6L7vmgs8ET8iieOgNUC8zBz8pvihdyw8xlPBCEUMmLhvdkkvUEDRc5LseWAZg EJeeS4ytipMv64FRBAywVRx5XIbkGlVz8MqboPLWdSjVKNuAsl1AP7FuAhznmrpIikd2 izoQ== 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=iFz+YeKcOBnc3nw2qIAFAbDAxhUIOcND6xruSnVHnlk=; b=BtgW0W7rdQlikHnRw+By71kYz8XFs8nGTxUaq65rgR40PGSNbGdnOhJsfUTFQ23Tlr XlEJwC9SGyZNtZyxbadTNh6jHEGWJJW/lWhp1Dfart7VjhRCyLssgI91Yar55eK9Y+7r 6WcooyGrX15ty41geLi9hIALJTiOaYOpLgNuAAOsCP5yXNAFP0gW4Zdc8BaER3ESn1vL 19Cv5RBntMv0VVVQHR6MYaA2f16Le2Hc5yizEhuexHlUtJNcI5Ld2Pm2hj+c8YUU3CUB tBMcQKuQaM6DMIH055Sa+Qk9YchxiTaU4cLMBqigiL+EthLhZ9reaWz8kfypS5wQ5ZBU r5Tg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=KqrAqdC7; 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 o18si11983815jah.71.2021.07.12.00.19.40; Mon, 12 Jul 2021 00:19:52 -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=KqrAqdC7; 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 S245067AbhGLHTW (ORCPT + 99 others); Mon, 12 Jul 2021 03:19:22 -0400 Received: from mail.kernel.org ([198.145.29.99]:54228 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241141AbhGLGym (ORCPT ); Mon, 12 Jul 2021 02:54:42 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id E3D4261205; Mon, 12 Jul 2021 06:51:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626072714; bh=Q6p96BN8qSWwZprUyxWZFtrmx42OuspI7QvMmy7B3hU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KqrAqdC7WKIIE5hEyBSfnpZXQp/9WN/+sjdhVKmPkmEgtwTxo3QSg53NhADhwXH+F pdGtsC+eQ3IuuVdERFU/ZEzRYDpL4lAJaSzJiQdPax+OmqToRUrqibxzxkP8PhH7ei WWLHj/xwx/oSW2ixT4/YRwl1WZZdqNsU7OfBaXYg= 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.10 590/593] mmc: block: Disable CMDQ on the ioctl path Date: Mon, 12 Jul 2021 08:12:30 +0200 Message-Id: <20210712061000.541149026@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210712060843.180606720@linuxfoundation.org> References: <20210712060843.180606720@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 @@ -1003,6 +1003,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++) { @@ -1013,6 +1019,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,