All of lore.kernel.org
 help / color / mirror / Atom feed
* net/kcm/kcmsock.c:645 kcm_write_msgs() error: we previously assumed 'psock' could be null (see line 585)
@ 2022-01-25 14:47 ` Dan Carpenter
  0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2022-01-21 19:31 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 13428 bytes --]

CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Christophe Leroy <christophe.leroy@csgroup.eu>
CC: Michael Ellerman <mpe@ellerman.id.au>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   9b57f458985742bd1c585f4c7f36d04634ce1143
commit: 1e688dd2a3d6759d416616ff07afc4bb836c4213 powerpc/bug: Provide better flexibility to WARN_ON/__WARN_FLAGS() with asm goto
date:   5 months ago
:::::: branch date: 5 hours ago
:::::: commit date: 5 months ago
config: powerpc64-randconfig-m031-20220120 (https://download.01.org/0day-ci/archive/20220122/202201220354.fJ3VzqBt-lkp(a)intel.com/config)
compiler: powerpc64-linux-gcc (GCC) 11.2.0

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

smatch warnings:
net/kcm/kcmsock.c:645 kcm_write_msgs() error: we previously assumed 'psock' could be null (see line 585)

vim +/psock +645 net/kcm/kcmsock.c

cd6e111bf5be5c7 Tom Herbert             2016-03-07  569  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  570  /* Write any messages ready on the kcm socket.  Called with kcm sock lock
ab7ac4eb9832e32 Tom Herbert             2016-03-07  571   * held.  Return bytes actually sent or error.
ab7ac4eb9832e32 Tom Herbert             2016-03-07  572   */
ab7ac4eb9832e32 Tom Herbert             2016-03-07  573  static int kcm_write_msgs(struct kcm_sock *kcm)
ab7ac4eb9832e32 Tom Herbert             2016-03-07  574  {
ab7ac4eb9832e32 Tom Herbert             2016-03-07  575  	struct sock *sk = &kcm->sk;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  576  	struct kcm_psock *psock;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  577  	struct sk_buff *skb, *head;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  578  	struct kcm_tx_msg *txm;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  579  	unsigned short fragidx, frag_offset;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  580  	unsigned int sent, total_sent = 0;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  581  	int ret = 0;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  582  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  583  	kcm->tx_wait_more = false;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  584  	psock = kcm->tx_psock;
ab7ac4eb9832e32 Tom Herbert             2016-03-07 @585  	if (unlikely(psock && psock->tx_stopped)) {
ab7ac4eb9832e32 Tom Herbert             2016-03-07  586  		/* A reserved psock was aborted asynchronously. Unreserve
ab7ac4eb9832e32 Tom Herbert             2016-03-07  587  		 * it and we'll retry the message.
ab7ac4eb9832e32 Tom Herbert             2016-03-07  588  		 */
ab7ac4eb9832e32 Tom Herbert             2016-03-07  589  		unreserve_psock(kcm);
cd6e111bf5be5c7 Tom Herbert             2016-03-07  590  		kcm_report_tx_retry(kcm);
ab7ac4eb9832e32 Tom Herbert             2016-03-07  591  		if (skb_queue_empty(&sk->sk_write_queue))
ab7ac4eb9832e32 Tom Herbert             2016-03-07  592  			return 0;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  593  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  594  		kcm_tx_msg(skb_peek(&sk->sk_write_queue))->sent = 0;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  595  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  596  	} else if (skb_queue_empty(&sk->sk_write_queue)) {
ab7ac4eb9832e32 Tom Herbert             2016-03-07  597  		return 0;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  598  	}
ab7ac4eb9832e32 Tom Herbert             2016-03-07  599  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  600  	head = skb_peek(&sk->sk_write_queue);
ab7ac4eb9832e32 Tom Herbert             2016-03-07  601  	txm = kcm_tx_msg(head);
ab7ac4eb9832e32 Tom Herbert             2016-03-07  602  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  603  	if (txm->sent) {
ab7ac4eb9832e32 Tom Herbert             2016-03-07  604  		/* Send of first skbuff in queue already in progress */
ab7ac4eb9832e32 Tom Herbert             2016-03-07  605  		if (WARN_ON(!psock)) {
ab7ac4eb9832e32 Tom Herbert             2016-03-07  606  			ret = -EINVAL;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  607  			goto out;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  608  		}
ab7ac4eb9832e32 Tom Herbert             2016-03-07  609  		sent = txm->sent;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  610  		frag_offset = txm->frag_offset;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  611  		fragidx = txm->fragidx;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  612  		skb = txm->frag_skb;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  613  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  614  		goto do_frag;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  615  	}
ab7ac4eb9832e32 Tom Herbert             2016-03-07  616  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  617  try_again:
ab7ac4eb9832e32 Tom Herbert             2016-03-07  618  	psock = reserve_psock(kcm);
ab7ac4eb9832e32 Tom Herbert             2016-03-07  619  	if (!psock)
ab7ac4eb9832e32 Tom Herbert             2016-03-07  620  		goto out;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  621  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  622  	do {
ab7ac4eb9832e32 Tom Herbert             2016-03-07  623  		skb = head;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  624  		txm = kcm_tx_msg(head);
ab7ac4eb9832e32 Tom Herbert             2016-03-07  625  		sent = 0;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  626  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  627  do_frag_list:
ab7ac4eb9832e32 Tom Herbert             2016-03-07  628  		if (WARN_ON(!skb_shinfo(skb)->nr_frags)) {
ab7ac4eb9832e32 Tom Herbert             2016-03-07  629  			ret = -EINVAL;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  630  			goto out;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  631  		}
ab7ac4eb9832e32 Tom Herbert             2016-03-07  632  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  633  		for (fragidx = 0; fragidx < skb_shinfo(skb)->nr_frags;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  634  		     fragidx++) {
ab7ac4eb9832e32 Tom Herbert             2016-03-07  635  			skb_frag_t *frag;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  636  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  637  			frag_offset = 0;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  638  do_frag:
ab7ac4eb9832e32 Tom Herbert             2016-03-07  639  			frag = &skb_shinfo(skb)->frags[fragidx];
d8e18a516f8f674 Matthew Wilcox (Oracle  2019-07-22  640) 			if (WARN_ON(!skb_frag_size(frag))) {
ab7ac4eb9832e32 Tom Herbert             2016-03-07  641  				ret = -EINVAL;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  642  				goto out;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  643  			}
ab7ac4eb9832e32 Tom Herbert             2016-03-07  644  
ab7ac4eb9832e32 Tom Herbert             2016-03-07 @645  			ret = kernel_sendpage(psock->sk->sk_socket,
d8e18a516f8f674 Matthew Wilcox (Oracle  2019-07-22  646) 					      skb_frag_page(frag),
b54c9d5bd6e38ed Jonathan Lemon          2019-07-30  647  					      skb_frag_off(frag) + frag_offset,
d8e18a516f8f674 Matthew Wilcox (Oracle  2019-07-22  648) 					      skb_frag_size(frag) - frag_offset,
ab7ac4eb9832e32 Tom Herbert             2016-03-07  649  					      MSG_DONTWAIT);
ab7ac4eb9832e32 Tom Herbert             2016-03-07  650  			if (ret <= 0) {
ab7ac4eb9832e32 Tom Herbert             2016-03-07  651  				if (ret == -EAGAIN) {
ab7ac4eb9832e32 Tom Herbert             2016-03-07  652  					/* Save state to try again when there's
ab7ac4eb9832e32 Tom Herbert             2016-03-07  653  					 * write space on the socket
ab7ac4eb9832e32 Tom Herbert             2016-03-07  654  					 */
ab7ac4eb9832e32 Tom Herbert             2016-03-07  655  					txm->sent = sent;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  656  					txm->frag_offset = frag_offset;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  657  					txm->fragidx = fragidx;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  658  					txm->frag_skb = skb;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  659  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  660  					ret = 0;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  661  					goto out;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  662  				}
ab7ac4eb9832e32 Tom Herbert             2016-03-07  663  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  664  				/* Hard failure in sending message, abort this
ab7ac4eb9832e32 Tom Herbert             2016-03-07  665  				 * psock since it has lost framing
71a2fae50895b32 Bhaskar Chowdhury       2021-03-27  666  				 * synchronization and retry sending the
ab7ac4eb9832e32 Tom Herbert             2016-03-07  667  				 * message from the beginning.
ab7ac4eb9832e32 Tom Herbert             2016-03-07  668  				 */
ab7ac4eb9832e32 Tom Herbert             2016-03-07  669  				kcm_abort_tx_psock(psock, ret ? -ret : EPIPE,
ab7ac4eb9832e32 Tom Herbert             2016-03-07  670  						   true);
ab7ac4eb9832e32 Tom Herbert             2016-03-07  671  				unreserve_psock(kcm);
ab7ac4eb9832e32 Tom Herbert             2016-03-07  672  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  673  				txm->sent = 0;
cd6e111bf5be5c7 Tom Herbert             2016-03-07  674  				kcm_report_tx_retry(kcm);
ab7ac4eb9832e32 Tom Herbert             2016-03-07  675  				ret = 0;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  676  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  677  				goto try_again;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  678  			}
ab7ac4eb9832e32 Tom Herbert             2016-03-07  679  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  680  			sent += ret;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  681  			frag_offset += ret;
cd6e111bf5be5c7 Tom Herbert             2016-03-07  682  			KCM_STATS_ADD(psock->stats.tx_bytes, ret);
d8e18a516f8f674 Matthew Wilcox (Oracle  2019-07-22  683) 			if (frag_offset < skb_frag_size(frag)) {
ab7ac4eb9832e32 Tom Herbert             2016-03-07  684  				/* Not finished with this frag */
ab7ac4eb9832e32 Tom Herbert             2016-03-07  685  				goto do_frag;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  686  			}
ab7ac4eb9832e32 Tom Herbert             2016-03-07  687  		}
ab7ac4eb9832e32 Tom Herbert             2016-03-07  688  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  689  		if (skb == head) {
ab7ac4eb9832e32 Tom Herbert             2016-03-07  690  			if (skb_has_frag_list(skb)) {
ab7ac4eb9832e32 Tom Herbert             2016-03-07  691  				skb = skb_shinfo(skb)->frag_list;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  692  				goto do_frag_list;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  693  			}
ab7ac4eb9832e32 Tom Herbert             2016-03-07  694  		} else if (skb->next) {
ab7ac4eb9832e32 Tom Herbert             2016-03-07  695  			skb = skb->next;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  696  			goto do_frag_list;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  697  		}
ab7ac4eb9832e32 Tom Herbert             2016-03-07  698  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  699  		/* Successfully sent the whole packet, account for it. */
ab7ac4eb9832e32 Tom Herbert             2016-03-07  700  		skb_dequeue(&sk->sk_write_queue);
ab7ac4eb9832e32 Tom Herbert             2016-03-07  701  		kfree_skb(head);
ab7ac4eb9832e32 Tom Herbert             2016-03-07  702  		sk->sk_wmem_queued -= sent;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  703  		total_sent += sent;
cd6e111bf5be5c7 Tom Herbert             2016-03-07  704  		KCM_STATS_INCR(psock->stats.tx_msgs);
ab7ac4eb9832e32 Tom Herbert             2016-03-07  705  	} while ((head = skb_peek(&sk->sk_write_queue)));
ab7ac4eb9832e32 Tom Herbert             2016-03-07  706  out:
ab7ac4eb9832e32 Tom Herbert             2016-03-07  707  	if (!head) {
ab7ac4eb9832e32 Tom Herbert             2016-03-07  708  		/* Done with all queued messages. */
ab7ac4eb9832e32 Tom Herbert             2016-03-07  709  		WARN_ON(!skb_queue_empty(&sk->sk_write_queue));
ab7ac4eb9832e32 Tom Herbert             2016-03-07  710  		unreserve_psock(kcm);
ab7ac4eb9832e32 Tom Herbert             2016-03-07  711  	}
ab7ac4eb9832e32 Tom Herbert             2016-03-07  712  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  713  	/* Check if write space is available */
ab7ac4eb9832e32 Tom Herbert             2016-03-07  714  	sk->sk_write_space(sk);
ab7ac4eb9832e32 Tom Herbert             2016-03-07  715  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  716  	return total_sent ? : ret;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  717  }
ab7ac4eb9832e32 Tom Herbert             2016-03-07  718  

:::::: The code at line 645 was first introduced by commit
:::::: ab7ac4eb9832e32a09f4e8042705484d2fb0aad3 kcm: Kernel Connection Multiplexor module

:::::: TO: Tom Herbert <tom@herbertland.com>
:::::: CC: David S. Miller <davem@davemloft.net>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

^ permalink raw reply	[flat|nested] 3+ messages in thread

* net/kcm/kcmsock.c:645 kcm_write_msgs() error: we previously assumed 'psock' could be null (see line 585)
@ 2022-01-25 14:47 ` Dan Carpenter
  0 siblings, 0 replies; 3+ messages in thread
From: Dan Carpenter @ 2022-01-25 14:47 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 3255 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   9b57f458985742bd1c585f4c7f36d04634ce1143
commit: 1e688dd2a3d6759d416616ff07afc4bb836c4213 powerpc/bug: Provide better flexibility to WARN_ON/__WARN_FLAGS() with asm goto
config: powerpc64-randconfig-m031-20220120 (https://download.01.org/0day-ci/archive/20220122/202201220354.fJ3VzqBt-lkp(a)intel.com/config)
compiler: powerpc64-linux-gcc (GCC) 11.2.0

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

smatch warnings:
net/kcm/kcmsock.c:645 kcm_write_msgs() error: we previously assumed 'psock' could be null (see line 585)

vim +/psock +645 net/kcm/kcmsock.c

ab7ac4eb9832e32 Tom Herbert             2016-03-07  589  		unreserve_psock(kcm);
cd6e111bf5be5c7 Tom Herbert             2016-03-07  590  		kcm_report_tx_retry(kcm);
ab7ac4eb9832e32 Tom Herbert             2016-03-07  591  		if (skb_queue_empty(&sk->sk_write_queue))
ab7ac4eb9832e32 Tom Herbert             2016-03-07  592  			return 0;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  593  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  594  		kcm_tx_msg(skb_peek(&sk->sk_write_queue))->sent = 0;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  595  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  596  	} else if (skb_queue_empty(&sk->sk_write_queue)) {
ab7ac4eb9832e32 Tom Herbert             2016-03-07  597  		return 0;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  598  	}
ab7ac4eb9832e32 Tom Herbert             2016-03-07  599  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  600  	head = skb_peek(&sk->sk_write_queue);
ab7ac4eb9832e32 Tom Herbert             2016-03-07  601  	txm = kcm_tx_msg(head);
ab7ac4eb9832e32 Tom Herbert             2016-03-07  602  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  603  	if (txm->sent) {
ab7ac4eb9832e32 Tom Herbert             2016-03-07  604  		/* Send of first skbuff in queue already in progress */
ab7ac4eb9832e32 Tom Herbert             2016-03-07  605  		if (WARN_ON(!psock)) {

This warning is a false positive.

The new Power PC implementation of WARN_ON() is written in asm and
Smatch can only parse C.  I don't have a cross compile system set up so
fixing this is going to be a big headache.  :/

ab7ac4eb9832e32 Tom Herbert             2016-03-07  606  			ret = -EINVAL;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  607  			goto out;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  608  		}
ab7ac4eb9832e32 Tom Herbert             2016-03-07  609  		sent = txm->sent;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  610  		frag_offset = txm->frag_offset;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  611  		fragidx = txm->fragidx;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  612  		skb = txm->frag_skb;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  613  
ab7ac4eb9832e32 Tom Herbert             2016-03-07  614  		goto do_frag;
ab7ac4eb9832e32 Tom Herbert             2016-03-07  615  	}

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: net/kcm/kcmsock.c:645 kcm_write_msgs() error: we previously assumed 'psock' could be null (see line 585)
  2022-01-25 14:47 ` Dan Carpenter
  (?)
@ 2022-01-25 17:11 ` Christophe Leroy
  -1 siblings, 0 replies; 3+ messages in thread
From: Christophe Leroy @ 2022-01-25 17:11 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 2922 bytes --]



Le 25/01/2022 à 15:47, Dan Carpenter a écrit :
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   9b57f458985742bd1c585f4c7f36d04634ce1143
> commit: 1e688dd2a3d6759d416616ff07afc4bb836c4213 powerpc/bug: Provide better flexibility to WARN_ON/__WARN_FLAGS() with asm goto
> config: powerpc64-randconfig-m031-20220120 (https://download.01.org/0day-ci/archive/20220122/202201220354.fJ3VzqBt-lkp(a)intel.com/config)
> compiler: powerpc64-linux-gcc (GCC) 11.2.0
> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <lkp@intel.com>
> Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
> 
> smatch warnings:
> net/kcm/kcmsock.c:645 kcm_write_msgs() error: we previously assumed 'psock' could be null (see line 585)
> 
> vim +/psock +645 net/kcm/kcmsock.c
> 
> ab7ac4eb9832e32 Tom Herbert             2016-03-07  589  		unreserve_psock(kcm);
> cd6e111bf5be5c7 Tom Herbert             2016-03-07  590  		kcm_report_tx_retry(kcm);
> ab7ac4eb9832e32 Tom Herbert             2016-03-07  591  		if (skb_queue_empty(&sk->sk_write_queue))
> ab7ac4eb9832e32 Tom Herbert             2016-03-07  592  			return 0;
> ab7ac4eb9832e32 Tom Herbert             2016-03-07  593
> ab7ac4eb9832e32 Tom Herbert             2016-03-07  594  		kcm_tx_msg(skb_peek(&sk->sk_write_queue))->sent = 0;
> ab7ac4eb9832e32 Tom Herbert             2016-03-07  595
> ab7ac4eb9832e32 Tom Herbert             2016-03-07  596  	} else if (skb_queue_empty(&sk->sk_write_queue)) {
> ab7ac4eb9832e32 Tom Herbert             2016-03-07  597  		return 0;
> ab7ac4eb9832e32 Tom Herbert             2016-03-07  598  	}
> ab7ac4eb9832e32 Tom Herbert             2016-03-07  599
> ab7ac4eb9832e32 Tom Herbert             2016-03-07  600  	head = skb_peek(&sk->sk_write_queue);
> ab7ac4eb9832e32 Tom Herbert             2016-03-07  601  	txm = kcm_tx_msg(head);
> ab7ac4eb9832e32 Tom Herbert             2016-03-07  602
> ab7ac4eb9832e32 Tom Herbert             2016-03-07  603  	if (txm->sent) {
> ab7ac4eb9832e32 Tom Herbert             2016-03-07  604  		/* Send of first skbuff in queue already in progress */
> ab7ac4eb9832e32 Tom Herbert             2016-03-07  605  		if (WARN_ON(!psock)) {
> 
> This warning is a false positive.
> 
> The new Power PC implementation of WARN_ON() is written in asm and
> Smatch can only parse C.  I don't have a cross compile system set up so
> fixing this is going to be a big headache.  :/

Can you explain what the problem is ?

Yes psock could be NULL, that the reason why there is this WARN_ON(), 
isn't it ?
So what does smatch doesn't like here ?

How do I install smatch and how do I use it to reproduce that ?

Is it like sparse, does it set the __CHECKER__ macro ? Would it work if 
we do a simplified C version of WARN_ON() when __CHECKER__ is defined ?

Thanks
Christophe

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-01-25 17:11 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-01-21 19:31 net/kcm/kcmsock.c:645 kcm_write_msgs() error: we previously assumed 'psock' could be null (see line 585) kernel test robot
2022-01-25 14:47 ` Dan Carpenter
2022-01-25 17:11 ` Christophe Leroy

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.