Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp4078606imu; Tue, 18 Dec 2018 08:43:32 -0800 (PST) X-Google-Smtp-Source: AFSGD/X5aZgXx9Cmpr9JRT6uPpRX09PxBKZGUKbRC+UQXm8ShI1zGYC0MwzfiPj0kf6ADVQIb/NU X-Received: by 2002:a63:5f88:: with SMTP id t130mr16568925pgb.395.1545151412554; Tue, 18 Dec 2018 08:43:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1545151412; cv=none; d=google.com; s=arc-20160816; b=YmmkVokc6dtFmZLc+L5PzgRKvbPyQ7yqlk7M550eNgL7rgk5bXViVDx/zAgfpkwc2P gYdU/D7PuUFqjcFNESLMlKkGTIiQIjLxyF8ynMyihb80/iKyIEATBXe5Wy0MaQ1PI4EA k/w1HueCaYm2zAxcaDOnbJdmLgKUSzqd1r05IYjQAz2r9iGK95FAFUWEkbzLPcL+j6JL EZhI16TldVYve6kx7ZplAMHKudAkxi2MOcAY31cDkLnUhns2ZR8cmOEn8avsLYw9/LiI snoxV+iXD9ygFMKzoN/TY8elk9FmwkEIArHrIOfdIl8Dm2X9VQ8W01Xcp/Mu+hm5r8PD Cnjg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Y/S5m8k/43qLxuoU3c/4rkx3jN2zbnptKZ1IB3gg/LM=; b=nxvGG1fJMXXvAuJNlQWu9ID+WbAkdBJzt44VNRU7dEV63uN6akRsieqn2McfHjWpUb XaPvkSujppO4vk2FVhDd88qw1Lh6vZ/8CdQ23bDYkt0fNAp9ZgS8c5NMNjkMthDjQwic 5ropo+yukmj+w+s4j089zxvTjHpscH4pEUcgrwCvzOM1zRXmeFf9SV5lSbZPM8EdxwEZ ZH5MWOzU6wJ/HLMnf12tEqmXdSS06u5TGNYjmE/8XobnCIkoK2d6uAFe910MPWY2EsZh v99x32T+S67RAxvmhkHm1ehKR8lfxAeaU0v2tdTEVFqMuEeF23pzBV3SadMcY8dIqR9j j3nQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="Wm0ss/Vg"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l7si13529790plg.390.2018.12.18.08.43.10; Tue, 18 Dec 2018 08:43:32 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b="Wm0ss/Vg"; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727277AbeLRQkc (ORCPT + 99 others); Tue, 18 Dec 2018 11:40:32 -0500 Received: from mail.kernel.org ([198.145.29.99]:37532 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727153AbeLRQk3 (ORCPT ); Tue, 18 Dec 2018 11:40:29 -0500 Received: from localhost (5356596B.cm-6-7b.dynamic.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 50B67218A3; Tue, 18 Dec 2018 16:40:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1545151228; bh=ob8WBPGK9577jJLtUu4bIrLfmkK454rYIHyI8BtSMMY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Wm0ss/VgRisLWCyxbxisNPnSu9NR+FIVzYIpqvkMD5qVK7jNezUXhone+yNdrQVFl 4t1a15W2P/BVBWQy9wdyMMDqLKCw4by5sHLDz8CP/KA+GGyf1x6qi+fdfd3pWNnBrI 7lZ9Np36L36Piu/dxz5Pyv12oV/iE0XF3l5CuNtY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Masaharu Hayakawa , Wolfram Sang , =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= , Avri Altman , =?UTF-8?q?Niklas=20S=C3=B6derlund?= , Ulf Hansson Subject: [PATCH 4.19 18/44] mmc: core: use mrq->sbc when sending CMD23 for RPMB Date: Tue, 18 Dec 2018 17:39:30 +0100 Message-Id: <20181218163929.631069185@linuxfoundation.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20181218163927.119623235@linuxfoundation.org> References: <20181218163927.119623235@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.19-stable review patch. If anyone has any objections, please let me know. ------------------ From: Wolfram Sang commit a44f7cb937321d4961bfc8f28912126b06e701c5 upstream. When sending out CMD23 in the blk preparation, the comment there rightfully says: * However, it is not sufficient to just send CMD23, * and avoid the final CMD12, as on an error condition * CMD12 (stop) needs to be sent anyway. This, coupled * with Auto-CMD23 enhancements provided by some * hosts, means that the complexity of dealing * with this is best left to the host. If CMD23 is * supported by card and host, we'll fill sbc in and let * the host deal with handling it correctly. Let's do this behaviour for RPMB as well, and not send CMD23 independently. Otherwise IP cores (like Renesas SDHI) may timeout because of automatic CMD23/CMD12 handling. Reported-by: Masaharu Hayakawa Signed-off-by: Wolfram Sang Tested-by: Clément Péron Reviewed-by: Avri Altman Reviewed-by: Niklas Söderlund Cc: stable@vger.kernel.org Signed-off-by: Ulf Hansson Signed-off-by: Greg Kroah-Hartman --- drivers/mmc/core/block.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) --- a/drivers/mmc/core/block.c +++ b/drivers/mmc/core/block.c @@ -472,7 +472,7 @@ out: static int __mmc_blk_ioctl_cmd(struct mmc_card *card, struct mmc_blk_data *md, struct mmc_blk_ioc_data *idata) { - struct mmc_command cmd = {}; + struct mmc_command cmd = {}, sbc = {}; struct mmc_data data = {}; struct mmc_request mrq = {}; struct scatterlist sg; @@ -550,10 +550,15 @@ static int __mmc_blk_ioctl_cmd(struct mm } if (idata->rpmb) { - err = mmc_set_blockcount(card, data.blocks, - idata->ic.write_flag & (1 << 31)); - if (err) - return err; + sbc.opcode = MMC_SET_BLOCK_COUNT; + /* + * We don't do any blockcount validation because the max size + * may be increased by a future standard. We just copy the + * 'Reliable Write' bit here. + */ + sbc.arg = data.blocks | (idata->ic.write_flag & BIT(31)); + sbc.flags = MMC_RSP_R1 | MMC_CMD_AC; + mrq.sbc = &sbc; } if ((MMC_EXTRACT_INDEX_FROM_ARG(cmd.arg) == EXT_CSD_SANITIZE_START) &&