CC: [email protected]
CC: [email protected]
CC: Linux Memory Management List <[email protected]>
TO: Kees Cook <[email protected]>
CC: "Gustavo A. R. Silva" <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git 
master
head:   6b8d4927540e416878113f0f7e273ddc939291f3
commit: 03f61041c17914355dde7261be9ccdc821ddd454 [2211/10704] skbuff: Switch 
structure bounds to struct_group()
:::::: branch date: 9 hours ago
:::::: commit date: 6 weeks ago
config: x86_64-randconfig-c007-20220102 
(https://download.01.org/0day-ci/archive/20220105/[email protected]/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 
c054402170cd8466683a20385befc0523aba3359)
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/next/linux-next.git/commit/?id=03f61041c17914355dde7261be9ccdc821ddd454
        git remote add linux-next 
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
        git fetch --no-tags linux-next 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/gpu/drm/i915/gem/i915_gem_object.h:210:13: note: Left side of '&&' 
is false
           WARN_ON(ww && !ww->intr);
                      ^
   drivers/gpu/drm/i915/gem/i915_gem_object.h:210:2: note: Taking false branch
           WARN_ON(ww && !ww->intr);
           ^
   drivers/gpu/drm/i915/i915_utils.h:49:20: note: expanded from macro 'WARN_ON'
   #define WARN_ON(x) WARN((x), "%s", "WARN_ON(" __stringify(x) ")")
                      ^
   include/asm-generic/bug.h:131:2: note: expanded from macro 'WARN'
           if (unlikely(__ret_warn_on))                                    \
           ^
   drivers/gpu/drm/i915/gem/i915_gem_object.h:211:37: note: Passing null 
pointer value via 2nd parameter 'ww'
           return __i915_gem_object_lock(obj, ww, true);
                                              ^~
   drivers/gpu/drm/i915/gem/i915_gem_object.h:211:9: note: Calling 
'__i915_gem_object_lock'
           return __i915_gem_object_lock(obj, ww, true);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gem/i915_gem_object.h:181:6: note: 'intr' is true
           if (intr)
               ^~~~
   drivers/gpu/drm/i915/gem/i915_gem_object.h:181:2: note: Taking true branch
           if (intr)
           ^
   drivers/gpu/drm/i915/gem/i915_gem_object.h:182:53: note: 'ww' is null
                   ret = dma_resv_lock_interruptible(obj->base.resv, ww ? 
&ww->ctx : NULL);
                                                                     ^~
   drivers/gpu/drm/i915/gem/i915_gem_object.h:182:53: note: '?' condition is 
false
   drivers/gpu/drm/i915/gem/i915_gem_object.h:186:6: note: Assuming 'ret' is 
not equal to 0
           if (!ret && ww) {
               ^~~~
   drivers/gpu/drm/i915/gem/i915_gem_object.h:186:11: note: Left side of '&&' 
is false
           if (!ret && ww) {
                    ^
   drivers/gpu/drm/i915/gem/i915_gem_object.h:190:6: note: Assuming the 
condition is false
           if (ret == -EALREADY)
               ^~~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gem/i915_gem_object.h:190:2: note: Taking false branch
           if (ret == -EALREADY)
           ^
   drivers/gpu/drm/i915/gem/i915_gem_object.h:193:6: note: Assuming the 
condition is true
           if (ret == -EDEADLK) {
               ^~~~~~~~~~~~~~~
   drivers/gpu/drm/i915/gem/i915_gem_object.h:193:2: note: Taking true branch
           if (ret == -EDEADLK) {
           ^
   drivers/gpu/drm/i915/gem/i915_gem_object.h:195:17: note: Access to field 
'contended' results in a dereference of a null pointer (loaded from variable 
'ww')
                   ww->contended = obj;
                   ~~            ^
   drivers/gpu/drm/i915/gem/i915_gem_userptr.c:294:11: warning: Although the 
value stored to 'ret' is used in the enclosing expression, the value is never 
actually read from 'ret' [clang-analyzer-deadcode.DeadStores]
           pinned = ret = 0;
                    ^     ~
   drivers/gpu/drm/i915/gem/i915_gem_userptr.c:294:11: note: Although the value 
stored to 'ret' is used in the enclosing expression, the value is never 
actually read from 'ret'
           pinned = ret = 0;
                    ^     ~
   drivers/gpu/drm/i915/gem/i915_gem_userptr.c:304:2: warning: Value stored to 
'ret' is never read [clang-analyzer-deadcode.DeadStores]
           ret = 0;
           ^     ~
   drivers/gpu/drm/i915/gem/i915_gem_userptr.c:304:2: note: Value stored to 
'ret' is never read
           ret = 0;
           ^     ~
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   block/blk-map.c:264:4: warning: Value stored to 'ret' is never read 
[clang-analyzer-deadcode.DeadStores]
                           ret = -EINVAL;
                           ^     ~~~~~~~
   block/blk-map.c:264:4: note: Value stored to 'ret' is never read
                           ret = -EINVAL;
                           ^     ~~~~~~~
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   drivers/net/ethernet/dec/tulip/pnic.c:24:6: warning: Value stored to 
'new_csr6' during its initialization is never read 
[clang-analyzer-deadcode.DeadStores]
           u32 new_csr6 = tp->csr6 & ~0x40C40200;
               ^~~~~~~~   ~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/dec/tulip/pnic.c:24:6: note: Value stored to 'new_csr6' 
during its initialization is never read
           u32 new_csr6 = tp->csr6 & ~0x40C40200;
               ^~~~~~~~   ~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
>> drivers/net/ethernet/dlink/dl2k.c:974:18: warning: Dereference of null 
>> pointer [clang-analyzer-core.NullDereference]
                           skb->protocol = eth_type_trans (skb, dev);
                                         ^
   drivers/net/ethernet/dlink/dl2k.c:782:2: note: Loop condition is true.  
Entering loop body
           while (1) {
           ^
   drivers/net/ethernet/dlink/dl2k.c:786:7: note: Assuming 'int_status' is not 
equal to 0
                   if (int_status == 0 || --cnt < 0)
                       ^~~~~~~~~~~~~~~
   drivers/net/ethernet/dlink/dl2k.c:786:7: note: Left side of '||' is false
   drivers/net/ethernet/dlink/dl2k.c:786:3: note: Taking false branch
                   if (int_status == 0 || --cnt < 0)
                   ^
   drivers/net/ethernet/dlink/dl2k.c:790:7: note: Assuming the condition is true
                   if (int_status & RxDMAComplete)
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/dlink/dl2k.c:790:3: note: Taking true branch
                   if (int_status & RxDMAComplete)
                   ^
   drivers/net/ethernet/dlink/dl2k.c:791:4: note: Calling 'receive_packet'
                           receive_packet (dev);
                           ^~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/dlink/dl2k.c:923:2: note: Loop condition is true.  
Entering loop body
           while (1) {
           ^
   drivers/net/ethernet/dlink/dl2k.c:928:7: note: Assuming the condition is 
false
                   if (!(desc->status & cpu_to_le64(RFDDone)) ||
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/dlink/dl2k.c:928:7: note: Left side of '||' is false
   drivers/net/ethernet/dlink/dl2k.c:929:7: note: Assuming the condition is 
false
                       !(desc->status & cpu_to_le64(FrameStart)) ||
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/dlink/dl2k.c:928:7: note: Left side of '||' is false
                   if (!(desc->status & cpu_to_le64(RFDDone)) ||
                       ^
   drivers/net/ethernet/dlink/dl2k.c:930:7: note: Assuming the condition is 
false
                       !(desc->status & cpu_to_le64(FrameEnd)))
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/dlink/dl2k.c:928:3: note: Taking false branch
                   if (!(desc->status & cpu_to_le64(RFDDone)) ||
                   ^
   drivers/net/ethernet/dlink/dl2k.c:936:3: note: Taking false branch
                   if (--cnt < 0)
                   ^
   drivers/net/ethernet/dlink/dl2k.c:939:7: note: Assuming the condition is 
false
                   if (frame_status & RFS_Errors) {
                       ^~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/dlink/dl2k.c:939:3: note: Taking false branch
                   if (frame_status & RFS_Errors) {
                   ^
   drivers/net/ethernet/dlink/dl2k.c:953:8: note: Assuming 'pkt_len' is <= 
'copy_thresh'
                           if (pkt_len > copy_thresh) {
                               ^~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/dlink/dl2k.c:953:4: note: Taking false branch
                           if (pkt_len > copy_thresh) {
                           ^
   drivers/net/ethernet/dlink/dl2k.c:960:22: note: Calling 
'netdev_alloc_skb_ip_align'
                           } else if ((skb = netdev_alloc_skb_ip_align(dev, 
pkt_len))) {
                                             
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/skbuff.h:2945:9: note: Calling '__netdev_alloc_skb_ip_align'
           return __netdev_alloc_skb_ip_align(dev, length, GFP_ATOMIC);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/skbuff.h:2935:2: note: 'skb' initialized here
           struct sk_buff *skb = __netdev_alloc_skb(dev, length + NET_IP_ALIGN, 
gfp);
           ^~~~~~~~~~~~~~~~~~~
   include/linux/skbuff.h:2937:19: note: Left side of '&&' is false
           if (NET_IP_ALIGN && skb)
                            ^
   include/linux/skbuff.h:2939:2: note: Returning pointer (loaded from 'skb')
           return skb;
           ^~~~~~~~~~
   include/linux/skbuff.h:2945:9: note: Returning from 
'__netdev_alloc_skb_ip_align'
           return __netdev_alloc_skb_ip_align(dev, length, GFP_ATOMIC);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/skbuff.h:2945:2: note: Returning pointer
           return __netdev_alloc_skb_ip_align(dev, length, GFP_ATOMIC);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/dlink/dl2k.c:960:22: note: Returning from 
'netdev_alloc_skb_ip_align'
                           } else if ((skb = netdev_alloc_skb_ip_align(dev, 
pkt_len))) {
                                             
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/dlink/dl2k.c:960:16: note: Value assigned to 'skb'
                           } else if ((skb = netdev_alloc_skb_ip_align(dev, 
pkt_len))) {
                                       
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/dlink/dl2k.c:960:16: note: Assuming 'skb' is null
                           } else if ((skb = netdev_alloc_skb_ip_align(dev, 
pkt_len))) {
                                       ^~~
   drivers/net/ethernet/dlink/dl2k.c:960:16: note: Assuming pointer value is 
null
                           } else if ((skb = netdev_alloc_skb_ip_align(dev, 
pkt_len))) {
                                       
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/dlink/dl2k.c:960:11: note: Taking false branch
                           } else if ((skb = netdev_alloc_skb_ip_align(dev, 
pkt_len))) {
                                  ^
   drivers/net/ethernet/dlink/dl2k.c:974:18: note: Dereference of null pointer
                           skb->protocol = eth_type_trans (skb, dev);
                           ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.
   Suppressed 1 warnings (1 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   1 warning generated.

vim +974 drivers/net/ethernet/dlink/dl2k.c

^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 914  
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 915  static int
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 916  receive_packet (struct net_device *dev)
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 917  {
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 918    struct netdev_private *np = netdev_priv(dev);
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 919    int entry = np->cur_rx % RX_RING_SIZE;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 920    int cnt = 30;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 921  
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 922    /* If RFDDone, FrameStart and FrameEnd set, there is a new packet in. */
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 923    while (1) {
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 924            struct netdev_desc *desc = &np->rx_ring[entry];
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 925            int pkt_len;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 926            u64 frame_status;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 927  
78ce8d3d1c75c2 drivers/net/dl2k.c                Al Viro            2007-12-22  
 928            if (!(desc->status & cpu_to_le64(RFDDone)) ||
78ce8d3d1c75c2 drivers/net/dl2k.c                Al Viro            2007-12-22  
 929                !(desc->status & cpu_to_le64(FrameStart)) ||
78ce8d3d1c75c2 drivers/net/dl2k.c                Al Viro            2007-12-22  
 930                !(desc->status & cpu_to_le64(FrameEnd)))
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 931                    break;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 932  
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 933            /* Chip omits the CRC. */
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 934            frame_status = le64_to_cpu(desc->status);
78ce8d3d1c75c2 drivers/net/dl2k.c                Al Viro            2007-12-22  
 935            pkt_len = frame_status & 0xffff;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 936            if (--cnt < 0)
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 937                    break;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 938            /* Update rx error statistics, drop packet. */
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 939            if (frame_status & RFS_Errors) {
a548779bb7da7d drivers/net/ethernet/dlink/dl2k.c Tobias Klauser     2017-04-07  
 940                    dev->stats.rx_errors++;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 941                    if (frame_status & (RxRuntFrame | RxLengthError))
a548779bb7da7d drivers/net/ethernet/dlink/dl2k.c Tobias Klauser     2017-04-07  
 942                            dev->stats.rx_length_errors++;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 943                    if (frame_status & RxFCSError)
a548779bb7da7d drivers/net/ethernet/dlink/dl2k.c Tobias Klauser     2017-04-07  
 944                            dev->stats.rx_crc_errors++;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 945                    if (frame_status & RxAlignmentError && np->speed != 
1000)
a548779bb7da7d drivers/net/ethernet/dlink/dl2k.c Tobias Klauser     2017-04-07  
 946                            dev->stats.rx_frame_errors++;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 947                    if (frame_status & RxFIFOOverrun)
a548779bb7da7d drivers/net/ethernet/dlink/dl2k.c Tobias Klauser     2017-04-07  
 948                            dev->stats.rx_fifo_errors++;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 949            } else {
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 950                    struct sk_buff *skb;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 951  
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 952                    /* Small skbuffs for short packets */
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 953                    if (pkt_len > copy_thresh) {
b49db89e9697dd drivers/net/ethernet/dlink/dl2k.c Christophe JAILLET 2020-09-13  
 954                            dma_unmap_single(&np->pdev->dev,
78ce8d3d1c75c2 drivers/net/dl2k.c                Al Viro            2007-12-22  
 955                                             desc_to_dma(desc),
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 956                                             np->rx_buf_sz,
b49db89e9697dd drivers/net/ethernet/dlink/dl2k.c Christophe JAILLET 2020-09-13  
 957                                             DMA_FROM_DEVICE);
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 958                            skb_put (skb = np->rx_skbuff[entry], pkt_len);
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 959                            np->rx_skbuff[entry] = NULL;
89d71a66c40d62 drivers/net/dl2k.c                Eric Dumazet       2009-10-13  
 960                    } else if ((skb = netdev_alloc_skb_ip_align(dev, 
pkt_len))) {
b49db89e9697dd drivers/net/ethernet/dlink/dl2k.c Christophe JAILLET 2020-09-13  
 961                            dma_sync_single_for_cpu(&np->pdev->dev,
78ce8d3d1c75c2 drivers/net/dl2k.c                Al Viro            2007-12-22  
 962                                                    desc_to_dma(desc),
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 963                                                    np->rx_buf_sz,
b49db89e9697dd drivers/net/ethernet/dlink/dl2k.c Christophe JAILLET 2020-09-13  
 964                                                    DMA_FROM_DEVICE);
8c7b7faaa630fe drivers/net/dl2k.c                David S. Miller    2007-07-10  
 965                            skb_copy_to_linear_data (skb,
689be43945e9ca drivers/net/dl2k.c                David S. Miller    2005-06-28  
 966                                              np->rx_skbuff[entry]->data,
8c7b7faaa630fe drivers/net/dl2k.c                David S. Miller    2007-07-10  
 967                                              pkt_len);
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 968                            skb_put (skb, pkt_len);
b49db89e9697dd drivers/net/ethernet/dlink/dl2k.c Christophe JAILLET 2020-09-13  
 969                            dma_sync_single_for_device(&np->pdev->dev,
78ce8d3d1c75c2 drivers/net/dl2k.c                Al Viro            2007-12-22  
 970                                                       desc_to_dma(desc),
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 971                                                       np->rx_buf_sz,
b49db89e9697dd drivers/net/ethernet/dlink/dl2k.c Christophe JAILLET 2020-09-13  
 972                                                       DMA_FROM_DEVICE);
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 973                    }
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
@974                    skb->protocol = eth_type_trans (skb, dev);
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 975  #if 0
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 976                    /* Checksum done by hw, but csum value unavailable. */
44c10138fd4bbc drivers/net/dl2k.c                Auke Kok           2007-06-08  
 977                    if (np->pdev->pci_rev_id >= 0x0c &&
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 978                            !(frame_status & (TCPError | UDPError | 
IPError))) {
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 979                            skb->ip_summed = CHECKSUM_UNNECESSARY;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 980                    }
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 981  #endif
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 982                    netif_rx (skb);
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 983            }
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 984            entry = (entry + 1) % RX_RING_SIZE;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 985    }
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 986    spin_lock(&np->rx_lock);
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 987    np->cur_rx = entry;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 988    /* Re-allocate skbuffs to fill the descriptor ring */
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 989    entry = np->old_rx;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 990    while (entry != np->cur_rx) {
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 991            struct sk_buff *skb;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 992            /* Dropped packets don't need to re-allocate */
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 993            if (np->rx_skbuff[entry] == NULL) {
89d71a66c40d62 drivers/net/dl2k.c                Eric Dumazet       2009-10-13  
 994                    skb = netdev_alloc_skb_ip_align(dev, np->rx_buf_sz);
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 995                    if (skb == NULL) {
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 996                            np->rx_ring[entry].fraginfo = 0;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 997                            printk (KERN_INFO
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 998                                    "%s: receive_packet: "
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
 999                                    "Unable to re-allocate Rx skbuff.#%d\n",
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
1000                                    dev->name, entry);
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
1001                            break;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
1002                    }
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
1003                    np->rx_skbuff[entry] = skb;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
1004                    np->rx_ring[entry].fraginfo =
b49db89e9697dd drivers/net/ethernet/dlink/dl2k.c Christophe JAILLET 2020-09-13  
1005                        cpu_to_le64(dma_map_single(&np->pdev->dev, 
skb->data,
b49db89e9697dd drivers/net/ethernet/dlink/dl2k.c Christophe JAILLET 2020-09-13  
1006                                                   np->rx_buf_sz, 
DMA_FROM_DEVICE));
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
1007            }
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
1008            np->rx_ring[entry].fraginfo |=
78ce8d3d1c75c2 drivers/net/dl2k.c                Al Viro            2007-12-22  
1009                cpu_to_le64((u64)np->rx_buf_sz << 48);
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
1010            np->rx_ring[entry].status = 0;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
1011            entry = (entry + 1) % RX_RING_SIZE;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
1012    }
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
1013    np->old_rx = entry;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
1014    spin_unlock(&np->rx_lock);
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
1015    return 0;
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
1016  }
^1da177e4c3f41 drivers/net/dl2k.c                Linus Torvalds     2005-04-16  
1017  

:::::: The code at line 974 was first introduced by commit
:::::: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 Linux-2.6.12-rc2

:::::: TO: Linus Torvalds <[email protected]>
:::::: CC: Linus Torvalds <[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