CC: [email protected]
CC: [email protected]
TO: Grygorii Strashko <[email protected]>

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 <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

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/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to