summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorKonrad Zapalowicz <bergo.torino@gmail.com>2014-08-16 16:58:08 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-08-17 18:52:25 +0200
commited7f92da59f24dd966555efef978fe14085b3318 (patch)
treeb9febcf3a261e37f885434292d0899047f6ddf2e /drivers
parentstaging: dgnc: Remove not needed dgnc_driver_start variable (diff)
downloadlinux-ed7f92da59f24dd966555efef978fe14085b3318.tar.xz
linux-ed7f92da59f24dd966555efef978fe14085b3318.zip
staging: dgnc: Remove unnecessary dgnc_Major_Control_Registered variable
The dgnc_Major_Control_Registered variable purpose was to act as a flag to indicate if the character device has been successfully registered into the kernel. This flag was later checked in the module cleanup function to know if the character device needs to be deregistered. However the {device,class}_destroy and unregister_chrdev functions may be called with 'invalid' data perfectly fine. This means that this variable is not needed and can safely be removed which is what this commit does. Signed-off-by: Konrad Zapalowicz <bergo.torino@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/staging/dgnc/dgnc_driver.c38
1 files changed, 15 insertions, 23 deletions
diff --git a/drivers/staging/dgnc/dgnc_driver.c b/drivers/staging/dgnc/dgnc_driver.c
index 726b5ddb8107..a9f1a8c09725 100644
--- a/drivers/staging/dgnc/dgnc_driver.c
+++ b/drivers/staging/dgnc/dgnc_driver.c
@@ -96,8 +96,6 @@ int dgnc_poll_tick = 20; /* Poll interval - 20 ms */
/*
* Static vars.
*/
-static uint dgnc_Major_Control_Registered = FALSE;
-
static struct class *dgnc_class;
/*
@@ -197,11 +195,9 @@ static void dgnc_cleanup_module(void)
dgnc_remove_driver_sysfiles(&dgnc_driver);
- if (dgnc_Major_Control_Registered) {
- device_destroy(dgnc_class, MKDEV(dgnc_Major, 0));
- class_destroy(dgnc_class);
- unregister_chrdev(dgnc_Major, "dgnc");
- }
+ device_destroy(dgnc_class, MKDEV(dgnc_Major, 0));
+ class_destroy(dgnc_class);
+ unregister_chrdev(dgnc_Major, "dgnc");
for (i = 0; i < dgnc_NumBoards; ++i) {
dgnc_remove_ports_sysfiles(dgnc_Board[i]);
@@ -278,24 +274,20 @@ static int dgnc_start(void)
* Register our base character device into the kernel.
* This allows the download daemon to connect to the downld device
* before any of the boards are init'ed.
+ *
+ * Register management/dpa devices
*/
- if (!dgnc_Major_Control_Registered) {
- /*
- * Register management/dpa devices
- */
- rc = register_chrdev(0, "dgnc", &dgnc_BoardFops);
- if (rc <= 0) {
- APR(("Can't register dgnc driver device (%d)\n", rc));
- return -ENXIO;
- }
- dgnc_Major = rc;
-
- dgnc_class = class_create(THIS_MODULE, "dgnc_mgmt");
- device_create(dgnc_class, NULL,
- MKDEV(dgnc_Major, 0),
- NULL, "dgnc_mgmt");
- dgnc_Major_Control_Registered = TRUE;
+ rc = register_chrdev(0, "dgnc", &dgnc_BoardFops);
+ if (rc <= 0) {
+ APR(("Can't register dgnc driver device (%d)\n", rc));
+ return -ENXIO;
}
+ dgnc_Major = rc;
+
+ dgnc_class = class_create(THIS_MODULE, "dgnc_mgmt");
+ device_create(dgnc_class, NULL,
+ MKDEV(dgnc_Major, 0),
+ NULL, "dgnc_mgmt");
/*
* Init any global tty stuff.