linux-kernel.vger.kernel.org archive mirror
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).