Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package grub2 for openSUSE:Factory checked 
in at 2023-10-02 20:04:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/grub2 (Old)
 and      /work/SRC/openSUSE:Factory/.grub2.new.28202 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "grub2"

Mon Oct  2 20:04:15 2023 rev:301 rq:1113952 version:2.12~rc1

Changes:
--------
--- /work/SRC/openSUSE:Factory/grub2/grub2.changes      2023-09-06 
18:55:31.713859208 +0200
+++ /work/SRC/openSUSE:Factory/.grub2.new.28202/grub2.changes   2023-10-02 
20:04:48.739235293 +0200
@@ -1,0 +2,26 @@
+Wed Sep 27 03:37:10 UTC 2023 - Gary Ching-Pang Lin <g...@suse.com>
+
+- Only build with fde-tpm-helper-rpm-macros for the architectures
+  supporting the newer UEFI and TPM 2.0.
+  * Also correct the location of %fde_tpm_update_requires
+
+-------------------------------------------------------------------
+Wed Sep 20 07:54:05 UTC 2023 - Michael Chang <mch...@suse.com>
+
+- Fix a boot delay regression in PowerPC PXE boot (bsc#1201300)
+  * 0001-ieee1275-ofdisk-retry-on-open-and-read-failure.patch
+
+-------------------------------------------------------------------
+Tue Sep 19 06:31:43 UTC 2023 - Gary Ching-Pang Lin <g...@suse.com>
+
+- Add the new BuildRequires for EFI builds for the better FDE
+  support: fde-tpm-helper-rpm-macros
+  + Also add the the macros to %post and %posttrans
+
+-------------------------------------------------------------------
+Mon Sep 11 13:17:20 UTC 2023 - Chester Lin <c...@suse.com>
+
+- Correct the type of allocated EFI pages for ARM64 kernel (bsc#1215151)
+  * arm64-Use-proper-memory-type-for-kernel-allocation.patch
+
+-------------------------------------------------------------------

New:
----
  arm64-Use-proper-memory-type-for-kernel-allocation.patch

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

Other differences:
------------------
++++++ grub2.spec ++++++
--- /var/tmp/diff_new_pack.gyFuTa/_old  2023-10-02 20:05:02.127716782 +0200
+++ /var/tmp/diff_new_pack.gyFuTa/_new  2023-10-02 20:05:02.131716926 +0200
@@ -161,6 +161,14 @@
 BuildRequires:  squashfs
 %endif
 
+# For ALP and Tumbleweed
+%if 0%{?suse_version} >= 1600
+# Only include the macros for the architectures with the newer UEFI and TCG 
protocol
+%ifarch x86_64 aarch64 riscv64
+BuildRequires:  fde-tpm-helper-rpm-macros
+%endif
+%endif
+
 Version:        2.12~rc1
 Release:        0
 Summary:        Bootloader with support for Linux, Multiboot and more
@@ -374,6 +382,7 @@
 Patch187:       0003-cryptodisk-wipe-out-the-cached-keys-from-protectors.patch
 Patch188:       0004-diskfilter-look-up-cryptodisk-devices-first.patch
 Patch189:       grub2-mkconfig-riscv64.patch
+Patch190:       arm64-Use-proper-memory-type-for-kernel-allocation.patch
 
 Requires:       gettext-runtime
 %if 0%{?suse_version} >= 1140
@@ -497,6 +506,7 @@
 Requires:       perl-Bootloader >= 0.706
 Requires(post): perl-Bootloader >= 0.706
 %endif
+%{?fde_tpm_update_requires}
 Provides:       %{name}-efi = %{version}-%{release}
 Obsoletes:      %{name}-efi < %{version}-%{release}
 
@@ -1147,6 +1157,10 @@
 %ifarch %{efi}
 
 %post %{grubefiarch}
+%if 0%{?fde_tpm_update_post:1}
+%fde_tpm_update_post grub2-efi
+%endif
+
 %if 0%{?update_bootloader_check_type_reinit_post:1}
 %update_bootloader_check_type_reinit_post grub2-efi
 %else
@@ -1182,6 +1196,7 @@
 
 %posttrans %{grubefiarch}
 %{?update_bootloader_posttrans}
+%{?fde_tpm_update_posttrans}
 
 %endif
 

++++++ 0001-ieee1275-ofdisk-retry-on-open-and-read-failure.patch ++++++
--- /var/tmp/diff_new_pack.gyFuTa/_old  2023-10-02 20:05:02.255721385 +0200
+++ /var/tmp/diff_new_pack.gyFuTa/_new  2023-10-02 20:05:02.255721385 +0200
@@ -1,6 +1,6 @@
-From b99c45820f228ff5b881700eda95a017abf2e198 Mon Sep 17 00:00:00 2001
-From: Mukesh Kumar Chaurasiya <mchau...@linux.vnet.ibm.com>
-Date: Wed, 1 Mar 2023 15:08:05 +0530
+From f4728ed5307b6be6377b7bdafcab55fd3676a761 Mon Sep 17 00:00:00 2001
+From: Mukesh Kumar Chaurasiya <mchau...@linux.ibm.com>
+Date: Mon, 17 Jul 2023 16:02:34 +0530
 Subject: [PATCH] ieee1275/ofdisk: retry on open and read failure
 
 Sometimes, when booting from a very busy SAN, the access to the
@@ -8,15 +8,48 @@
 This scenario is more frequent when deploying many machines at
 the same time using the same SAN.
 This patch aims to force the ofdisk module to retry the open or
-read function after it fails. We use MAX_RETRIES to specify the
-amount of times it will try to access the disk before it
-definitely fails.
+read function for network disks excluding after it fails. We use
+DEFAULT_RETRY_TIMEOUT, which is 15 seconds to specify the time it'll
+retry to access the disk before it definitely fails. The timeout can be
+changed by setting the environment variable ofdisk_retry_timeout.
+If the environment variable fails to read, grub will consider the
+default value of 15 seconds.
 
-Signed-off-by: Mukesh Kumar Chaurasiya <mchau...@linux.vnet.ibm.com>
+Signed-off-by: Diego Domingos <dieg...@linux.vnet.ibm.com>
+Signed-off-by: Mukesh Kumar Chaurasiya <mchau...@linux.ibm.com>
 ---
- grub-core/disk/ieee1275/ofdisk.c | 65 +++++++++++++++++++++++++++++++-
- 1 file changed, 63 insertions(+), 2 deletions(-)
+ docs/grub.texi                   |  8 ++++
+ grub-core/disk/ieee1275/ofdisk.c | 80 +++++++++++++++++++++++++++++++-
+ 2 files changed, 86 insertions(+), 2 deletions(-)
 
+diff --git a/docs/grub.texi b/docs/grub.texi
+index d3f0f6577..c8ebc083d 100644
+--- a/docs/grub.texi
++++ b/docs/grub.texi
+@@ -3315,6 +3315,7 @@ These variables have special meaning to GRUB.
+ * net_default_ip::
+ * net_default_mac::
+ * net_default_server::
++* ofdisk_retry_timeout::
+ * pager::
+ * prefix::
+ * pxe_blksize::
+@@ -3744,6 +3745,13 @@ The default is the value of @samp{color_normal} 
(@pxref{color_normal}).
+ @xref{Network}.
+ 
+ 
++@node ofdisk_retry_timeout
++@subsection ofdisk_retry_timeout
++
++The time in seconds till which the grub will retry to open or read a disk in
++case of failure to do so. This value defaults to 15 seconds.
++
++
+ @node pager
+ @subsection pager
+ 
+diff --git a/grub-core/disk/ieee1275/ofdisk.c 
b/grub-core/disk/ieee1275/ofdisk.c
+index 7197d5401..f96bbb58c 100644
 --- a/grub-core/disk/ieee1275/ofdisk.c
 +++ b/grub-core/disk/ieee1275/ofdisk.c
 @@ -24,6 +24,9 @@
@@ -25,11 +58,11 @@
  #include <grub/time.h>
 +#include <grub/env.h>
 +
-+#define RETRY_DEFAULT_TIMEOUT 15000
++#define RETRY_DEFAULT_TIMEOUT 15
  
  static char *last_devpath;
  static grub_ieee1275_ihandle_t last_ihandle;
-@@ -783,7 +786,7 @@
+@@ -783,7 +786,7 @@ compute_dev_path (const char *name)
  }
  
  static grub_err_t
@@ -38,49 +71,64 @@
  {
    grub_ieee1275_phandle_t dev;
    char *devpath;
-@@ -879,6 +882,41 @@
+@@ -879,6 +882,56 @@ grub_ofdisk_open (const char *name, grub_disk_t disk)
    return 0;
  }
  
 +static grub_uint64_t
-+grub_ofdisk_disk_timeout(void)
++grub_ofdisk_disk_timeout (grub_disk_t disk)
 +{
-+   if(grub_env_get("ofdisk_retry_timeout") != NULL)
-+     {
-+      grub_uint64_t retry = 
grub_strtoul(grub_env_get("ofdisk_retry_timeout"), 0, 10);
-+      if(retry)
-+        return retry;
-+     }
++  grub_uint64_t retry;
++  const char *timeout = grub_env_get ("ofdisk_retry_timeout");
 +
-+   return RETRY_DEFAULT_TIMEOUT;
++  if (!(grub_strstr (disk->name, "fibre-channel@") ||
++      grub_strstr (disk->name, "vfc-client")) ||
++      grub_strstr(disk->name, "nvme-of"))
++    {
++      /* Do not retry in case of non network drives */
++      return 0;
++    }
++
++  if (timeout != NULL)
++    {
++       retry = grub_strtoul (timeout, 0, 10);
++       if (grub_errno != GRUB_ERR_NONE)
++         {
++           grub_errno = GRUB_ERR_NONE;
++           return RETRY_DEFAULT_TIMEOUT;
++         }
++       if (retry)
++         return retry;
++    }
++  return RETRY_DEFAULT_TIMEOUT;
 +}
 +
 +static grub_err_t
 +grub_ofdisk_open (const char *name, grub_disk_t disk)
 +{
 +  grub_err_t err;
-+  grub_uint64_t timeout = grub_get_time_ms () + grub_ofdisk_disk_timeout();
-+
-+ retry:
-+  err = grub_ofdisk_open_real (name, disk);
-+
-+  if (err == GRUB_ERR_UNKNOWN_DEVICE)
++  grub_uint64_t timeout = grub_get_time_ms () + (grub_ofdisk_disk_timeout 
(disk) * 1000);
++  _Bool cont;
++  do
 +    {
-+      if (grub_get_time_ms () < timeout)
++      err = grub_ofdisk_open_real (name, disk);
++      cont = grub_get_time_ms () < timeout;
++      if (err == GRUB_ERR_UNKNOWN_DEVICE && cont)
 +        {
 +          grub_dprintf ("ofdisk","Failed to open disk %s. Retrying...\n", 
name);
 +          grub_errno = GRUB_ERR_NONE;
-+          goto retry;
-+      }
-+    }
-+
++        }
++      else
++          break;
++      grub_millisleep (1000);
++    } while (cont);
 +  return err;
 +}
 +
  static void
  grub_ofdisk_close (grub_disk_t disk)
  {
-@@ -915,7 +953,7 @@
+@@ -915,7 +968,7 @@ grub_ofdisk_prepare (grub_disk_t disk, grub_disk_addr_t 
sector)
  }
  
  static grub_err_t
@@ -89,34 +137,37 @@
                  grub_size_t size, char *buf)
  {
    grub_err_t err;
-@@ -935,6 +973,29 @@
+@@ -934,6 +987,29 @@ grub_ofdisk_read (grub_disk_t disk, grub_disk_addr_t 
sector,
+   return 0;
  }
  
- static grub_err_t
++static grub_err_t
 +grub_ofdisk_read (grub_disk_t disk, grub_disk_addr_t sector,
 +                grub_size_t size, char *buf)
 +{
 +  grub_err_t err;
-+  grub_uint64_t timeout = grub_get_time_ms () + grub_ofdisk_disk_timeout();
-+
-+ retry:
-+  err = grub_ofdisk_read_real (disk, sector, size, buf);
-+
-+  if (err == GRUB_ERR_READ_ERROR)
++  grub_uint64_t timeout = grub_get_time_ms () + (grub_ofdisk_disk_timeout 
(disk) * 1000);
++  _Bool cont;
++  do
 +    {
-+      if (grub_get_time_ms () < timeout)
++      err = grub_ofdisk_read_real (disk, sector, size, buf);
++      cont = grub_get_time_ms () < timeout;
++      if (err == GRUB_ERR_UNKNOWN_DEVICE && cont)
 +        {
 +          grub_dprintf ("ofdisk","Failed to read disk %s. Retrying...\n", 
(char*)disk->data);
 +          grub_errno = GRUB_ERR_NONE;
-+          goto retry;
-+      }
-+    }
-+
++        }
++      else
++          break;
++      grub_millisleep (1000);
++     } while (cont);
 +  return err;
 +}
 +
-+static grub_err_t
+ static grub_err_t
  grub_ofdisk_write (grub_disk_t disk, grub_disk_addr_t sector,
                   grub_size_t size, const char *buf)
- {
+-- 
+2.41.0
+
 


++++++ arm64-Use-proper-memory-type-for-kernel-allocation.patch ++++++
>From 4f9d3f4f8d7866c69e52ba7d81562daea38b22e6 Mon Sep 17 00:00:00 2001
From: Maximilian Luz <luzmaximil...@gmail.com>
Date: Tue, 28 Jun 2022 23:06:46 +0200
Subject: [PATCH] arm64: Use proper memory type for kernel allocation
References: bsc#1215151
Patch-Mainline: no, it's a downstream fix based on Fedora/openSUSE grub2

Currently, the kernel pages are allocated with type EFI_LOADER_DATA.
While the vast majority of systems will happily execute code from those
pages (i.e. don't care about memory protection), the Microsoft Surface
Pro X stalls, as this memory is not designated as "executable".

Therefore, allocate the kernel pages as EFI_LOADER_CODE to request
memory that is actually executable.

Link: 
https://github.com/rhboot/grub2/commit/4f9d3f4f8d7866c69e52ba7d81562daea38b22e6
Signed-off-by: Maximilian Luz <luzmaximil...@gmail.com>
Signed-off-by: Chester Lin <c...@suse.com>
---
 grub-core/loader/arm64/linux.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/grub-core/loader/arm64/efi/linux.c 
b/grub-core/loader/arm64/efi/linux.c
index 419f2201d..a3a193c25 100644
--- a/grub-core/loader/arm64/efi/linux.c
+++ b/grub-core/loader/arm64/efi/linux.c
@@ -26,7 +26,9 @@
 #include <grub/mm.h>
 #include <grub/types.h>
 #include <grub/cpu/linux.h>
+#include <grub/efi/api.h>
 #include <grub/efi/efi.h>
+#include <grub/cpu/efi/memory.h>
 #include <grub/efi/fdtload.h>
 #include <grub/efi/memory.h>
 #include <grub/efi/pe32.h>
@@ -403,7 +405,10 @@ grub_cmd_linux (grub_command_t cmd __attribute__ 
((unused)),
   grub_loader_unset();
 
   kernel_alloc_pages = GRUB_EFI_BYTES_TO_PAGES (kernel_size + align - 1);
-  kernel_alloc_addr = grub_efi_allocate_any_pages (kernel_alloc_pages);
+  kernel_alloc_addr = grub_efi_allocate_pages_real 
(GRUB_EFI_MAX_USABLE_ADDRESS,
+                                                   kernel_alloc_pages,
+                                                   
GRUB_EFI_ALLOCATE_MAX_ADDRESS,
+                                                   GRUB_EFI_LOADER_CODE);
   grub_dprintf ("linux", "kernel numpages: %d\n", kernel_alloc_pages);
   if (!kernel_alloc_addr)
     {
-- 
2.40.0

Reply via email to