On 8/5/20 12:10 PM, Robert Karszniewicz wrote:
---
  common/bootm.c | 13 ++++++++++++-
  1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/common/bootm.c b/common/bootm.c
index 73409bf9f70c..01b54ab93958 100644
--- a/common/bootm.c
+++ b/common/bootm.c
@@ -656,7 +656,18 @@ int bootm_boot(struct bootm_data *bootm_data)
        if (bootm_data->appendroot) {
                char *rootarg;
- rootarg = path_get_linux_rootarg(data->os_file);
+               if (bootm_data->root_dev) {
+                       const char *root_dev_name = 
devpath_to_name(bootm_data->root_dev);
+                       const struct cdev *root_cdev = 
cdev_by_name(root_dev_name);
+
+                       if (root_cdev && root_cdev->partuuid[0] != 0) {
+                               rootarg = basprintf("root=PARTUUID=%s", 
root_cdev->partuuid);
+                       } else {
+                               rootarg = path_get_linux_rootarg("invalid");

Here I wasn't sure if I should be uniform and let the function return an error or just straight assign ERR_PTR(-EINVAL).

+                       }
+               } else {
+                       rootarg = path_get_linux_rootarg(data->os_file);
+               }
                if (!IS_ERR(rootarg)) {
                        printf("Adding \"%s\" to Kernel commandline\n", 
rootarg);
                        globalvar_add_simple("linux.bootargs.bootm.appendroot",



_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to