|
@@ -35,6 +35,21 @@ struct kmem_cache *stub_priv_cache;
|
|
|
static struct bus_id_priv busid_table[MAX_BUSID];
|
|
|
static spinlock_t busid_table_lock;
|
|
|
|
|
|
+static void init_busid_table(void)
|
|
|
+{
|
|
|
+ int i;
|
|
|
+
|
|
|
+ for (i = 0; i < MAX_BUSID; i++) {
|
|
|
+ memset(busid_table[i].name, 0, BUSID_SIZE);
|
|
|
+ busid_table[i].status = STUB_BUSID_OTHER;
|
|
|
+ busid_table[i].interf_count = 0;
|
|
|
+ busid_table[i].sdev = NULL;
|
|
|
+ busid_table[i].shutdown_busid = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ spin_lock_init(&busid_table_lock);
|
|
|
+}
|
|
|
+
|
|
|
int match_busid(const char *busid)
|
|
|
{
|
|
|
int i;
|
|
@@ -69,21 +84,6 @@ struct bus_id_priv *get_busid_priv(const char *busid)
|
|
|
return NULL;
|
|
|
}
|
|
|
|
|
|
-static ssize_t show_match_busid(struct device_driver *drv, char *buf)
|
|
|
-{
|
|
|
- int i;
|
|
|
- char *out = buf;
|
|
|
-
|
|
|
- spin_lock(&busid_table_lock);
|
|
|
- for (i = 0; i < MAX_BUSID; i++)
|
|
|
- if (busid_table[i].name[0])
|
|
|
- out += sprintf(out, "%s ", busid_table[i].name);
|
|
|
- spin_unlock(&busid_table_lock);
|
|
|
-
|
|
|
- out += sprintf(out, "\n");
|
|
|
- return out - buf;
|
|
|
-}
|
|
|
-
|
|
|
static int add_match_busid(char *busid)
|
|
|
{
|
|
|
int i;
|
|
@@ -128,19 +128,19 @@ int del_match_busid(char *busid)
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
-static void init_busid_table(void)
|
|
|
+static ssize_t show_match_busid(struct device_driver *drv, char *buf)
|
|
|
{
|
|
|
int i;
|
|
|
+ char *out = buf;
|
|
|
|
|
|
- for (i = 0; i < MAX_BUSID; i++) {
|
|
|
- memset(busid_table[i].name, 0, BUSID_SIZE);
|
|
|
- busid_table[i].status = STUB_BUSID_OTHER;
|
|
|
- busid_table[i].interf_count = 0;
|
|
|
- busid_table[i].sdev = NULL;
|
|
|
- busid_table[i].shutdown_busid = 0;
|
|
|
- }
|
|
|
+ spin_lock(&busid_table_lock);
|
|
|
+ for (i = 0; i < MAX_BUSID; i++)
|
|
|
+ if (busid_table[i].name[0])
|
|
|
+ out += sprintf(out, "%s ", busid_table[i].name);
|
|
|
+ spin_unlock(&busid_table_lock);
|
|
|
|
|
|
- spin_lock_init(&busid_table_lock);
|
|
|
+ out += sprintf(out, "\n");
|
|
|
+ return out - buf;
|
|
|
}
|
|
|
|
|
|
static ssize_t store_match_busid(struct device_driver *dev, const char *buf,
|