Older kernels on little endian systems had the device_id endian
swapped in sysfs. This has since been fixed up. 

Signed-off-by: Brian King <brk...@linux.vnet.ibm.com>
---

 iprlib.c |    9 +++++++++
 1 file changed, 9 insertions(+)

diff -puN iprlib.c~iprutils_device_id_endian_swap iprlib.c
--- iprutils.patched/iprlib.c~iprutils_device_id_endian_swap    2016-10-04 
13:36:34.373829252 -0500
+++ iprutils.patched-bjking1/iprlib.c   2016-10-04 13:36:34.381829202 -0500
@@ -7214,6 +7214,15 @@ static int ipr_get_saved_dev_attr(struct
                        dev->scsi_dev_data->device_id);
 
                rc = ipr_get_saved_attr(dev->ioa, category, field, value);
+
+               if (rc) {
+                       /* Older kernels reported a byte swapped device_id, 
which has since
+                        been changed. Check both for compatibility reasons */
+                       sprintf(category,"[%s %lx]", IPR_CATEGORY_DEVICE,
+                               htobe64(dev->scsi_dev_data->device_id));
+
+                       rc = ipr_get_saved_attr(dev->ioa, category, field, 
value);
+               }
        }
 
        if (rc) {
_


------------------------------------------------------------------------------
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

Reply via email to