From: Al Viro <viro@zeniv.linux.org.uk>
Date: Mon, 15 Apr 2013 21:27:11 +0000 (-0400)
Subject: mISDN: grabbing/dropping reference to THIS_MODULE in open/release is racy
X-Git-Tag: firefly_0821_release~3680^2~611^2~56
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=89b107adce32a52920b36787b60c8f24c986c526;p=firefly-linux-kernel-4.4.55.git

mISDN: grabbing/dropping reference to THIS_MODULE in open/release is racy

... when you have no ->owner set.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
---

diff --git a/drivers/isdn/mISDN/timerdev.c b/drivers/isdn/mISDN/timerdev.c
index da2aa376a3a3..9438d7ec3308 100644
--- a/drivers/isdn/mISDN/timerdev.c
+++ b/drivers/isdn/mISDN/timerdev.c
@@ -64,7 +64,6 @@ mISDN_open(struct inode *ino, struct file *filep)
 	dev->work = 0;
 	init_waitqueue_head(&dev->wait);
 	filep->private_data = dev;
-	__module_get(THIS_MODULE);
 	return nonseekable_open(ino, filep);
 }
 
@@ -94,7 +93,6 @@ mISDN_close(struct inode *ino, struct file *filep)
 		kfree(timer);
 	}
 	kfree(dev);
-	module_put(THIS_MODULE);
 	return 0;
 }
 
@@ -269,6 +267,7 @@ mISDN_ioctl(struct file *filep, unsigned int cmd, unsigned long arg)
 }
 
 static const struct file_operations mISDN_fops = {
+	.owner		= THIS_MODULE,
 	.read		= mISDN_read,
 	.poll		= mISDN_poll,
 	.unlocked_ioctl	= mISDN_ioctl,