From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754416AbbGTL5f (ORCPT ); Mon, 20 Jul 2015 07:57:35 -0400 Received: from mail-pa0-f52.google.com ([209.85.220.52]:33500 "EHLO mail-pa0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753031AbbGTL5d (ORCPT ); Mon, 20 Jul 2015 07:57:33 -0400 From: Sudip Mukherjee To: Miguel Ojeda Sandonis , gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Sudip Mukherjee , Subject: [PATCH 1/4] auxdisplay: ks0108: fix refcount Date: Mon, 20 Jul 2015 17:27:21 +0530 Message-Id: <1437393444-32035-1-git-send-email-sudipm.mukherjee@gmail.com> X-Mailer: git-send-email 1.8.1.2 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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: # 2.6.32+ Signed-off-by: Sudip Mukherjee --- drivers/auxdisplay/ks0108.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/auxdisplay/ks0108.c b/drivers/auxdisplay/ks0108.c index 5b93852..0d75285 100644 --- a/drivers/auxdisplay/ks0108.c +++ b/drivers/auxdisplay/ks0108.c @@ -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"); -- 1.8.1.2