Hi "Christian,

url:    
https://github.com/0day-ci/linux/commits/Christian-K-nig/dma-buf-fix-and-rework-dma_buf_poll-v3/20210622-210643
base:   git://anongit.freedesktop.org/tegra/linux.git drm/tegra/for-next
config: i386-randconfig-m021-20210622 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 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]>

smatch warnings:
drivers/dma-buf/dma-buf.c:290 dma_buf_poll() error: uninitialized symbol 
'fence_excl'.

vim +/fence_excl +290 drivers/dma-buf/dma-buf.c

afc9a42b7464f7 Al Viro           2017-07-03  208  static __poll_t 
dma_buf_poll(struct file *file, poll_table *poll)
9b495a5887994a Maarten Lankhorst 2014-07-01  209  {
d40fce0f010662 Christian König   2021-06-22  210        struct 
dma_buf_poll_cb_t *dcb;
9b495a5887994a Maarten Lankhorst 2014-07-01  211        struct dma_buf *dmabuf;
52791eeec1d9f4 Christian König   2019-08-11  212        struct dma_resv *resv;
52791eeec1d9f4 Christian König   2019-08-11  213        struct dma_resv_list 
*fobj;
f54d1867005c33 Chris Wilson      2016-10-25  214        struct dma_fence 
*fence_excl;
b016cd6ed4b772 Chris Wilson      2019-08-14  215        unsigned shared_count, 
seq;
d40fce0f010662 Christian König   2021-06-22  216        struct dma_fence *fence;
d40fce0f010662 Christian König   2021-06-22  217        __poll_t events;
d40fce0f010662 Christian König   2021-06-22  218        int r, i;
9b495a5887994a Maarten Lankhorst 2014-07-01  219  
9b495a5887994a Maarten Lankhorst 2014-07-01  220        dmabuf = 
file->private_data;
9b495a5887994a Maarten Lankhorst 2014-07-01  221        if (!dmabuf || 
!dmabuf->resv)
a9a08845e9acbd Linus Torvalds    2018-02-11  222                return EPOLLERR;
9b495a5887994a Maarten Lankhorst 2014-07-01  223  
9b495a5887994a Maarten Lankhorst 2014-07-01  224        resv = dmabuf->resv;
9b495a5887994a Maarten Lankhorst 2014-07-01  225  
9b495a5887994a Maarten Lankhorst 2014-07-01  226        poll_wait(file, 
&dmabuf->poll, poll);
9b495a5887994a Maarten Lankhorst 2014-07-01  227  
a9a08845e9acbd Linus Torvalds    2018-02-11  228        events = 
poll_requested_events(poll) & (EPOLLIN | EPOLLOUT);
9b495a5887994a Maarten Lankhorst 2014-07-01  229        if (!events)
9b495a5887994a Maarten Lankhorst 2014-07-01  230                return 0;
9b495a5887994a Maarten Lankhorst 2014-07-01  231  
d40fce0f010662 Christian König   2021-06-22  232        dcb = events & EPOLLOUT 
? &dmabuf->cb_out : &dmabuf->cb_in;
d40fce0f010662 Christian König   2021-06-22  233  
d40fce0f010662 Christian König   2021-06-22  234        /* Only queue a new one 
if we are not still waiting for the old one */
d40fce0f010662 Christian König   2021-06-22  235        
spin_lock_irq(&dmabuf->poll.lock);
d40fce0f010662 Christian König   2021-06-22  236        if (dcb->active)
d40fce0f010662 Christian König   2021-06-22  237                events = 0;
d40fce0f010662 Christian König   2021-06-22  238        else
d40fce0f010662 Christian König   2021-06-22  239                dcb->active = 
events;
d40fce0f010662 Christian König   2021-06-22  240        
spin_unlock_irq(&dmabuf->poll.lock);
d40fce0f010662 Christian König   2021-06-22  241        if (!events)
d40fce0f010662 Christian König   2021-06-22  242                return 0;
d40fce0f010662 Christian König   2021-06-22  243  
b016cd6ed4b772 Chris Wilson      2019-08-14  244  retry:
b016cd6ed4b772 Chris Wilson      2019-08-14  245        seq = 
read_seqcount_begin(&resv->seq);
3c3b177a9369b2 Maarten Lankhorst 2014-07-01  246        rcu_read_lock();
b016cd6ed4b772 Chris Wilson      2019-08-14  247  
b016cd6ed4b772 Chris Wilson      2019-08-14  248        fobj = 
rcu_dereference(resv->fence);
d40fce0f010662 Christian König   2021-06-22  249        if (fobj && events & 
EPOLLOUT)
b016cd6ed4b772 Chris Wilson      2019-08-14  250                shared_count = 
fobj->shared_count;
b016cd6ed4b772 Chris Wilson      2019-08-14  251        else
b016cd6ed4b772 Chris Wilson      2019-08-14  252                shared_count = 
0;
d40fce0f010662 Christian König   2021-06-22  253  
d40fce0f010662 Christian König   2021-06-22  254        for (i = 0; i < 
shared_count; ++i) {
d40fce0f010662 Christian König   2021-06-22  255                fence = 
rcu_dereference(fobj->shared[i]);
d40fce0f010662 Christian König   2021-06-22  256                fence = 
dma_fence_get_rcu(fence);
d40fce0f010662 Christian König   2021-06-22  257                if (!fence || 
read_seqcount_retry(&resv->seq, seq)) {
d40fce0f010662 Christian König   2021-06-22  258                        /* 
Concurrent modify detected, force re-check */
d40fce0f010662 Christian König   2021-06-22  259                        
dma_fence_put(fence);
b016cd6ed4b772 Chris Wilson      2019-08-14  260                        
rcu_read_unlock();
b016cd6ed4b772 Chris Wilson      2019-08-14  261                        goto 
retry;
b016cd6ed4b772 Chris Wilson      2019-08-14  262                }
b016cd6ed4b772 Chris Wilson      2019-08-14  263  
d40fce0f010662 Christian König   2021-06-22  264                r = 
dma_fence_add_callback(fence, &dcb->cb, dma_buf_poll_cb);
d40fce0f010662 Christian König   2021-06-22  265                if (!r) {
d40fce0f010662 Christian König   2021-06-22  266                        /* 
Callback queued */
d40fce0f010662 Christian König   2021-06-22  267                        events 
= 0;
d40fce0f010662 Christian König   2021-06-22  268                        goto 
out;
9b495a5887994a Maarten Lankhorst 2014-07-01  269                }
d40fce0f010662 Christian König   2021-06-22  270                
dma_fence_put(fence);
04a5faa8cbe5a8 Maarten Lankhorst 2014-07-01  271        }
9b495a5887994a Maarten Lankhorst 2014-07-01  272  
d40fce0f010662 Christian König   2021-06-22  273        fence = 
dma_resv_get_excl(resv);
d40fce0f010662 Christian König   2021-06-22  274        if (fence && 
shared_count == 0) {
d40fce0f010662 Christian König   2021-06-22  275                fence = 
dma_fence_get_rcu(fence);
d40fce0f010662 Christian König   2021-06-22  276                if (!fence || 
read_seqcount_retry(&resv->seq, seq)) {
d40fce0f010662 Christian König   2021-06-22  277                        /* 
Concurrent modify detected, force re-check */
d40fce0f010662 Christian König   2021-06-22  278                        
dma_fence_put(fence);
d40fce0f010662 Christian König   2021-06-22  279                        
rcu_read_unlock();
d40fce0f010662 Christian König   2021-06-22  280                        goto 
retry;
9b495a5887994a Maarten Lankhorst 2014-07-01  281  
d40fce0f010662 Christian König   2021-06-22  282                }
9b495a5887994a Maarten Lankhorst 2014-07-01  283  
d40fce0f010662 Christian König   2021-06-22  284                r = 
dma_fence_add_callback(fence, &dcb->cb, dma_buf_poll_cb);
d40fce0f010662 Christian König   2021-06-22  285                if (!r) {
d40fce0f010662 Christian König   2021-06-22  286                        /* 
Callback queued */
d40fce0f010662 Christian König   2021-06-22  287                        events 
= 0;
9b495a5887994a Maarten Lankhorst 2014-07-01  288                        goto 
out;
3c3b177a9369b2 Maarten Lankhorst 2014-07-01  289                }
d40fce0f010662 Christian König   2021-06-22 @290                
dma_fence_put(fence_excl);
                                                                              
^^^^^^^^^^
Never initialized.  Is part of the commit missing?

04a5faa8cbe5a8 Maarten Lankhorst 2014-07-01  291        }
9b495a5887994a Maarten Lankhorst 2014-07-01  292  
9b495a5887994a Maarten Lankhorst 2014-07-01  293        /* No callback queued, 
wake up any additional waiters. */
9b495a5887994a Maarten Lankhorst 2014-07-01  294        dma_buf_poll_cb(NULL, 
&dcb->cb);
9b495a5887994a Maarten Lankhorst 2014-07-01  295  
9b495a5887994a Maarten Lankhorst 2014-07-01  296  out:
3c3b177a9369b2 Maarten Lankhorst 2014-07-01  297        rcu_read_unlock();
9b495a5887994a Maarten Lankhorst 2014-07-01  298        return events;
9b495a5887994a Maarten Lankhorst 2014-07-01  299  }

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Reply via email to