]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
net: hns: avoid uninitialized variable warning:
authorArnd Bergmann <arnd@arndb.de>
Fri, 1 Jan 2016 22:27:57 +0000 (23:27 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 6 Jan 2016 05:00:11 +0000 (00:00 -0500)
gcc fails to see that the use of the 'last_offset' variable
in hns_nic_reuse_page() is used correctly and issues a bogus
warning:

drivers/net/ethernet/hisilicon/hns/hns_enet.c: In function 'hns_nic_reuse_page':
drivers/net/ethernet/hisilicon/hns/hns_enet.c:541:6: warning: 'last_offset' may be used uninitialized in this function [-Wmaybe-uninitialized]

This simplifies the function to make it more obvious what is
going on to both readers and compilers, which makes the warning
go away.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/hisilicon/hns/hns_enet.c

index 5a81dafd725e29b076d89eb151ce8953fdc908a8..0e30846a24f89b632028211f60ee82018432a7e0 100644 (file)
@@ -499,50 +499,47 @@ static void hns_nic_reuse_page(struct sk_buff *skb, int i,
        struct hnae_desc *desc;
        int truesize, size;
        int last_offset;
+       bool twobufs;
+
+       twobufs = ((PAGE_SIZE < 8192) && hnae_buf_size(ring) == HNS_BUFFER_SIZE_2048);
 
        desc = &ring->desc[ring->next_to_clean];
        size = le16_to_cpu(desc->rx.size);
 
-#if (PAGE_SIZE < 8192)
-       if (hnae_buf_size(ring) == HNS_BUFFER_SIZE_2048) {
+       if (twobufs) {
                truesize = hnae_buf_size(ring);
        } else {
                truesize = ALIGN(size, L1_CACHE_BYTES);
                last_offset = hnae_page_size(ring) - hnae_buf_size(ring);
        }
 
-#else
-       truesize = ALIGN(size, L1_CACHE_BYTES);
-       last_offset = hnae_page_size(ring) - hnae_buf_size(ring);
-#endif
-
        skb_add_rx_frag(skb, i, desc_cb->priv, desc_cb->page_offset + pull_len,
                        size - pull_len, truesize - pull_len);
 
         /* avoid re-using remote pages,flag default unreuse */
-       if (likely(page_to_nid(desc_cb->priv) == numa_node_id())) {
-#if (PAGE_SIZE < 8192)
-               if (hnae_buf_size(ring) == HNS_BUFFER_SIZE_2048) {
-                       /* if we are only owner of page we can reuse it */
-                       if (likely(page_count(desc_cb->priv) == 1)) {
-                               /* flip page offset to other buffer */
-                               desc_cb->page_offset ^= truesize;
-
-                               desc_cb->reuse_flag = 1;
-                               /* bump ref count on page before it is given*/
-                               get_page(desc_cb->priv);
-                       }
-                       return;
-               }
-#endif
-               /* move offset up to the next cache line */
-               desc_cb->page_offset += truesize;
+       if (unlikely(page_to_nid(desc_cb->priv) != numa_node_id()))
+               return;
+
+       if (twobufs) {
+               /* if we are only owner of page we can reuse it */
+               if (likely(page_count(desc_cb->priv) == 1)) {
+                       /* flip page offset to other buffer */
+                       desc_cb->page_offset ^= truesize;
 
-               if (desc_cb->page_offset <= last_offset) {
                        desc_cb->reuse_flag = 1;
                        /* bump ref count on page before it is given*/
                        get_page(desc_cb->priv);
                }
+               return;
+       }
+
+       /* move offset up to the next cache line */
+       desc_cb->page_offset += truesize;
+
+       if (desc_cb->page_offset <= last_offset) {
+               desc_cb->reuse_flag = 1;
+               /* bump ref count on page before it is given*/
+               get_page(desc_cb->priv);
        }
 }