Received: by 2002:a25:7ec1:0:0:0:0:0 with SMTP id z184csp1456828ybc; Tue, 12 Nov 2019 22:01:58 -0800 (PST) X-Google-Smtp-Source: APXvYqx6Fj2vnqp8TKnmRewSBxSLedZwmpI6VSnUHNeXSJg41cme2KP2P/xkl7pv812yzyl2Sf3E X-Received: by 2002:a17:906:13d5:: with SMTP id g21mr1131136ejc.72.1573624918109; Tue, 12 Nov 2019 22:01:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1573624918; cv=none; d=google.com; s=arc-20160816; b=LmsAjHxPDko7Ly7ozdo7w3ZJeUUNzlEsw8PmSY7IwCDhI5hz1gufuqaLpfggTSJ0r7 RqTEGY+qOBIymgIRhVwQno7iad2yZg3KIOTwVUSXSXi9HsV1pUF+z7/3dDyY2U1915Vc pxDZu+DZbLyspB5qVBMEx9nlJOdiwMYNA8hhhEAmLpJKM7Tx1AkvyDkpjFFLpo9BufOk +s215/leWbjppRmIm/cHwnQht5ALkipmA2d/O1fgwLkAxudFh3zbR8t9HH5qByNeXuUs pfsUH9gDocN7qFLT43C9cdzv3W+xDV5eyLsDVN70I+sdHQpRwFGETvqcOfT+otpQvllL qeAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dmarc-filter:dkim-signature:dkim-signature; bh=SGqmjT6IOp9MkhnHvZ7+VP8dM4VdTufppqLj6BEUQlU=; b=zQC2uY04qiY1Xn9jsqiuVx/pxpteQMZzmw6Lw9ZlAdNSmEhnRkK8P75+8awF6MHUFs 4Z9mtqRSekwU8eZCTdqeDWhomfKlJe6XqF28xG6fanUKifTcbLnEfiZNwtkDS48RuOy3 MMh3UKljdECkj1PZ6OtSgR3TCqH9yVpF0bMc1QwKYtFlHZXTew/t0rQtl1AJx2qhgOmo 14hJLCkbmHn9gLV3wpXqT96XQxvzaNiHDXO6sOlcTqRpsJrb2f/QCa0HUBn7j2xdya3F aQyQqJU47l68nXDJ8woJeByy7DRfDmZ0blCTda3iie44s+9ezWI9r17w04ISz7j9RxWo UmNw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=VMka4P0e; dkim=pass header.i=@codeaurora.org header.s=default header.b=PhgUWHIa; 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 y54si635755edb.136.2019.11.12.22.01.31; Tue, 12 Nov 2019 22:01:58 -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=@codeaurora.org header.s=default header.b=VMka4P0e; dkim=pass header.i=@codeaurora.org header.s=default header.b=PhgUWHIa; 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 S1726311AbfKMGAm (ORCPT + 99 others); Wed, 13 Nov 2019 01:00:42 -0500 Received: from smtp.codeaurora.org ([198.145.29.96]:34808 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725858AbfKMGAl (ORCPT ); Wed, 13 Nov 2019 01:00:41 -0500 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 27760609CA; Wed, 13 Nov 2019 06:00:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1573624841; bh=Lpc1vPlBXIBVaSueTeC6tHlXeDwYV/+8vGhGZ8ayr4k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VMka4P0er2vaK8jmpvxZPIApaclYofjWrg8DBh3mg3UUgNgfzFyI8bR0rteAcN34h Zh8aT3zn17A7LkqHuJJtHpGb3DYE2S+I0iCglc/XEfjEQAUf8D8hkT1j2lQxbU5t2g ZDcZASaurVqqy5FmyhQnz5wuNCreK+Y6pvQ0/zKw= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_INVALID,DKIM_SIGNED,SPF_NONE autolearn=no autolearn_force=no version=3.4.0 Received: from pacamara-linux.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: cang@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 0C2DD609CA; Wed, 13 Nov 2019 06:00:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1573624839; bh=Lpc1vPlBXIBVaSueTeC6tHlXeDwYV/+8vGhGZ8ayr4k=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=PhgUWHIavGRVrM8bRR2hXLYKwr9VXJfdYN6QQPlTqznGzmoWnjLzpyZIBJAG6zHSZ lSfu1WuEoDoDru/bJ/+fB5jcqiU0yo7HIr5a/3PdjInYq6IkXkbJBtEliBHnJm86Ur dDq7L6z8Hjmr/K9YWfObZ6goNBtZ7q0VhJ41I+xw= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 0C2DD609CA Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=cang@codeaurora.org From: Can Guo To: asutoshd@codeaurora.org, nguyenb@codeaurora.org, rnayak@codeaurora.org, linux-scsi@vger.kernel.org, kernel-team@android.com, saravanak@google.com, salyzyn@google.com, cang@codeaurora.org Cc: Alim Akhtar , Avri Altman , Pedro Sousa , "James E.J. Bottomley" , "Martin K. Petersen" , Stanley Chu , Bean Huo , Tomas Winkler , linux-kernel@vger.kernel.org (open list) Subject: [PATCH v4 2/5] scsi: ufs: Use DBD setting in mode sense Date: Tue, 12 Nov 2019 22:00:20 -0800 Message-Id: <1573624824-671-3-git-send-email-cang@codeaurora.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1573624824-671-1-git-send-email-cang@codeaurora.org> References: <1573624824-671-1-git-send-email-cang@codeaurora.org> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org UFS standards requires DBD field to be set to 1 in mode sense(10). Some card vendors are more strict and check the DBD field, hence respond with CHECK_CONDITION (Sense key set to ILLEGAL_REQUEST and ASC set to INVALID FIELD IN CDB). When host send mode sense for page caching, as a result of the CHECK_CONDITION response, host assumes that the device doesn't support the cache feature and doesn't send SYNCHRONIZE_CACHE commands to flush the device cache. This can result in data corruption in case of sudden power down, when there is data stored in the device cache. This patch fixes the DBD field setting as required in UFS standards. Signed-off-by: Can Guo --- drivers/scsi/ufs/ufshcd.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index c28c144..5484177 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -4596,6 +4596,9 @@ static int ufshcd_slave_alloc(struct scsi_device *sdev) /* Mode sense(6) is not supported by UFS, so use Mode sense(10) */ sdev->use_10_for_ms = 1; + /* DBD field should be set to 1 in mode sense(10) */ + sdev->set_dbd_for_ms = 1; + /* allow SCSI layer to restart the device in case of errors */ sdev->allow_restart = 1; -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project