58a808c
From: Matthew Garrett <mjg@redhat.com>
58a808c
Date: 2012-07-10 11:58:52 EDT
58a808c
Subject: [PATCH] Add support for crappy cd craparino
58a808c
58a808c
diff --git a/grub-core/disk/efi/efidisk.c b/grub-core/disk/efi/efidisk.c
58a808c
index d9d788c..a432b44 100644
58a808c
--- a/grub-core/disk/efi/efidisk.c
58a808c
+++ b/grub-core/disk/efi/efidisk.c
58a808c
@@ -750,6 +750,16 @@ grub_efidisk_get_device_name (grub_efi_handle_t *handle)
58a808c
   if (! ldp)
58a808c
     return 0;
58a808c
 
58a808c
+  if (GRUB_EFI_DEVICE_PATH_TYPE (ldp) == GRUB_EFI_MEDIA_DEVICE_PATH_TYPE &&
58a808c
+      (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) == GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE))
58a808c
+    {
58a808c
+      ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE;
58a808c
+      ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE;
58a808c
+      ldp->length[0] = 4;
58a808c
+      ldp->length[1] = 0;
58a808c
+      ldp = find_last_device_path(dp);
58a808c
+    }
58a808c
+
58a808c
   if (GRUB_EFI_DEVICE_PATH_TYPE (ldp) == GRUB_EFI_MEDIA_DEVICE_PATH_TYPE
58a808c
       && (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp)
58a808c
 	  == GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE))