On Wed, Feb 12, 2020 at 01:36:49PM +0200, Mika Westerberg wrote: > On Tue, Feb 11, 2020 at 05:41:38PM +0200, Andy Shevchenko wrote: > > On Tue, Feb 11, 2020 at 04:25:47PM +0300, Mika Westerberg wrote: ... > > > mutex_lock(&ipclock); > > > > > + cmdval = (inlen << 16) | (sub << 12) | cmd; > > > + ipc_command(scu, cmdval); > > > err = intel_scu_ipc_check_status(scu); > > > - > > > - if (!err) { > > > + if (err) { > > > + dev_err(&scu->dev, "IPC command %#x failed with %d\n", cmdval, > > > + err); > > > + } else { > > > for (i = 0; i < outlen; i++) > > > *out++ = ipc_data_readl(scu, 4 * i); > > > } > > > > It's not visible in this context but it looks like above applies here as well. > > You mean move outside of the lock? This one calls ipc_data_readl() > which should be under the lock. I meant to move dev_err() out of the lock. The rest of course requires to stay under it. -- With Best Regards, Andy Shevchenko