From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FAKE_REPLY_C,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2168DC4743C for ; Wed, 23 Jun 2021 09:28:20 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id D3F5060FF2 for ; Wed, 23 Jun 2021 09:28:19 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org D3F5060FF2 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=oracle.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 69C906E895; Wed, 23 Jun 2021 09:28:19 +0000 (UTC) Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by gabe.freedesktop.org (Postfix) with ESMTPS id 780F76E895 for ; Wed, 23 Jun 2021 09:28:18 +0000 (UTC) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 15N9BLRS006208; Wed, 23 Jun 2021 09:28:14 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=date : from : to : cc : subject : message-id : mime-version : content-type : content-transfer-encoding : in-reply-to; s=corp-2020-01-29; bh=OZgDAAB/4jnzoen8zljnpzLeRTcRHe3+B7Io1zKSfr0=; b=nn1umI4UQh9XsCrxQIwb7pQbOLqdmucZpC1jeSwYuDxQRD5Gajw6WYYL8gVlRrhC8qV6 bE8miQOczqtIO12Pcx/Xry0bSgZnuCJpLKL8S1SojekuzriLNcCikx6ihywdQ6dMIBjv RMjzMVmJOBNz8YAm6o4ZGuR88p0+rOPDplI5N6dB5mp7IdYyqvp4nGy7NLUtEL5NfU0J U/y2fTPQSvKwehsTui1MUCUBnUt6s5NR9NSmypMckAj3qZeLcQeAGaKb97w/i5QklWc9 6unmtKu97HVJOdn1w1A8axQu3jo/u8pLUF04VdfjEAPtRVhlcYKCY4U9/ZDMJiwydFCv eA== Received: from oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 39bf94td3s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 23 Jun 2021 09:28:14 +0000 Received: from aserp3020.oracle.com (aserp3020.oracle.com [127.0.0.1]) by pps.podrdrct (8.16.0.36/8.16.0.36) with SMTP id 15N9SDbs106842; Wed, 23 Jun 2021 09:28:13 GMT Received: from pps.reinject (localhost [127.0.0.1]) by aserp3020.oracle.com with ESMTP id 3998d8vene-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 23 Jun 2021 09:28:13 +0000 Received: from aserp3020.oracle.com (aserp3020.oracle.com [127.0.0.1]) by pps.reinject (8.16.0.36/8.16.0.36) with SMTP id 15N9SDd3106827; Wed, 23 Jun 2021 09:28:13 GMT Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by aserp3020.oracle.com with ESMTP id 3998d8ven0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 23 Jun 2021 09:28:13 +0000 Received: from abhmp0019.oracle.com (abhmp0019.oracle.com [141.146.116.25]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 15N9SAkL002318; Wed, 23 Jun 2021 09:28:10 GMT Received: from kadam (/102.222.70.252) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 23 Jun 2021 02:28:09 -0700 Date: Wed, 23 Jun 2021 12:28:03 +0300 From: Dan Carpenter To: kbuild@lists.01.org, Christian =?iso-8859-1?Q?K=F6nig?= , daniel.vetter@ffwll.ch, dri-devel@lists.freedesktop.org Subject: Re: [PATCH] dma-buf: fix and rework dma_buf_poll v3 Message-ID: <202106230954.VIV4hcoW-lkp@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20210622130459.122723-1-christian.koenig@amd.com> User-Agent: Mutt/1.9.4 (2018-02-28) X-Proofpoint-ORIG-GUID: XJY4NQc0pPEDxR0at4Yrgj3Xj3Sl30Sk X-Proofpoint-GUID: XJY4NQc0pPEDxR0at4Yrgj3Xj3Sl30Sk X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kbuild-all@lists.01.org, lkp@intel.com Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" 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 Reported-by: Dan Carpenter 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 From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============0542946786242753336==" MIME-Version: 1.0 From: kernel test robot Subject: Re: [PATCH] dma-buf: fix and rework dma_buf_poll v3 Date: Wed, 23 Jun 2021 09:23:44 +0800 Message-ID: <202106230954.VIV4hcoW-lkp@intel.com> List-Id: To: kbuild@lists.01.org --===============0542946786242753336== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable CC: kbuild-all(a)lists.01.org In-Reply-To: <20210622130459.122723-1-christian.koenig@amd.com> References: <20210622130459.122723-1-christian.koenig@amd.com> TO: "Christian K=C3=B6nig" TO: daniel.vetter(a)ffwll.ch TO: dri-devel(a)lists.freedesktop.org Hi "Christian, I love your patch! Perhaps something to improve: [auto build test WARNING on tegra-drm/drm/tegra/for-next] [also build test WARNING on linus/master v5.13-rc7] [cannot apply to next-20210622] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Christian-K-nig/dma-buf-fi= x-and-rework-dma_buf_poll-v3/20210622-210643 base: git://anongit.freedesktop.org/tegra/linux.git drm/tegra/for-next :::::: branch date: 12 hours ago :::::: commit date: 12 hours ago 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 Reported-by: Dan Carpenter smatch warnings: drivers/dma-buf/dma-buf.c:290 dma_buf_poll() error: uninitialized symbol 'f= ence_excl'. vim +/fence_excl +290 drivers/dma-buf/dma-buf.c 9b495a5887994a Maarten Lankhorst 2014-07-01 207 = afc9a42b7464f7 Al Viro 2017-07-03 208 static __poll_t dma_buf_p= oll(struct file *file, poll_table *poll) 9b495a5887994a Maarten Lankhorst 2014-07-01 209 { d40fce0f010662 Christian K=C3=B6nig 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=C3=B6nig 2019-08-11 212 struct dma_resv *re= sv; 52791eeec1d9f4 Christian K=C3=B6nig 2019-08-11 213 struct dma_resv_lis= t *fobj; f54d1867005c33 Chris Wilson 2016-10-25 214 struct dma_fence *fence_= excl; b016cd6ed4b772 Chris Wilson 2019-08-14 215 unsigned shared_count, s= eq; d40fce0f010662 Christian K=C3=B6nig 2021-06-22 216 struct dma_fence *f= ence; d40fce0f010662 Christian K=C3=B6nig 2021-06-22 217 __poll_t events; d40fce0f010662 Christian K=C3=B6nig 2021-06-22 218 int r, i; 9b495a5887994a Maarten Lankhorst 2014-07-01 219 = 9b495a5887994a Maarten Lankhorst 2014-07-01 220 dmabuf =3D 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 =3D 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 =3D poll_requeste= d_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=C3=B6nig 2021-06-22 232 dcb =3D events & EP= OLLOUT ? &dmabuf->cb_out : &dmabuf->cb_in; d40fce0f010662 Christian K=C3=B6nig 2021-06-22 233 = d40fce0f010662 Christian K=C3=B6nig 2021-06-22 234 /* Only queue a new= one if we are not still waiting for the old one */ d40fce0f010662 Christian K=C3=B6nig 2021-06-22 235 spin_lock_irq(&dmab= uf->poll.lock); d40fce0f010662 Christian K=C3=B6nig 2021-06-22 236 if (dcb->active) d40fce0f010662 Christian K=C3=B6nig 2021-06-22 237 events =3D 0; d40fce0f010662 Christian K=C3=B6nig 2021-06-22 238 else d40fce0f010662 Christian K=C3=B6nig 2021-06-22 239 dcb->active =3D ev= ents; d40fce0f010662 Christian K=C3=B6nig 2021-06-22 240 spin_unlock_irq(&dm= abuf->poll.lock); d40fce0f010662 Christian K=C3=B6nig 2021-06-22 241 if (!events) d40fce0f010662 Christian K=C3=B6nig 2021-06-22 242 return 0; d40fce0f010662 Christian K=C3=B6nig 2021-06-22 243 = b016cd6ed4b772 Chris Wilson 2019-08-14 244 retry: b016cd6ed4b772 Chris Wilson 2019-08-14 245 seq =3D read_seqcount_be= gin(&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 =3D rcu_dereference= (resv->fence); d40fce0f010662 Christian K=C3=B6nig 2021-06-22 249 if (fobj && events = & EPOLLOUT) b016cd6ed4b772 Chris Wilson 2019-08-14 250 shared_count =3D fobj->= shared_count; b016cd6ed4b772 Chris Wilson 2019-08-14 251 else b016cd6ed4b772 Chris Wilson 2019-08-14 252 shared_count =3D 0; d40fce0f010662 Christian K=C3=B6nig 2021-06-22 253 = d40fce0f010662 Christian K=C3=B6nig 2021-06-22 254 for (i =3D 0; i < s= hared_count; ++i) { d40fce0f010662 Christian K=C3=B6nig 2021-06-22 255 fence =3D rcu_dere= ference(fobj->shared[i]); d40fce0f010662 Christian K=C3=B6nig 2021-06-22 256 fence =3D dma_fenc= e_get_rcu(fence); d40fce0f010662 Christian K=C3=B6nig 2021-06-22 257 if (!fence || read= _seqcount_retry(&resv->seq, seq)) { d40fce0f010662 Christian K=C3=B6nig 2021-06-22 258 /* Concurrent mod= ify detected, force re-check */ d40fce0f010662 Christian K=C3=B6nig 2021-06-22 259 dma_fence_put(fen= ce); 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=C3=B6nig 2021-06-22 264 r =3D dma_fence_ad= d_callback(fence, &dcb->cb, dma_buf_poll_cb); d40fce0f010662 Christian K=C3=B6nig 2021-06-22 265 if (!r) { d40fce0f010662 Christian K=C3=B6nig 2021-06-22 266 /* Callback queue= d */ d40fce0f010662 Christian K=C3=B6nig 2021-06-22 267 events =3D 0; d40fce0f010662 Christian K=C3=B6nig 2021-06-22 268 goto out; 9b495a5887994a Maarten Lankhorst 2014-07-01 269 } d40fce0f010662 Christian K=C3=B6nig 2021-06-22 270 dma_fence_put(fenc= e); 04a5faa8cbe5a8 Maarten Lankhorst 2014-07-01 271 } 9b495a5887994a Maarten Lankhorst 2014-07-01 272 = d40fce0f010662 Christian K=C3=B6nig 2021-06-22 273 fence =3D dma_resv_= get_excl(resv); d40fce0f010662 Christian K=C3=B6nig 2021-06-22 274 if (fence && shared= _count =3D=3D 0) { d40fce0f010662 Christian K=C3=B6nig 2021-06-22 275 fence =3D dma_fenc= e_get_rcu(fence); d40fce0f010662 Christian K=C3=B6nig 2021-06-22 276 if (!fence || read= _seqcount_retry(&resv->seq, seq)) { d40fce0f010662 Christian K=C3=B6nig 2021-06-22 277 /* Concurrent mod= ify detected, force re-check */ d40fce0f010662 Christian K=C3=B6nig 2021-06-22 278 dma_fence_put(fen= ce); d40fce0f010662 Christian K=C3=B6nig 2021-06-22 279 rcu_read_unlock(); d40fce0f010662 Christian K=C3=B6nig 2021-06-22 280 goto retry; 9b495a5887994a Maarten Lankhorst 2014-07-01 281 = d40fce0f010662 Christian K=C3=B6nig 2021-06-22 282 } 9b495a5887994a Maarten Lankhorst 2014-07-01 283 = d40fce0f010662 Christian K=C3=B6nig 2021-06-22 284 r =3D dma_fence_ad= d_callback(fence, &dcb->cb, dma_buf_poll_cb); d40fce0f010662 Christian K=C3=B6nig 2021-06-22 285 if (!r) { d40fce0f010662 Christian K=C3=B6nig 2021-06-22 286 /* Callback queue= d */ d40fce0f010662 Christian K=C3=B6nig 2021-06-22 287 events =3D 0; 9b495a5887994a Maarten Lankhorst 2014-07-01 288 goto out; 3c3b177a9369b2 Maarten Lankhorst 2014-07-01 289 } d40fce0f010662 Christian K=C3=B6nig 2021-06-22 @290 dma_fence_put(fenc= e_excl); 04a5faa8cbe5a8 Maarten Lankhorst 2014-07-01 291 } 9b495a5887994a Maarten Lankhorst 2014-07-01 292 = 9b495a5887994a Maarten Lankhorst 2014-07-01 293 /* No callback queued, w= ake up any additional waiters. */ 9b495a5887994a Maarten Lankhorst 2014-07-01 294 dma_buf_poll_cb(NULL, &d= cb->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 } 9b495a5887994a Maarten Lankhorst 2014-07-01 300 = --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org --===============0542946786242753336== Content-Type: application/gzip MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="config.gz" 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 5f5m6J0hl6lqEg/jv89W17H/D67QLQw9IwMA --===============0542946786242753336==-- From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============4789802316433928851==" MIME-Version: 1.0 From: Dan Carpenter To: kbuild-all@lists.01.org Subject: Re: [PATCH] dma-buf: fix and rework dma_buf_poll v3 Date: Wed, 23 Jun 2021 12:28:03 +0300 Message-ID: <202106230954.VIV4hcoW-lkp@intel.com> In-Reply-To: <20210622130459.122723-1-christian.koenig@amd.com> List-Id: --===============4789802316433928851== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi "Christian, url: https://github.com/0day-ci/linux/commits/Christian-K-nig/dma-buf-fi= x-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 Reported-by: Dan Carpenter smatch warnings: drivers/dma-buf/dma-buf.c:290 dma_buf_poll() error: uninitialized symbol 'f= ence_excl'. vim +/fence_excl +290 drivers/dma-buf/dma-buf.c afc9a42b7464f7 Al Viro 2017-07-03 208 static __poll_t dma_buf_p= oll(struct file *file, poll_table *poll) 9b495a5887994a Maarten Lankhorst 2014-07-01 209 { d40fce0f010662 Christian K=C3=B6nig 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=C3=B6nig 2019-08-11 212 struct dma_resv *re= sv; 52791eeec1d9f4 Christian K=C3=B6nig 2019-08-11 213 struct dma_resv_lis= t *fobj; f54d1867005c33 Chris Wilson 2016-10-25 214 struct dma_fence *fence_= excl; b016cd6ed4b772 Chris Wilson 2019-08-14 215 unsigned shared_count, s= eq; d40fce0f010662 Christian K=C3=B6nig 2021-06-22 216 struct dma_fence *f= ence; d40fce0f010662 Christian K=C3=B6nig 2021-06-22 217 __poll_t events; d40fce0f010662 Christian K=C3=B6nig 2021-06-22 218 int r, i; 9b495a5887994a Maarten Lankhorst 2014-07-01 219 = 9b495a5887994a Maarten Lankhorst 2014-07-01 220 dmabuf =3D 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 =3D 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 =3D poll_requeste= d_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=C3=B6nig 2021-06-22 232 dcb =3D events & EP= OLLOUT ? &dmabuf->cb_out : &dmabuf->cb_in; d40fce0f010662 Christian K=C3=B6nig 2021-06-22 233 = d40fce0f010662 Christian K=C3=B6nig 2021-06-22 234 /* Only queue a new= one if we are not still waiting for the old one */ d40fce0f010662 Christian K=C3=B6nig 2021-06-22 235 spin_lock_irq(&dmab= uf->poll.lock); d40fce0f010662 Christian K=C3=B6nig 2021-06-22 236 if (dcb->active) d40fce0f010662 Christian K=C3=B6nig 2021-06-22 237 events =3D 0; d40fce0f010662 Christian K=C3=B6nig 2021-06-22 238 else d40fce0f010662 Christian K=C3=B6nig 2021-06-22 239 dcb->active =3D ev= ents; d40fce0f010662 Christian K=C3=B6nig 2021-06-22 240 spin_unlock_irq(&dm= abuf->poll.lock); d40fce0f010662 Christian K=C3=B6nig 2021-06-22 241 if (!events) d40fce0f010662 Christian K=C3=B6nig 2021-06-22 242 return 0; d40fce0f010662 Christian K=C3=B6nig 2021-06-22 243 = b016cd6ed4b772 Chris Wilson 2019-08-14 244 retry: b016cd6ed4b772 Chris Wilson 2019-08-14 245 seq =3D read_seqcount_be= gin(&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 =3D rcu_dereference= (resv->fence); d40fce0f010662 Christian K=C3=B6nig 2021-06-22 249 if (fobj && events = & EPOLLOUT) b016cd6ed4b772 Chris Wilson 2019-08-14 250 shared_count =3D fobj->= shared_count; b016cd6ed4b772 Chris Wilson 2019-08-14 251 else b016cd6ed4b772 Chris Wilson 2019-08-14 252 shared_count =3D 0; d40fce0f010662 Christian K=C3=B6nig 2021-06-22 253 = d40fce0f010662 Christian K=C3=B6nig 2021-06-22 254 for (i =3D 0; i < s= hared_count; ++i) { d40fce0f010662 Christian K=C3=B6nig 2021-06-22 255 fence =3D rcu_dere= ference(fobj->shared[i]); d40fce0f010662 Christian K=C3=B6nig 2021-06-22 256 fence =3D dma_fenc= e_get_rcu(fence); d40fce0f010662 Christian K=C3=B6nig 2021-06-22 257 if (!fence || read= _seqcount_retry(&resv->seq, seq)) { d40fce0f010662 Christian K=C3=B6nig 2021-06-22 258 /* Concurrent mod= ify detected, force re-check */ d40fce0f010662 Christian K=C3=B6nig 2021-06-22 259 dma_fence_put(fen= ce); 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=C3=B6nig 2021-06-22 264 r =3D dma_fence_ad= d_callback(fence, &dcb->cb, dma_buf_poll_cb); d40fce0f010662 Christian K=C3=B6nig 2021-06-22 265 if (!r) { d40fce0f010662 Christian K=C3=B6nig 2021-06-22 266 /* Callback queue= d */ d40fce0f010662 Christian K=C3=B6nig 2021-06-22 267 events =3D 0; d40fce0f010662 Christian K=C3=B6nig 2021-06-22 268 goto out; 9b495a5887994a Maarten Lankhorst 2014-07-01 269 } d40fce0f010662 Christian K=C3=B6nig 2021-06-22 270 dma_fence_put(fenc= e); 04a5faa8cbe5a8 Maarten Lankhorst 2014-07-01 271 } 9b495a5887994a Maarten Lankhorst 2014-07-01 272 = d40fce0f010662 Christian K=C3=B6nig 2021-06-22 273 fence =3D dma_resv_= get_excl(resv); d40fce0f010662 Christian K=C3=B6nig 2021-06-22 274 if (fence && shared= _count =3D=3D 0) { d40fce0f010662 Christian K=C3=B6nig 2021-06-22 275 fence =3D dma_fenc= e_get_rcu(fence); d40fce0f010662 Christian K=C3=B6nig 2021-06-22 276 if (!fence || read= _seqcount_retry(&resv->seq, seq)) { d40fce0f010662 Christian K=C3=B6nig 2021-06-22 277 /* Concurrent mod= ify detected, force re-check */ d40fce0f010662 Christian K=C3=B6nig 2021-06-22 278 dma_fence_put(fen= ce); d40fce0f010662 Christian K=C3=B6nig 2021-06-22 279 rcu_read_unlock(); d40fce0f010662 Christian K=C3=B6nig 2021-06-22 280 goto retry; 9b495a5887994a Maarten Lankhorst 2014-07-01 281 = d40fce0f010662 Christian K=C3=B6nig 2021-06-22 282 } 9b495a5887994a Maarten Lankhorst 2014-07-01 283 = d40fce0f010662 Christian K=C3=B6nig 2021-06-22 284 r =3D dma_fence_ad= d_callback(fence, &dcb->cb, dma_buf_poll_cb); d40fce0f010662 Christian K=C3=B6nig 2021-06-22 285 if (!r) { d40fce0f010662 Christian K=C3=B6nig 2021-06-22 286 /* Callback queue= d */ d40fce0f010662 Christian K=C3=B6nig 2021-06-22 287 events =3D 0; 9b495a5887994a Maarten Lankhorst 2014-07-01 288 goto out; 3c3b177a9369b2 Maarten Lankhorst 2014-07-01 289 } d40fce0f010662 Christian K=C3=B6nig 2021-06-22 @290 dma_fence_put(fenc= e_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, w= ake up any additional waiters. */ 9b495a5887994a Maarten Lankhorst 2014-07-01 294 dma_buf_poll_cb(NULL, &d= cb->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(a)lists.01.org --===============4789802316433928851==--