Make sure cmdline-provided partitions can override anything that's
on a storage device.
Signed-off-by: Michał Mirosław <[email protected]>
---
block/partitions/core.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/block/partitions/core.c b/block/partitions/core.c
index 66ef9bc6d6a1..b4dac3077dce 100644
--- a/block/partitions/core.c
+++ b/block/partitions/core.c
@@ -15,6 +15,13 @@
#include "check.h"
static int (*check_part[])(struct parsed_partitions *) = {
+ /*
+ * Let cmdline override whatever there is on disk.
+ */
+#ifdef CONFIG_CMDLINE_PARTITION
+ cmdline_partition,
+#endif
+
/*
* Probe partition formats with tables at disk address 0
* that also have an ADFS boot block at 0xdc0.
@@ -42,9 +49,6 @@ static int (*check_part[])(struct parsed_partitions *) = {
adfspart_check_ADFS,
#endif
-#ifdef CONFIG_CMDLINE_PARTITION
- cmdline_partition,
-#endif
#ifdef CONFIG_EFI_PARTITION
efi_partition, /* this must come before msdos */
#endif
--
2.30.2
Make no-partitions setting valid. This makes it possible to prevent
kernel from trying to read a partition table from a device.
Signed-off-by: Michał Mirosław <[email protected]>
---
Documentation/block/cmdline-partition.rst | 2 +-
block/partitions/cmdline.c | 8 +++-----
2 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/Documentation/block/cmdline-partition.rst b/Documentation/block/cmdline-partition.rst
index 530bedff548a..a5ccacee982f 100644
--- a/Documentation/block/cmdline-partition.rst
+++ b/Documentation/block/cmdline-partition.rst
@@ -13,7 +13,7 @@ Users can easily change the partition.
The format for the command line is just like mtdparts:
blkdevparts=<blkdev-def>[;<blkdev-def>]
- <blkdev-def> := <blkdev-id>:<partdef>[,<partdef>]
+ <blkdev-def> := <blkdev-id>:[<partdef>[,<partdef>]]
<partdef> := <size>[@<offset>](part-name)
<blkdev-id>
diff --git a/block/partitions/cmdline.c b/block/partitions/cmdline.c
index 1af610f0ba8c..3655e8c8e949 100644
--- a/block/partitions/cmdline.c
+++ b/block/partitions/cmdline.c
@@ -164,11 +164,9 @@ static int parse_parts(struct cmdline_parts **parts, const char *bdevdef)
next_subpart = &(*next_subpart)->next_subpart;
}
- if (!newparts->subpart) {
- pr_warn("cmdline partition has no valid partition.");
- ret = -EINVAL;
- goto fail;
- }
+ if (!newparts->subpart)
+ pr_warn("%s: cmdline partition has no valid partitions.",
+ newparts->name);
*parts = newparts;
--
2.30.2