summaryrefslogtreecommitdiffstats
path: root/super-intel.c
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-12-12 17:22:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-12-12 17:22:10 +0000
commit55526d6577f82349bf6bb59816680d7483b61dff (patch)
tree456f8e2360e6bbd83e4f9a571f97cda281e4d9d9 /super-intel.c
parentReleasing debian version 4.3+20241108-1. (diff)
downloadmdadm-55526d6577f82349bf6bb59816680d7483b61dff.tar.xz
mdadm-55526d6577f82349bf6bb59816680d7483b61dff.zip
Merging upstream version 4.3+20241202.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'super-intel.c')
-rw-r--r--super-intel.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/super-intel.c b/super-intel.c
index 55c71e2..7e3c5f2 100644
--- a/super-intel.c
+++ b/super-intel.c
@@ -5092,7 +5092,6 @@ imsm_thunderdome(struct intel_super **super_list, int len)
for (i = 0; i < tbl_size; i++) {
struct imsm_disk *d;
struct intel_disk *idisk;
- struct imsm_super *mpb = super_table[i]->anchor;
s = super_table[i];
d = &s->disks->disk;
@@ -5108,7 +5107,7 @@ imsm_thunderdome(struct intel_super **super_list, int len)
if (!s)
dprintf("marking family: %#x from %d:%d offline\n",
- mpb->family_num,
+ super_table[i]->anchor->family_num,
super_table[i]->disks->major,
super_table[i]->disks->minor);
super_table[i] = s;
@@ -6122,7 +6121,8 @@ static int add_to_super_imsm(struct supertype *st, mdu_disk_info_t *dk,
pr_err("%s controller supports Multi-Path I/O, Intel (R) VROC does not support multipathing\n",
basename(cntrl_path));
- if (super->orom && !imsm_orom_has_tpv_support(super->orom)) {
+ if (super->orom && devpath_to_vendor(pci_dev_path) != 0x8086 &&
+ !imsm_orom_has_tpv_support(super->orom)) {
pr_err("\tPlatform configuration does not support non-Intel NVMe drives.\n"
"\tPlease refer to Intel(R) RSTe/VROC user guide.\n");
goto error;
@@ -7056,7 +7056,8 @@ active_arrays_by_format(char *name, char* hba, struct md_list **devlist,
int fd = -1;
while (dev && !is_fd_valid(fd)) {
- char *path = xmalloc(strlen(dev->name) + strlen("/dev/") + 1);
+ char path[PATH_MAX];
+
num = snprintf(path, PATH_MAX, "%s%s", "/dev/", dev->name);
if (num > 0)
fd = open(path, O_RDONLY, 0);
@@ -7064,7 +7065,6 @@ active_arrays_by_format(char *name, char* hba, struct md_list **devlist,
pr_vrb("Cannot open %s: %s\n",
dev->name, strerror(errno));
}
- free(path);
dev = dev->next;
}
found = 0;