diff options
| -rw-r--r-- | arch/um/drivers/port_kern.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/um/drivers/port_kern.c b/arch/um/drivers/port_kern.c index 330543b3129b..19930081d3d8 100644 --- a/arch/um/drivers/port_kern.c +++ b/arch/um/drivers/port_kern.c | |||
| @@ -6,6 +6,7 @@ | |||
| 6 | #include "linux/completion.h" | 6 | #include "linux/completion.h" |
| 7 | #include "linux/interrupt.h" | 7 | #include "linux/interrupt.h" |
| 8 | #include "linux/list.h" | 8 | #include "linux/list.h" |
| 9 | #include "linux/mutex.h" | ||
| 9 | #include "asm/atomic.h" | 10 | #include "asm/atomic.h" |
| 10 | #include "init.h" | 11 | #include "init.h" |
| 11 | #include "irq_kern.h" | 12 | #include "irq_kern.h" |
| @@ -120,7 +121,7 @@ static int port_accept(struct port_list *port) | |||
| 120 | return 0; | 121 | return 0; |
| 121 | } | 122 | } |
| 122 | 123 | ||
| 123 | static DECLARE_MUTEX(ports_sem); | 124 | static DEFINE_MUTEX(ports_mutex); |
| 124 | static LIST_HEAD(ports); | 125 | static LIST_HEAD(ports); |
| 125 | 126 | ||
| 126 | static void port_work_proc(struct work_struct *unused) | 127 | static void port_work_proc(struct work_struct *unused) |
| @@ -161,7 +162,7 @@ void *port_data(int port_num) | |||
| 161 | struct port_dev *dev = NULL; | 162 | struct port_dev *dev = NULL; |
| 162 | int fd; | 163 | int fd; |
| 163 | 164 | ||
| 164 | down(&ports_sem); | 165 | mutex_lock(&ports_mutex); |
| 165 | list_for_each(ele, &ports) { | 166 | list_for_each(ele, &ports) { |
| 166 | port = list_entry(ele, struct port_list, list); | 167 | port = list_entry(ele, struct port_list, list); |
| 167 | if (port->port == port_num) | 168 | if (port->port == port_num) |
| @@ -216,7 +217,7 @@ void *port_data(int port_num) | |||
| 216 | out_free: | 217 | out_free: |
| 217 | kfree(port); | 218 | kfree(port); |
| 218 | out: | 219 | out: |
| 219 | up(&ports_sem); | 220 | mutex_unlock(&ports_mutex); |
| 220 | return dev; | 221 | return dev; |
| 221 | } | 222 | } |
| 222 | 223 | ||
