Yes exactly, there are BIOS or UEFI implementations that support DDF containers natively.

I've sent the new version of the patch right now.

Le 4/14/25 à 11:47 AM, Vladimir 'phcoder' Serbinenko a écrit :


Le ven. 21 juin 2024, 11:21, Renaud Métrich <rmetr...@redhat.com> a écrit :

    DDF and IMSM are very similar in handling, especially these should not
    be considered as RAID abstraction.
    This fixes the requirement of having a device map when probing DDF
    containers.

Do you mean that DDF is handled by BIOS/UEFI? If so, looks good. Can you add this to commit message?


    Fixes https://issues.redhat.com/browse/RHEL-44336

    Signed-off-by: Renaud Métrich <rmetr...@redhat.com>
    ---
     grub-core/osdep/linux/getroot.c | 19 +++++++++++++------
     1 file changed, 13 insertions(+), 6 deletions(-)

    diff --git a/grub-core/osdep/linux/getroot.c
    b/grub-core/osdep/linux/getroot.c
    index 7dd775d2a..0c6c12945 100644
    --- a/grub-core/osdep/linux/getroot.c
    +++ b/grub-core/osdep/linux/getroot.c
    @@ -119,7 +119,7 @@ struct btrfs_ioctl_search_args {
                                    struct btrfs_ioctl_fs_info_args)

     static int
    -grub_util_is_imsm (const char *os_dev);
    +grub_util_is_imsm_or_ddf (const char *os_dev);


     #define ESCAPED_PATH_MAX (4 * PATH_MAX)
    @@ -635,10 +635,10 @@ out:
     }

     static int
    -grub_util_is_imsm (const char *os_dev)
    +grub_util_is_imsm_or_ddf (const char *os_dev)
     {
       int retry;
    -  int is_imsm = 0;
    +  int is_imsm_or_ddf = 0;
       int container_seen = 0;
       const char *dev = os_dev;

    @@ -699,10 +699,17 @@ grub_util_is_imsm (const char *os_dev)
              if (strncmp (buf, "MD_METADATA=imsm",
                           sizeof ("MD_METADATA=imsm") - 1) == 0)
                {
    -             is_imsm = 1;
    +             is_imsm_or_ddf = 1;
                  grub_util_info ("%s is imsm", dev);
                  break;
                }
    +         if (strncmp (buf, "MD_METADATA=ddf",
    +                      sizeof ("MD_METADATA=ddf") - 1) == 0)
    +           {
    +             is_imsm_or_ddf = 1;
    +             grub_util_info ("%s is ddf", dev);
    +             break;
    +           }
            }

           free (buf);
    @@ -713,7 +720,7 @@ grub_util_is_imsm (const char *os_dev)

       if (dev != os_dev)
         free ((void *) dev);
    -  return is_imsm;
    +  return is_imsm_or_ddf;
     }

     char *
    @@ -1078,7 +1085,7 @@ grub_util_get_dev_abstraction_os (const char
    *os_dev)

       /* Check for RAID.  */
       if (!strncmp (os_dev, "/dev/md", 7) && !
    grub_util_device_is_mapped (os_dev)
    -      && !grub_util_is_imsm (os_dev))
    +      && !grub_util_is_imsm_or_ddf (os_dev))
         return GRUB_DEV_ABSTRACTION_RAID;
       return GRUB_DEV_ABSTRACTION_NONE;
     }
-- 2.45.2


    _______________________________________________
    Grub-devel mailing list
    Grub-devel@gnu.org
    https://lists.gnu.org/mailman/listinfo/grub-devel

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to