CC: [email protected] CC: [email protected] CC: [email protected] TO: Kees Cook <[email protected]> CC: "Gustavo A. R. Silva" <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: d567f5db412ed52de0b3b3efca4a451263de6108 commit: 03f61041c17914355dde7261be9ccdc821ddd454 skbuff: Switch structure bounds to struct_group() date: 3 months ago :::::: branch date: 29 hours ago :::::: commit date: 3 months ago config: x86_64-randconfig-c007-20220214 (https://download.01.org/0day-ci/archive/20220216/[email protected]/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project ea071884b0cc7210b3cc5fe858f0e892a779a23b) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=03f61041c17914355dde7261be9ccdc821ddd454 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 03f61041c17914355dde7261be9ccdc821ddd454 # save the config file to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 clang-analyzer If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> clang-analyzer warnings: (new ones prefixed by >>) ^ drivers/net/ethernet/nvidia/forcedeth.c:2901:4: note: Assuming 'rx_work' is < 'limit' (rx_work < limit)) { ^~~~~~~~~~~~~~~ drivers/net/ethernet/nvidia/forcedeth.c:2899:2: note: Loop condition is true. Entering loop body while ((np->get_rx.orig != np->put_rx.orig) && ^ drivers/net/ethernet/nvidia/forcedeth.c:2912:3: note: Null pointer value stored to field 'skb' np->get_rx_ctx->skb = NULL; ^~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/nvidia/forcedeth.c:2915:11: note: Field 'desc_ver' is not equal to DESC_VER_1 if (np->desc_ver == DESC_VER_1) { ^ drivers/net/ethernet/nvidia/forcedeth.c:2915:3: note: Taking false branch if (np->desc_ver == DESC_VER_1) { ^ drivers/net/ethernet/nvidia/forcedeth.c:2943:8: note: Assuming the condition is true if (likely(flags & NV_RX2_DESCRIPTORVALID)) { ^ include/linux/compiler.h:77:38: note: expanded from macro 'likely' # define likely(x) __builtin_expect(!!(x), 1) ^~~~ drivers/net/ethernet/nvidia/forcedeth.c:2943:4: note: Taking false branch if (likely(flags & NV_RX2_DESCRIPTORVALID)) { ^ drivers/net/ethernet/nvidia/forcedeth.c:2969:5: note: Control jumps to line 2981 goto next_pkt; ^ drivers/net/ethernet/nvidia/forcedeth.c:2981:7: note: Assuming the condition is false if (unlikely(np->get_rx.orig++ == np->last_rx.orig)) ^ include/linux/compiler.h:78:22: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/nvidia/forcedeth.c:2981:3: note: Taking false branch if (unlikely(np->get_rx.orig++ == np->last_rx.orig)) ^ drivers/net/ethernet/nvidia/forcedeth.c:2983:16: note: Assuming the condition is true if (unlikely(np->get_rx_ctx++ == np->last_rx_ctx)) ^ include/linux/compiler.h:78:42: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ drivers/net/ethernet/nvidia/forcedeth.c:2983:3: note: Taking true branch if (unlikely(np->get_rx_ctx++ == np->last_rx_ctx)) ^ drivers/net/ethernet/nvidia/forcedeth.c:2899:10: note: Assuming 'np->get_rx.orig' is not equal to 'np->put_rx.orig' while ((np->get_rx.orig != np->put_rx.orig) && ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/nvidia/forcedeth.c:2899:9: note: Left side of '&&' is true while ((np->get_rx.orig != np->put_rx.orig) && ^ drivers/net/ethernet/nvidia/forcedeth.c:2900:8: note: Assuming the condition is true !((flags = le32_to_cpu(np->get_rx.orig->flaglen)) & NV_RX_AVAIL) && ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/nvidia/forcedeth.c:2899:9: note: Left side of '&&' is true while ((np->get_rx.orig != np->put_rx.orig) && ^ drivers/net/ethernet/nvidia/forcedeth.c:2901:4: note: Assuming 'rx_work' is < 'limit' (rx_work < limit)) { ^~~~~~~~~~~~~~~ drivers/net/ethernet/nvidia/forcedeth.c:2899:2: note: Loop condition is true. Entering loop body while ((np->get_rx.orig != np->put_rx.orig) && ^ drivers/net/ethernet/nvidia/forcedeth.c:2911:3: note: Null pointer value stored to 'skb' skb = np->get_rx_ctx->skb; ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/nvidia/forcedeth.c:2915:11: note: Field 'desc_ver' is not equal to DESC_VER_1 if (np->desc_ver == DESC_VER_1) { ^ drivers/net/ethernet/nvidia/forcedeth.c:2915:3: note: Taking false branch if (np->desc_ver == DESC_VER_1) { ^ drivers/net/ethernet/nvidia/forcedeth.c:2943:8: note: Assuming the condition is false if (likely(flags & NV_RX2_DESCRIPTORVALID)) { ^ include/linux/compiler.h:77:38: note: expanded from macro 'likely' # define likely(x) __builtin_expect(!!(x), 1) ^~~~ drivers/net/ethernet/nvidia/forcedeth.c:2943:4: note: Taking true branch if (likely(flags & NV_RX2_DESCRIPTORVALID)) { ^ drivers/net/ethernet/nvidia/forcedeth.c:2945:9: note: Assuming the condition is false if (unlikely(flags & NV_RX2_ERROR)) { ^ include/linux/compiler.h:78:40: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^~~~ drivers/net/ethernet/nvidia/forcedeth.c:2945:5: note: Taking true branch if (unlikely(flags & NV_RX2_ERROR)) { ^ drivers/net/ethernet/nvidia/forcedeth.c:2946:10: note: Assuming the condition is true if ((flags & NV_RX2_ERROR_MASK) == NV_RX2_ERROR4) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/nvidia/forcedeth.c:2946:6: note: Taking true branch if ((flags & NV_RX2_ERROR_MASK) == NV_RX2_ERROR4) { ^ drivers/net/ethernet/nvidia/forcedeth.c:2947:28: note: Access to field 'data' results in a dereference of a null pointer (loaded from variable 'skb') len = nv_getlen(dev, skb->data, len); ^~~ >> drivers/net/ethernet/nvidia/forcedeth.c:2966:21: warning: Dereference of >> null pointer [clang-analyzer-core.NullDereference] skb->ip_summed = CHECKSUM_UNNECESSARY; ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/nvidia/forcedeth.c:2899:10: note: Assuming 'np->get_rx.orig' is not equal to 'np->put_rx.orig' while ((np->get_rx.orig != np->put_rx.orig) && ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/nvidia/forcedeth.c:2899:9: note: Left side of '&&' is true while ((np->get_rx.orig != np->put_rx.orig) && ^ drivers/net/ethernet/nvidia/forcedeth.c:2900:8: note: Assuming the condition is true !((flags = le32_to_cpu(np->get_rx.orig->flaglen)) & NV_RX_AVAIL) && ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/nvidia/forcedeth.c:2899:9: note: Left side of '&&' is true while ((np->get_rx.orig != np->put_rx.orig) && ^ drivers/net/ethernet/nvidia/forcedeth.c:2901:4: note: Assuming 'rx_work' is < 'limit' (rx_work < limit)) { ^~~~~~~~~~~~~~~ drivers/net/ethernet/nvidia/forcedeth.c:2899:2: note: Loop condition is true. Entering loop body while ((np->get_rx.orig != np->put_rx.orig) && ^ drivers/net/ethernet/nvidia/forcedeth.c:2915:7: note: Assuming field 'desc_ver' is not equal to DESC_VER_1 if (np->desc_ver == DESC_VER_1) { ^~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/nvidia/forcedeth.c:2915:3: note: Taking false branch if (np->desc_ver == DESC_VER_1) { ^ drivers/net/ethernet/nvidia/forcedeth.c:2943:8: note: Assuming the condition is false if (likely(flags & NV_RX2_DESCRIPTORVALID)) { ^ include/linux/compiler.h:77:38: note: expanded from macro 'likely' # define likely(x) __builtin_expect(!!(x), 1) ^~~~ drivers/net/ethernet/nvidia/forcedeth.c:2943:4: note: Taking true branch if (likely(flags & NV_RX2_DESCRIPTORVALID)) { ^ drivers/net/ethernet/nvidia/forcedeth.c:2945:9: note: Assuming the condition is false if (unlikely(flags & NV_RX2_ERROR)) { ^ include/linux/compiler.h:78:40: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^~~~ drivers/net/ethernet/nvidia/forcedeth.c:2945:5: note: Taking true branch if (unlikely(flags & NV_RX2_ERROR)) { ^ drivers/net/ethernet/nvidia/forcedeth.c:2946:10: note: Assuming the condition is false if ((flags & NV_RX2_ERROR_MASK) == NV_RX2_ERROR4) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/nvidia/forcedeth.c:2946:6: note: Taking false branch if ((flags & NV_RX2_ERROR_MASK) == NV_RX2_ERROR4) { ^ drivers/net/ethernet/nvidia/forcedeth.c:2954:15: note: Assuming the condition is false else if ((flags & NV_RX2_ERROR_MASK) == NV_RX2_FRAMINGERR) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/nvidia/forcedeth.c:2954:11: note: Taking false branch else if ((flags & NV_RX2_ERROR_MASK) == NV_RX2_FRAMINGERR) { ^ drivers/net/ethernet/nvidia/forcedeth.c:2961:7: note: Control jumps to line 2981 goto next_pkt; ^ drivers/net/ethernet/nvidia/forcedeth.c:2981:16: note: Assuming the condition is false if (unlikely(np->get_rx.orig++ == np->last_rx.orig)) ^ include/linux/compiler.h:78:42: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ drivers/net/ethernet/nvidia/forcedeth.c:2981:3: note: Taking false branch if (unlikely(np->get_rx.orig++ == np->last_rx.orig)) ^ drivers/net/ethernet/nvidia/forcedeth.c:2983:16: note: Assuming the condition is true if (unlikely(np->get_rx_ctx++ == np->last_rx_ctx)) ^ include/linux/compiler.h:78:42: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ drivers/net/ethernet/nvidia/forcedeth.c:2983:3: note: Taking true branch if (unlikely(np->get_rx_ctx++ == np->last_rx_ctx)) ^ drivers/net/ethernet/nvidia/forcedeth.c:2899:10: note: Assuming 'np->get_rx.orig' is not equal to 'np->put_rx.orig' while ((np->get_rx.orig != np->put_rx.orig) && ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/nvidia/forcedeth.c:2899:9: note: Left side of '&&' is true while ((np->get_rx.orig != np->put_rx.orig) && ^ drivers/net/ethernet/nvidia/forcedeth.c:2900:8: note: Assuming the condition is true !((flags = le32_to_cpu(np->get_rx.orig->flaglen)) & NV_RX_AVAIL) && ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/nvidia/forcedeth.c:2899:9: note: Left side of '&&' is true while ((np->get_rx.orig != np->put_rx.orig) && ^ drivers/net/ethernet/nvidia/forcedeth.c:2901:4: note: Assuming 'rx_work' is < 'limit' (rx_work < limit)) { ^~~~~~~~~~~~~~~ drivers/net/ethernet/nvidia/forcedeth.c:2899:2: note: Loop condition is true. Entering loop body while ((np->get_rx.orig != np->put_rx.orig) && ^ drivers/net/ethernet/nvidia/forcedeth.c:2912:3: note: Null pointer value stored to field 'skb' np->get_rx_ctx->skb = NULL; ^~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/nvidia/forcedeth.c:2915:11: note: Field 'desc_ver' is not equal to DESC_VER_1 if (np->desc_ver == DESC_VER_1) { vim +2966 drivers/net/ethernet/nvidia/forcedeth.c f4b633b911fd3b drivers/net/ethernet/nvidia/forcedeth.c Zhu Yanjun 2019-09-05 2890 e27cdba53b8ad5 drivers/net/forcedeth.c Stephen Hemminger 2006-07-31 2891 static int nv_rx_process(struct net_device *dev, int limit) ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2892 { ac9c18974f7d08 drivers/net/forcedeth.c Ayaz Abdulla 2005-10-26 2893 struct fe_priv *np = netdev_priv(dev); f82a9352f6b955 drivers/net/forcedeth.c Stephen Hemminger 2006-07-27 2894 u32 flags; bcb5febb248f7c drivers/net/forcedeth.c Ingo Molnar 2007-10-16 2895 int rx_work = 0; ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2896 struct sk_buff *skb; ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2897 int len; ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2898 b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2899 while ((np->get_rx.orig != np->put_rx.orig) && b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2900 !((flags = le32_to_cpu(np->get_rx.orig->flaglen)) & NV_RX_AVAIL) && bcb5febb248f7c drivers/net/forcedeth.c Ingo Molnar 2007-10-16 2901 (rx_work < limit)) { ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2902 ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2903 /* ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2904 * the packet is for us - immediately tear down the pci mapping. ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2905 * TODO: check if a prefetch of the first cacheline improves ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2906 * the performance. ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2907 */ 7598b3498bfdad drivers/net/ethernet/nvidia/forcedeth.c Zhu Yanjun 2017-09-14 2908 dma_unmap_single(&np->pci_dev->dev, np->get_rx_ctx->dma, 761fcd9e3e0aa2 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-09 2909 np->get_rx_ctx->dma_len, 7598b3498bfdad drivers/net/ethernet/nvidia/forcedeth.c Zhu Yanjun 2017-09-14 2910 DMA_FROM_DEVICE); 0d63fb32b2b8c3 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-09 2911 skb = np->get_rx_ctx->skb; 0d63fb32b2b8c3 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-09 2912 np->get_rx_ctx->skb = NULL; ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2913 ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2914 /* look at what we actually got: */ ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2915 if (np->desc_ver == DESC_VER_1) { b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2916 if (likely(flags & NV_RX_DESCRIPTORVALID)) { b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2917 len = flags & LEN_MASK_V1; b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2918 if (unlikely(flags & NV_RX_ERROR)) { 1ef6841b4c4d9c drivers/net/forcedeth.c Ayaz Abdulla 2008-08-06 2919 if ((flags & NV_RX_ERROR_MASK) == NV_RX_ERROR4) { 0d63fb32b2b8c3 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-09 2920 len = nv_getlen(dev, skb->data, len); 22c6d143f33f10 drivers/net/forcedeth.c Manfred Spraul 2005-04-19 2921 if (len < 0) { 0d63fb32b2b8c3 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-09 2922 dev_kfree_skb(skb); 22c6d143f33f10 drivers/net/forcedeth.c Manfred Spraul 2005-04-19 2923 goto next_pkt; 22c6d143f33f10 drivers/net/forcedeth.c Manfred Spraul 2005-04-19 2924 } 22c6d143f33f10 drivers/net/forcedeth.c Manfred Spraul 2005-04-19 2925 } b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2926 /* framing errors are soft errors */ 1ef6841b4c4d9c drivers/net/forcedeth.c Ayaz Abdulla 2008-08-06 2927 else if ((flags & NV_RX_ERROR_MASK) == NV_RX_FRAMINGERR) { cef33c815a80bf drivers/net/ethernet/nvidia/forcedeth.c Antonio Ospite 2014-06-04 2928 if (flags & NV_RX_SUBTRACT1) ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2929 len--; ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2930 } b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2931 /* the rest are hard errors */ b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2932 else { f4b633b911fd3b drivers/net/ethernet/nvidia/forcedeth.c Zhu Yanjun 2019-09-05 2933 rx_missing_handler(flags, np); 0d63fb32b2b8c3 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-09 2934 dev_kfree_skb(skb); ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2935 goto next_pkt; ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2936 } b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2937 } b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2938 } else { 0d63fb32b2b8c3 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-09 2939 dev_kfree_skb(skb); ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2940 goto next_pkt; ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2941 } b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2942 } else { b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2943 if (likely(flags & NV_RX2_DESCRIPTORVALID)) { b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2944 len = flags & LEN_MASK_V2; b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2945 if (unlikely(flags & NV_RX2_ERROR)) { 1ef6841b4c4d9c drivers/net/forcedeth.c Ayaz Abdulla 2008-08-06 2946 if ((flags & NV_RX2_ERROR_MASK) == NV_RX2_ERROR4) { 0d63fb32b2b8c3 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-09 2947 len = nv_getlen(dev, skb->data, len); 22c6d143f33f10 drivers/net/forcedeth.c Manfred Spraul 2005-04-19 2948 if (len < 0) { 0d63fb32b2b8c3 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-09 2949 dev_kfree_skb(skb); 22c6d143f33f10 drivers/net/forcedeth.c Manfred Spraul 2005-04-19 2950 goto next_pkt; 22c6d143f33f10 drivers/net/forcedeth.c Manfred Spraul 2005-04-19 2951 } 22c6d143f33f10 drivers/net/forcedeth.c Manfred Spraul 2005-04-19 2952 } 22c6d143f33f10 drivers/net/forcedeth.c Manfred Spraul 2005-04-19 2953 /* framing errors are soft errors */ 1ef6841b4c4d9c drivers/net/forcedeth.c Ayaz Abdulla 2008-08-06 2954 else if ((flags & NV_RX2_ERROR_MASK) == NV_RX2_FRAMINGERR) { cef33c815a80bf drivers/net/ethernet/nvidia/forcedeth.c Antonio Ospite 2014-06-04 2955 if (flags & NV_RX2_SUBTRACT1) ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2956 len--; ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2957 } b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2958 /* the rest are hard errors */ b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2959 else { b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2960 dev_kfree_skb(skb); b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2961 goto next_pkt; b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2962 } a971c32488569b drivers/net/forcedeth.c Ayaz Abdulla 2005-11-11 2963 } bfaffe8fae0273 drivers/net/forcedeth.c Ayaz Abdulla 2008-01-13 2964 if (((flags & NV_RX2_CHECKSUMMASK) == NV_RX2_CHECKSUM_IP_TCP) || /*ip and tcp */ bfaffe8fae0273 drivers/net/forcedeth.c Ayaz Abdulla 2008-01-13 2965 ((flags & NV_RX2_CHECKSUMMASK) == NV_RX2_CHECKSUM_IP_UDP)) /*ip and udp */ 0d63fb32b2b8c3 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-09 @2966 skb->ip_summed = CHECKSUM_UNNECESSARY; b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2967 } else { b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2968 dev_kfree_skb(skb); b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2969 goto next_pkt; b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2970 } 5ed2616f621b41 drivers/net/forcedeth.c Ayaz Abdulla 2006-06-10 2971 } ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2972 /* got a valid packet - forward it to the network core */ ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2973 skb_put(skb, len); ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2974 skb->protocol = eth_type_trans(skb, dev); 53f224cc5f8f65 drivers/net/forcedeth.c Tom Herbert 2010-05-03 2975 napi_gro_receive(&np->napi, skb); f5d827aece3630 drivers/net/ethernet/nvidia/forcedeth.c david decotigny 2011-11-16 2976 u64_stats_update_begin(&np->swstats_rx_syncp); f4b633b911fd3b drivers/net/ethernet/nvidia/forcedeth.c Zhu Yanjun 2019-09-05 2977 nv_txrx_stats_inc(stat_rx_packets); f4b633b911fd3b drivers/net/ethernet/nvidia/forcedeth.c Zhu Yanjun 2019-09-05 2978 nv_txrx_stats_add(stat_rx_bytes, len); f5d827aece3630 drivers/net/ethernet/nvidia/forcedeth.c david decotigny 2011-11-16 2979 u64_stats_update_end(&np->swstats_rx_syncp); ^1da177e4c3f41 drivers/net/forcedeth.c Linus Torvalds 2005-04-16 2980 next_pkt: b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2981 if (unlikely(np->get_rx.orig++ == np->last_rx.orig)) 64f26abb17ca2e drivers/net/ethernet/nvidia/forcedeth.c Zhu Yanjun 2018-01-04 2982 np->get_rx.orig = np->rx_ring.orig; b01867cbd18539 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2983 if (unlikely(np->get_rx_ctx++ == np->last_rx_ctx)) a9124ec443babc drivers/net/ethernet/nvidia/forcedeth.c Zhu Yanjun 2018-01-23 2984 np->get_rx_ctx = np->rx_skb; bcb5febb248f7c drivers/net/forcedeth.c Ingo Molnar 2007-10-16 2985 bcb5febb248f7c drivers/net/forcedeth.c Ingo Molnar 2007-10-16 2986 rx_work++; 86b22b0dfbf462 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2987 } 86b22b0dfbf462 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2988 bcb5febb248f7c drivers/net/forcedeth.c Ingo Molnar 2007-10-16 2989 return rx_work; 86b22b0dfbf462 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2990 } 86b22b0dfbf462 drivers/net/forcedeth.c Ayaz Abdulla 2007-01-21 2991 :::::: The code at line 2966 was first introduced by commit :::::: 0d63fb32b2b8c3464d9c1afc3ce3fd3ceec025b6 forcedeth: rx skb recycle :::::: TO: Ayaz Abdulla <[email protected]> :::::: CC: Jeff Garzik <[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]
