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

From: Xiubo Li
Date: Thu Jul 05 2018 - 19:21:15 EST


On 2018/7/6 0:33, Greg KH wrote:
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?
Ah, no, sorry for that, I just used the following script to get the mantainer and the list, and here was to late at night and I was a little dizzy forgetting that:

[root@gblock2 scsi]# ./scripts/get_maintainer.pl drivers/uio/
Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> (maintainer:USERSPACE I/O (UIO))
linux-kernel@xxxxxxxxxxxxxxx (open list)
[root@gblock2 scsi]#


And all the others are my team member, because this is a high priority bug fix, so I cced them to let them know the status of this patch set.

I will resend it right now.

Thanks very much for you reminding of this.

BRs
Xiubo


Please fix up and resend.

greg k-h