From patchwork Mon Jan 15 13:22:22 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= X-Patchwork-Id: 860883 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=65.50.211.133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="j7cfnaiA"; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="hPa45TiC"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zKvDq6Wgfz9sDB for ; Tue, 16 Jan 2018 00:23:23 +1100 (AEDT) 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:References:In-Reply-To: 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: List-Owner; bh=XyoV6jzUOo129rSix8Kw0nE3KS9HBxXVImMCwAuacjA=; b=j7cfnaiAJb/qCl ir7HyUBgpb6YEfixg6e7CQ/KfMbPaz6mrxT5JNrdGdVExONvKhXx8JLnfKxozDb37rG7JVA2Co1Ug 0sOB++9e7OtTZsjkkkmPLu+MwHenYIkfC6I0IT4Cm9eGRlC1svc4F5D0lgVCW6KFqy/+YxvVzaWFN WAsXhEGVb/SJvP5Oot57IzjzHdTvZCJcWa0DGqLz9n7duh6TJN/MGe3TLtgTNNImnoP/tgER3HA70 yg6cDTS51hgy1JrP1269bKZMwtDyK9UQCRH6NIl+65I01pnfMgn7hYMLvzqv7aZFFsPqo+S40VaU6 rtAQvosjTolcG56aE46Q==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.89 #1 (Red Hat Linux)) id 1eb4jQ-0003zT-B7; Mon, 15 Jan 2018 13:23:20 +0000 Received: from mail-lf0-x242.google.com ([2a00:1450:4010:c07::242]) by bombadil.infradead.org with esmtps (Exim 4.89 #1 (Red Hat Linux)) id 1eb4j3-00034q-5u for linux-mtd@lists.infradead.org; Mon, 15 Jan 2018 13:23:02 +0000 Received: by mail-lf0-x242.google.com with SMTP id h140so13357274lfg.1 for ; Mon, 15 Jan 2018 05:22:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=6Tu1hPPMTZZ/zCQnCz8D2QGpBpA8j6ozbqH8TToYcoQ=; b=hPa45TiCyaKtmjaWgL6lue87YE9BGUMkZDx/mhjwcwnZ5vQCriFJZqX4rVsgDfHCwq UUB4AKhG1gvU+MqvT4+DJrxGjTAr6ra/Bd1lm+FMUauStS8Y53nBpCS+uktZrctzMgNK S1YV4WXKKOnuy9yd4wghhfIdsnv7xWx90ZQVFqREp/CH7ibURcfuToTzt8j+TwevjTj6 v5bOxh2VikyltE207md27urtIuqbxbMTEZPy+RdiWUVelBBiFDcy/A/yC6WpJNaEfoiX NWcXrxRTNvk4ygL8dlw1Dki8p1qzyQNOqxI0Usy+tZL7GZRInrchStnMv2GDhidU8xJc 82bQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=6Tu1hPPMTZZ/zCQnCz8D2QGpBpA8j6ozbqH8TToYcoQ=; b=Hkdxq9aH8O95224rNeWz12P0w1E2mgf6T3ICi8MbsU4Z9n70RzIp+t/P8f9Nc5wlZg OCJeCYz1WgXNWuOBGYMXgJ3+JVvWUcpwmXrL4L3zZVJ4GbchPyjNv1L15P889ZFXQdEm z+c+wEAiJY+XSbLxB6vtvoMpNbTbabsWjRTW2+AQocjrOBacfp9GDm7XNOiNN9rNdQpn N/4RDioEYfruaWzeka/sET9Z6e1brBxLi89yFsotExGkLb6wQAMnq3AvHSvHn/pT8VS2 i4JZkzDsO2jERojdLQKRK5ajYMPXk/DeMmAGQmwR5tTTs0LvVgWzULLC2uD1+WXfV/YP jm+w== X-Gm-Message-State: AKwxytcgHN6Phd4cwaecRA/VWOJaa/ydAFfCRVek98yt43tO8wiFv3cn L5RTUsra6qrQsjQ3GR5aFPI= X-Google-Smtp-Source: ACJfBotQSENWZ7uWDFeaHNZ6OM/6JYcs/q65sa9cpS/rCvFVp7Ol9c+95irdQbzaH6Uq0qDclLVpDA== X-Received: by 10.25.16.3 with SMTP id f3mr10375860lfi.98.1516022564362; Mon, 15 Jan 2018 05:22:44 -0800 (PST) Received: from linux-samsung.lan (ip-194-187-74-233.konfederacka.maverick.com.pl. [194.187.74.233]) by smtp.gmail.com with ESMTPSA id e72sm5589920lji.63.2018.01.15.05.22.42 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 15 Jan 2018 05:22:43 -0800 (PST) From: =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= To: Brian Norris , David Woodhouse , Boris Brezillon , Marek Vasut , Richard Weinberger , Cyrille Pitchen Subject: [PATCH V2 1/2] mtd: move code adding master MTD out of mtd_add_device_partitions Date: Mon, 15 Jan 2018 14:22:22 +0100 Message-Id: <20180115132223.9974-2-zajec5@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180115132223.9974-1-zajec5@gmail.com> References: <20180112144034.6655-1-zajec5@gmail.com> <20180115132223.9974-1-zajec5@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20180115_052257_260986_68C2CA2A X-CRM114-Status: GOOD ( 15.72 ) X-Spam-Score: -2.5 (--) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-2.5 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at http://www.dnswl.org/, low trust [2a00:1450:4010:c07:0:0:0:242 listed in] [list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (zajec5[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit (zajec5[at]gmail.com) -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= , linux-mtd@lists.infradead.org, Jonas Gorski Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org From: Rafał Miłecki This change is a small cleanup of mtd_device_parse_register. When using MTD_PARTITIONED_MASTER it makes sure a master MTD is registered before dealing with partitions. There are 2 advantages of this: 1) Not mixing code handling master MTD with code handling partitions 2) Possibility of reusing mtd_parse_part in the future to avoid some code duplication. This commit doesn't change any behavior except from a slightly different failure code path. The new code may need to call del_mtd_device when something goes wrong. Signed-off-by: Rafał Miłecki --- V2: Use device_is_registered (thanks Boris) Add an empty line before "return ret;" --- drivers/mtd/mtdcore.c | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c index f80e911b8843..dd9ba5b7b68e 100644 --- a/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c @@ -641,20 +641,12 @@ static int mtd_add_device_partitions(struct mtd_info *mtd, { const struct mtd_partition *real_parts = parts->parts; int nbparts = parts->nr_parts; - int ret; - if (nbparts == 0 || IS_ENABLED(CONFIG_MTD_PARTITIONED_MASTER)) { - ret = add_mtd_device(mtd); - if (ret) - return ret; - } + if (!nbparts && !device_is_registered(&mtd->dev)) + return add_mtd_device(mtd); - if (nbparts > 0) { - ret = add_mtd_partitions(mtd, real_parts, nbparts); - if (ret && IS_ENABLED(CONFIG_MTD_PARTITIONED_MASTER)) - del_mtd_device(mtd); - return ret; - } + if (nbparts > 0) + return add_mtd_partitions(mtd, real_parts, nbparts); return 0; } @@ -714,6 +706,12 @@ int mtd_device_parse_register(struct mtd_info *mtd, const char * const *types, mtd_set_dev_defaults(mtd); + if (IS_ENABLED(CONFIG_MTD_PARTITIONED_MASTER)) { + ret = add_mtd_device(mtd); + if (ret) + return ret; + } + memset(&parsed, 0, sizeof(parsed)); ret = parse_mtd_partitions(mtd, types, &parsed, parser_data); @@ -753,6 +751,9 @@ int mtd_device_parse_register(struct mtd_info *mtd, const char * const *types, out: /* Cleanup any parsed partitions */ mtd_part_parser_cleanup(&parsed); + if (ret && IS_ENABLED(CONFIG_MTD_PARTITIONED_MASTER)) + del_mtd_device(mtd); + return ret; } EXPORT_SYMBOL_GPL(mtd_device_parse_register); From patchwork Mon Jan 15 13:22:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= X-Patchwork-Id: 860882 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.infradead.org (client-ip=65.50.211.133; helo=bombadil.infradead.org; envelope-from=linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="riQUKZ3Q"; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="rRYxngv3"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3zKvDd1mB8z9sNx for ; Tue, 16 Jan 2018 00:23:13 +1100 (AEDT) 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:References:In-Reply-To: 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: List-Owner; bh=v09dNExRS61F4CsVjIlJwZ5JDnbKL5fxVwojULfYSFo=; b=riQUKZ3QAYN6TW iDpK7G5G/+1zVWvQWrsR/dWb5JCEx+XzwKREtG5RBq3TXRz8PGaP+bwhzNU2Glf+P11O0bilvIk5G w5f9dcTgVirhPM08CnRuiAGPrTzTfmb6gzSRrJM+8xI1szFiGhJBX8h8ppBSDLFf6ltImNK2nEjA7 huR87YMi4SdmRHbmbjaKnr5/RXuHeAVmmi+s8JlrrO925hdJi1IRBudeT1ABj/F4P9ddM+fVgDLOJ mGWOrs4BN+5F0wJ3116xjuY7y+gpy41TFEe9IVhb3BBQWc3UbqYAjnSAy3sW4fJSSxeMP3sAqr0uj 2gpuGFz0FcEtAASergnQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.89 #1 (Red Hat Linux)) id 1eb4jF-0003jt-0w; Mon, 15 Jan 2018 13:23:09 +0000 Received: from mail-lf0-x241.google.com ([2a00:1450:4010:c07::241]) by bombadil.infradead.org with esmtps (Exim 4.89 #1 (Red Hat Linux)) id 1eb4j4-0003Bg-H2 for linux-mtd@lists.infradead.org; Mon, 15 Jan 2018 13:23:00 +0000 Received: by mail-lf0-x241.google.com with SMTP id m8so13343838lfc.6 for ; Mon, 15 Jan 2018 05:22:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=C0mbvEnumzFAgGYGE734uzVl6AyL7E+oSPuBm9vnuAs=; b=rRYxngv3pgdRytTTYiU9fC1xRhETkuaG6gnAA3kVjYvR+q/6iYe2ygVmb9aRHirFGi nyRXHfqHlf6jtbk6eJyPjO1ANppERDm86vcQPtFFWOWhMIs3F5UWTzTZbseb74rDwYqi 9ejd1zP7RE61M7EfkJ1a7qyAZ8SWlhgOf5ggCmxqZgzl7eztmWkhpR/9RGcuCi90+4qV IVYg+t4TGL71CKKuKqG/0I8xcfmAKA6+ewyYeZWjzzE5mbYamm1FZt2/22Ry9x460713 /l1aDUdGZqkZPoZyKkeIGtd9YYOaBnBCPa9lNxLO823lisX/brNwNoQiq58O4coSjcOg 9gtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=C0mbvEnumzFAgGYGE734uzVl6AyL7E+oSPuBm9vnuAs=; b=M3AUlgaZeW1fWM23Bbx0DJ6ic1WFYlnUY/rhkgPQpwDK3guVJwu7TIBB7vvtH1xvKm zEggpQarsnF9LJffInSOvVzavtphXvtjIrPKs37JC6ejV6qyOraTRKej/1wgUjJwbQQy 8TvKdkvYlMxqLQSNACBWNcdlmctRuArCmEIspGSI190rPgMuVA7RQaKBEYgY0FQRBop8 KKPKF5n58RSEi1uGnbgCM9xATbMUVQFNMonq7bDW7DYWQWmkZJWY12Ya+romCP8gURzL wYebKVZ3Kuqfgo/kDkNKaINX64Y5blObni1PwhR/a+cGbhhs4DLAv73WkHPQGrAFtNhv oWeg== X-Gm-Message-State: AKwxytdHvYUpl9oAbpqbqaZY0yuJHiQUHKX1qkrum8VxSR7HTm2ZfSlX 0zLWJPgUtio4xaPLIEJ1vrA= X-Google-Smtp-Source: ACJfBotUkWjS0Hzh98IvtDiNsD4TbZKNaGsjVI0tuda13ou8DVVMp3g1tYqIl7cMJ4i+DxgFUE+djg== X-Received: by 10.25.38.77 with SMTP id m74mr2527412lfm.13.1516022566433; Mon, 15 Jan 2018 05:22:46 -0800 (PST) Received: from linux-samsung.lan (ip-194-187-74-233.konfederacka.maverick.com.pl. [194.187.74.233]) by smtp.gmail.com with ESMTPSA id e72sm5589920lji.63.2018.01.15.05.22.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 15 Jan 2018 05:22:45 -0800 (PST) From: =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= To: Brian Norris , David Woodhouse , Boris Brezillon , Marek Vasut , Richard Weinberger , Cyrille Pitchen Subject: [PATCH V2 2/2] mtd: get rid of the mtd_add_device_partitions function Date: Mon, 15 Jan 2018 14:22:23 +0100 Message-Id: <20180115132223.9974-3-zajec5@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180115132223.9974-1-zajec5@gmail.com> References: <20180112144034.6655-1-zajec5@gmail.com> <20180115132223.9974-1-zajec5@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20180115_052258_595565_F003AF86 X-CRM114-Status: GOOD ( 16.05 ) X-Spam-Score: -1.8 (-) X-Spam-Report: SpamAssassin version 3.4.1 on bombadil.infradead.org summary: Content analysis details: (-1.8 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [2a00:1450:4010:c07:0:0:0:241 listed in] [list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (zajec5[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit (zajec5[at]gmail.com) -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?b?UmFmYcWCIE1pxYJlY2tp?= , linux-mtd@lists.infradead.org, Jonas Gorski Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org From: Rafał Miłecki This simplifies code a bit by: 1) Avoiding an extra (tiny) function 2) Checking for amount of parsed (found) partitions just once 3) Avoiding clearing/filling struct mtd_partitions manually With this commit a proper functions are called directly from the mtd_device_parse_register. It doesn't need to use minor tricks like memsetting struct to 0 to trigger an expected mtd_add_device_partitions behavior. Signed-off-by: Rafał Miłecki --- V2: Simplify conditions in the mtd_device_parse_register (thanks Boris) --- drivers/mtd/mtdcore.c | 41 +++++++++++------------------------------ 1 file changed, 11 insertions(+), 30 deletions(-) diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c index dd9ba5b7b68e..e8fa05941f64 100644 --- a/drivers/mtd/mtdcore.c +++ b/drivers/mtd/mtdcore.c @@ -636,21 +636,6 @@ int del_mtd_device(struct mtd_info *mtd) return ret; } -static int mtd_add_device_partitions(struct mtd_info *mtd, - struct mtd_partitions *parts) -{ - const struct mtd_partition *real_parts = parts->parts; - int nbparts = parts->nr_parts; - - if (!nbparts && !device_is_registered(&mtd->dev)) - return add_mtd_device(mtd); - - if (nbparts > 0) - return add_mtd_partitions(mtd, real_parts, nbparts); - - return 0; -} - /* * Set a few defaults based on the parent devices, if not provided by the * driver @@ -712,24 +697,20 @@ int mtd_device_parse_register(struct mtd_info *mtd, const char * const *types, return ret; } - memset(&parsed, 0, sizeof(parsed)); - + /* Prefer parsed partitions over driver-provided fallback */ ret = parse_mtd_partitions(mtd, types, &parsed, parser_data); - if ((ret < 0 || parsed.nr_parts == 0) && parts && nr_parts) { - /* Fall back to driver-provided partitions */ - parsed = (struct mtd_partitions){ - .parts = parts, - .nr_parts = nr_parts, - }; - } else if (ret < 0) { - /* Didn't come up with parsed OR fallback partitions */ - pr_info("mtd: failed to find partitions; one or more parsers reports errors (%d)\n", - ret); - /* Don't abort on errors; we can still use unpartitioned MTD */ - memset(&parsed, 0, sizeof(parsed)); + if (!ret && parsed.nr_parts) { + parts = parsed.parts; + nr_parts = parsed.nr_parts; } - ret = mtd_add_device_partitions(mtd, &parsed); + if (nr_parts) + ret = add_mtd_partitions(mtd, parts, nr_parts); + else if (!device_is_registered(&mtd->dev)) + ret = add_mtd_device(mtd); + else + ret = 0; + if (ret) goto out;