Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp3772428pxv; Mon, 19 Jul 2021 08:24:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxPUVfNSjz+GDqcWVvr8hr9niuWN24kn24YHEMo4CZ1IG5OQ31P1B+OxTN73/yDNs+E3EjG X-Received: by 2002:a50:aa97:: with SMTP id q23mr34668241edc.154.1626708243941; Mon, 19 Jul 2021 08:24:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626708243; cv=none; d=google.com; s=arc-20160816; b=dwXM36kzNsUHX6qt6Zkd69NQNXlLU6jquJ49BojXGW0os2XRjfnylohd2F77q2LNf0 eF3QraqzGDY3sy7O28G1ApltcDRqf0ykNZWW/swecDdw17YyzEDCCFk+gbHTPI+qMlio fFoFWlrMHN5bHw2ByqGo4aRZdVrKQUP4C0G0AfnONwX2P+Agb3TK8xAajNjmuxsNxTj9 V18Jvj5noPuwpnV5lmzwjAW3ouqOv/LKsW3v4WOk818J3KyJXHNYxaFvyQoFaESnDEEu wOcu5xvcs7PFQ2AVvT4WJZft4ien8cTeyck2j8zc1JBWwgyC0eHZENFcTOl+xU2wAi+g wTxg== 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=LncQBFsyHGzLCd3bm8JXW+8c8bpWPn+BXT91py+DSTE=; b=rFwpZYcQY4tr8sQUmRMQMujVZqAPFHr986Cs7qAHRrnV7lUXBDIl8AE13XffBE8VXQ 4tBTAOfBqVATFbf43BY7Q5ejynP4MkVUO/Q5NDFeZQlhVs83Ja6QNOzSIM6m/vgZADe5 d5VTfJPfhcr0oqtVRmpIcKP4+6Pp3kzSDxSbW12KTxCQ0BAr34nol366o0dB+7HqCj1X RdwDN4Omo7syFXvaQ3eL7wFGgQAs9K+rCgX5teRRjvjB29VgGBT6Wk86MYOgI+Kfm9X0 aQX2ZQucxwJ91l0RjMvJ4MElIvAdz50o5ZqdHrts0sz9N3Sy6/2/HpF5IpcMmftHoA9o k03Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=Mq9vFWjQ; 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 s10si18716955edd.421.2021.07.19.08.23.41; Mon, 19 Jul 2021 08:24:03 -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=Mq9vFWjQ; 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 S1343978AbhGSOjw (ORCPT + 99 others); Mon, 19 Jul 2021 10:39:52 -0400 Received: from mail.kernel.org ([198.145.29.99]:37472 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244695AbhGSO37 (ORCPT ); Mon, 19 Jul 2021 10:29:59 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 9AD2760249; Mon, 19 Jul 2021 15:10:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626707439; bh=4fA1DIJpHhuLpLOXmJLqpey2PRkp+EX8qRxl3w/HR0o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Mq9vFWjQSNO8Tzly+Klb2yjqNNzK/ke6+YAq3ld1E5FE+WO6wdfKp8IaUQgOcmWI3 K5dueGj7kcu+/Bb/8H4HddaXCDpBrrw6l/Qz5RZ4ykkacjda+1TVfBALu2VLIyhtJH UeheDY55H+L6JicuRlEPJzHaraRy4dXJYr0WusJo= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Adrian Hunter , Wolfram Sang , Yoshihiro Shimoda , Ulf Hansson Subject: [PATCH 4.9 164/245] mmc: core: clear flags before allowing to retune Date: Mon, 19 Jul 2021 16:51:46 +0200 Message-Id: <20210719144945.715860992@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210719144940.288257948@linuxfoundation.org> References: <20210719144940.288257948@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: Wolfram Sang commit 77347eda64ed5c9383961d1de9165f9d0b7d8df6 upstream. It might be that something goes wrong during tuning so the MMC core will immediately trigger a retune. In our case it was: - we sent a tuning block - there was an error so we need to send an abort cmd to the eMMC - the abort cmd had a CRC error - retune was set by the MMC core This lead to a vicious circle causing a performance regression of 75%. So, clear retuning flags before we enable retuning to start with a known cleared state. Reported-by Yoshihiro Shimoda Suggested-by: Adrian Hunter Signed-off-by: Wolfram Sang Acked-by: Adrian Hunter Reviewed-by: Yoshihiro Shimoda Tested-by: Yoshihiro Shimoda Fixes: bd11e8bd03ca ("mmc: core: Flag re-tuning is needed on CRC errors") Cc: stable@vger.kernel.org Link: https://lore.kernel.org/r/20210624151616.38770-2-wsa+renesas@sang-engineering.com Signed-off-by: Ulf Hansson Signed-off-by: Greg Kroah-Hartman --- drivers/mmc/core/core.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c @@ -1171,11 +1171,14 @@ int mmc_execute_tuning(struct mmc_card * err = host->ops->execute_tuning(host, opcode); - if (err) + if (err) { pr_err("%s: tuning execution failed: %d\n", mmc_hostname(host), err); - else + } else { + host->retune_now = 0; + host->need_retune = 0; mmc_retune_enable(host); + } return err; }