drm/nouveau/pwr: initial implementation

Dan Carpenter dan.carpenter at oracle.com
Tue Nov 12 01:54:33 PST 2013


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



More information about the dri-devel mailing list