Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package mdadm for openSUSE:Factory checked in at 2022-08-14 15:55:17 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/mdadm (Old) and /work/SRC/openSUSE:Factory/.mdadm.new.1521 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "mdadm" Sun Aug 14 15:55:17 2022 rev:134 rq:994643 version:4.1 Changes: -------- --- /work/SRC/openSUSE:Factory/mdadm/mdadm.changes 2022-06-01 17:33:49.770681780 +0200 +++ /work/SRC/openSUSE:Factory/.mdadm.new.1521/mdadm.changes 2022-08-14 15:55:24.799739708 +0200 @@ -1,0 +2,8 @@ +Thu Aug 11 11:41:37 UTC 2022 - Coly Li <col...@suse.com> + +- imsm: support for third Sata controller (bsc#1201297) + 0121-imsm-support-for-third-Sata-controller.patch +- mdadm: enable Intel Alderlake RSTe configuration (bsc#1201297) + 1005-mdadm-enable-Intel-Alderlake-RSTe-configuration.patch + +------------------------------------------------------------------- New: ---- 0121-imsm-support-for-third-Sata-controller.patch 1005-mdadm-enable-Intel-Alderlake-RSTe-configuration.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ mdadm.spec ++++++ --- /var/tmp/diff_new_pack.JoEHzw/_old 2022-08-14 15:55:26.479743277 +0200 +++ /var/tmp/diff_new_pack.JoEHzw/_new 2022-08-14 15:55:26.483743285 +0200 @@ -159,10 +159,12 @@ Patch118: 0118-Remove-Spare-drives-line-from-details-for-external-m.patch Patch119: 0119-Don-t-associate-spares-with-other-arrays-during-RAID.patch Patch120: 0120-udev-md-raid-assembly.rules-skip-if-DM_UDEV_DISABLE_.patch +Patch121: 0121-imsm-support-for-third-Sata-controller.patch Patch1001: 1001-display-timeout-status.patch Patch1002: 1002-OnCalendar-format-fix-of-mdcheck_start-timer.patch Patch1003: 1003-mdadm-treat-the-Dell-softraid-array-as-local-array.patch Patch1004: 1004-mdadm-super1-restore-commit-45a87c2f31335-to-fix-clu.patch +Patch1005: 1005-mdadm-enable-Intel-Alderlake-RSTe-configuration.patch %define _udevdir %(pkg-config --variable=udevdir udev) %define _systemdshutdowndir %{_unitdir}/../system-shutdown @@ -287,10 +289,12 @@ %patch118 -p1 %patch119 -p1 %patch120 -p1 +%patch121 -p1 %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 %patch1004 -p1 +%patch1005 -p1 %build make %{?_smp_mflags} CC="%__cc" CXFLAGS="%{optflags} -Wno-error" SUSE=yes BINDIR=%{_sbindir} ++++++ 0121-imsm-support-for-third-Sata-controller.patch ++++++ >From f94df5cf83917df50a3436dd067c751504bfc665 Mon Sep 17 00:00:00 2001 From: Mariusz Tkaczyk <mariusz.tkac...@linux.intel.com> Date: Wed, 17 Mar 2021 13:01:54 +0100 Subject: [PATCH] imsm: support for third Sata controller Git-commit: f94df5cf83917df50a3436dd067c751504bfc665 Patch-mainline: mdadm-4.2-rc1~4 References: bsc#1201297 Add new UEFI TSata variable. Remove CSata variable. This variable has been never exposed by UEFI. Remove vulnerability to match different hbas with SATA variable. Signed-off-by: Mariusz Tkaczyk <mariusz.tkac...@linux.intel.com> Signed-off-by: Jes Sorensen <jsoren...@fb.com> Acked-by: Coly Li <col...@suse.de> --- platform-intel.c | 58 ++++++++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 27 deletions(-) diff --git a/platform-intel.c b/platform-intel.c index 0e1ec3d..2da152f 100644 --- a/platform-intel.c +++ b/platform-intel.c @@ -488,7 +488,7 @@ static const struct imsm_orom *find_imsm_hba_orom(struct sys_dev *hba) #define SCU_PROP "RstScuV" #define AHCI_PROP "RstSataV" #define AHCI_SSATA_PROP "RstsSatV" -#define AHCI_CSATA_PROP "RstCSatV" +#define AHCI_TSATA_PROP "RsttSatV" #define VMD_PROP "RstUefiV" #define VENDOR_GUID \ @@ -496,7 +496,8 @@ static const struct imsm_orom *find_imsm_hba_orom(struct sys_dev *hba) #define PCI_CLASS_RAID_CNTRL 0x010400 -static int read_efi_var(void *buffer, ssize_t buf_size, char *variable_name, struct efi_guid guid) +static int read_efi_var(void *buffer, ssize_t buf_size, + const char *variable_name, struct efi_guid guid) { char path[PATH_MAX]; char buf[GUID_STR_MAX]; @@ -525,7 +526,8 @@ static int read_efi_var(void *buffer, ssize_t buf_size, char *variable_name, str return 0; } -static int read_efi_variable(void *buffer, ssize_t buf_size, char *variable_name, struct efi_guid guid) +static int read_efi_variable(void *buffer, ssize_t buf_size, + const char *variable_name, struct efi_guid guid) { char path[PATH_MAX]; char buf[GUID_STR_MAX]; @@ -578,7 +580,9 @@ const struct imsm_orom *find_imsm_efi(struct sys_dev *hba) { struct imsm_orom orom; struct orom_entry *ret; - int err; + static const char * const sata_efivars[] = {AHCI_PROP, AHCI_SSATA_PROP, + AHCI_TSATA_PROP}; + unsigned long i; if (check_env("IMSM_TEST_AHCI_EFI") || check_env("IMSM_TEST_SCU_EFI")) return imsm_platform_test(hba); @@ -587,35 +591,35 @@ const struct imsm_orom *find_imsm_efi(struct sys_dev *hba) if (check_env("IMSM_TEST_OROM")) return NULL; - if (hba->type == SYS_DEV_SATA && hba->class != PCI_CLASS_RAID_CNTRL) - return NULL; - - err = read_efi_variable(&orom, sizeof(orom), hba->type == SYS_DEV_SAS ? SCU_PROP : AHCI_PROP, VENDOR_GUID); + switch (hba->type) { + case SYS_DEV_SAS: + if (!read_efi_variable(&orom, sizeof(orom), SCU_PROP, + VENDOR_GUID)) + break; - /* try to read variable for second AHCI controller */ - if (err && hba->type == SYS_DEV_SATA) - err = read_efi_variable(&orom, sizeof(orom), AHCI_SSATA_PROP, VENDOR_GUID); + return NULL; + case SYS_DEV_SATA: + if (hba->class != PCI_CLASS_RAID_CNTRL) + return NULL; - /* try to read variable for combined AHCI controllers */ - if (err && hba->type == SYS_DEV_SATA) { - static struct orom_entry *csata; + for (i = 0; i < ARRAY_SIZE(sata_efivars); i++) { + if (!read_efi_variable(&orom, sizeof(orom), + sata_efivars[i], VENDOR_GUID)) + break; - err = read_efi_variable(&orom, sizeof(orom), AHCI_CSATA_PROP, VENDOR_GUID); - if (!err) { - if (!csata) - csata = add_orom(&orom); - add_orom_device_id(csata, hba->dev_id); - csata->type = hba->type; - return &csata->orom; } - } + if (i == ARRAY_SIZE(sata_efivars)) + return NULL; - if (hba->type == SYS_DEV_VMD) { - err = read_efi_variable(&orom, sizeof(orom), VMD_PROP, VENDOR_GUID); - } - - if (err) + break; + case SYS_DEV_VMD: + if (!read_efi_variable(&orom, sizeof(orom), VMD_PROP, + VENDOR_GUID)) + break; return NULL; + default: + return NULL; + } ret = add_orom(&orom); add_orom_device_id(ret, hba->dev_id); -- 2.35.3 ++++++ 1005-mdadm-enable-Intel-Alderlake-RSTe-configuration.patch ++++++ >From 449c8b62164880ab132ad6eec86a8d53f793af69 Mon Sep 17 00:00:00 2001 From: Hannes Reinecke <h...@suse.de> Date: Tue, 19 Jul 2022 13:18:23 +0800 Subject: [PATCH 19/23] mdadm: enable Intel Alderlake RSTe configuration Patch-mainline: N/A, SUSE only patch References: bsc#1201297 Alderlake has a slightly different RST configuration; the UEFI variable is name 'RstVmdV', and the AHCI controller shows up as a child device of the VMD bridge, but continues to use the 'AHCI HBA' PCI class (and not the RAID class as RSTe would normally do). Signed-off-by: Hannes Reinecke <h...@suse.de> Acked-by: Coly Li <col...@suse.de> --- platform-intel.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/platform-intel.c b/platform-intel.c index 5a8729e7..a4d55a38 100644 --- a/platform-intel.c +++ b/platform-intel.c @@ -512,12 +512,14 @@ static const struct imsm_orom *find_imsm_hba_orom(struct sys_dev *hba) #define AHCI_PROP "RstSataV" #define AHCI_SSATA_PROP "RstsSatV" #define AHCI_TSATA_PROP "RsttSatV" +#define AHCI_RST_PROP "RstVmdV" #define VMD_PROP "RstUefiV" #define VENDOR_GUID \ EFI_GUID(0x193dfefa, 0xa445, 0x4302, 0x99, 0xd8, 0xef, 0x3a, 0xad, 0x1a, 0x04, 0xc6) #define PCI_CLASS_RAID_CNTRL 0x010400 +#define PCI_CLASS_SATA_HBA 0x010601 static int read_efi_var(void *buffer, ssize_t buf_size, const char *variable_name, struct efi_guid guid) @@ -604,7 +606,8 @@ const struct imsm_orom *find_imsm_efi(struct sys_dev *hba) struct imsm_orom orom; struct orom_entry *ret; static const char * const sata_efivars[] = {AHCI_PROP, AHCI_SSATA_PROP, - AHCI_TSATA_PROP}; + AHCI_TSATA_PROP, + AHCI_RST_PROP}; unsigned long i; if (check_env("IMSM_TEST_AHCI_EFI") || check_env("IMSM_TEST_SCU_EFI")) @@ -622,7 +625,8 @@ const struct imsm_orom *find_imsm_efi(struct sys_dev *hba) return NULL; case SYS_DEV_SATA: - if (hba->class != PCI_CLASS_RAID_CNTRL) + if (hba->class != PCI_CLASS_RAID_CNTRL && + hba->class != PCI_CLASS_SATA_HBA) return NULL; for (i = 0; i < ARRAY_SIZE(sata_efivars); i++) { -- 2.35.3