iwlwifi: pcie: avoid variable shadowing in TFD helpers
[cascardo/linux.git] / drivers / net / wireless / intel / iwlwifi / pcie / tx.c
index e00e7d8..e9a278b 100644 (file)
@@ -337,28 +337,32 @@ static inline void *iwl_pcie_get_tfd(struct iwl_trans_pcie *trans_pcie,
 }
 
 static inline dma_addr_t iwl_pcie_tfd_tb_get_addr(struct iwl_trans *trans,
-                                                 void *tfd, u8 idx)
+                                                 void *_tfd, u8 idx)
 {
-       struct iwl_tfd *tfd_fh;
-       struct iwl_tfd_tb *tb;
-       dma_addr_t addr;
 
        if (trans->cfg->use_tfh) {
-               struct iwl_tfh_tfd *tfd_fh = (void *)tfd;
-               struct iwl_tfh_tb *tb = &tfd_fh->tbs[idx];
+               struct iwl_tfh_tfd *tfd = _tfd;
+               struct iwl_tfh_tb *tb = &tfd->tbs[idx];
 
                return (dma_addr_t)(le64_to_cpu(tb->addr));
-       }
+       } else {
+               struct iwl_tfd *tfd = _tfd;
+               struct iwl_tfd_tb *tb = &tfd->tbs[idx];
+               dma_addr_t addr = get_unaligned_le32(&tb->lo);
+               dma_addr_t hi_len;
 
-       tfd_fh = (void *)tfd;
-       tb = &tfd_fh->tbs[idx];
-       addr = get_unaligned_le32(&tb->lo);
+               if (sizeof(dma_addr_t) <= sizeof(u32))
+                       return addr;
 
-       if (sizeof(dma_addr_t) > sizeof(u32))
-               addr |=
-               ((dma_addr_t)(le16_to_cpu(tb->hi_n_len) & 0xF) << 16) << 16;
+               hi_len = le16_to_cpu(tb->hi_n_len) & 0xF;
 
-       return addr;
+               /*
+                * shift by 16 twice to avoid warnings on 32-bit
+                * (where this code never runs anyway due to the
+                * if statement above)
+                */
+               return addr | ((hi_len << 16) << 16);
+       }
 }
 
 static inline void iwl_pcie_tfd_set_tb(struct iwl_trans *trans, void *tfd,
@@ -388,18 +392,17 @@ static inline void iwl_pcie_tfd_set_tb(struct iwl_trans *trans, void *tfd,
        }
 }
 
-static inline u8 iwl_pcie_tfd_get_num_tbs(struct iwl_trans *trans, void *tfd)
+static inline u8 iwl_pcie_tfd_get_num_tbs(struct iwl_trans *trans, void *_tfd)
 {
-       struct iwl_tfd *tfd_fh;
-
        if (trans->cfg->use_tfh) {
-               struct iwl_tfh_tfd *tfd_fh = (void *)tfd;
+               struct iwl_tfh_tfd *tfd = _tfd;
 
-               return le16_to_cpu(tfd_fh->num_tbs) & 0x1f;
-       }
+               return le16_to_cpu(tfd->num_tbs) & 0x1f;
+       } else {
+               struct iwl_tfd *tfd = _tfd;
 
-       tfd_fh = (void *)tfd;
-       return tfd_fh->num_tbs & 0x1f;
+               return tfd->num_tbs & 0x1f;
+       }
 }
 
 static void iwl_pcie_tfd_unmap(struct iwl_trans *trans,