auxdisplay: ks0108: fix refcount
authorSudip Mukherjee <sudipm.mukherjee@gmail.com>
Mon, 20 Jul 2015 11:57:21 +0000 (17:27 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 5 Aug 2015 20:36:48 +0000 (13:36 -0700)
parport_find_base() will implicitly do parport_get_port() which
increases the refcount. Then parport_register_device() will again
increment the refcount. But while unloading the module we are only
doing parport_unregister_device() decrementing the refcount only once.
We add an parport_put_port() to neutralize the effect of
parport_get_port().

Cc: <stable@vger.kernel.org> # 2.6.32+
Signed-off-by: Sudip Mukherjee <sudip@vectorindia.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/auxdisplay/ks0108.c

index 5b93852392b8c342cc3c772979a346dedd261439..0d752851a1eef8b5599c039a886bb9851bbc649a 100644 (file)
@@ -139,6 +139,7 @@ static int __init ks0108_init(void)
 
        ks0108_pardevice = parport_register_device(ks0108_parport, KS0108_NAME,
                NULL, NULL, NULL, PARPORT_DEV_EXCL, NULL);
+       parport_put_port(ks0108_parport);
        if (ks0108_pardevice == NULL) {
                printk(KERN_ERR KS0108_NAME ": ERROR: "
                        "parport didn't register new device\n");