]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
scsi: libsas: Stop hardcoding SAS address length
authorJohn Garry <john.garry@huawei.com>
Fri, 12 Apr 2019 08:57:52 +0000 (16:57 +0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Mon, 15 Apr 2019 22:55:00 +0000 (18:55 -0400)
Many times we use 8 for SAS address length, while we already have a macro
for this - SAS_ADDR_SIZE.

Replace instances of this with the macro. However, don't touch the SAS
address array sizes sas.h, as these are defined according to the SAS spec.

Some missing whitespaces are also added, and whitespace indentation
in sas_hash_addr() is also fixed (see sas_hash_addr()).

Signed-off-by: John Garry <john.garry@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/libsas/sas_expander.c
drivers/scsi/libsas/sas_init.c
include/scsi/libsas.h

index 17b45a0c7bc388997e6b38f152f1ee968746c73b..93f297199d4c09d052d4db58cee6f3c4b1f0d294 100644 (file)
@@ -1151,7 +1151,7 @@ static int sas_find_sub_addr(struct domain_device *dev, u8 *sub_addr)
                     phy->attached_dev_type == SAS_FANOUT_EXPANDER_DEVICE) &&
                    phy->routing_attr == SUBTRACTIVE_ROUTING) {
 
-                       memcpy(sub_addr, phy->attached_sas_addr,SAS_ADDR_SIZE);
+                       memcpy(sub_addr, phy->attached_sas_addr, SAS_ADDR_SIZE);
 
                        return 1;
                }
@@ -1163,7 +1163,7 @@ static int sas_check_level_subtractive_boundary(struct domain_device *dev)
 {
        struct expander_device *ex = &dev->ex_dev;
        struct domain_device *child;
-       u8 sub_addr[8] = {0, };
+       u8 sub_addr[SAS_ADDR_SIZE] = {0, };
 
        list_for_each_entry(child, &ex->children, siblings) {
                if (child->dev_type != SAS_EDGE_EXPANDER_DEVICE &&
@@ -1173,7 +1173,7 @@ static int sas_check_level_subtractive_boundary(struct domain_device *dev)
                        sas_find_sub_addr(child, sub_addr);
                        continue;
                } else {
-                       u8 s2[8];
+                       u8 s2[SAS_ADDR_SIZE];
 
                        if (sas_find_sub_addr(child, s2) &&
                            (SAS_ADDR(sub_addr) != SAS_ADDR(s2))) {
@@ -1760,10 +1760,11 @@ static int sas_get_phy_attached_dev(struct domain_device *dev, int phy_id,
 
        res = sas_get_phy_discover(dev, phy_id, disc_resp);
        if (res == 0) {
-               memcpy(sas_addr, disc_resp->disc.attached_sas_addr, 8);
+               memcpy(sas_addr, disc_resp->disc.attached_sas_addr,
+                      SAS_ADDR_SIZE);
                *type = to_dev_type(dr);
                if (*type == 0)
-                       memset(sas_addr, 0, 8);
+                       memset(sas_addr, 0, SAS_ADDR_SIZE);
        }
        kfree(disc_resp);
        return res;
@@ -2027,10 +2028,10 @@ static int sas_rediscover_dev(struct domain_device *dev, int phy_id, bool last)
        struct expander_device *ex = &dev->ex_dev;
        struct ex_phy *phy = &ex->ex_phy[phy_id];
        enum sas_device_type type = SAS_PHY_UNUSED;
-       u8 sas_addr[8];
+       u8 sas_addr[SAS_ADDR_SIZE];
        int res;
 
-       memset(sas_addr, 0, 8);
+       memset(sas_addr, 0, SAS_ADDR_SIZE);
        res = sas_get_phy_attached_dev(dev, phy_id, sas_addr, &type);
        switch (res) {
        case SMP_RESP_NO_PHY:
index 221340ee8651e1a49d26c80644a1a9090665c5e0..213c85557bf94c859c753b6ed11bc05be1ead31c 100644 (file)
@@ -87,25 +87,27 @@ EXPORT_SYMBOL_GPL(sas_free_task);
 /*------------ SAS addr hash -----------*/
 void sas_hash_addr(u8 *hashed, const u8 *sas_addr)
 {
-        const u32 poly = 0x00DB2777;
-        u32     r = 0;
-        int     i;
-
-        for (i = 0; i < 8; i++) {
-                int b;
-                for (b = 7; b >= 0; b--) {
-                        r <<= 1;
-                        if ((1 << b) & sas_addr[i]) {
-                                if (!(r & 0x01000000))
-                                        r ^= poly;
-                        } else if (r & 0x01000000)
-                                r ^= poly;
-                }
-        }
-
-        hashed[0] = (r >> 16) & 0xFF;
-        hashed[1] = (r >> 8) & 0xFF ;
-        hashed[2] = r & 0xFF;
+       const u32 poly = 0x00DB2777;
+       u32 r = 0;
+       int i;
+
+       for (i = 0; i < SAS_ADDR_SIZE; i++) {
+               int b;
+
+               for (b = (SAS_ADDR_SIZE - 1); b >= 0; b--) {
+                       r <<= 1;
+                       if ((1 << b) & sas_addr[i]) {
+                               if (!(r & 0x01000000))
+                                       r ^= poly;
+                       } else if (r & 0x01000000) {
+                               r ^= poly;
+                       }
+               }
+       }
+
+       hashed[0] = (r >> 16) & 0xFF;
+       hashed[1] = (r >> 8) & 0xFF;
+       hashed[2] = r & 0xFF;
 }
 
 int sas_register_ha(struct sas_ha_struct *sas_ha)
index 56b2dba7d9112f5e6b69b552d4493448e7d2615b..cfaaf1254211a11ffe25c0ac6860dea1df3e7f25 100644 (file)
@@ -245,9 +245,9 @@ static inline struct sas_discovery_event *to_sas_discovery_event(struct work_str
 struct sas_discovery {
        struct sas_discovery_event disc_work[DISC_NUM_EVENTS];
        unsigned long    pending;
-       u8     fanout_sas_addr[8];
-       u8     eeds_a[8];
-       u8     eeds_b[8];
+       u8     fanout_sas_addr[SAS_ADDR_SIZE];
+       u8     eeds_a[SAS_ADDR_SIZE];
+       u8     eeds_b[SAS_ADDR_SIZE];
        int    max_level;
 };