diff options
Diffstat (limited to 'arch/um/drivers/net_kern.c')
-rw-r--r-- | arch/um/drivers/net_kern.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/arch/um/drivers/net_kern.c b/arch/um/drivers/net_kern.c index 07e839e387db..b10154cc46b6 100644 --- a/arch/um/drivers/net_kern.c +++ b/arch/um/drivers/net_kern.c | |||
@@ -498,10 +498,8 @@ struct eth_init { | |||
498 | int index; | 498 | int index; |
499 | }; | 499 | }; |
500 | 500 | ||
501 | /* Filled in at boot time. Will need locking if the transports become | 501 | static DEFINE_SPINLOCK(transports_lock); |
502 | * modular. | 502 | static LIST_HEAD(transports); |
503 | */ | ||
504 | struct list_head transports = LIST_HEAD_INIT(transports); | ||
505 | 503 | ||
506 | /* Filled in during early boot */ | 504 | /* Filled in during early boot */ |
507 | struct list_head eth_cmd_line = LIST_HEAD_INIT(eth_cmd_line); | 505 | struct list_head eth_cmd_line = LIST_HEAD_INIT(eth_cmd_line); |
@@ -540,7 +538,10 @@ void register_transport(struct transport *new) | |||
540 | char *mac = NULL; | 538 | char *mac = NULL; |
541 | int match; | 539 | int match; |
542 | 540 | ||
541 | spin_lock(&transports_lock); | ||
542 | BUG_ON(!list_empty(&new->list)); | ||
543 | list_add(&new->list, &transports); | 543 | list_add(&new->list, &transports); |
544 | spin_unlock(&transports_lock); | ||
544 | 545 | ||
545 | list_for_each_safe(ele, next, ð_cmd_line){ | 546 | list_for_each_safe(ele, next, ð_cmd_line){ |
546 | eth = list_entry(ele, struct eth_init, list); | 547 | eth = list_entry(ele, struct eth_init, list); |