diff options
Diffstat (limited to 'drivers/char')
| -rw-r--r-- | drivers/char/Kconfig | 1 | ||||
| -rw-r--r-- | drivers/char/ipmi/ipmi_si_intf.c | 10 | ||||
| -rw-r--r-- | drivers/char/n_tty.c | 13 | ||||
| -rw-r--r-- | drivers/char/synclink_gt.c | 2 | ||||
| -rw-r--r-- | drivers/char/tty_io.c | 7 |
5 files changed, 25 insertions, 8 deletions
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig index 5dce3877eee5..595a925c62a9 100644 --- a/drivers/char/Kconfig +++ b/drivers/char/Kconfig | |||
| @@ -196,6 +196,7 @@ config ESPSERIAL | |||
| 196 | config MOXA_INTELLIO | 196 | config MOXA_INTELLIO |
| 197 | tristate "Moxa Intellio support" | 197 | tristate "Moxa Intellio support" |
| 198 | depends on SERIAL_NONSTANDARD && (ISA || EISA || PCI) | 198 | depends on SERIAL_NONSTANDARD && (ISA || EISA || PCI) |
| 199 | select FW_LOADER | ||
| 199 | help | 200 | help |
| 200 | Say Y here if you have a Moxa Intellio multiport serial card. | 201 | Say Y here if you have a Moxa Intellio multiport serial card. |
| 201 | 202 | ||
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c index 5a5455585c1d..192688344ed2 100644 --- a/drivers/char/ipmi/ipmi_si_intf.c +++ b/drivers/char/ipmi/ipmi_si_intf.c | |||
| @@ -2352,10 +2352,16 @@ static int __devinit ipmi_of_probe(struct of_device *dev, | |||
| 2352 | 2352 | ||
| 2353 | info->si_type = (enum si_type) match->data; | 2353 | info->si_type = (enum si_type) match->data; |
| 2354 | info->addr_source = "device-tree"; | 2354 | info->addr_source = "device-tree"; |
| 2355 | info->io_setup = mem_setup; | ||
| 2356 | info->irq_setup = std_irq_setup; | 2355 | info->irq_setup = std_irq_setup; |
| 2357 | 2356 | ||
| 2358 | info->io.addr_type = IPMI_MEM_ADDR_SPACE; | 2357 | if (resource.flags & IORESOURCE_IO) { |
| 2358 | info->io_setup = port_setup; | ||
| 2359 | info->io.addr_type = IPMI_IO_ADDR_SPACE; | ||
| 2360 | } else { | ||
| 2361 | info->io_setup = mem_setup; | ||
| 2362 | info->io.addr_type = IPMI_MEM_ADDR_SPACE; | ||
| 2363 | } | ||
| 2364 | |||
| 2359 | info->io.addr_data = resource.start; | 2365 | info->io.addr_data = resource.start; |
| 2360 | 2366 | ||
| 2361 | info->io.regsize = regsize ? *regsize : DEFAULT_REGSIZE; | 2367 | info->io.regsize = regsize ? *regsize : DEFAULT_REGSIZE; |
diff --git a/drivers/char/n_tty.c b/drivers/char/n_tty.c index 19105ec203f7..8096389b0dc2 100644 --- a/drivers/char/n_tty.c +++ b/drivers/char/n_tty.c | |||
| @@ -282,16 +282,20 @@ static int opost(unsigned char c, struct tty_struct *tty) | |||
| 282 | if (O_ONLRET(tty)) | 282 | if (O_ONLRET(tty)) |
| 283 | tty->column = 0; | 283 | tty->column = 0; |
| 284 | if (O_ONLCR(tty)) { | 284 | if (O_ONLCR(tty)) { |
| 285 | if (space < 2) | 285 | if (space < 2) { |
| 286 | unlock_kernel(); | ||
| 286 | return -1; | 287 | return -1; |
| 288 | } | ||
| 287 | tty_put_char(tty, '\r'); | 289 | tty_put_char(tty, '\r'); |
| 288 | tty->column = 0; | 290 | tty->column = 0; |
| 289 | } | 291 | } |
| 290 | tty->canon_column = tty->column; | 292 | tty->canon_column = tty->column; |
| 291 | break; | 293 | break; |
| 292 | case '\r': | 294 | case '\r': |
| 293 | if (O_ONOCR(tty) && tty->column == 0) | 295 | if (O_ONOCR(tty) && tty->column == 0) { |
| 296 | unlock_kernel(); | ||
| 294 | return 0; | 297 | return 0; |
| 298 | } | ||
| 295 | if (O_OCRNL(tty)) { | 299 | if (O_OCRNL(tty)) { |
| 296 | c = '\n'; | 300 | c = '\n'; |
| 297 | if (O_ONLRET(tty)) | 301 | if (O_ONLRET(tty)) |
| @@ -303,10 +307,13 @@ static int opost(unsigned char c, struct tty_struct *tty) | |||
| 303 | case '\t': | 307 | case '\t': |
| 304 | spaces = 8 - (tty->column & 7); | 308 | spaces = 8 - (tty->column & 7); |
| 305 | if (O_TABDLY(tty) == XTABS) { | 309 | if (O_TABDLY(tty) == XTABS) { |
| 306 | if (space < spaces) | 310 | if (space < spaces) { |
| 311 | unlock_kernel(); | ||
| 307 | return -1; | 312 | return -1; |
| 313 | } | ||
| 308 | tty->column += spaces; | 314 | tty->column += spaces; |
| 309 | tty->ops->write(tty, " ", spaces); | 315 | tty->ops->write(tty, " ", spaces); |
| 316 | unlock_kernel(); | ||
| 310 | return 0; | 317 | return 0; |
| 311 | } | 318 | } |
| 312 | tty->column += spaces; | 319 | tty->column += spaces; |
diff --git a/drivers/char/synclink_gt.c b/drivers/char/synclink_gt.c index 2001b0e52dc6..55c1653be00c 100644 --- a/drivers/char/synclink_gt.c +++ b/drivers/char/synclink_gt.c | |||
| @@ -916,7 +916,7 @@ static int put_char(struct tty_struct *tty, unsigned char ch) | |||
| 916 | { | 916 | { |
| 917 | struct slgt_info *info = tty->driver_data; | 917 | struct slgt_info *info = tty->driver_data; |
| 918 | unsigned long flags; | 918 | unsigned long flags; |
| 919 | int ret; | 919 | int ret = 0; |
| 920 | 920 | ||
| 921 | if (sanity_check(info, tty->name, "put_char")) | 921 | if (sanity_check(info, tty->name, "put_char")) |
| 922 | return 0; | 922 | return 0; |
diff --git a/drivers/char/tty_io.c b/drivers/char/tty_io.c index 49c1a2267a55..e94bee032314 100644 --- a/drivers/char/tty_io.c +++ b/drivers/char/tty_io.c | |||
| @@ -1215,10 +1215,11 @@ int tty_check_change(struct tty_struct *tty) | |||
| 1215 | 1215 | ||
| 1216 | if (!tty->pgrp) { | 1216 | if (!tty->pgrp) { |
| 1217 | printk(KERN_WARNING "tty_check_change: tty->pgrp == NULL!\n"); | 1217 | printk(KERN_WARNING "tty_check_change: tty->pgrp == NULL!\n"); |
| 1218 | goto out; | 1218 | goto out_unlock; |
| 1219 | } | 1219 | } |
| 1220 | if (task_pgrp(current) == tty->pgrp) | 1220 | if (task_pgrp(current) == tty->pgrp) |
| 1221 | goto out; | 1221 | goto out_unlock; |
| 1222 | spin_unlock_irqrestore(&tty->ctrl_lock, flags); | ||
| 1222 | if (is_ignored(SIGTTOU)) | 1223 | if (is_ignored(SIGTTOU)) |
| 1223 | goto out; | 1224 | goto out; |
| 1224 | if (is_current_pgrp_orphaned()) { | 1225 | if (is_current_pgrp_orphaned()) { |
| @@ -1229,6 +1230,8 @@ int tty_check_change(struct tty_struct *tty) | |||
| 1229 | set_thread_flag(TIF_SIGPENDING); | 1230 | set_thread_flag(TIF_SIGPENDING); |
| 1230 | ret = -ERESTARTSYS; | 1231 | ret = -ERESTARTSYS; |
| 1231 | out: | 1232 | out: |
| 1233 | return ret; | ||
| 1234 | out_unlock: | ||
| 1232 | spin_unlock_irqrestore(&tty->ctrl_lock, flags); | 1235 | spin_unlock_irqrestore(&tty->ctrl_lock, flags); |
| 1233 | return ret; | 1236 | return ret; |
| 1234 | } | 1237 | } |
