OSDN Git Service

net/smc: use an array to check fields in system EID
authorKarsten Graul <kgraul@linux.ibm.com>
Fri, 2 Oct 2020 15:09:27 +0000 (17:09 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 4 Oct 2020 00:04:48 +0000 (17:04 -0700)
The check for old hardware versions that did not have SMCDv2 support was
using suspicious pointer magic. Address the fields using an array.

Signed-off-by: Karsten Graul <kgraul@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/smc/smc_ism.c

index e9a6487..6abbdd0 100644 (file)
@@ -335,7 +335,7 @@ int smcd_register_dev(struct smcd_dev *smcd)
                u8 *system_eid = NULL;
 
                smc_ism_get_system_eid(smcd, &system_eid);
-               if ((*system_eid) + 24 != '0' || (*system_eid) + 28 != '0')
+               if (system_eid[24] != '0' || system_eid[28] != '0')
                        smc_ism_v2_capable = true;
        }
        /* sort list: devices without pnetid before devices with pnetid */