* re: drm/nouveau/pwr: initial implementation
@ 2013-11-12 9:54 Dan Carpenter
2013-11-12 21:47 ` Ben Skeggs
0 siblings, 1 reply; 2+ messages in thread
From: Dan Carpenter @ 2013-11-12 9:54 UTC (permalink / raw)
To: bskeggs; +Cc: dri-devel
Hello Ben Skeggs,
The patch ff4b42c7532e: "drm/nouveau/pwr: initial implementation"
from Oct 15, 2013, leads to the following Smatch warning:
"drivers/gpu/drm/nouveau/core/subdev/pwr/base.c:48 nouveau_pwr_send()
warn: 'mutex:&subdev->mutex' is sometimes locked here and sometimes unlocked."
drivers/gpu/drm/nouveau/core/subdev/pwr/base.c
35 /* we currently only support a single process at a time waiting
36 * on a synchronous reply, take the PPWR mutex and tell the
37 * receive handler what we're waiting for
38 */
39 if (reply) {
40 mutex_lock(&subdev->mutex);
41 ppwr->recv.message = message;
42 ppwr->recv.process = process;
43 }
44
45 /* wait for a free slot in the fifo */
46 addr = nv_rd32(ppwr, 0x10a4a0);
47 if (!nv_wait_ne(ppwr, 0x10a4b0, 0xffffffff, addr ^ 8))
48 return -EBUSY;
Should we have an if (reply) mutex_unlock(&subdev->mutex) before the
return?
49
regards,
dan carpenter
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: drm/nouveau/pwr: initial implementation
2013-11-12 9:54 drm/nouveau/pwr: initial implementation Dan Carpenter
@ 2013-11-12 21:47 ` Ben Skeggs
0 siblings, 0 replies; 2+ messages in thread
From: Ben Skeggs @ 2013-11-12 21:47 UTC (permalink / raw)
To: Dan Carpenter; +Cc: dri-devel
----- Original Message -----
> From: "Dan Carpenter" <dan.carpenter@oracle.com>
> To: bskeggs@redhat.com
> Cc: dri-devel@lists.freedesktop.org
> Sent: Tuesday, 12 November, 2013 7:54:33 PM
> Subject: re: drm/nouveau/pwr: initial implementation
>
> Hello Ben Skeggs,
Hey,
>
> The patch ff4b42c7532e: "drm/nouveau/pwr: initial implementation"
> from Oct 15, 2013, leads to the following Smatch warning:
> "drivers/gpu/drm/nouveau/core/subdev/pwr/base.c:48 nouveau_pwr_send()
> warn: 'mutex:&subdev->mutex' is sometimes locked here and sometimes
> unlocked."
>
> drivers/gpu/drm/nouveau/core/subdev/pwr/base.c
> 35 /* we currently only support a single process at a time
> waiting
> 36 * on a synchronous reply, take the PPWR mutex and tell the
> 37 * receive handler what we're waiting for
> 38 */
> 39 if (reply) {
> 40 mutex_lock(&subdev->mutex);
> 41 ppwr->recv.message = message;
> 42 ppwr->recv.process = process;
> 43 }
> 44
> 45 /* wait for a free slot in the fifo */
> 46 addr = nv_rd32(ppwr, 0x10a4a0);
> 47 if (!nv_wait_ne(ppwr, 0x10a4b0, 0xffffffff, addr ^ 8))
> 48 return -EBUSY;
>
> Should we have an if (reply) mutex_unlock(&subdev->mutex) before the
> return?
Yes, we should. It's been reported, no fix pushed to Linus' tree yet as the path that can hit it has been hardcoded as disabled for this release.
Thanks,
Ben.
>
> 49
>
> regards,
> dan carpenter
>
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2013-11-12 21:47 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-12 9:54 drm/nouveau/pwr: initial implementation Dan Carpenter
2013-11-12 21:47 ` Ben Skeggs
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.