Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp961429ybt; Fri, 19 Jun 2020 19:42:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx7jw7v2wgcHgVsSTwUx2A2TduZHB/rg8c/VYQggEvo0lJiCTA+P4CYPLFkGglzbnWkf7it X-Received: by 2002:a17:906:470c:: with SMTP id y12mr6502590ejq.336.1592620920112; Fri, 19 Jun 2020 19:42:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592620920; cv=none; d=google.com; s=arc-20160816; b=pvQQHriK5GBKJGqB/0YM8UGFpr8m0EqpUWUs2kFTd/LFwz69UBMJqVj7AKN8ZF7Tla yFhuLfQZnd0gNSk6nh3eE3QbqKFjrDH5B9gGunqk65SiOu7oVFJHcoLJq53rufha2MQw 7wKSwpUou/IVL71FJhPXRv4iwlAz/PrvCu26ZGejatUaoIhj0FL0IcuyUe6IZKzATVHK 1rPclKyT87zmPV1wwTXQj3JNxRaBmknk1e7G2LRfEjnYG1zqFHzFSABLoZgphxGqmo+M wQgd0fQibqVKiNAr7EGO5hAJZRMLblF3GhJ40n9m1gy7r7MjCDWD4u+ub/KAugVM5Z86 GxIg== 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=YJR4nZLmK7NM2jC8j9JSeVgMPtg4RmT4cBY4Omxbkm4=; b=lBG6pkJtcJgEet1a+1+wYaNhNp82je3vyMSJY/s5yAq8Hme+7tQ5/Qkdx4IbCNuwWH uGDAwXzA/lzLkNU92+MNvj5dnJ9QnIsg2Jvt1GdA9ZWq9vJ+eXx6PTvPk9q4WiIbF1zH gxy7/gbfqO/d79931PISf36hAVBSMMptLcUzfyRv3+M1m1ghZJRSIdAaCzhZPZ2YZC08 sj7ZNv4/e5q6GSYdti4NX+eNqzR6HrIxCRCdXvqNDmzWJZO721nwhGVHckpunpWY3n9S aXfvaWrC9nmT/WV4pHkn3eIJWhKTwN67llyibiNA4+lV85EjOabo1ee6VjERHqXuWQQs KLfA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=yHYg1ePx; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bx5si321543edb.375.2020.06.19.19.41.35; Fri, 19 Jun 2020 19:42:00 -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=@kernel.org header.s=default header.b=yHYg1ePx; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2392167AbgFSPq3 (ORCPT + 99 others); Fri, 19 Jun 2020 11:46:29 -0400 Received: from mail.kernel.org ([198.145.29.99]:58380 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2404332AbgFSP0f (ORCPT ); Fri, 19 Jun 2020 11:26:35 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.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 2AFB521582; Fri, 19 Jun 2020 15:26:33 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1592580394; bh=MHM7Fdo3PdvDzgIUfO+YIaHewyH4D4uZ7SHnfgDihPg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=yHYg1ePxYhWMu0mVfhj2BkcyOq4x9p6OFzLGNNL8m/cb9M8iX08W1jPjCEpBLIQuE cbw/yDv4ewzf7JaX27NzbhCAp5PhnTl9qiZBAB4qc+vpVv7J1C/cSkws/Ak/ebsOuS 240WiRgbxXWdsh6moN/tWctZiNx7ywSMhFmHD3AA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Bruce Chang , Harald Welte , Ulf Hansson , Sasha Levin Subject: [PATCH 5.7 232/376] mmc: via-sdmmc: Respect the cmd->busy_timeout from the mmc core Date: Fri, 19 Jun 2020 16:32:30 +0200 Message-Id: <20200619141721.303067965@linuxfoundation.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200619141710.350494719@linuxfoundation.org> References: <20200619141710.350494719@linuxfoundation.org> User-Agent: quilt/0.66 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 From: Ulf Hansson [ Upstream commit 966244ccd2919e28f25555a77f204cd1c109cad8 ] Using a fixed 1s timeout for all commands (and data transfers) is a bit problematic. For some commands it means waiting longer than needed for the timer to expire, which may not a big issue, but still. For other commands, like for an erase (CMD38) that uses a R1B response, may require longer timeouts than 1s. In these cases, we may end up treating the command as it failed, while it just needed some more time to complete successfully. Fix the problem by respecting the cmd->busy_timeout, which is provided by the mmc core. Cc: Bruce Chang Cc: Harald Welte Signed-off-by: Ulf Hansson Link: https://lore.kernel.org/r/20200414161413.3036-17-ulf.hansson@linaro.org Signed-off-by: Sasha Levin --- drivers/mmc/host/via-sdmmc.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/host/via-sdmmc.c b/drivers/mmc/host/via-sdmmc.c index e48bddd95ce6..ef95bce50889 100644 --- a/drivers/mmc/host/via-sdmmc.c +++ b/drivers/mmc/host/via-sdmmc.c @@ -319,6 +319,8 @@ struct via_crdr_mmc_host { /* some devices need a very long delay for power to stabilize */ #define VIA_CRDR_QUIRK_300MS_PWRDELAY 0x0001 +#define VIA_CMD_TIMEOUT_MS 1000 + static const struct pci_device_id via_ids[] = { {PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_9530, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0,}, @@ -551,14 +553,17 @@ static void via_sdc_send_command(struct via_crdr_mmc_host *host, { void __iomem *addrbase; struct mmc_data *data; + unsigned int timeout_ms; u32 cmdctrl = 0; WARN_ON(host->cmd); data = cmd->data; - mod_timer(&host->timer, jiffies + HZ); host->cmd = cmd; + timeout_ms = cmd->busy_timeout ? cmd->busy_timeout : VIA_CMD_TIMEOUT_MS; + mod_timer(&host->timer, jiffies + msecs_to_jiffies(timeout_ms)); + /*Command index*/ cmdctrl = cmd->opcode << 8; -- 2.25.1