Received: by 10.213.65.68 with SMTP id h4csp3907774imn; Tue, 10 Apr 2018 06:31:28 -0700 (PDT) X-Google-Smtp-Source: AIpwx4+32TXi6g3w+T4AQbTBZ+dKmmCWTVzLQKx7m2ZkRkBKLpJ7DGB9QqrwjXDTxvIprdPXc7Oq X-Received: by 10.99.117.91 with SMTP id f27mr335920pgn.108.1523367088468; Tue, 10 Apr 2018 06:31:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523367088; cv=none; d=google.com; s=arc-20160816; b=x9s/4BvY5+9gGo8MkOnPh4OnsZoSa2atwXOskkiTkCLrbneQbXUvlxYMNnLHK8Z9zI fOl3XCQcfTIgy+Tlawz6thQ5FXL7xe9KxWFuYnf3T1M9UPpTCubmWf9Avj4gedB96q46 L0RQ6VPegiT2+AOFhtJg6SQDbqeRgFxXvzESd85nLbtgcr6W5FLwDfv7sP4ruMlY9KrO lt33DgqUjbp3NrXGw0njQmtqvFdyRtKH95OhV1o1P7WjKLRCwBOiywXRUiP4s7DFwWB0 rdQORJbtLzkwKAQMYzPs8TyVFHnerSljPB9NpCzfjNCUIxQAPjsYU0h3tZ2Bzmy7yeoA 5mmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=n+DW+bCRcSblucYoP8ZN3wo/UIunQACtYAwa+qAVY/A=; b=x4+tQLcnrjrWetYum8ilBRU+nb/H1f/5t6ry0W+dyUdaIu8QqYOmVAmSU67ct5XpF4 qPHdE9Jy0DRTYiqsTmBMrg9lyHFR8/8CTJeReh/pIz+onO1mfd8pWpfTLdJryWJL21Q/ LjjIn85B7BnXsAh/ZxXPdUJFW8fjtzIDfKJ0jJ5QFcnnU6s+FTWxFuIMfijytv4DcJfg QtouFkF7vq83+vBEZl+ALBTvJQ1ixJR2izgJS95wDoUwRgQOfEwJSfixp2eQwVVzCpWO /W62b23hYm58CeomnWwqUEkB99bsWJchapPps5jLQL+dDReYrBllrWfM6MeEpvgsU2R1 PcGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b=JBt+uXC9; 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 q24si2092662pff.13.2018.04.10.06.30.51; Tue, 10 Apr 2018 06:31:28 -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=fail header.i=@gmail.com header.s=20161025 header.b=JBt+uXC9; 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 S1753398AbeDJN0X (ORCPT + 99 others); Tue, 10 Apr 2018 09:26:23 -0400 Received: from mail-qk0-f193.google.com ([209.85.220.193]:43906 "EHLO mail-qk0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752669AbeDJN0W (ORCPT ); Tue, 10 Apr 2018 09:26:22 -0400 Received: by mail-qk0-f193.google.com with SMTP id v2so13300514qkh.10; Tue, 10 Apr 2018 06:26:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=n+DW+bCRcSblucYoP8ZN3wo/UIunQACtYAwa+qAVY/A=; b=JBt+uXC9liUJksHhTsosvdjQDbzbQs9kD2ff0c86XcVE9Tqksq3UZVx6IWIqpANt1Q YVHX9o+bPzXPi0m0YVye5ftZLgZ7EdDtfRc9GzFxUe4uArEE123vbVFp4q71zI5SpGvI Z1AXTerFwps2/a7a4EzE/Dy4exWUXFOsZs872ojHZxjp64S0zxB/3NU/rBKHyn99zwz+ QoJ9dpF0bBJ1rnUPfpDVE+bYL2RLXd5yvI8Zt4ZFQtwrqjuDOEAHbTqx2TaiOIQU7usO cmCeqqQT85Qddsek4Nu5iKg4RpX0djObQj19/20kQQhgXYdiuujcqIIoPPBUa8937d1u CdPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=n+DW+bCRcSblucYoP8ZN3wo/UIunQACtYAwa+qAVY/A=; b=pLsAxbB5TjTSRZUL22QEdHPtS9G874S7wYQSIJfklhvG0g53EnmKUKT6G8cGHpT7Nd Xfsp9Mu3DSP4uQzj4aik/srBa3gNWsVkzaQ5o6JxuF53CwKP6KYPRd0GEe4q/tmqLjiz 23AIL9CiC3OUJ5C260ZMU5e77++yKiWrrMfS/Y3SwvEIOh5DFumNPRPgQrPTNwfNTeir fLh+aI8ZhlvvtD/6lmmzey49OpSKB39McW2z5YlHUHPuydndrSnL95dz1XEBUhyYqgE3 rA+FZJQzNxGwf9DINshUJWudND++Q6tkpUngA6f7zKojV/yn+LErZE73YMaOnt4yfhO3 01zQ== X-Gm-Message-State: ALQs6tDqA7ONplVcuNHll0YFvYSp/n0npBawKofVmiD3cNy1z2WTodZy BiRkIccRtkMkzaP9SudSCl1Nfi27siyde7NErGI= X-Received: by 10.55.8.147 with SMTP id 141mr604376qki.228.1523366781209; Tue, 10 Apr 2018 06:26:21 -0700 (PDT) MIME-Version: 1.0 Received: by 10.200.54.147 with HTTP; Tue, 10 Apr 2018 06:26:20 -0700 (PDT) In-Reply-To: <9bea3ad8-7e84-87c2-9963-de81ad4cb3bf@gmail.com> References: <1523276721-4982-1-git-send-email-geert+renesas@glider.be> <9bea3ad8-7e84-87c2-9963-de81ad4cb3bf@gmail.com> From: Geert Uytterhoeven Date: Tue, 10 Apr 2018 15:26:20 +0200 X-Google-Sender-Auth: gUvKDI9pIxYTEqaWX8go4rNcbrQ Message-ID: Subject: Re: [PATCH] mtd: partitions: Handle add_mtd_device() failures gracefully To: Marek Vasut Cc: Geert Uytterhoeven , David Woodhouse , Brian Norris , Boris Brezillon , Richard Weinberger , MTD Maling List , Linux-Renesas , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Marek, On Mon, Apr 9, 2018 at 11:59 PM, Marek Vasut wrote: > On 04/09/2018 02:25 PM, Geert Uytterhoeven wrote: >> Currently add_mtd_device() failures are plainly ignored, which may lead >> to kernel crashes later. >> Fix this by ignoring and freeing partitions that failed to add in >> add_mtd_partitions(). The same issue is present in mtd_add_partition(), >> so fix that as well. >> >> Signed-off-by: Geert Uytterhoeven >> --- >> I don't know if it is worthwhile factoring out the common handling. >> >> Should allocate_partition() fail instead? There's a comment saying >> "let's register it anyway to preserve ordering". >> --- a/drivers/mtd/mtdpart.c >> +++ b/drivers/mtd/mtdpart.c >> @@ -746,7 +753,15 @@ int add_mtd_partitions(struct mtd_info *master, >> list_add(&slave->list, &mtd_partitions); >> mutex_unlock(&mtd_partitions_mutex); >> >> - add_mtd_device(&slave->mtd); >> + ret = add_mtd_device(&slave->mtd); >> + if (ret) { >> + mutex_lock(&mtd_partitions_mutex); >> + list_del(&slave->list); >> + mutex_unlock(&mtd_partitions_mutex); >> + free_partition(slave); >> + continue; >> + } > > Why is the partition even in the list in the first place ? Can we avoid > adding it rather than adding and removing it ? Hence my question "Should allocate_partition() fail instead?". Note that if we go that route, it should be a "soft" failure, as we probably don't want to drop all other partitions on the device. >> mtd_add_partition_attrs(slave); >> if (parts[i].types) >> mtd_parse_part(slave, parts[i].types); >> Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds