Re: [PATCH 1/2] uio: change to use the mutex lock instead of the spin lock

From: Greg KH
Date: Thu Jul 05 2018 - 12:33:46 EST


On Thu, Jul 05, 2018 at 12:27:27PM -0400, xiubli@xxxxxxxxxx wrote:
> From: Xiubo Li <xiubli@xxxxxxxxxx>
>
> We are hitting a regression with the following commit:
>
> commit a93e7b331568227500186a465fee3c2cb5dffd1f
> Author: Hamish Martin <hamish.martin@xxxxxxxxxxxxxxxxxxx>
> Date: Mon May 14 13:32:23 2018 +1200
>
> uio: Prevent device destruction while fds are open
>
> The problem is the addition of spin_lock_irqsave in uio_write. This
> leads to hitting uio_write -> copy_from_user -> _copy_from_user ->
> might_fault and the logs filling up with sleeping warnings.
>
> I also noticed some uio drivers allocate memory, sleep, grab mutexes
> from callouts like open() and release and uio is now doing
> spin_lock_irqsave while calling them.
>
> Reported-by: Mike Christie <mchristi@xxxxxxxxxx>
> Signed-off-by: Xiubo Li <xiubli@xxxxxxxxxx>
> ---
> drivers/uio/uio.c | 33 ++++++++++++++-------------------
> include/linux/uio_driver.h | 2 +-
> 2 files changed, 15 insertions(+), 20 deletions(-)

Any specific reason you did not also cc: the author of the above patch
to review this one?

Please fix up and resend.

greg k-h