summaryrefslogtreecommitdiff
path: root/libre/grub-legacy/special-devices.patch
diff options
context:
space:
mode:
authorNicolás Reynolds <fauno@kiwwwi.com.ar>2012-11-06 13:37:54 -0300
committerNicolás Reynolds <fauno@kiwwwi.com.ar>2012-11-06 13:37:54 -0300
commita48d075b90120462b9f97ab95a224d47e072f7dd (patch)
tree8ba729381a11d91f09b298d888636425c549498b /libre/grub-legacy/special-devices.patch
parent4ce84837520f8c56ae998d5d2d98380faf3e3eb5 (diff)
parent8ab3c2d0517cb4db3ab2f7635d0b71b701e464ba (diff)
Merge branch 'master' of ssh://gparabola/srv/git/abslibre
Diffstat (limited to 'libre/grub-legacy/special-devices.patch')
-rw-r--r--libre/grub-legacy/special-devices.patch18
1 files changed, 18 insertions, 0 deletions
diff --git a/libre/grub-legacy/special-devices.patch b/libre/grub-legacy/special-devices.patch
new file mode 100644
index 000000000..894f3e887
--- /dev/null
+++ b/libre/grub-legacy/special-devices.patch
@@ -0,0 +1,18 @@
+--- grub-0.93/lib/device.c.raid 2002-05-20 05:53:46.000000000 -0400
++++ grub-0.93/lib/device.c 2002-12-28 23:24:10.000000000 -0500
+@@ -689,7 +689,14 @@
+ if (strcmp (dev + strlen(dev) - 5, "/disc") == 0)
+ strcpy (dev + strlen(dev) - 5, "/part");
+ }
+- sprintf (dev + strlen(dev), "%d", ((partition >> 16) & 0xFF) + 1);
++
++ sprintf (dev + strlen(dev), "%s%d",
++ /* Compaq smart and others */
++ (strncmp(dev, "/dev/ida/", 9) == 0 ||
++ strncmp(dev, "/dev/ataraid/", 13) == 0 ||
++ strncmp(dev, "/dev/cciss/", 11) == 0 ||
++ strncmp(dev, "/dev/rd/", 8) == 0) ? "p" : "",
++ ((partition >> 16) & 0xFF) + 1);
+
+ /* Open the partition. */
+ fd = open (dev, O_RDWR);