All of lore.kernel.org
 help / color / mirror / Atom feed
* [ammarfaizi2-block:dhowells/linux-fs/rxrpc-ringless 35/35] net/rxrpc/recvmsg.c:311:25: sparse: sparse: cast from restricted __be16
@ 2022-05-13  8:59 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-05-13  8:59 UTC (permalink / raw)
  To: David Howells; +Cc: kbuild-all, GNU/Weeb Mailing List, linux-kernel

tree:   https://github.com/ammarfaizi2/linux-block dhowells/linux-fs/rxrpc-ringless
head:   36075641f704b02b4bcaee01d904a06676b32199
commit: 36075641f704b02b4bcaee01d904a06676b32199 [35/35] rxrpc: Don't split up received jumbo packets
config: sh-allmodconfig (https://download.01.org/0day-ci/archive/20220513/202205131657.SjbSnATI-lkp@intel.com/config)
compiler: sh4-linux-gcc (GCC) 11.3.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.4-dirty
        # https://github.com/ammarfaizi2/linux-block/commit/36075641f704b02b4bcaee01d904a06676b32199
        git remote add ammarfaizi2-block https://github.com/ammarfaizi2/linux-block
        git fetch --no-tags ammarfaizi2-block dhowells/linux-fs/rxrpc-ringless
        git checkout 36075641f704b02b4bcaee01d904a06676b32199
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=sh SHELL=/bin/bash net/rxrpc/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


sparse warnings: (new ones prefixed by >>)
>> net/rxrpc/recvmsg.c:311:25: sparse: sparse: cast from restricted __be16
>> net/rxrpc/recvmsg.c:311:25: sparse: sparse: incorrect type in argument 1 (different base types) @@     expected unsigned short [usertype] val @@     got restricted __be16 [addressable] [usertype] cksum @@
   net/rxrpc/recvmsg.c:311:25: sparse:     expected unsigned short [usertype] val
   net/rxrpc/recvmsg.c:311:25: sparse:     got restricted __be16 [addressable] [usertype] cksum
>> net/rxrpc/recvmsg.c:311:25: sparse: sparse: cast from restricted __be16
>> net/rxrpc/recvmsg.c:311:25: sparse: sparse: cast from restricted __be16
>> net/rxrpc/recvmsg.c:311:23: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] cksum @@     got restricted __be16 [usertype] @@
   net/rxrpc/recvmsg.c:311:23: sparse:     expected unsigned short [usertype] cksum
   net/rxrpc/recvmsg.c:311:23: sparse:     got restricted __be16 [usertype]

vim +311 net/rxrpc/recvmsg.c

   275	
   276	/*
   277	 * Set up a data location table for a jumbo DATA packet then verify
   278	 * and decrypt all the subpackets and locate the data for each.  We
   279	 * also need to skip over any duplicate subpackets.
   280	 */
   281	static int rxrpc_verify_data(struct rxrpc_call *call, struct sk_buff *skb)
   282	{
   283		struct rxrpc_jumbo_header jhdr;
   284		struct rxrpc_skb_subpacket *subs;
   285		struct rxrpc_skb_priv *sp = rxrpc_skb(skb);
   286		unsigned int offset = sizeof(struct rxrpc_wire_header);
   287		unsigned int len = skb->len - sizeof(struct rxrpc_wire_header);
   288		rxrpc_seq_t seq = sp->hdr.seq;
   289		int nr_subs = sp->nr_subpackets - 1, i = 0, j;
   290		u16 cksum = sp->hdr.cksum;
   291	
   292		subs = kcalloc(sp->nr_subpackets, sizeof(*sp->subs), GFP_KERNEL);
   293		if (!subs)
   294			return -ENOMEM;
   295		sp->subs = subs;
   296	
   297		for (; j < nr_subs; j++, seq++) {
   298			if (after(seq, call->rx_consumed)) {
   299				subs[i].offset	= offset;
   300				subs[i].len	= RXRPC_JUMBO_DATALEN;
   301				subs[i].cksum	= cksum;
   302				i++;
   303			} else {
   304				sp->hdr.seq++;
   305				sp->nr_subpackets--;
   306			}
   307			offset += RXRPC_JUMBO_DATALEN;
   308			if (skb_copy_bits(skb, offset, &jhdr.cksum, 2) < 0)
   309				return -EPROTO;
   310			offset += sizeof(jhdr);
 > 311			cksum = htons(jhdr.cksum);
   312			len -= RXRPC_JUMBO_SUBPKTLEN;
   313		}
   314	
   315		subs[i].offset	= offset;
   316		subs[i].len	= len;
   317		subs[i].cksum	= cksum;
   318		return call->security->verify_packet(call, skb);
   319	}
   320	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-05-13  9:00 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-05-13  8:59 [ammarfaizi2-block:dhowells/linux-fs/rxrpc-ringless 35/35] net/rxrpc/recvmsg.c:311:25: sparse: sparse: cast from restricted __be16 kernel test robot

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.