linux/drivers/uio
Xiubo Li 543af5861f uio: change to use the mutex lock instead of the spin lock
We are hitting a regression with the following commit:

commit a93e7b3315
Author: Hamish Martin <hamish.martin@alliedtelesis.co.nz>
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@redhat.com>
CC: Hamish Martin <hamish.martin@alliedtelesis.co.nz>
Reviewed-by: Hamish Martin <hamish.martin@alliedtelesis.co.nz>
Signed-off-by: Xiubo Li <xiubli@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-07 16:57:35 +02:00
..
Kconfig uio-hv-generic: new userspace i/o driver for VMBus 2016-12-06 11:52:49 +01:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
uio_aec.c uio: uio_aec: remove unnecessary pci_set_drvdata() 2013-09-26 08:47:25 -07:00
uio_cif.c uio: uio_cif: remove unnecessary pci_set_drvdata() 2013-09-26 08:47:25 -07:00
uio_dmem_genirq.c uio: fix dmem_region_start computation 2016-08-31 13:07:30 +02:00
uio_fsl_elbc_gpcm.c uio: uio_fsl_elbc_gpcm: Remove owner assignment from platform_driver 2018-04-23 13:31:27 +02:00
uio_hv_generic.c uio_hv_generic: fix subchannel ring mmap 2018-04-23 12:43:48 +02:00
uio_mf624.c uio_mf624: Align memory regions to page size and set correct offsets 2017-04-08 18:13:28 +02:00
uio_netx.c uio: uio_netx: remove unnecessary pci_set_drvdata() 2013-09-26 08:47:25 -07:00
uio_pci_generic.c uio/uio_pci_generic: don't fail probe if pdev->irq == NULL 2017-05-18 16:59:06 +02:00
uio_pdrv_genirq.c Revert "uio: constify of_device_id array" 2015-04-03 16:04:21 +02:00
uio_pruss.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
uio_sercos3.c uio: uio_sercos3: remove unnecessary pci_set_drvdata() 2013-09-26 08:47:25 -07:00
uio.c uio: change to use the mutex lock instead of the spin lock 2018-07-07 16:57:35 +02:00