|
@@ -265,6 +265,7 @@
|
|
|
/* #define ERRLOGMASK (CD_WARNING|CD_OPEN|CD_COUNT_TRACKS|CD_CLOSE) */
|
|
/* #define ERRLOGMASK (CD_WARNING|CD_OPEN|CD_COUNT_TRACKS|CD_CLOSE) */
|
|
|
/* #define ERRLOGMASK (CD_WARNING|CD_REG_UNREG|CD_DO_IOCTL|CD_OPEN|CD_CLOSE|CD_COUNT_TRACKS) */
|
|
/* #define ERRLOGMASK (CD_WARNING|CD_REG_UNREG|CD_DO_IOCTL|CD_OPEN|CD_CLOSE|CD_COUNT_TRACKS) */
|
|
|
|
|
|
|
|
|
|
+#include <linux/atomic.h>
|
|
|
#include <linux/module.h>
|
|
#include <linux/module.h>
|
|
|
#include <linux/fs.h>
|
|
#include <linux/fs.h>
|
|
|
#include <linux/major.h>
|
|
#include <linux/major.h>
|
|
@@ -3693,9 +3694,9 @@ static struct ctl_table_header *cdrom_sysctl_header;
|
|
|
|
|
|
|
|
static void cdrom_sysctl_register(void)
|
|
static void cdrom_sysctl_register(void)
|
|
|
{
|
|
{
|
|
|
- static int initialized;
|
|
|
|
|
|
|
+ static atomic_t initialized = ATOMIC_INIT(0);
|
|
|
|
|
|
|
|
- if (initialized == 1)
|
|
|
|
|
|
|
+ if (!atomic_add_unless(&initialized, 1, 1))
|
|
|
return;
|
|
return;
|
|
|
|
|
|
|
|
cdrom_sysctl_header = register_sysctl_table(cdrom_root_table);
|
|
cdrom_sysctl_header = register_sysctl_table(cdrom_root_table);
|
|
@@ -3706,8 +3707,6 @@ static void cdrom_sysctl_register(void)
|
|
|
cdrom_sysctl_settings.debug = debug;
|
|
cdrom_sysctl_settings.debug = debug;
|
|
|
cdrom_sysctl_settings.lock = lockdoor;
|
|
cdrom_sysctl_settings.lock = lockdoor;
|
|
|
cdrom_sysctl_settings.check = check_media_type;
|
|
cdrom_sysctl_settings.check = check_media_type;
|
|
|
-
|
|
|
|
|
- initialized = 1;
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
static void cdrom_sysctl_unregister(void)
|
|
static void cdrom_sysctl_unregister(void)
|