Received: by 10.223.185.116 with SMTP id b49csp567955wrg; Sat, 3 Mar 2018 02:46:12 -0800 (PST) X-Google-Smtp-Source: AG47ELuVPO5IMqeL3kdRdLEBAfGFcJ4l7azdGH228xwlDbyV9EZiBc7TcxEr5z8gP0l0jIIlsR4j X-Received: by 2002:a17:902:2f81:: with SMTP id t1-v6mr7955799plb.290.1520073972550; Sat, 03 Mar 2018 02:46:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1520073972; cv=none; d=google.com; s=arc-20160816; b=mT9oV2b2yeOx27Aj8Gp2yUX/pDwvL0BFB3CgWFVjP4vDF6AnA55KP8jVe6I6CSTn57 TExSqfDc0Sq2+A7p1fD/jzbTHVqFDtaANM/NYQjys8qhQTFxO1kR86EPvs8pbqQCzbnz 63WY55R+BzAPUXvGw+tCKHkmglbCWgVpXUFClfB7up+0EloKuflb0EVUze41FGXy5NwF QxgrfaW+S7wV4di4KfBJCb+s2sy9GhcfZEX2BVwk+texf3uE/+8N2GEMsMaNmu+SoWOq hS8XvIt1/hyzdE7LTNkpY5rHyNaJ3aCGxXpVNCjihXkCd41ur6LhADuMPdSWUIaTyeKq /ONw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=cWv9rN0qTaBaGrPa7MdLcEFDmBn2uyJTUnF68ccq5NU=; b=GoW+s7qtpCKrLEAYL+/AnDSC30xatX1H/vJUhlz4+7F+OgFldNw2RFxkrLif3JJ0/u EpGT9+GghaUyEtgaIYE4XadTzIdzR7u+y9LHdY/6HBNgRtNroIekhcrvRuwNym7H7sJg NmjQJSy9BH3TpuSLx3Bt8oL9hym3zgSJsTHVUkHmy2r+Zk0fJdqO0sehN+p+No5aDpo5 3rp7g3iNmfa7ABNvpIeIVmvo4sQgBBYGGDRcrz9/EZT7o76DoOOy4lwWdhrWe3gIVfag vmAO1NsGxODEoqWCX3Vs7pq8oF+OPkEm73l2e3NgxJUmqYNYd0BeXgLdSbr1JLXu8/uO aA5A== ARC-Authentication-Results: i=1; mx.google.com; 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 q13si5339847pgt.6.2018.03.03.02.45.58; Sat, 03 Mar 2018 02:46:12 -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; 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 S1752074AbeCCKom (ORCPT + 99 others); Sat, 3 Mar 2018 05:44:42 -0500 Received: from lilium.sigma-star.at ([109.75.188.150]:49960 "EHLO lilium.sigma-star.at" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751853AbeCCKol (ORCPT ); Sat, 3 Mar 2018 05:44:41 -0500 Received: from localhost (localhost [127.0.0.1]) by lilium.sigma-star.at (Postfix) with ESMTP id EA3E3181878A6; Sat, 3 Mar 2018 11:44:38 +0100 (CET) From: Richard Weinberger To: linux-mtd@lists.infradead.org Cc: linux-kernel@vger.kernel.org, cyrille.pitchen@wedev4u.fr, marek.vasut@gmail.com, boris.brezillon@free-electrons.com, computersforpeace@gmail.com, dwmw2@infradead.org, richard@nod.at, dedekind1@gmail.com, tharvey@gateworks.com, stable@vger.kernel.org Subject: [PATCH] ubi: Reject MLC NAND Date: Sat, 3 Mar 2018 11:45:54 +0100 Message-Id: <20180303104554.5958-1-richard@nod.at> X-Mailer: git-send-email 2.13.6 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org While UBI and UBIFS seem to work at first sight with MLC NAND, you will most likely lose all your data upon a power-cut or due to read/write disturb. In order to protect users from bad surprises, refuse to attach to MLC NAND. Cc: stable@vger.kernel.org Signed-off-by: Richard Weinberger --- drivers/mtd/ubi/build.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/mtd/ubi/build.c b/drivers/mtd/ubi/build.c index e941395de3ae..753494e042d5 100644 --- a/drivers/mtd/ubi/build.c +++ b/drivers/mtd/ubi/build.c @@ -854,6 +854,17 @@ int ubi_attach_mtd_dev(struct mtd_info *mtd, int ubi_num, return -EINVAL; } + /* + * Both UBI and UBIFS have been designed for SLC NAND and NOR flashes. + * MLC NAND is different and needs special care, otherwise UBI or UBIFS + * will die soon and you will lose all your data. + */ + if (mtd->type == MTD_MLCNANDFLASH) { + pr_err("ubi: refuse attaching mtd%d - MLC NAND is not supported\n", + mtd->index); + return -EINVAL; + } + if (ubi_num == UBI_DEV_NUM_AUTO) { /* Search for an empty slot in the @ubi_devices array */ for (ubi_num = 0; ubi_num < UBI_MAX_DEVICES; ubi_num++) -- 2.13.6