From: Dan Carpenter <dan.carpenter@oracle.com>
To: kbuild@lists.01.org,
"Christian König" <ckoenig.leichtzumerken@gmail.com>,
daniel.vetter@ffwll.ch, dri-devel@lists.freedesktop.org
Cc: kbuild-all@lists.01.org, lkp@intel.com
Subject: Re: [PATCH] dma-buf: fix and rework dma_buf_poll v3
Date: Wed, 23 Jun 2021 12:28:03 +0300 [thread overview]
Message-ID: <202106230954.VIV4hcoW-lkp@intel.com> (raw)
In-Reply-To: <20210622130459.122723-1-christian.koenig@amd.com>
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 <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
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/kbuild-all@lists.01.org
prev parent reply other threads:[~2021-06-23 9:28 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-22 13:04 [PATCH] dma-buf: fix and rework dma_buf_poll v3 Christian König
2021-06-22 13:07 ` Christian König
2021-06-22 17:02 ` Daniel Vetter
2021-06-23 11:17 ` Christian König
2021-06-23 11:30 ` Daniel Vetter
2021-06-23 12:42 ` Christian König
2021-06-23 13:56 ` Daniel Vetter
2021-06-23 9:28 ` Dan Carpenter [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202106230954.VIV4hcoW-lkp@intel.com \
--to=dan.carpenter@oracle.com \
--cc=ckoenig.leichtzumerken@gmail.com \
--cc=daniel.vetter@ffwll.ch \
--cc=dri-devel@lists.freedesktop.org \
--cc=kbuild-all@lists.01.org \
--cc=kbuild@lists.01.org \
--cc=lkp@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox