diff options
-rw-r--r-- | drivers/cdrom/cdrom.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c index 614ecdbb4ab7..933268b8d6a5 100644 --- a/drivers/cdrom/cdrom.c +++ b/drivers/cdrom/cdrom.c | |||
@@ -265,6 +265,7 @@ | |||
265 | /* #define ERRLOGMASK (CD_WARNING|CD_OPEN|CD_COUNT_TRACKS|CD_CLOSE) */ | 265 | /* #define ERRLOGMASK (CD_WARNING|CD_OPEN|CD_COUNT_TRACKS|CD_CLOSE) */ |
266 | /* #define ERRLOGMASK (CD_WARNING|CD_REG_UNREG|CD_DO_IOCTL|CD_OPEN|CD_CLOSE|CD_COUNT_TRACKS) */ | 266 | /* #define ERRLOGMASK (CD_WARNING|CD_REG_UNREG|CD_DO_IOCTL|CD_OPEN|CD_CLOSE|CD_COUNT_TRACKS) */ |
267 | 267 | ||
268 | #include <linux/atomic.h> | ||
268 | #include <linux/module.h> | 269 | #include <linux/module.h> |
269 | #include <linux/fs.h> | 270 | #include <linux/fs.h> |
270 | #include <linux/major.h> | 271 | #include <linux/major.h> |
@@ -3692,9 +3693,9 @@ static struct ctl_table_header *cdrom_sysctl_header; | |||
3692 | 3693 | ||
3693 | static void cdrom_sysctl_register(void) | 3694 | static void cdrom_sysctl_register(void) |
3694 | { | 3695 | { |
3695 | static int initialized; | 3696 | static atomic_t initialized = ATOMIC_INIT(0); |
3696 | 3697 | ||
3697 | if (initialized == 1) | 3698 | if (!atomic_add_unless(&initialized, 1, 1)) |
3698 | return; | 3699 | return; |
3699 | 3700 | ||
3700 | cdrom_sysctl_header = register_sysctl_table(cdrom_root_table); | 3701 | cdrom_sysctl_header = register_sysctl_table(cdrom_root_table); |
@@ -3705,8 +3706,6 @@ static void cdrom_sysctl_register(void) | |||
3705 | cdrom_sysctl_settings.debug = debug; | 3706 | cdrom_sysctl_settings.debug = debug; |
3706 | cdrom_sysctl_settings.lock = lockdoor; | 3707 | cdrom_sysctl_settings.lock = lockdoor; |
3707 | cdrom_sysctl_settings.check = check_media_type; | 3708 | cdrom_sysctl_settings.check = check_media_type; |
3708 | |||
3709 | initialized = 1; | ||
3710 | } | 3709 | } |
3711 | 3710 | ||
3712 | static void cdrom_sysctl_unregister(void) | 3711 | static void cdrom_sysctl_unregister(void) |