All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Dmitry Bezrukov <dmitry.bezrukov@aquantia.com>
Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
	Igor Russkikh <igor.russkikh@aquantia.com>
Subject: drivers/net/usb/aqc111.c:606:34: sparse: sparse: incorrect type in argument 1 (different base types)
Date: Mon, 25 Dec 2023 03:17:23 +0800	[thread overview]
Message-ID: <202312250354.xeVTLITE-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   861deac3b092f37b2c5e6871732f3e11486f7082
commit: 361459cd9642631f048719169da9ef14cbf4a932 net: usb: aqc111: Implement RX data path
date:   5 years ago
config: x86_64-randconfig-x001-20230717 (https://download.01.org/0day-ci/archive/20231225/202312250354.xeVTLITE-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231225/202312250354.xeVTLITE-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202312250354.xeVTLITE-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> drivers/net/usb/aqc111.c:606:34: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected restricted __le64 const [usertype] *p @@     got unsigned long long [usertype] * @@
   drivers/net/usb/aqc111.c:606:34: sparse:     expected restricted __le64 const [usertype] *p
   drivers/net/usb/aqc111.c:606:34: sparse:     got unsigned long long [usertype] *
>> drivers/net/usb/aqc111.c:629:45: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected restricted __le64 const [usertype] *p @@     got unsigned long long [usertype] *[assigned] pkt_desc_ptr @@
   drivers/net/usb/aqc111.c:629:45: sparse:     expected restricted __le64 const [usertype] *p
   drivers/net/usb/aqc111.c:629:45: sparse:     got unsigned long long [usertype] *[assigned] pkt_desc_ptr
   drivers/net/usb/aqc111.c:724:22: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned long long [usertype] @@     got restricted __le64 [usertype] @@
   drivers/net/usb/aqc111.c:724:22: sparse:     expected unsigned long long [usertype]
   drivers/net/usb/aqc111.c:724:22: sparse:     got restricted __le64 [usertype]
   drivers/net/usb/aqc111.c: note: in included file (through include/linux/textsearch.h, include/linux/skbuff.h, include/linux/if_ether.h, ...):
   include/linux/slab.h:332:43: sparse: sparse: dubious: x & !y
   drivers/net/usb/aqc111.c:20:12: warning: 'aqc111_read_cmd_nopm' defined but not used [-Wunused-function]
      20 | static int aqc111_read_cmd_nopm(struct usbnet *dev, u8 cmd, u16 value,
         |            ^~~~~~~~~~~~~~~~~~~~

vim +606 drivers/net/usb/aqc111.c

   585	
   586	static int aqc111_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
   587	{
   588		struct sk_buff *new_skb = NULL;
   589		u32 pkt_total_offset = 0;
   590		u64 *pkt_desc_ptr = NULL;
   591		u32 start_of_descs = 0;
   592		u32 desc_offset = 0; /*RX Header Offset*/
   593		u16 pkt_count = 0;
   594		u64 desc_hdr = 0;
   595		u32 skb_len = 0;
   596	
   597		if (!skb)
   598			goto err;
   599	
   600		if (skb->len == 0)
   601			goto err;
   602	
   603		skb_len = skb->len;
   604		/* RX Descriptor Header */
   605		skb_trim(skb, skb->len - sizeof(desc_hdr));
 > 606		desc_hdr = le64_to_cpup((u64 *)skb_tail_pointer(skb));
   607	
   608		/* Check these packets */
   609		desc_offset = (desc_hdr & AQ_RX_DH_DESC_OFFSET_MASK) >>
   610			      AQ_RX_DH_DESC_OFFSET_SHIFT;
   611		pkt_count = desc_hdr & AQ_RX_DH_PKT_CNT_MASK;
   612		start_of_descs = skb_len - ((pkt_count + 1) *  sizeof(desc_hdr));
   613	
   614		/* self check descs position */
   615		if (start_of_descs != desc_offset)
   616			goto err;
   617	
   618		/* self check desc_offset from header*/
   619		if (desc_offset >= skb_len)
   620			goto err;
   621	
   622		if (pkt_count == 0)
   623			goto err;
   624	
   625		/* Get the first RX packet descriptor */
   626		pkt_desc_ptr = (u64 *)(skb->data + desc_offset);
   627	
   628		while (pkt_count--) {
 > 629			u64 pkt_desc = le64_to_cpup(pkt_desc_ptr);
   630			u32 pkt_len_with_padd = 0;
   631			u32 pkt_len = 0;
   632	
   633			pkt_len = (u32)((pkt_desc & AQ_RX_PD_LEN_MASK) >>
   634				  AQ_RX_PD_LEN_SHIFT);
   635			pkt_len_with_padd = ((pkt_len + 7) & 0x7FFF8);
   636	
   637			pkt_total_offset += pkt_len_with_padd;
   638			if (pkt_total_offset > desc_offset ||
   639			    (pkt_count == 0 && pkt_total_offset != desc_offset)) {
   640				goto err;
   641			}
   642	
   643			if (pkt_desc & AQ_RX_PD_DROP ||
   644			    !(pkt_desc & AQ_RX_PD_RX_OK) ||
   645			    pkt_len > (dev->hard_mtu + AQ_RX_HW_PAD)) {
   646				skb_pull(skb, pkt_len_with_padd);
   647				/* Next RX Packet Descriptor */
   648				pkt_desc_ptr++;
   649				continue;
   650			}
   651	
   652			/* Clone SKB */
   653			new_skb = skb_clone(skb, GFP_ATOMIC);
   654	
   655			if (!new_skb)
   656				goto err;
   657	
   658			new_skb->len = pkt_len;
   659			skb_pull(new_skb, AQ_RX_HW_PAD);
   660			skb_set_tail_pointer(new_skb, new_skb->len);
   661	
   662			new_skb->truesize = SKB_TRUESIZE(new_skb->len);
   663	
   664			usbnet_skb_return(dev, new_skb);
   665			if (pkt_count == 0)
   666				break;
   667	
   668			skb_pull(skb, pkt_len_with_padd);
   669	
   670			/* Next RX Packet Header */
   671			pkt_desc_ptr++;
   672	
   673			new_skb = NULL;
   674		}
   675	
   676		return 1;
   677	
   678	err:
   679		return 0;
   680	}
   681	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

                 reply	other threads:[~2023-12-24 19:18 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202312250354.xeVTLITE-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=dmitry.bezrukov@aquantia.com \
    --cc=igor.russkikh@aquantia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.