Received: by 2002:a25:b794:0:0:0:0:0 with SMTP id n20csp2765056ybh; Mon, 5 Aug 2019 06:30:04 -0700 (PDT) X-Google-Smtp-Source: APXvYqwN4dyJqbmNKHdtKxrrnGy34ysyEpNzYvgQkfsO8S+7rKm1Vso7ZifYbw4NT38GaWWpTptn X-Received: by 2002:a63:6c46:: with SMTP id h67mr129054082pgc.248.1565011803936; Mon, 05 Aug 2019 06:30:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565011803; cv=none; d=google.com; s=arc-20160816; b=hKeKfbuWTkyb5vHsExusTvLktWvKTF9mxkQULBHu5h28wfnECJMA6fRcBmbD9Id6Qk cnjnNOkU/B6u3ZMMV9hY/ZkRKByf4OOv1jXjgKuUV8rE4nm27RBOz0ImFq94v9gDr4Xd qr/T6+ldw7Oqu15nM0Bpe8Mi0z5ZvWpR04w/u3EdgxPgGezOBFJoggmTMsRMr0GKyhjK HdMQkVrjHA4oS5T8HkzfkfhSz7X4cmG2z2WrKhroPYBSspvEMYBkIUGCEwyO3W3jlfp0 5PMHJgyBJIXjyNZ7csHmkh4yMoGeTCBtuq3k6ULry2hwcMxors/E7uLWePkswytXHIzp Sy1g== 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=Yf740nNp3BR5r31pTiZnx/oic4OLoRivSGVLmOKFEb8=; b=XHWJjDKTQsCI4JM8mNZJ65p/D1qj8HyrSObkflqTVp4BMvBsr74rMlDnbkG36hSeqL 4A/vTwYFdI4KzZl4gfBRkFByhCWCN8vdeVxQSDzk0T3NnzDz7ALNMwi+Id8zj5dOWvo4 ZBKfngE2krmKzYyYiJI6JRoxdjzrigJGi3kvj5+qUJNIMaiAHthzPdDscb8fIgZO150X 0icbAqlv6HCTEOiJeqUkIDKaSTVk2oNBok6zC9+W6bDuzoj0vc3yNvGIOmCgohZkbkus ysz2RSspOZJsmYFwLFrVzm9PNZL9LibP4k8tProo3aORFYzafOnwToaktFRv7U4ADk9c 5GEQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=uxNbZKIg; 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 k10si13086270pjw.1.2019.08.05.06.29.48; Mon, 05 Aug 2019 06:30:03 -0700 (PDT) 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=uxNbZKIg; 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 S1730881AbfHEN2I (ORCPT + 99 others); Mon, 5 Aug 2019 09:28:08 -0400 Received: from mail.kernel.org ([198.145.29.99]:60632 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730891AbfHENXx (ORCPT ); Mon, 5 Aug 2019 09:23:53 -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 BB78F20651; Mon, 5 Aug 2019 13:23:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1565011432; bh=WpezVymSj/ZV62kDHi1BueDKYGV80SbgQzs2YmGL4sc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uxNbZKIgORFiii1VLgR9tTdRwS7UhK2eLVF459i0eA6f2oT9irI3qcoSyYQ9XGQ2d lWBr6EWe8hXcJdtw6XhAIy+epWVvhSoCRjvOUFsL6tnypZMPNfS+VVJjq5PQxTQDYe LiXgLkDXY0QMrKJi8ZWgSdmKh4rqkGufhssxo3YU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Andreas Koop , ShihPo Hung , Paul Walmsley , Ulf Hansson Subject: [PATCH 5.2 086/131] mmc: mmc_spi: Enable stable writes Date: Mon, 5 Aug 2019 15:02:53 +0200 Message-Id: <20190805124957.722761571@linuxfoundation.org> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190805124951.453337465@linuxfoundation.org> References: <20190805124951.453337465@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: Andreas Koop commit 3a6ffb3c8c3274a39dc8f2514526e645c5d21753 upstream. While using the mmc_spi driver occasionally errors like this popped up: mmcblk0: error -84 transferring data end_request: I/O error, dev mmcblk0, sector 581756 I looked on the Internet for occurrences of the same problem and came across a helpful post [1]. It includes source code to reproduce the bug. There is also an analysis about the cause. During transmission data in the supplied buffer is being modified. Thus the previously calculated checksum is not correct anymore. After some digging I found out that device drivers are supposed to report they need stable writes. To fix this I set the appropriate flag at queue initialization if CRC checksumming is enabled for that SPI host. [1] https://groups.google.com/forum/#!msg/sim1/gLlzWeXGFr8/KevXinUXfc8J Signed-off-by: Andreas Koop [shihpo: Rebase on top of v5.3-rc1] Signed-off-by: ShihPo Hung Cc: Paul Walmsley CC: stable@vger.kernel.org Signed-off-by: Ulf Hansson Signed-off-by: Greg Kroah-Hartman --- drivers/mmc/core/queue.c | 5 +++++ 1 file changed, 5 insertions(+) --- a/drivers/mmc/core/queue.c +++ b/drivers/mmc/core/queue.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include @@ -430,6 +431,10 @@ int mmc_init_queue(struct mmc_queue *mq, goto free_tag_set; } + if (mmc_host_is_spi(host) && host->use_spi_crc) + mq->queue->backing_dev_info->capabilities |= + BDI_CAP_STABLE_WRITES; + mq->queue->queuedata = mq; blk_queue_rq_timeout(mq->queue, 60 * HZ);