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