forked from pool/grub2
Accepting request 598028 from Base:System
OBS-URL: https://build.opensuse.org/request/show/598028 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/grub2?expand=0&rev=182
This commit is contained in:
parent
5d4d9a9ad3
commit
1d3700b58f
60
grub2-ieee1275-open-raw-mode.patch
Normal file
60
grub2-ieee1275-open-raw-mode.patch
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
From: diegodo@br.ibm.com
|
||||||
|
References: bsc#1071559
|
||||||
|
Patch-Mainline: no
|
||||||
|
|
||||||
|
Because Openfirmware returns invalid ihandler when it tries to open a disk
|
||||||
|
which his first partition is not a supported one by the firmware (Prep, FAT,
|
||||||
|
ISO), the grub needs to understand when it should open the disk in "raw mode",
|
||||||
|
appending a ":0" in the end of the device path.
|
||||||
|
|
||||||
|
Openfirmware is unable to open disk that contains a unknown first partition
|
||||||
|
(i.e it is not a PreP, Fat, ISO) ; We needed to open the disk in "raw mode" and
|
||||||
|
so Grub was required to take care of partitions and contents.
|
||||||
|
|
||||||
|
Index: grub-2.02/grub-core/kern/ieee1275/ieee1275.c
|
||||||
|
===================================================================
|
||||||
|
--- grub-2.02.orig/grub-core/kern/ieee1275/ieee1275.c
|
||||||
|
+++ grub-2.02/grub-core/kern/ieee1275/ieee1275.c
|
||||||
|
@@ -19,6 +19,8 @@
|
||||||
|
|
||||||
|
#include <grub/ieee1275/ieee1275.h>
|
||||||
|
#include <grub/types.h>
|
||||||
|
+#include <grub/misc.h>
|
||||||
|
+#include <grub/mm.h>
|
||||||
|
|
||||||
|
#define IEEE1275_PHANDLE_INVALID ((grub_ieee1275_cell_t) -1)
|
||||||
|
#define IEEE1275_IHANDLE_INVALID ((grub_ieee1275_cell_t) 0)
|
||||||
|
@@ -458,8 +460,31 @@ grub_ieee1275_open (const char *path, gr
|
||||||
|
if (IEEE1275_CALL_ENTRY_FN (&args) == -1)
|
||||||
|
return -1;
|
||||||
|
*result = args.result;
|
||||||
|
- if (args.result == IEEE1275_IHANDLE_INVALID)
|
||||||
|
- return -1;
|
||||||
|
+ if (args.result == IEEE1275_IHANDLE_INVALID){
|
||||||
|
+
|
||||||
|
+ int path_len = grub_strlen(path);
|
||||||
|
+ if ((path[path_len-3] == ':') && (path[path_len-2] == '0')){
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ char *new_path = grub_malloc(grub_strlen(path) + 3);
|
||||||
|
+ char *optr;
|
||||||
|
+ optr = grub_stpcpy (new_path, path);
|
||||||
|
+ *optr++ = ':';
|
||||||
|
+ *optr++ = '0';
|
||||||
|
+ *optr++ = '\0';
|
||||||
|
+
|
||||||
|
+ args.path = (grub_ieee1275_cell_t) new_path;
|
||||||
|
+
|
||||||
|
+ if (IEEE1275_CALL_ENTRY_FN (&args) == -1)
|
||||||
|
+ return -1;
|
||||||
|
+
|
||||||
|
+ *result = args.result;
|
||||||
|
+ if (args.result == IEEE1275_IHANDLE_INVALID)
|
||||||
|
+ return -1;
|
||||||
|
+
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Apr 17 07:54:15 UTC 2018 - mchang@suse.com
|
||||||
|
|
||||||
|
- Fallback to raw mode if Open Firmware returns invalid ihandler (bsc#1071559)
|
||||||
|
* grub2-ieee1275-open-raw-mode.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Apr 12 08:41:39 UTC 2018 - mchang@suse.com
|
Thu Apr 12 08:41:39 UTC 2018 - mchang@suse.com
|
||||||
|
|
||||||
|
19
grub2.spec
19
grub2.spec
@ -245,13 +245,15 @@ Patch164: grub2-suse-remove-linux-root-param.patch
|
|||||||
# PPC64 LE support
|
# PPC64 LE support
|
||||||
Patch205: grub2-ppc64le-disable-video.patch
|
Patch205: grub2-ppc64le-disable-video.patch
|
||||||
Patch207: grub2-ppc64le-memory-map.patch
|
Patch207: grub2-ppc64le-memory-map.patch
|
||||||
|
# PPC
|
||||||
|
Patch210: 0002-Add-Virtual-LAN-support.patch
|
||||||
|
Patch211: grub2-ppc64-cas-reboot-support.patch
|
||||||
|
Patch212: grub2-install-remove-useless-check-PReP-partition-is-empty.patch
|
||||||
|
Patch213: grub2-Fix-incorrect-netmask-on-ppc64.patch
|
||||||
|
Patch214: grub2-ieee1275-open-raw-mode.patch
|
||||||
Patch233: grub2-use-stat-instead-of-udevadm-for-partition-lookup.patch
|
Patch233: grub2-use-stat-instead-of-udevadm-for-partition-lookup.patch
|
||||||
Patch234: fix-grub2-use-stat-instead-of-udevadm-for-partition-lookup-with-new-glibc.patch
|
Patch234: fix-grub2-use-stat-instead-of-udevadm-for-partition-lookup-with-new-glibc.patch
|
||||||
Patch235: 0002-Add-Virtual-LAN-support.patch
|
|
||||||
Patch236: grub2-efi_gop-avoid-low-resolution.patch
|
Patch236: grub2-efi_gop-avoid-low-resolution.patch
|
||||||
Patch277: grub2-ppc64-cas-reboot-support.patch
|
|
||||||
Patch278: grub2-install-remove-useless-check-PReP-partition-is-empty.patch
|
|
||||||
Patch279: grub2-Fix-incorrect-netmask-on-ppc64.patch
|
|
||||||
# Support HTTP Boot IPv4 and IPv6 (fate#320129)
|
# Support HTTP Boot IPv4 and IPv6 (fate#320129)
|
||||||
Patch280: 0001-misc-fix-invalid-character-recongition-in-strto-l.patch
|
Patch280: 0001-misc-fix-invalid-character-recongition-in-strto-l.patch
|
||||||
Patch281: 0002-net-read-bracketed-ipv6-addrs-and-port-numbers.patch
|
Patch281: 0002-net-read-bracketed-ipv6-addrs-and-port-numbers.patch
|
||||||
@ -522,13 +524,14 @@ swap partition while in resuming
|
|||||||
%patch164 -p1
|
%patch164 -p1
|
||||||
%patch205 -p1
|
%patch205 -p1
|
||||||
%patch207 -p1
|
%patch207 -p1
|
||||||
|
%patch210 -p1
|
||||||
|
%patch211 -p1
|
||||||
|
%patch212 -p1
|
||||||
|
%patch213 -p1
|
||||||
|
%patch214 -p1
|
||||||
%patch233 -p1
|
%patch233 -p1
|
||||||
%patch234 -p1
|
%patch234 -p1
|
||||||
%patch235 -p1
|
|
||||||
%patch236 -p1
|
%patch236 -p1
|
||||||
%patch277 -p1
|
|
||||||
%patch278 -p1
|
|
||||||
%patch279 -p1
|
|
||||||
%patch280 -p1
|
%patch280 -p1
|
||||||
%patch281 -p1
|
%patch281 -p1
|
||||||
%patch282 -p1
|
%patch282 -p1
|
||||||
|
Loading…
Reference in New Issue
Block a user