All of lore.kernel.org
 help / color / mirror / Atom feed
* drivers/net/ethernet/ti/cpts.c:303 cpts_match_tx_ts() error: double unlocked 'cpts->txq.lock' (orig line 274)
@ 2020-08-29 11:03 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2020-08-29 11:03 UTC (permalink / raw)
  To: kbuild

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

CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Grygorii Strashko <grygorii.strashko@ti.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   4d41ead6ead97c3730bbd186a601a64828668f01
commit: c8f8e47efe66dae775b617982e47a4564d7c4dda net: ethernet: ti: cpts: move tx timestamp processing to ptp worker only
date:   4 months ago
:::::: branch date: 11 hours ago
:::::: commit date: 4 months ago
config: microblaze-randconfig-m031-20200828 (attached as .config)
compiler: microblaze-linux-gcc (GCC) 9.3.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>

New smatch warnings:
drivers/net/ethernet/ti/cpts.c:303 cpts_match_tx_ts() error: double unlocked 'cpts->txq.lock' (orig line 274)
drivers/net/ethernet/ti/cpts.c:332 cpts_process_events() error: double unlocked 'cpts->lock' (orig line 318)

Old smatch warnings:
arch/microblaze/include/asm/thread_info.h:91 current_thread_info() error: uninitialized symbol 'sp'.

# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c8f8e47efe66dae775b617982e47a4564d7c4dda
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout c8f8e47efe66dae775b617982e47a4564d7c4dda
vim +303 drivers/net/ethernet/ti/cpts.c

87c0e764d43aca Richard Cochran   2012-10-29  256  
c8f8e47efe66da Grygorii Strashko 2020-04-23  257  static bool cpts_match_tx_ts(struct cpts *cpts, struct cpts_event *event)
c8f8e47efe66da Grygorii Strashko 2020-04-23  258  {
c8f8e47efe66da Grygorii Strashko 2020-04-23  259  	struct sk_buff_head txq_list;
c8f8e47efe66da Grygorii Strashko 2020-04-23  260  	struct sk_buff *skb, *tmp;
c8f8e47efe66da Grygorii Strashko 2020-04-23  261  	unsigned long flags;
c8f8e47efe66da Grygorii Strashko 2020-04-23  262  	bool found = false;
c8f8e47efe66da Grygorii Strashko 2020-04-23  263  	u32 mtype_seqid;
c8f8e47efe66da Grygorii Strashko 2020-04-23  264  
c8f8e47efe66da Grygorii Strashko 2020-04-23  265  	mtype_seqid = event->high &
c8f8e47efe66da Grygorii Strashko 2020-04-23  266  		      ((MESSAGE_TYPE_MASK << MESSAGE_TYPE_SHIFT) |
c8f8e47efe66da Grygorii Strashko 2020-04-23  267  		       (SEQUENCE_ID_MASK << SEQUENCE_ID_SHIFT) |
c8f8e47efe66da Grygorii Strashko 2020-04-23  268  		       (EVENT_TYPE_MASK << EVENT_TYPE_SHIFT));
c8f8e47efe66da Grygorii Strashko 2020-04-23  269  
c8f8e47efe66da Grygorii Strashko 2020-04-23  270  	__skb_queue_head_init(&txq_list);
c8f8e47efe66da Grygorii Strashko 2020-04-23  271  
c8f8e47efe66da Grygorii Strashko 2020-04-23  272  	spin_lock_irqsave(&cpts->txq.lock, flags);
c8f8e47efe66da Grygorii Strashko 2020-04-23  273  	skb_queue_splice_init(&cpts->txq, &txq_list);
c8f8e47efe66da Grygorii Strashko 2020-04-23 @274  	spin_unlock_irqrestore(&cpts->txq.lock, flags);
c8f8e47efe66da Grygorii Strashko 2020-04-23  275  
c8f8e47efe66da Grygorii Strashko 2020-04-23  276  	skb_queue_walk_safe(&txq_list, skb, tmp) {
c8f8e47efe66da Grygorii Strashko 2020-04-23  277  		struct skb_shared_hwtstamps ssh;
c8f8e47efe66da Grygorii Strashko 2020-04-23  278  		struct cpts_skb_cb_data *skb_cb =
c8f8e47efe66da Grygorii Strashko 2020-04-23  279  					(struct cpts_skb_cb_data *)skb->cb;
c8f8e47efe66da Grygorii Strashko 2020-04-23  280  
c8f8e47efe66da Grygorii Strashko 2020-04-23  281  		if (mtype_seqid == skb_cb->skb_mtype_seqid) {
c8f8e47efe66da Grygorii Strashko 2020-04-23  282  			memset(&ssh, 0, sizeof(ssh));
c8f8e47efe66da Grygorii Strashko 2020-04-23  283  			ssh.hwtstamp = ns_to_ktime(event->timestamp);
c8f8e47efe66da Grygorii Strashko 2020-04-23  284  			skb_tstamp_tx(skb, &ssh);
c8f8e47efe66da Grygorii Strashko 2020-04-23  285  			found = true;
c8f8e47efe66da Grygorii Strashko 2020-04-23  286  			__skb_unlink(skb, &txq_list);
c8f8e47efe66da Grygorii Strashko 2020-04-23  287  			dev_consume_skb_any(skb);
c8f8e47efe66da Grygorii Strashko 2020-04-23  288  			dev_dbg(cpts->dev, "match tx timestamp mtype_seqid %08x\n",
c8f8e47efe66da Grygorii Strashko 2020-04-23  289  				mtype_seqid);
c8f8e47efe66da Grygorii Strashko 2020-04-23  290  			break;
c8f8e47efe66da Grygorii Strashko 2020-04-23  291  		}
c8f8e47efe66da Grygorii Strashko 2020-04-23  292  
c8f8e47efe66da Grygorii Strashko 2020-04-23  293  		if (time_after(jiffies, skb_cb->tmo)) {
c8f8e47efe66da Grygorii Strashko 2020-04-23  294  			/* timeout any expired skbs over 1s */
c8f8e47efe66da Grygorii Strashko 2020-04-23  295  			dev_dbg(cpts->dev, "expiring tx timestamp from txq\n");
c8f8e47efe66da Grygorii Strashko 2020-04-23  296  			__skb_unlink(skb, &txq_list);
c8f8e47efe66da Grygorii Strashko 2020-04-23  297  			dev_consume_skb_any(skb);
c8f8e47efe66da Grygorii Strashko 2020-04-23  298  		}
c8f8e47efe66da Grygorii Strashko 2020-04-23  299  	}
c8f8e47efe66da Grygorii Strashko 2020-04-23  300  
c8f8e47efe66da Grygorii Strashko 2020-04-23  301  	spin_lock_irqsave(&cpts->txq.lock, flags);
c8f8e47efe66da Grygorii Strashko 2020-04-23  302  	skb_queue_splice(&txq_list, &cpts->txq);
c8f8e47efe66da Grygorii Strashko 2020-04-23 @303  	spin_unlock_irqrestore(&cpts->txq.lock, flags);
c8f8e47efe66da Grygorii Strashko 2020-04-23  304  
c8f8e47efe66da Grygorii Strashko 2020-04-23  305  	return found;
c8f8e47efe66da Grygorii Strashko 2020-04-23  306  }
c8f8e47efe66da Grygorii Strashko 2020-04-23  307  
c8f8e47efe66da Grygorii Strashko 2020-04-23  308  static void cpts_process_events(struct cpts *cpts)
c8f8e47efe66da Grygorii Strashko 2020-04-23  309  {
c8f8e47efe66da Grygorii Strashko 2020-04-23  310  	struct list_head *this, *next;
c8f8e47efe66da Grygorii Strashko 2020-04-23  311  	struct cpts_event *event;
c8f8e47efe66da Grygorii Strashko 2020-04-23  312  	LIST_HEAD(events_free);
c8f8e47efe66da Grygorii Strashko 2020-04-23  313  	unsigned long flags;
c8f8e47efe66da Grygorii Strashko 2020-04-23  314  	LIST_HEAD(events);
c8f8e47efe66da Grygorii Strashko 2020-04-23  315  
c8f8e47efe66da Grygorii Strashko 2020-04-23  316  	spin_lock_irqsave(&cpts->lock, flags);
c8f8e47efe66da Grygorii Strashko 2020-04-23  317  	list_splice_init(&cpts->events, &events);
c8f8e47efe66da Grygorii Strashko 2020-04-23 @318  	spin_unlock_irqrestore(&cpts->lock, flags);
c8f8e47efe66da Grygorii Strashko 2020-04-23  319  
c8f8e47efe66da Grygorii Strashko 2020-04-23  320  	list_for_each_safe(this, next, &events) {
c8f8e47efe66da Grygorii Strashko 2020-04-23  321  		event = list_entry(this, struct cpts_event, list);
c8f8e47efe66da Grygorii Strashko 2020-04-23  322  		if (cpts_match_tx_ts(cpts, event) ||
c8f8e47efe66da Grygorii Strashko 2020-04-23  323  		    time_after(jiffies, event->tmo)) {
c8f8e47efe66da Grygorii Strashko 2020-04-23  324  			list_del_init(&event->list);
c8f8e47efe66da Grygorii Strashko 2020-04-23  325  			list_add(&event->list, &events_free);
c8f8e47efe66da Grygorii Strashko 2020-04-23  326  		}
c8f8e47efe66da Grygorii Strashko 2020-04-23  327  	}
c8f8e47efe66da Grygorii Strashko 2020-04-23  328  
c8f8e47efe66da Grygorii Strashko 2020-04-23  329  	spin_lock_irqsave(&cpts->lock, flags);
c8f8e47efe66da Grygorii Strashko 2020-04-23  330  	list_splice_tail(&events, &cpts->events);
c8f8e47efe66da Grygorii Strashko 2020-04-23  331  	list_splice_tail(&events_free, &cpts->pool);
c8f8e47efe66da Grygorii Strashko 2020-04-23 @332  	spin_unlock_irqrestore(&cpts->lock, flags);
c8f8e47efe66da Grygorii Strashko 2020-04-23  333  }
c8f8e47efe66da Grygorii Strashko 2020-04-23  334  

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

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 36331 bytes --]

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

only message in thread, other threads:[~2020-08-29 11:03 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-29 11:03 drivers/net/ethernet/ti/cpts.c:303 cpts_match_tx_ts() error: double unlocked 'cpts->txq.lock' (orig line 274) 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.