linux-stable/drivers/uio
Alexandru Ardelean 3ec1bd7693 uio: fix irq init with dt support & irq not defined
This change also does a bit of a unification for the IRQ init code.

But the actual problem is that UIO_IRQ_NONE == 0, so for the DT case where
UIO_IRQ_NONE gets assigned to `uioinfo->irq`, a 2nd initialization will get
triggered (for the IRQ) and this one will exit via `goto bad1`.

As far as things seem to go, the only case where UIO_IRQ_NONE seems valid,
is when using a device-tree. The driver has some legacy support for old
platform_data structures. It looks like, for platform_data a non-existent
IRQ is an invalid case (or was considered an invalid case).
Which is why -ENXIO is treated only when a DT is used.

Signed-off-by: Dragos Bogdan <dragos.bogdan@analog.com>
Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Acked-by: Damian Hobson-Garcia <dhobsong@igel.co.jp>
Link: https://lore.kernel.org/r/20191105073212.16719-1-alexandru.ardelean@analog.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-11-14 11:49:48 +08:00
..
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02: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.c driver: uio: fix possible use-after-free in __uio_register_device 2019-01-31 16:36:52 +01:00
uio_aec.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 333 2019-06-05 17:37:06 +02:00
uio_cif.c uio: add SPDX license tags 2018-07-21 15:41:20 +02:00
uio_dmem_genirq.c uio: fix irq init with dt support & irq not defined 2019-11-14 11:49:48 +08:00
uio_fsl_elbc_gpcm.c uio: uio_fsl_elbc_gpcm: convert platform driver to use dev_groups 2019-08-02 12:56:51 +02:00
uio_hv_generic.c uio_hv_generic: set callbacks on open 2018-12-11 14:23:17 +01:00
uio_mf624.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00
uio_netx.c uio: add SPDX license tags 2018-07-21 15:41:20 +02:00
uio_pci_generic.c uio/uio_pci_generic: Disable bus-mastering on release 2019-01-31 16:22:51 +01:00
uio_pdrv_genirq.c uio: uio_pdrv_genirq: Make UIO name controllable via DT node property 2019-09-04 13:42:43 +02:00
uio_pruss.c uio: pruss: fix error handling in probe 2018-08-02 10:14:26 +02:00
uio_sercos3.c uio: add SPDX license tags 2018-07-21 15:41:20 +02:00