Hello community,

here is the log from the commit of package grub2 for openSUSE:Factory checked 
in at 2018-04-05 15:27:13
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/grub2 (Old)
 and      /work/SRC/openSUSE:Factory/.grub2.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "grub2"

Thu Apr  5 15:27:13 2018 rev:180 rq:593091 version:2.02

Changes:
--------
--- /work/SRC/openSUSE:Factory/grub2/grub2.changes      2018-03-30 
12:01:03.707534300 +0200
+++ /work/SRC/openSUSE:Factory/.grub2.new/grub2.changes 2018-04-05 
15:27:17.657582172 +0200
@@ -1,0 +2,13 @@
+Mon Apr  2 08:30:05 UTC 2018 - mch...@suse.com
+
+- Fix Nvidia GPU in legacy I/O slot 2 disappears during system
+  startup (bsc#1082914)
+  * 0001-Fix-PCIe-LER-when-GRUB2-accesses-non-enabled-MMIO-da.patch 
+
+-------------------------------------------------------------------
+Fri Mar 30 09:16:06 UTC 2018 - mch...@suse.com
+
+- Fix packed-not-aligned error on GCC 8 (bsc#1084632)
+  * 0001-Fix-packed-not-aligned-error-on-GCC-8.patch
+
+-------------------------------------------------------------------

New:
----
  0001-Fix-PCIe-LER-when-GRUB2-accesses-non-enabled-MMIO-da.patch
  0001-Fix-packed-not-aligned-error-on-GCC-8.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ grub2.spec ++++++
--- /var/tmp/diff_new_pack.W1zjgs/_old  2018-04-05 15:27:19.357520726 +0200
+++ /var/tmp/diff_new_pack.W1zjgs/_new  2018-04-05 15:27:19.361520582 +0200
@@ -214,6 +214,8 @@
 Patch83:        grub2-efi-uga-64bit-fb.patch
 Patch84:        grub2-s390x-09-improve-zipl-setup.patch
 Patch85:        grub2-getroot-scan-disk-pv.patch
+Patch86:        0001-Fix-packed-not-aligned-error-on-GCC-8.patch
+Patch87:        0001-Fix-PCIe-LER-when-GRUB2-accesses-non-enabled-MMIO-da.patch
 # Btrfs snapshot booting related patches
 Patch101:       grub2-btrfs-01-add-ability-to-boot-from-subvolumes.patch
 Patch102:       grub2-btrfs-02-export-subvolume-envvars.patch
@@ -493,6 +495,8 @@
 %patch83 -p1
 %patch84 -p1
 %patch85 -p1
+%patch86 -p1
+%patch87 -p1
 %patch101 -p1
 %patch102 -p1
 %patch103 -p1

++++++ 0001-Fix-PCIe-LER-when-GRUB2-accesses-non-enabled-MMIO-da.patch ++++++
>From 2f06e09673e48f6a91486a8ad38f45c160d537fe Mon Sep 17 00:00:00 2001
From: "mike.tra...@hpe.com" <mike.tra...@hpe.com>
Date: Wed, 28 Mar 2018 11:42:18 -0500
Subject: Fix PCIe LER when GRUB2 accesses non-enabled MMIO data from VGA

A GPU inserted into a PCIe I/O slot disappears during system startup.
The problem centers around GRUB and a specific VGA init function in
efi_uga.c.  This causes an LER (link error recorvery) because the MMIO
memory has not been enabled before attempting access.

The fix is to add the same coding used in other VGA drivers, specifically
to add a check to insure that it is indeed a VGA controller.  And then
enable the MMIO address space with the specific bits.

Signed-off-by: Mike Travis <mike.tra...@hpe.com>
---
 grub-core/video/efi_uga.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/grub-core/video/efi_uga.c b/grub-core/video/efi_uga.c
index 464ede874..32ef7efbc 100644
--- a/grub-core/video/efi_uga.c
+++ b/grub-core/video/efi_uga.c
@@ -95,9 +95,18 @@ find_card (grub_pci_device_t dev, grub_pci_id_t pciid, void 
*data)
 {
   struct find_framebuf_ctx *ctx = data;
   grub_pci_address_t addr;
+  grub_pci_address_t rcaddr;
+  grub_uint32_t subclass;
 
   addr = grub_pci_make_address (dev, GRUB_PCI_REG_CLASS);
-  if (grub_pci_read (addr) >> 24 == 0x3)
+  subclass = (grub_pci_read (addr) >> 16) & 0xffff;
+  if (subclass != GRUB_PCI_CLASS_SUBCLASS_VGA)
+    return 0;
+
+  /* Enable MEM address spaces */
+  rcaddr = grub_pci_make_address (dev, GRUB_PCI_REG_COMMAND);
+  grub_pci_write_word (rcaddr, grub_pci_read_word (rcaddr) | 
GRUB_PCI_COMMAND_MEM_ENABLED);
+
     {
       int i;
 
-- 
2.13.6

++++++ 0001-Fix-packed-not-aligned-error-on-GCC-8.patch ++++++
>From 721f75ff7de467717658d2de9c20bbb18145790a Mon Sep 17 00:00:00 2001
From: Michael Chang <mch...@suse.com>
Date: Mon, 26 Mar 2018 16:52:34 +0800
Subject: Fix packed-not-aligned error on GCC 8

When building with GCC 8, there are several errors regarding packed-not-aligned.

./include/grub/gpt_partition.h:79:1: error: alignment 1 of 'struct 
grub_gpt_partentry' is less than 8 [-Werror=packed-not-aligned]

This patch tries to fix the build error by cleaning up the ambiguity of placing
aligned structure in a packed one. In "struct grub_btrfs_time" and "struct
grub_gpt_part_type", the aligned attribute seems to be superfluous, and also
has to be packed, to ensure the structure is bit-to-bit mapped to the format
laid on disk. I think we could blame to copy and paste error here for the
mistake. In "struct efi_variable", we have to use grub_efi_packed_guid_t, as
the name suggests. :)

Signed-off-by: Michael Chang <mch...@suse.com>
Tested-by: Michael Chang <mch...@suse.com>
---
 grub-core/fs/btrfs.c          | 2 +-
 include/grub/efiemu/runtime.h | 2 +-
 include/grub/gpt_partition.h  | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c
index 4849c1ceb..be195448d 100644
--- a/grub-core/fs/btrfs.c
+++ b/grub-core/fs/btrfs.c
@@ -175,7 +175,7 @@ struct grub_btrfs_time
 {
   grub_int64_t sec;
   grub_uint32_t nanosec;
-} __attribute__ ((aligned (4)));
+} GRUB_PACKED;
 
 struct grub_btrfs_inode
 {
diff --git a/include/grub/efiemu/runtime.h b/include/grub/efiemu/runtime.h
index 9b6b729f4..36d2dedf4 100644
--- a/include/grub/efiemu/runtime.h
+++ b/include/grub/efiemu/runtime.h
@@ -29,7 +29,7 @@ struct grub_efiemu_ptv_rel
 
 struct efi_variable
 {
-  grub_efi_guid_t guid;
+  grub_efi_packed_guid_t guid;
   grub_uint32_t namelen;
   grub_uint32_t size;
   grub_efi_uint32_t attributes;
diff --git a/include/grub/gpt_partition.h b/include/grub/gpt_partition.h
index 1b32f6725..9668a68c3 100644
--- a/include/grub/gpt_partition.h
+++ b/include/grub/gpt_partition.h
@@ -28,7 +28,7 @@ struct grub_gpt_part_type
   grub_uint16_t data2;
   grub_uint16_t data3;
   grub_uint8_t data4[8];
-} __attribute__ ((aligned(8)));
+} GRUB_PACKED;
 typedef struct grub_gpt_part_type grub_gpt_part_type_t;
 
 #define GRUB_GPT_PARTITION_TYPE_EMPTY \
-- 
2.13.6




Reply via email to