Using the raid-create iprconfig command line option would sometimes result in commands getting sent to the secondary adapter rather than the primary adapter. This fixes that up.
Signed-off-by: Brian King <brk...@linux.vnet.ibm.com> --- iprlib.c | 9 ++++++++- iprlib.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff -puN iprlib.h~iprutils_sysfs_with_ioa iprlib.h --- iprutils.patched/iprlib.h~iprutils_sysfs_with_ioa 2016-09-12 08:19:09.364861412 -0500 +++ iprutils.patched-bjking1/iprlib.h 2016-09-12 08:19:09.375861366 -0500 @@ -298,6 +298,7 @@ extern enum system_p_mode power_cur_mode struct sysfs_dev { u64 device_id; + char ioa_pci_addr[16]; struct sysfs_dev *next, *prev; }; diff -puN iprlib.c~iprutils_sysfs_with_ioa iprlib.c --- iprutils.patched/iprlib.c~iprutils_sysfs_with_ioa 2016-09-12 08:19:09.369861391 -0500 +++ iprutils.patched-bjking1/iprlib.c 2016-09-16 16:08:50.673227115 -0500 @@ -569,8 +569,11 @@ struct sysfs_dev * ipr_find_sysfs_dev(st return NULL; for (sdev = head; sdev; sdev = sdev->next) { - if (sdev->device_id == dev->scsi_dev_data->device_id) + if (sdev->device_id != dev->scsi_dev_data->device_id) + continue; + if (!memcmp(sdev->ioa_pci_addr, dev->ioa->pci_address, sizeof(sdev->ioa_pci_addr))) break; + } return sdev; @@ -589,6 +592,9 @@ struct ipr_dev *ipr_sysfs_dev_to_dev(str struct ipr_ioa *ioa; for_each_ioa(ioa) { + if (memcmp(sdev->ioa_pci_addr, ioa->pci_address, sizeof(sdev->ioa_pci_addr))) + continue; + for_each_dev(ioa, dev) { if (!dev->scsi_dev_data) continue; @@ -646,6 +652,7 @@ void ipr_add_sysfs_dev(struct ipr_dev *d if (!sdev) { sdev = calloc(1, sizeof(struct sysfs_dev)); sdev->device_id = dev->scsi_dev_data->device_id; + memcpy(sdev->ioa_pci_addr, dev->ioa->pci_address, sizeof(sdev->ioa_pci_addr)); if (!(*head)) { *tail = *head = sdev; _ ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Iprdd-devel mailing list Iprdd-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/iprdd-devel