From patchwork Fri Jul 12 04:44:14 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Stanley Chu X-Patchwork-Id: 11041433 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A847A1395 for ; Fri, 12 Jul 2019 04:44:57 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 97E0828BAA for ; Fri, 12 Jul 2019 04:44:57 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8AAFE28BB9; Fri, 12 Jul 2019 04:44:57 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,UNPARSEABLE_RELAY autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 3ED2728BAA for ; Fri, 12 Jul 2019 04:44:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:Subject:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=h0qcrddiyMdqVvFPXBsoiolLlc6je24gPuyzBmC4KUs=; b=KIrT4CaQcWEXa3 IsW7dNA6wqclkIiwKNNTcQZmGSFky9f3abphslHbcH9hsUo7JhK3QRBNpKi+xUGOWpEqoj0nATAXa 473r6stxMztgRpKRMNG+sk+44b9FRTZ0mGEL4ipVBkeiUGAwaMcwy8cD2hiZ5y1u4IXyixVOVW7iZ yub8rz1zPj2WVdytL43ejKwYYemtwkxWUJOotPwA4lKPTWtLfVCPf72SdK+7od/Ae+FX72lbA+ZHN JNykc5U7Cz8z2i/2byRFRwegvGc9jvpAVd/iyCDCPhvKgT28eJ6ELfyD9l5OrCpcJl/wEv8mvURIR WHXv6npm7sZOr9lciG1A==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hlnQR-0002Ep-4P; Fri, 12 Jul 2019 04:44:51 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hlnQA-0001z5-7P; Fri, 12 Jul 2019 04:44:35 +0000 X-UUID: 7960c32e3eaf476f8b55a90325a79c2e-20190711 X-UUID: 7960c32e3eaf476f8b55a90325a79c2e-20190711 Received: from mtkcas67.mediatek.inc [(172.29.193.45)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLS) with ESMTP id 646114774; Thu, 11 Jul 2019 20:44:21 -0800 Received: from MTKMBS02N2.mediatek.inc (172.21.101.101) by MTKMBS62DR.mediatek.inc (172.29.94.18) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Thu, 11 Jul 2019 21:44:20 -0700 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs02n2.mediatek.inc (172.21.101.101) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Fri, 12 Jul 2019 12:44:17 +0800 Received: from mtkswgap22.mediatek.inc (172.21.77.33) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Fri, 12 Jul 2019 12:44:17 +0800 From: Stanley Chu To: , , , , Subject: [PATCH v1 0/2] scsi: ufs: Fix broken hba->outstanding_tasks Date: Fri, 12 Jul 2019 12:44:14 +0800 Message-ID: <1562906656-27154-1-git-send-email-stanley.chu@mediatek.com> X-Mailer: git-send-email 1.7.9.5 MIME-Version: 1.0 X-TM-SNTS-SMTP: 6CE500BED1A01CEE061009D235263B53C480307527484BCFEC3F55144357D55B2000:8 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190711_214434_267489_FC646B4B X-CRM114-Status: UNSURE ( 6.81 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: marc.w.gonzalez@free.fr, andy.teng@mediatek.com, chun-hung.wu@mediatek.com, kuohong.wang@mediatek.com, evgreen@chromium.org, linux-mediatek@lists.infradead.org, peter.wang@mediatek.com, matthias.bgg@gmail.com, Stanley Chu , linux-arm-kernel@lists.infradead.org, beanhuo@micron.com Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Currently bits in hba->outstanding_tasks are cleared only after their corresponding task management commands are successfully done by __ufshcd_issue_tm_cmd(). If timeout happens in a task management command, its corresponding bit in hba->outstanding_tasks will not be cleared until next task management command with the same tag used successfully finishes.‧ This is wrong and can lead to some issues, like power consumpton issue. For example, ufshcd_release() and ufshcd_gate_work() will do nothing if hba->outstanding_tasks is not zero even if both UFS host and devices are actually idle. Because error handling flow, i.e., ufshcd_reset_and_restore(), will be triggered after any task management command times out, we fix this by clearing corresponding hba->outstanding_tasks bits during this flow. To achieve this, we need a mask to track timed-out commands and thus error handling flow can clear their tags specifically. Stanley Chu (2): scsi: ufs: Make new function for clearing outstanding task bits scsi: ufs: Fix broken hba->outstanding_tasks drivers/scsi/ufs/ufshcd.c | 49 +++++++++++++++++++++++++++++++++------ drivers/scsi/ufs/ufshcd.h | 1 + 2 files changed, 43 insertions(+), 7 deletions(-)