diff for duplicates of <202202011757.Azj3HHCb-lkp@intel.com> diff --git a/a/1.txt b/N1/1.txt index 113aa89..332fcc5 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,15 +1,6 @@ -CC: kbuild-all(a)lists.01.org -CC: linux-kernel(a)vger.kernel.org -TO: Steen Hegelund <steen.hegelund@microchip.com> -CC: Bjarni Jonasson <bjarni.jonasson@microchip.com> -CC: Lars Povlsen <lars.povlsen@microchip.com> - tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 26291c54e111ff6ba87a164d85d4a4e134b7315c commit: f3cad2611a77f0229dc16aa7bd2ef63e35ea9fb6 net: sparx5: add hostmode with phylink support -date: 7 months ago -:::::: branch date: 2 days ago -:::::: commit date: 7 months ago config: nios2-randconfig-m031-20220130 (https://download.01.org/0day-ci/archive/20220201/202202011757.Azj3HHCb-lkp(a)intel.com/config) compiler: nios2-linux-gcc (GCC) 11.2.0 @@ -22,88 +13,6 @@ drivers/net/ethernet/microchip/sparx5/sparx5_packet.c:147 sparx5_xtr_grp() error vim +/skb +147 drivers/net/ethernet/microchip/sparx5/sparx5_packet.c -f3cad2611a77f0 Steen Hegelund 2021-06-24 52 -f3cad2611a77f0 Steen Hegelund 2021-06-24 53 static void sparx5_xtr_grp(struct sparx5 *sparx5, u8 grp, bool byte_swap) -f3cad2611a77f0 Steen Hegelund 2021-06-24 54 { -f3cad2611a77f0 Steen Hegelund 2021-06-24 55 bool eof_flag = false, pruned_flag = false, abort_flag = false; -f3cad2611a77f0 Steen Hegelund 2021-06-24 56 struct net_device *netdev; -f3cad2611a77f0 Steen Hegelund 2021-06-24 57 struct sparx5_port *port; -f3cad2611a77f0 Steen Hegelund 2021-06-24 58 struct frame_info fi; -f3cad2611a77f0 Steen Hegelund 2021-06-24 59 int i, byte_cnt = 0; -f3cad2611a77f0 Steen Hegelund 2021-06-24 60 struct sk_buff *skb; -f3cad2611a77f0 Steen Hegelund 2021-06-24 61 u32 ifh[IFH_LEN]; -f3cad2611a77f0 Steen Hegelund 2021-06-24 62 u32 *rxbuf; -f3cad2611a77f0 Steen Hegelund 2021-06-24 63 -f3cad2611a77f0 Steen Hegelund 2021-06-24 64 /* Get IFH */ -f3cad2611a77f0 Steen Hegelund 2021-06-24 65 for (i = 0; i < IFH_LEN; i++) -f3cad2611a77f0 Steen Hegelund 2021-06-24 66 ifh[i] = spx5_rd(sparx5, QS_XTR_RD(grp)); -f3cad2611a77f0 Steen Hegelund 2021-06-24 67 -f3cad2611a77f0 Steen Hegelund 2021-06-24 68 /* Decode IFH (whats needed) */ -f3cad2611a77f0 Steen Hegelund 2021-06-24 69 sparx5_ifh_parse(ifh, &fi); -f3cad2611a77f0 Steen Hegelund 2021-06-24 70 -f3cad2611a77f0 Steen Hegelund 2021-06-24 71 /* Map to port netdev */ -f3cad2611a77f0 Steen Hegelund 2021-06-24 72 port = fi.src_port < SPX5_PORTS ? -f3cad2611a77f0 Steen Hegelund 2021-06-24 73 sparx5->ports[fi.src_port] : NULL; -f3cad2611a77f0 Steen Hegelund 2021-06-24 74 if (!port || !port->ndev) { -f3cad2611a77f0 Steen Hegelund 2021-06-24 75 dev_err(sparx5->dev, "Data on inactive port %d\n", fi.src_port); -f3cad2611a77f0 Steen Hegelund 2021-06-24 76 sparx5_xtr_flush(sparx5, grp); -f3cad2611a77f0 Steen Hegelund 2021-06-24 77 return; -f3cad2611a77f0 Steen Hegelund 2021-06-24 78 } -f3cad2611a77f0 Steen Hegelund 2021-06-24 79 -f3cad2611a77f0 Steen Hegelund 2021-06-24 80 /* Have netdev, get skb */ -f3cad2611a77f0 Steen Hegelund 2021-06-24 81 netdev = port->ndev; -f3cad2611a77f0 Steen Hegelund 2021-06-24 82 skb = netdev_alloc_skb(netdev, netdev->mtu + ETH_HLEN); -f3cad2611a77f0 Steen Hegelund 2021-06-24 83 if (!skb) { -f3cad2611a77f0 Steen Hegelund 2021-06-24 84 sparx5_xtr_flush(sparx5, grp); -f3cad2611a77f0 Steen Hegelund 2021-06-24 85 dev_err(sparx5->dev, "No skb allocated\n"); -f3cad2611a77f0 Steen Hegelund 2021-06-24 86 netdev->stats.rx_dropped++; -f3cad2611a77f0 Steen Hegelund 2021-06-24 87 return; -f3cad2611a77f0 Steen Hegelund 2021-06-24 88 } -f3cad2611a77f0 Steen Hegelund 2021-06-24 89 rxbuf = (u32 *)skb->data; -f3cad2611a77f0 Steen Hegelund 2021-06-24 90 -f3cad2611a77f0 Steen Hegelund 2021-06-24 91 /* Now, pull frame data */ -f3cad2611a77f0 Steen Hegelund 2021-06-24 92 while (!eof_flag) { -f3cad2611a77f0 Steen Hegelund 2021-06-24 93 u32 val = spx5_rd(sparx5, QS_XTR_RD(grp)); -f3cad2611a77f0 Steen Hegelund 2021-06-24 94 u32 cmp = val; -f3cad2611a77f0 Steen Hegelund 2021-06-24 95 -f3cad2611a77f0 Steen Hegelund 2021-06-24 96 if (byte_swap) -f3cad2611a77f0 Steen Hegelund 2021-06-24 97 cmp = ntohl((__force __be32)val); -f3cad2611a77f0 Steen Hegelund 2021-06-24 98 -f3cad2611a77f0 Steen Hegelund 2021-06-24 99 switch (cmp) { -f3cad2611a77f0 Steen Hegelund 2021-06-24 100 case XTR_NOT_READY: -f3cad2611a77f0 Steen Hegelund 2021-06-24 101 break; -f3cad2611a77f0 Steen Hegelund 2021-06-24 102 case XTR_ABORT: -f3cad2611a77f0 Steen Hegelund 2021-06-24 103 /* No accompanying data */ -f3cad2611a77f0 Steen Hegelund 2021-06-24 104 abort_flag = true; -f3cad2611a77f0 Steen Hegelund 2021-06-24 105 eof_flag = true; -f3cad2611a77f0 Steen Hegelund 2021-06-24 106 break; -f3cad2611a77f0 Steen Hegelund 2021-06-24 107 case XTR_EOF_0: -f3cad2611a77f0 Steen Hegelund 2021-06-24 108 case XTR_EOF_1: -f3cad2611a77f0 Steen Hegelund 2021-06-24 109 case XTR_EOF_2: -f3cad2611a77f0 Steen Hegelund 2021-06-24 110 case XTR_EOF_3: -f3cad2611a77f0 Steen Hegelund 2021-06-24 111 /* This assumes STATUS_WORD_POS == 1, Status -f3cad2611a77f0 Steen Hegelund 2021-06-24 112 * just after last data -f3cad2611a77f0 Steen Hegelund 2021-06-24 113 */ -f3cad2611a77f0 Steen Hegelund 2021-06-24 114 byte_cnt -= (4 - XTR_VALID_BYTES(val)); -f3cad2611a77f0 Steen Hegelund 2021-06-24 115 eof_flag = true; -f3cad2611a77f0 Steen Hegelund 2021-06-24 116 break; -f3cad2611a77f0 Steen Hegelund 2021-06-24 117 case XTR_PRUNED: -f3cad2611a77f0 Steen Hegelund 2021-06-24 118 /* But get the last 4 bytes as well */ -f3cad2611a77f0 Steen Hegelund 2021-06-24 119 eof_flag = true; -f3cad2611a77f0 Steen Hegelund 2021-06-24 120 pruned_flag = true; -f3cad2611a77f0 Steen Hegelund 2021-06-24 121 fallthrough; -f3cad2611a77f0 Steen Hegelund 2021-06-24 122 case XTR_ESCAPE: -f3cad2611a77f0 Steen Hegelund 2021-06-24 123 *rxbuf = spx5_rd(sparx5, QS_XTR_RD(grp)); -f3cad2611a77f0 Steen Hegelund 2021-06-24 124 byte_cnt += 4; -f3cad2611a77f0 Steen Hegelund 2021-06-24 125 rxbuf++; -f3cad2611a77f0 Steen Hegelund 2021-06-24 126 break; -f3cad2611a77f0 Steen Hegelund 2021-06-24 127 default: -f3cad2611a77f0 Steen Hegelund 2021-06-24 128 *rxbuf = val; -f3cad2611a77f0 Steen Hegelund 2021-06-24 129 byte_cnt += 4; -f3cad2611a77f0 Steen Hegelund 2021-06-24 130 rxbuf++; -f3cad2611a77f0 Steen Hegelund 2021-06-24 131 } -f3cad2611a77f0 Steen Hegelund 2021-06-24 132 } -f3cad2611a77f0 Steen Hegelund 2021-06-24 133 f3cad2611a77f0 Steen Hegelund 2021-06-24 134 if (abort_flag || pruned_flag || !eof_flag) { f3cad2611a77f0 Steen Hegelund 2021-06-24 135 netdev_err(netdev, "Discarded frame: abort:%d pruned:%d eof:%d\n", f3cad2611a77f0 Steen Hegelund 2021-06-24 136 abort_flag, pruned_flag, eof_flag); @@ -118,9 +27,11 @@ f3cad2611a77f0 Steen Hegelund 2021-06-24 144 eth_skb_pad(skb); f3cad2611a77f0 Steen Hegelund 2021-06-24 145 skb->protocol = eth_type_trans(skb, netdev); f3cad2611a77f0 Steen Hegelund 2021-06-24 146 netif_rx(skb); f3cad2611a77f0 Steen Hegelund 2021-06-24 @147 netdev->stats.rx_bytes += skb->len; + ^^^^^^^^ +The netif_rx() function will free the skb. + f3cad2611a77f0 Steen Hegelund 2021-06-24 148 netdev->stats.rx_packets++; f3cad2611a77f0 Steen Hegelund 2021-06-24 149 } -f3cad2611a77f0 Steen Hegelund 2021-06-24 150 --- 0-DAY CI Kernel Test Service, Intel Corporation diff --git a/a/content_digest b/N1/content_digest index dbe54c3..5e4fa72 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,21 +1,12 @@ - "From\0kernel test robot <lkp@intel.com>\0" + "From\0Dan Carpenter <dan.carpenter@oracle.com>\0" "Subject\0drivers/net/ethernet/microchip/sparx5/sparx5_packet.c:147 sparx5_xtr_grp() error: dereferencing freed memory 'skb'\0" - "Date\0Tue, 01 Feb 2022 17:14:38 +0800\0" - "To\0kbuild@lists.01.org\0" + "Date\0Tue, 01 Feb 2022 12:25:29 +0300\0" + "To\0kbuild-all@lists.01.org\0" "\01:1\0" "b\0" - "CC: kbuild-all(a)lists.01.org\n" - "CC: linux-kernel(a)vger.kernel.org\n" - "TO: Steen Hegelund <steen.hegelund@microchip.com>\n" - "CC: Bjarni Jonasson <bjarni.jonasson@microchip.com>\n" - "CC: Lars Povlsen <lars.povlsen@microchip.com>\n" - "\n" "tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master\n" "head: 26291c54e111ff6ba87a164d85d4a4e134b7315c\n" "commit: f3cad2611a77f0229dc16aa7bd2ef63e35ea9fb6 net: sparx5: add hostmode with phylink support\n" - "date: 7 months ago\n" - ":::::: branch date: 2 days ago\n" - ":::::: commit date: 7 months ago\n" "config: nios2-randconfig-m031-20220130 (https://download.01.org/0day-ci/archive/20220201/202202011757.Azj3HHCb-lkp(a)intel.com/config)\n" "compiler: nios2-linux-gcc (GCC) 11.2.0\n" "\n" @@ -28,88 +19,6 @@ "\n" "vim +/skb +147 drivers/net/ethernet/microchip/sparx5/sparx5_packet.c\n" "\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 52 \n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 53 static void sparx5_xtr_grp(struct sparx5 *sparx5, u8 grp, bool byte_swap)\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 54 {\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 55 \tbool eof_flag = false, pruned_flag = false, abort_flag = false;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 56 \tstruct net_device *netdev;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 57 \tstruct sparx5_port *port;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 58 \tstruct frame_info fi;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 59 \tint i, byte_cnt = 0;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 60 \tstruct sk_buff *skb;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 61 \tu32 ifh[IFH_LEN];\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 62 \tu32 *rxbuf;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 63 \n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 64 \t/* Get IFH */\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 65 \tfor (i = 0; i < IFH_LEN; i++)\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 66 \t\tifh[i] = spx5_rd(sparx5, QS_XTR_RD(grp));\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 67 \n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 68 \t/* Decode IFH (whats needed) */\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 69 \tsparx5_ifh_parse(ifh, &fi);\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 70 \n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 71 \t/* Map to port netdev */\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 72 \tport = fi.src_port < SPX5_PORTS ?\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 73 \t\tsparx5->ports[fi.src_port] : NULL;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 74 \tif (!port || !port->ndev) {\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 75 \t\tdev_err(sparx5->dev, \"Data on inactive port %d\\n\", fi.src_port);\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 76 \t\tsparx5_xtr_flush(sparx5, grp);\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 77 \t\treturn;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 78 \t}\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 79 \n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 80 \t/* Have netdev, get skb */\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 81 \tnetdev = port->ndev;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 82 \tskb = netdev_alloc_skb(netdev, netdev->mtu + ETH_HLEN);\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 83 \tif (!skb) {\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 84 \t\tsparx5_xtr_flush(sparx5, grp);\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 85 \t\tdev_err(sparx5->dev, \"No skb allocated\\n\");\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 86 \t\tnetdev->stats.rx_dropped++;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 87 \t\treturn;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 88 \t}\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 89 \trxbuf = (u32 *)skb->data;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 90 \n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 91 \t/* Now, pull frame data */\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 92 \twhile (!eof_flag) {\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 93 \t\tu32 val = spx5_rd(sparx5, QS_XTR_RD(grp));\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 94 \t\tu32 cmp = val;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 95 \n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 96 \t\tif (byte_swap)\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 97 \t\t\tcmp = ntohl((__force __be32)val);\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 98 \n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 99 \t\tswitch (cmp) {\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 100 \t\tcase XTR_NOT_READY:\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 101 \t\t\tbreak;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 102 \t\tcase XTR_ABORT:\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 103 \t\t\t/* No accompanying data */\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 104 \t\t\tabort_flag = true;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 105 \t\t\teof_flag = true;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 106 \t\t\tbreak;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 107 \t\tcase XTR_EOF_0:\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 108 \t\tcase XTR_EOF_1:\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 109 \t\tcase XTR_EOF_2:\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 110 \t\tcase XTR_EOF_3:\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 111 \t\t\t/* This assumes STATUS_WORD_POS == 1, Status\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 112 \t\t\t * just after last data\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 113 \t\t\t */\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 114 \t\t\tbyte_cnt -= (4 - XTR_VALID_BYTES(val));\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 115 \t\t\teof_flag = true;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 116 \t\t\tbreak;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 117 \t\tcase XTR_PRUNED:\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 118 \t\t\t/* But get the last 4 bytes as well */\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 119 \t\t\teof_flag = true;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 120 \t\t\tpruned_flag = true;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 121 \t\t\tfallthrough;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 122 \t\tcase XTR_ESCAPE:\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 123 \t\t\t*rxbuf = spx5_rd(sparx5, QS_XTR_RD(grp));\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 124 \t\t\tbyte_cnt += 4;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 125 \t\t\trxbuf++;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 126 \t\t\tbreak;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 127 \t\tdefault:\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 128 \t\t\t*rxbuf = val;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 129 \t\t\tbyte_cnt += 4;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 130 \t\t\trxbuf++;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 131 \t\t}\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 132 \t}\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 133 \n" "f3cad2611a77f0 Steen Hegelund 2021-06-24 134 \tif (abort_flag || pruned_flag || !eof_flag) {\n" "f3cad2611a77f0 Steen Hegelund 2021-06-24 135 \t\tnetdev_err(netdev, \"Discarded frame: abort:%d pruned:%d eof:%d\\n\",\n" "f3cad2611a77f0 Steen Hegelund 2021-06-24 136 \t\t\t abort_flag, pruned_flag, eof_flag);\n" @@ -124,12 +33,14 @@ "f3cad2611a77f0 Steen Hegelund 2021-06-24 145 \tskb->protocol = eth_type_trans(skb, netdev);\n" "f3cad2611a77f0 Steen Hegelund 2021-06-24 146 \tnetif_rx(skb);\n" "f3cad2611a77f0 Steen Hegelund 2021-06-24 @147 \tnetdev->stats.rx_bytes += skb->len;\n" + " ^^^^^^^^\n" + "The netif_rx() function will free the skb.\n" + "\n" "f3cad2611a77f0 Steen Hegelund 2021-06-24 148 \tnetdev->stats.rx_packets++;\n" "f3cad2611a77f0 Steen Hegelund 2021-06-24 149 }\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 150 \n" "\n" "---\n" "0-DAY CI Kernel Test Service, Intel Corporation\n" https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org -7de78d06b3492426dd56408c100cd2590d899e5809d029e4058c6c4cd4343fff +bb82ca115f5fe279f93b9ca15c50ad1d38e8bbf1488899213bca62895a7bc06d
diff --git a/a/1.txt b/N2/1.txt index 113aa89..9bfab8e 100644 --- a/a/1.txt +++ b/N2/1.txt @@ -1,16 +1,7 @@ -CC: kbuild-all(a)lists.01.org -CC: linux-kernel(a)vger.kernel.org -TO: Steen Hegelund <steen.hegelund@microchip.com> -CC: Bjarni Jonasson <bjarni.jonasson@microchip.com> -CC: Lars Povlsen <lars.povlsen@microchip.com> - tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 26291c54e111ff6ba87a164d85d4a4e134b7315c commit: f3cad2611a77f0229dc16aa7bd2ef63e35ea9fb6 net: sparx5: add hostmode with phylink support -date: 7 months ago -:::::: branch date: 2 days ago -:::::: commit date: 7 months ago -config: nios2-randconfig-m031-20220130 (https://download.01.org/0day-ci/archive/20220201/202202011757.Azj3HHCb-lkp(a)intel.com/config) +config: nios2-randconfig-m031-20220130 (https://download.01.org/0day-ci/archive/20220201/202202011757.Azj3HHCb-lkp@intel.com/config) compiler: nios2-linux-gcc (GCC) 11.2.0 If you fix the issue, kindly add following tag as appropriate @@ -22,88 +13,6 @@ drivers/net/ethernet/microchip/sparx5/sparx5_packet.c:147 sparx5_xtr_grp() error vim +/skb +147 drivers/net/ethernet/microchip/sparx5/sparx5_packet.c -f3cad2611a77f0 Steen Hegelund 2021-06-24 52 -f3cad2611a77f0 Steen Hegelund 2021-06-24 53 static void sparx5_xtr_grp(struct sparx5 *sparx5, u8 grp, bool byte_swap) -f3cad2611a77f0 Steen Hegelund 2021-06-24 54 { -f3cad2611a77f0 Steen Hegelund 2021-06-24 55 bool eof_flag = false, pruned_flag = false, abort_flag = false; -f3cad2611a77f0 Steen Hegelund 2021-06-24 56 struct net_device *netdev; -f3cad2611a77f0 Steen Hegelund 2021-06-24 57 struct sparx5_port *port; -f3cad2611a77f0 Steen Hegelund 2021-06-24 58 struct frame_info fi; -f3cad2611a77f0 Steen Hegelund 2021-06-24 59 int i, byte_cnt = 0; -f3cad2611a77f0 Steen Hegelund 2021-06-24 60 struct sk_buff *skb; -f3cad2611a77f0 Steen Hegelund 2021-06-24 61 u32 ifh[IFH_LEN]; -f3cad2611a77f0 Steen Hegelund 2021-06-24 62 u32 *rxbuf; -f3cad2611a77f0 Steen Hegelund 2021-06-24 63 -f3cad2611a77f0 Steen Hegelund 2021-06-24 64 /* Get IFH */ -f3cad2611a77f0 Steen Hegelund 2021-06-24 65 for (i = 0; i < IFH_LEN; i++) -f3cad2611a77f0 Steen Hegelund 2021-06-24 66 ifh[i] = spx5_rd(sparx5, QS_XTR_RD(grp)); -f3cad2611a77f0 Steen Hegelund 2021-06-24 67 -f3cad2611a77f0 Steen Hegelund 2021-06-24 68 /* Decode IFH (whats needed) */ -f3cad2611a77f0 Steen Hegelund 2021-06-24 69 sparx5_ifh_parse(ifh, &fi); -f3cad2611a77f0 Steen Hegelund 2021-06-24 70 -f3cad2611a77f0 Steen Hegelund 2021-06-24 71 /* Map to port netdev */ -f3cad2611a77f0 Steen Hegelund 2021-06-24 72 port = fi.src_port < SPX5_PORTS ? -f3cad2611a77f0 Steen Hegelund 2021-06-24 73 sparx5->ports[fi.src_port] : NULL; -f3cad2611a77f0 Steen Hegelund 2021-06-24 74 if (!port || !port->ndev) { -f3cad2611a77f0 Steen Hegelund 2021-06-24 75 dev_err(sparx5->dev, "Data on inactive port %d\n", fi.src_port); -f3cad2611a77f0 Steen Hegelund 2021-06-24 76 sparx5_xtr_flush(sparx5, grp); -f3cad2611a77f0 Steen Hegelund 2021-06-24 77 return; -f3cad2611a77f0 Steen Hegelund 2021-06-24 78 } -f3cad2611a77f0 Steen Hegelund 2021-06-24 79 -f3cad2611a77f0 Steen Hegelund 2021-06-24 80 /* Have netdev, get skb */ -f3cad2611a77f0 Steen Hegelund 2021-06-24 81 netdev = port->ndev; -f3cad2611a77f0 Steen Hegelund 2021-06-24 82 skb = netdev_alloc_skb(netdev, netdev->mtu + ETH_HLEN); -f3cad2611a77f0 Steen Hegelund 2021-06-24 83 if (!skb) { -f3cad2611a77f0 Steen Hegelund 2021-06-24 84 sparx5_xtr_flush(sparx5, grp); -f3cad2611a77f0 Steen Hegelund 2021-06-24 85 dev_err(sparx5->dev, "No skb allocated\n"); -f3cad2611a77f0 Steen Hegelund 2021-06-24 86 netdev->stats.rx_dropped++; -f3cad2611a77f0 Steen Hegelund 2021-06-24 87 return; -f3cad2611a77f0 Steen Hegelund 2021-06-24 88 } -f3cad2611a77f0 Steen Hegelund 2021-06-24 89 rxbuf = (u32 *)skb->data; -f3cad2611a77f0 Steen Hegelund 2021-06-24 90 -f3cad2611a77f0 Steen Hegelund 2021-06-24 91 /* Now, pull frame data */ -f3cad2611a77f0 Steen Hegelund 2021-06-24 92 while (!eof_flag) { -f3cad2611a77f0 Steen Hegelund 2021-06-24 93 u32 val = spx5_rd(sparx5, QS_XTR_RD(grp)); -f3cad2611a77f0 Steen Hegelund 2021-06-24 94 u32 cmp = val; -f3cad2611a77f0 Steen Hegelund 2021-06-24 95 -f3cad2611a77f0 Steen Hegelund 2021-06-24 96 if (byte_swap) -f3cad2611a77f0 Steen Hegelund 2021-06-24 97 cmp = ntohl((__force __be32)val); -f3cad2611a77f0 Steen Hegelund 2021-06-24 98 -f3cad2611a77f0 Steen Hegelund 2021-06-24 99 switch (cmp) { -f3cad2611a77f0 Steen Hegelund 2021-06-24 100 case XTR_NOT_READY: -f3cad2611a77f0 Steen Hegelund 2021-06-24 101 break; -f3cad2611a77f0 Steen Hegelund 2021-06-24 102 case XTR_ABORT: -f3cad2611a77f0 Steen Hegelund 2021-06-24 103 /* No accompanying data */ -f3cad2611a77f0 Steen Hegelund 2021-06-24 104 abort_flag = true; -f3cad2611a77f0 Steen Hegelund 2021-06-24 105 eof_flag = true; -f3cad2611a77f0 Steen Hegelund 2021-06-24 106 break; -f3cad2611a77f0 Steen Hegelund 2021-06-24 107 case XTR_EOF_0: -f3cad2611a77f0 Steen Hegelund 2021-06-24 108 case XTR_EOF_1: -f3cad2611a77f0 Steen Hegelund 2021-06-24 109 case XTR_EOF_2: -f3cad2611a77f0 Steen Hegelund 2021-06-24 110 case XTR_EOF_3: -f3cad2611a77f0 Steen Hegelund 2021-06-24 111 /* This assumes STATUS_WORD_POS == 1, Status -f3cad2611a77f0 Steen Hegelund 2021-06-24 112 * just after last data -f3cad2611a77f0 Steen Hegelund 2021-06-24 113 */ -f3cad2611a77f0 Steen Hegelund 2021-06-24 114 byte_cnt -= (4 - XTR_VALID_BYTES(val)); -f3cad2611a77f0 Steen Hegelund 2021-06-24 115 eof_flag = true; -f3cad2611a77f0 Steen Hegelund 2021-06-24 116 break; -f3cad2611a77f0 Steen Hegelund 2021-06-24 117 case XTR_PRUNED: -f3cad2611a77f0 Steen Hegelund 2021-06-24 118 /* But get the last 4 bytes as well */ -f3cad2611a77f0 Steen Hegelund 2021-06-24 119 eof_flag = true; -f3cad2611a77f0 Steen Hegelund 2021-06-24 120 pruned_flag = true; -f3cad2611a77f0 Steen Hegelund 2021-06-24 121 fallthrough; -f3cad2611a77f0 Steen Hegelund 2021-06-24 122 case XTR_ESCAPE: -f3cad2611a77f0 Steen Hegelund 2021-06-24 123 *rxbuf = spx5_rd(sparx5, QS_XTR_RD(grp)); -f3cad2611a77f0 Steen Hegelund 2021-06-24 124 byte_cnt += 4; -f3cad2611a77f0 Steen Hegelund 2021-06-24 125 rxbuf++; -f3cad2611a77f0 Steen Hegelund 2021-06-24 126 break; -f3cad2611a77f0 Steen Hegelund 2021-06-24 127 default: -f3cad2611a77f0 Steen Hegelund 2021-06-24 128 *rxbuf = val; -f3cad2611a77f0 Steen Hegelund 2021-06-24 129 byte_cnt += 4; -f3cad2611a77f0 Steen Hegelund 2021-06-24 130 rxbuf++; -f3cad2611a77f0 Steen Hegelund 2021-06-24 131 } -f3cad2611a77f0 Steen Hegelund 2021-06-24 132 } -f3cad2611a77f0 Steen Hegelund 2021-06-24 133 f3cad2611a77f0 Steen Hegelund 2021-06-24 134 if (abort_flag || pruned_flag || !eof_flag) { f3cad2611a77f0 Steen Hegelund 2021-06-24 135 netdev_err(netdev, "Discarded frame: abort:%d pruned:%d eof:%d\n", f3cad2611a77f0 Steen Hegelund 2021-06-24 136 abort_flag, pruned_flag, eof_flag); @@ -118,10 +27,12 @@ f3cad2611a77f0 Steen Hegelund 2021-06-24 144 eth_skb_pad(skb); f3cad2611a77f0 Steen Hegelund 2021-06-24 145 skb->protocol = eth_type_trans(skb, netdev); f3cad2611a77f0 Steen Hegelund 2021-06-24 146 netif_rx(skb); f3cad2611a77f0 Steen Hegelund 2021-06-24 @147 netdev->stats.rx_bytes += skb->len; + ^^^^^^^^ +The netif_rx() function will free the skb. + f3cad2611a77f0 Steen Hegelund 2021-06-24 148 netdev->stats.rx_packets++; f3cad2611a77f0 Steen Hegelund 2021-06-24 149 } -f3cad2611a77f0 Steen Hegelund 2021-06-24 150 --- 0-DAY CI Kernel Test Service, Intel Corporation -https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org +https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org diff --git a/a/content_digest b/N2/content_digest index dbe54c3..98daf34 100644 --- a/a/content_digest +++ b/N2/content_digest @@ -1,22 +1,19 @@ - "From\0kernel test robot <lkp@intel.com>\0" + "From\0Dan Carpenter <dan.carpenter@oracle.com>\0" "Subject\0drivers/net/ethernet/microchip/sparx5/sparx5_packet.c:147 sparx5_xtr_grp() error: dereferencing freed memory 'skb'\0" - "Date\0Tue, 01 Feb 2022 17:14:38 +0800\0" - "To\0kbuild@lists.01.org\0" - "\01:1\0" + "Date\0Tue, 1 Feb 2022 12:25:29 +0300\0" + "To\0kbuild@lists.01.org" + " Steen Hegelund <steen.hegelund@microchip.com>\0" + "Cc\0lkp@intel.com" + kbuild-all@lists.01.org + linux-kernel@vger.kernel.org + Bjarni Jonasson <bjarni.jonasson@microchip.com> + " Lars Povlsen <lars.povlsen@microchip.com>\0" + "\00:1\0" "b\0" - "CC: kbuild-all(a)lists.01.org\n" - "CC: linux-kernel(a)vger.kernel.org\n" - "TO: Steen Hegelund <steen.hegelund@microchip.com>\n" - "CC: Bjarni Jonasson <bjarni.jonasson@microchip.com>\n" - "CC: Lars Povlsen <lars.povlsen@microchip.com>\n" - "\n" "tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master\n" "head: 26291c54e111ff6ba87a164d85d4a4e134b7315c\n" "commit: f3cad2611a77f0229dc16aa7bd2ef63e35ea9fb6 net: sparx5: add hostmode with phylink support\n" - "date: 7 months ago\n" - ":::::: branch date: 2 days ago\n" - ":::::: commit date: 7 months ago\n" - "config: nios2-randconfig-m031-20220130 (https://download.01.org/0day-ci/archive/20220201/202202011757.Azj3HHCb-lkp(a)intel.com/config)\n" + "config: nios2-randconfig-m031-20220130 (https://download.01.org/0day-ci/archive/20220201/202202011757.Azj3HHCb-lkp@intel.com/config)\n" "compiler: nios2-linux-gcc (GCC) 11.2.0\n" "\n" "If you fix the issue, kindly add following tag as appropriate\n" @@ -28,88 +25,6 @@ "\n" "vim +/skb +147 drivers/net/ethernet/microchip/sparx5/sparx5_packet.c\n" "\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 52 \n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 53 static void sparx5_xtr_grp(struct sparx5 *sparx5, u8 grp, bool byte_swap)\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 54 {\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 55 \tbool eof_flag = false, pruned_flag = false, abort_flag = false;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 56 \tstruct net_device *netdev;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 57 \tstruct sparx5_port *port;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 58 \tstruct frame_info fi;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 59 \tint i, byte_cnt = 0;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 60 \tstruct sk_buff *skb;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 61 \tu32 ifh[IFH_LEN];\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 62 \tu32 *rxbuf;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 63 \n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 64 \t/* Get IFH */\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 65 \tfor (i = 0; i < IFH_LEN; i++)\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 66 \t\tifh[i] = spx5_rd(sparx5, QS_XTR_RD(grp));\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 67 \n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 68 \t/* Decode IFH (whats needed) */\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 69 \tsparx5_ifh_parse(ifh, &fi);\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 70 \n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 71 \t/* Map to port netdev */\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 72 \tport = fi.src_port < SPX5_PORTS ?\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 73 \t\tsparx5->ports[fi.src_port] : NULL;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 74 \tif (!port || !port->ndev) {\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 75 \t\tdev_err(sparx5->dev, \"Data on inactive port %d\\n\", fi.src_port);\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 76 \t\tsparx5_xtr_flush(sparx5, grp);\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 77 \t\treturn;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 78 \t}\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 79 \n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 80 \t/* Have netdev, get skb */\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 81 \tnetdev = port->ndev;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 82 \tskb = netdev_alloc_skb(netdev, netdev->mtu + ETH_HLEN);\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 83 \tif (!skb) {\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 84 \t\tsparx5_xtr_flush(sparx5, grp);\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 85 \t\tdev_err(sparx5->dev, \"No skb allocated\\n\");\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 86 \t\tnetdev->stats.rx_dropped++;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 87 \t\treturn;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 88 \t}\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 89 \trxbuf = (u32 *)skb->data;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 90 \n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 91 \t/* Now, pull frame data */\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 92 \twhile (!eof_flag) {\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 93 \t\tu32 val = spx5_rd(sparx5, QS_XTR_RD(grp));\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 94 \t\tu32 cmp = val;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 95 \n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 96 \t\tif (byte_swap)\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 97 \t\t\tcmp = ntohl((__force __be32)val);\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 98 \n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 99 \t\tswitch (cmp) {\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 100 \t\tcase XTR_NOT_READY:\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 101 \t\t\tbreak;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 102 \t\tcase XTR_ABORT:\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 103 \t\t\t/* No accompanying data */\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 104 \t\t\tabort_flag = true;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 105 \t\t\teof_flag = true;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 106 \t\t\tbreak;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 107 \t\tcase XTR_EOF_0:\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 108 \t\tcase XTR_EOF_1:\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 109 \t\tcase XTR_EOF_2:\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 110 \t\tcase XTR_EOF_3:\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 111 \t\t\t/* This assumes STATUS_WORD_POS == 1, Status\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 112 \t\t\t * just after last data\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 113 \t\t\t */\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 114 \t\t\tbyte_cnt -= (4 - XTR_VALID_BYTES(val));\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 115 \t\t\teof_flag = true;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 116 \t\t\tbreak;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 117 \t\tcase XTR_PRUNED:\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 118 \t\t\t/* But get the last 4 bytes as well */\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 119 \t\t\teof_flag = true;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 120 \t\t\tpruned_flag = true;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 121 \t\t\tfallthrough;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 122 \t\tcase XTR_ESCAPE:\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 123 \t\t\t*rxbuf = spx5_rd(sparx5, QS_XTR_RD(grp));\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 124 \t\t\tbyte_cnt += 4;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 125 \t\t\trxbuf++;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 126 \t\t\tbreak;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 127 \t\tdefault:\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 128 \t\t\t*rxbuf = val;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 129 \t\t\tbyte_cnt += 4;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 130 \t\t\trxbuf++;\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 131 \t\t}\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 132 \t}\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 133 \n" "f3cad2611a77f0 Steen Hegelund 2021-06-24 134 \tif (abort_flag || pruned_flag || !eof_flag) {\n" "f3cad2611a77f0 Steen Hegelund 2021-06-24 135 \t\tnetdev_err(netdev, \"Discarded frame: abort:%d pruned:%d eof:%d\\n\",\n" "f3cad2611a77f0 Steen Hegelund 2021-06-24 136 \t\t\t abort_flag, pruned_flag, eof_flag);\n" @@ -124,12 +39,14 @@ "f3cad2611a77f0 Steen Hegelund 2021-06-24 145 \tskb->protocol = eth_type_trans(skb, netdev);\n" "f3cad2611a77f0 Steen Hegelund 2021-06-24 146 \tnetif_rx(skb);\n" "f3cad2611a77f0 Steen Hegelund 2021-06-24 @147 \tnetdev->stats.rx_bytes += skb->len;\n" + " ^^^^^^^^\n" + "The netif_rx() function will free the skb.\n" + "\n" "f3cad2611a77f0 Steen Hegelund 2021-06-24 148 \tnetdev->stats.rx_packets++;\n" "f3cad2611a77f0 Steen Hegelund 2021-06-24 149 }\n" - "f3cad2611a77f0 Steen Hegelund 2021-06-24 150 \n" "\n" "---\n" "0-DAY CI Kernel Test Service, Intel Corporation\n" - https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org + https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org -7de78d06b3492426dd56408c100cd2590d899e5809d029e4058c6c4cd4343fff +75c6e420b301b55703579a18e24729d4ca9fb85a1ff9bc658ff04261c25557ac
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.