diff options
author | Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> | 2005-05-01 11:58:56 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-05-01 11:58:56 -0400 |
commit | b97b77cca627b2e3e6d0015e2e14b1d1c12de0c8 (patch) | |
tree | 3fa7a55e316624a72764e5c7eead52b92a500a88 /arch/um/drivers/ssl.c | |
parent | 80f9507886076de0cadfdf2b87701e68156829c2 (diff) |
[PATCH] uml: redo console locking
Fix some console locking problems (including scheduling in atomic) and various
reorderings and cleanup in that code. Not yet ready for 2.6.12 probably.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/um/drivers/ssl.c')
-rw-r--r-- | arch/um/drivers/ssl.c | 25 |
1 files changed, 5 insertions, 20 deletions
diff --git a/arch/um/drivers/ssl.c b/arch/um/drivers/ssl.c index c5839c3141f8..a2bac429f3d4 100644 --- a/arch/um/drivers/ssl.c +++ b/arch/um/drivers/ssl.c | |||
@@ -107,11 +107,6 @@ int ssl_open(struct tty_struct *tty, struct file *filp) | |||
107 | } | 107 | } |
108 | 108 | ||
109 | #if 0 | 109 | #if 0 |
110 | static int ssl_chars_in_buffer(struct tty_struct *tty) | ||
111 | { | ||
112 | return(0); | ||
113 | } | ||
114 | |||
115 | static void ssl_flush_buffer(struct tty_struct *tty) | 110 | static void ssl_flush_buffer(struct tty_struct *tty) |
116 | { | 111 | { |
117 | return; | 112 | return; |
@@ -149,11 +144,11 @@ static struct tty_operations ssl_ops = { | |||
149 | .put_char = line_put_char, | 144 | .put_char = line_put_char, |
150 | .write_room = line_write_room, | 145 | .write_room = line_write_room, |
151 | .chars_in_buffer = line_chars_in_buffer, | 146 | .chars_in_buffer = line_chars_in_buffer, |
147 | .flush_buffer = line_flush_buffer, | ||
148 | .flush_chars = line_flush_chars, | ||
152 | .set_termios = line_set_termios, | 149 | .set_termios = line_set_termios, |
153 | .ioctl = line_ioctl, | 150 | .ioctl = line_ioctl, |
154 | #if 0 | 151 | #if 0 |
155 | .flush_chars = ssl_flush_chars, | ||
156 | .flush_buffer = ssl_flush_buffer, | ||
157 | .throttle = ssl_throttle, | 152 | .throttle = ssl_throttle, |
158 | .unthrottle = ssl_unthrottle, | 153 | .unthrottle = ssl_unthrottle, |
159 | .stop = ssl_stop, | 154 | .stop = ssl_stop, |
@@ -171,10 +166,11 @@ static void ssl_console_write(struct console *c, const char *string, | |||
171 | unsigned len) | 166 | unsigned len) |
172 | { | 167 | { |
173 | struct line *line = &serial_lines[c->index]; | 168 | struct line *line = &serial_lines[c->index]; |
169 | unsigned long flags; | ||
174 | 170 | ||
175 | down(&line->sem); | 171 | spin_lock_irqsave(&line->lock, flags); |
176 | console_write_chan(&line->chan_list, string, len); | 172 | console_write_chan(&line->chan_list, string, len); |
177 | up(&line->sem); | 173 | spin_unlock_irqrestore(&line->lock, flags); |
178 | } | 174 | } |
179 | 175 | ||
180 | static struct tty_driver *ssl_console_device(struct console *c, int *index) | 176 | static struct tty_driver *ssl_console_device(struct console *c, int *index) |
@@ -238,14 +234,3 @@ static int ssl_chan_setup(char *str) | |||
238 | 234 | ||
239 | __setup("ssl", ssl_chan_setup); | 235 | __setup("ssl", ssl_chan_setup); |
240 | __channel_help(ssl_chan_setup, "ssl"); | 236 | __channel_help(ssl_chan_setup, "ssl"); |
241 | |||
242 | /* | ||
243 | * Overrides for Emacs so that we follow Linus's tabbing style. | ||
244 | * Emacs will notice this stuff at the end of the file and automatically | ||
245 | * adjust the settings for this buffer only. This must remain at the end | ||
246 | * of the file. | ||
247 | * --------------------------------------------------------------------------- | ||
248 | * Local variables: | ||
249 | * c-file-style: "linux" | ||
250 | * End: | ||
251 | */ | ||