CC: [email protected]
CC: [email protected]
TO: David Manouchehri <[email protected]>
CC: Mika Westerberg <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   fc4f28bb3daf3265d6bc5f73b497306985bb23ab
commit: eb4a6de4962ecacb5717a45057efc60bb2eca892 thunderbolt: Update Kconfig to 
allow building on other architectures.
date:   4 months ago
:::::: branch date: 15 hours ago
:::::: commit date: 4 months ago
compiler: sparc-linux-gcc (GCC) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


cppcheck warnings: (new ones prefixed by >>)

>> drivers/net/thunderbolt.c:1088:8: warning: Variable 'dest' is reassigned a 
>> value before the old one has been used. [redundantAssignment]
     dest = hdr + 1;
          ^
   drivers/net/thunderbolt.c:1063:9: note: Variable 'dest' is reassigned a 
value before the old one has been used.
      dest += len;
           ^
   drivers/net/thunderbolt.c:1088:8: note: Variable 'dest' is reassigned a 
value before the old one has been used.
     dest = hdr + 1;
          ^

# 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=eb4a6de4962ecacb5717a45057efc60bb2eca892
git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout eb4a6de4962ecacb5717a45057efc60bb2eca892
vim +/dest +1088 drivers/net/thunderbolt.c

e69b6c02b4c3b8d Amir Levy 2017-10-02  1010  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1011  static netdev_tx_t 
tbnet_start_xmit(struct sk_buff *skb,
e69b6c02b4c3b8d Amir Levy 2017-10-02  1012                                  
struct net_device *dev)
e69b6c02b4c3b8d Amir Levy 2017-10-02  1013  {
e69b6c02b4c3b8d Amir Levy 2017-10-02  1014      struct tbnet *net = 
netdev_priv(dev);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1015      struct tbnet_frame 
*frames[MAX_SKB_FRAGS];
e69b6c02b4c3b8d Amir Levy 2017-10-02  1016      u16 frame_id = 
atomic_read(&net->frame_id);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1017      struct 
thunderbolt_ip_frame_header *hdr;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1018      unsigned int len = 
skb_headlen(skb);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1019      unsigned int data_len = 
skb->len;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1020      unsigned int nframes, i;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1021      unsigned int frag = 0;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1022      void *src = skb->data;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1023      u32 frame_index = 0;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1024      bool unmap = false;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1025      void *dest;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1026  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1027      nframes = 
DIV_ROUND_UP(data_len, TBNET_MAX_PAYLOAD_SIZE);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1028      if 
(tbnet_available_buffers(&net->tx_ring) < nframes) {
e69b6c02b4c3b8d Amir Levy 2017-10-02  1029              
netif_stop_queue(net->dev);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1030              return NETDEV_TX_BUSY;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1031      }
e69b6c02b4c3b8d Amir Levy 2017-10-02  1032  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1033      frames[frame_index] = 
tbnet_get_tx_buffer(net);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1034      if (!frames[frame_index])
e69b6c02b4c3b8d Amir Levy 2017-10-02  1035              goto err_drop;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1036  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1037      hdr = 
page_address(frames[frame_index]->page);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1038      dest = hdr + 1;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1039  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1040      /* If overall packet is bigger 
than the frame data size */
e69b6c02b4c3b8d Amir Levy 2017-10-02  1041      while (data_len > 
TBNET_MAX_PAYLOAD_SIZE) {
e69b6c02b4c3b8d Amir Levy 2017-10-02  1042              unsigned int size_left 
= TBNET_MAX_PAYLOAD_SIZE;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1043  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1044              hdr->frame_size = 
cpu_to_le32(TBNET_MAX_PAYLOAD_SIZE);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1045              hdr->frame_index = 
cpu_to_le16(frame_index);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1046              hdr->frame_id = 
cpu_to_le16(frame_id);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1047  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1048              do {
e69b6c02b4c3b8d Amir Levy 2017-10-02  1049                      if (len > 
size_left) {
e69b6c02b4c3b8d Amir Levy 2017-10-02  1050                              /* Copy 
data onto Tx buffer data with
e69b6c02b4c3b8d Amir Levy 2017-10-02  1051                               * full 
frame size then break and go to
e69b6c02b4c3b8d Amir Levy 2017-10-02  1052                               * next 
frame
e69b6c02b4c3b8d Amir Levy 2017-10-02  1053                               */
e69b6c02b4c3b8d Amir Levy 2017-10-02  1054                              
memcpy(dest, src, size_left);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1055                              len -= 
size_left;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1056                              dest += 
size_left;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1057                              src += 
size_left;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1058                              break;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1059                      }
e69b6c02b4c3b8d Amir Levy 2017-10-02  1060  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1061                      memcpy(dest, 
src, len);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1062                      size_left -= 
len;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1063                      dest += len;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1064  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1065                      if (unmap) {
e69b6c02b4c3b8d Amir Levy 2017-10-02  1066                              
kunmap_atomic(src);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1067                              unmap = 
false;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1068                      }
e69b6c02b4c3b8d Amir Levy 2017-10-02  1069  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1070                      /* Ensure all 
fragments have been processed */
e69b6c02b4c3b8d Amir Levy 2017-10-02  1071                      if (frag < 
skb_shinfo(skb)->nr_frags) {
e69b6c02b4c3b8d Amir Levy 2017-10-02  1072                              /* Map 
and then unmap quickly */
e69b6c02b4c3b8d Amir Levy 2017-10-02  1073                              src = 
tbnet_kmap_frag(skb, frag++, &len);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1074                              unmap = 
true;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1075                      } else if 
(unlikely(size_left > 0)) {
e69b6c02b4c3b8d Amir Levy 2017-10-02  1076                              goto 
err_drop;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1077                      }
e69b6c02b4c3b8d Amir Levy 2017-10-02  1078              } while (size_left > 0);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1079  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1080              data_len -= 
TBNET_MAX_PAYLOAD_SIZE;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1081              frame_index++;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1082  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1083              frames[frame_index] = 
tbnet_get_tx_buffer(net);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1084              if 
(!frames[frame_index])
e69b6c02b4c3b8d Amir Levy 2017-10-02  1085                      goto err_drop;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1086  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1087              hdr = 
page_address(frames[frame_index]->page);
e69b6c02b4c3b8d Amir Levy 2017-10-02 @1088              dest = hdr + 1;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1089      }
e69b6c02b4c3b8d Amir Levy 2017-10-02  1090  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1091      hdr->frame_size = 
cpu_to_le32(data_len);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1092      hdr->frame_index = 
cpu_to_le16(frame_index);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1093      hdr->frame_id = 
cpu_to_le16(frame_id);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1094  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1095      frames[frame_index]->frame.size 
= data_len + sizeof(*hdr);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1096  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1097      /* In case the remaining 
data_len is smaller than a frame */
e69b6c02b4c3b8d Amir Levy 2017-10-02  1098      while (len < data_len) {
e69b6c02b4c3b8d Amir Levy 2017-10-02  1099              memcpy(dest, src, len);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1100              data_len -= len;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1101              dest += len;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1102  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1103              if (unmap) {
e69b6c02b4c3b8d Amir Levy 2017-10-02  1104                      
kunmap_atomic(src);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1105                      unmap = false;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1106              }
e69b6c02b4c3b8d Amir Levy 2017-10-02  1107  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1108              if (frag < 
skb_shinfo(skb)->nr_frags) {
e69b6c02b4c3b8d Amir Levy 2017-10-02  1109                      src = 
tbnet_kmap_frag(skb, frag++, &len);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1110                      unmap = true;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1111              } else if 
(unlikely(data_len > 0)) {
e69b6c02b4c3b8d Amir Levy 2017-10-02  1112                      goto err_drop;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1113              }
e69b6c02b4c3b8d Amir Levy 2017-10-02  1114      }
e69b6c02b4c3b8d Amir Levy 2017-10-02  1115  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1116      memcpy(dest, src, data_len);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1117  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1118      if (unmap)
e69b6c02b4c3b8d Amir Levy 2017-10-02  1119              kunmap_atomic(src);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1120  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1121      if 
(!tbnet_xmit_csum_and_map(net, skb, frames, frame_index + 1))
e69b6c02b4c3b8d Amir Levy 2017-10-02  1122              goto err_drop;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1123  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1124      for (i = 0; i < frame_index + 
1; i++)
e69b6c02b4c3b8d Amir Levy 2017-10-02  1125              
tb_ring_tx(net->tx_ring.ring, &frames[i]->frame);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1126  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1127      if (net->svc->prtcstns & 
TBNET_MATCH_FRAGS_ID)
e69b6c02b4c3b8d Amir Levy 2017-10-02  1128              
atomic_inc(&net->frame_id);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1129  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1130      net->stats.tx_packets++;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1131      net->stats.tx_bytes += skb->len;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1132  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1133      dev_consume_skb_any(skb);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1134  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1135      return NETDEV_TX_OK;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1136  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1137  err_drop:
e69b6c02b4c3b8d Amir Levy 2017-10-02  1138      /* We can re-use the buffers */
e69b6c02b4c3b8d Amir Levy 2017-10-02  1139      net->tx_ring.cons -= 
frame_index;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1140  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1141      dev_kfree_skb_any(skb);
e69b6c02b4c3b8d Amir Levy 2017-10-02  1142      net->stats.tx_errors++;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1143  
e69b6c02b4c3b8d Amir Levy 2017-10-02  1144      return NETDEV_TX_OK;
e69b6c02b4c3b8d Amir Levy 2017-10-02  1145  }
e69b6c02b4c3b8d Amir Levy 2017-10-02  1146  

:::::: The code at line 1088 was first introduced by commit
:::::: e69b6c02b4c3b8d03be7136f90dd9551ad5a5a5e net: Add support for networking 
over Thunderbolt cable

:::::: TO: Amir Levy <[email protected]>
:::::: CC: David S. Miller <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to