]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
media: rc: ensure input/lirc device can be opened after register
authorSean Young <sean@mess.org>
Thu, 24 May 2018 09:47:17 +0000 (05:47 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Mon, 28 May 2018 21:40:33 +0000 (17:40 -0400)
Since commit cb84343fced1 ("media: lirc: do not call close() or open() on
unregistered devices") rc_open() will return -ENODEV if rcdev->registered
is false. Ensure this is set before we register the input device and the
lirc device, else we have a short window where the neither the lirc or
input device can be opened.

Fixes: cb84343fced1 ("media: lirc: do not call close() or open() on unregistered devices")
Cc: stable@vger.kernel.org # v4.16+
Signed-off-by: Sean Young <sean@mess.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/rc/rc-main.c

index b7071bde670adbcd1dbc199e1822679ead52bc91..2e222d9ee01f584f0e858953753803d8fcde7ff4 100644 (file)
@@ -1862,6 +1862,8 @@ int rc_register_device(struct rc_dev *dev)
                 dev->device_name ?: "Unspecified device", path ?: "N/A");
        kfree(path);
 
+       dev->registered = true;
+
        if (dev->driver_type != RC_DRIVER_IR_RAW_TX) {
                rc = rc_setup_rx_device(dev);
                if (rc)
@@ -1881,8 +1883,6 @@ int rc_register_device(struct rc_dev *dev)
                        goto out_lirc;
        }
 
-       dev->registered = true;
-
        dev_dbg(&dev->dev, "Registered rc%u (driver: %s)\n", dev->minor,
                dev->driver_name ? dev->driver_name : "unknown");