diff options
Diffstat (limited to 'drivers/char/istallion.c')
-rw-r--r-- | drivers/char/istallion.c | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/drivers/char/istallion.c b/drivers/char/istallion.c index c645455c3fd1..7c8b62f162bf 100644 --- a/drivers/char/istallion.c +++ b/drivers/char/istallion.c | |||
@@ -1682,16 +1682,6 @@ static int stli_ioctl(struct tty_struct *tty, struct file *file, unsigned int cm | |||
1682 | rc = 0; | 1682 | rc = 0; |
1683 | 1683 | ||
1684 | switch (cmd) { | 1684 | switch (cmd) { |
1685 | case TIOCGSOFTCAR: | ||
1686 | rc = put_user(((tty->termios->c_cflag & CLOCAL) ? 1 : 0), | ||
1687 | (unsigned __user *) arg); | ||
1688 | break; | ||
1689 | case TIOCSSOFTCAR: | ||
1690 | if ((rc = get_user(ival, (unsigned __user *) arg)) == 0) | ||
1691 | tty->termios->c_cflag = | ||
1692 | (tty->termios->c_cflag & ~CLOCAL) | | ||
1693 | (ival ? CLOCAL : 0); | ||
1694 | break; | ||
1695 | case TIOCGSERIAL: | 1685 | case TIOCGSERIAL: |
1696 | rc = stli_getserial(portp, argp); | 1686 | rc = stli_getserial(portp, argp); |
1697 | break; | 1687 | break; |
@@ -3267,7 +3257,7 @@ static int stli_initecp(struct stlibrd *brdp) | |||
3267 | */ | 3257 | */ |
3268 | EBRDINIT(brdp); | 3258 | EBRDINIT(brdp); |
3269 | 3259 | ||
3270 | brdp->membase = ioremap(brdp->memaddr, brdp->memsize); | 3260 | brdp->membase = ioremap_nocache(brdp->memaddr, brdp->memsize); |
3271 | if (brdp->membase == NULL) { | 3261 | if (brdp->membase == NULL) { |
3272 | retval = -ENOMEM; | 3262 | retval = -ENOMEM; |
3273 | goto err_reg; | 3263 | goto err_reg; |
@@ -3424,7 +3414,7 @@ static int stli_initonb(struct stlibrd *brdp) | |||
3424 | */ | 3414 | */ |
3425 | EBRDINIT(brdp); | 3415 | EBRDINIT(brdp); |
3426 | 3416 | ||
3427 | brdp->membase = ioremap(brdp->memaddr, brdp->memsize); | 3417 | brdp->membase = ioremap_nocache(brdp->memaddr, brdp->memsize); |
3428 | if (brdp->membase == NULL) { | 3418 | if (brdp->membase == NULL) { |
3429 | retval = -ENOMEM; | 3419 | retval = -ENOMEM; |
3430 | goto err_reg; | 3420 | goto err_reg; |
@@ -3675,7 +3665,7 @@ static int stli_eisamemprobe(struct stlibrd *brdp) | |||
3675 | */ | 3665 | */ |
3676 | for (i = 0; (i < stli_eisamempsize); i++) { | 3666 | for (i = 0; (i < stli_eisamempsize); i++) { |
3677 | brdp->memaddr = stli_eisamemprobeaddrs[i]; | 3667 | brdp->memaddr = stli_eisamemprobeaddrs[i]; |
3678 | brdp->membase = ioremap(brdp->memaddr, brdp->memsize); | 3668 | brdp->membase = ioremap_nocache(brdp->memaddr, brdp->memsize); |
3679 | if (brdp->membase == NULL) | 3669 | if (brdp->membase == NULL) |
3680 | continue; | 3670 | continue; |
3681 | 3671 | ||
@@ -4433,6 +4423,8 @@ static int stli_memioctl(struct inode *ip, struct file *fp, unsigned int cmd, un | |||
4433 | done = 0; | 4423 | done = 0; |
4434 | rc = 0; | 4424 | rc = 0; |
4435 | 4425 | ||
4426 | lock_kernel(); | ||
4427 | |||
4436 | switch (cmd) { | 4428 | switch (cmd) { |
4437 | case COM_GETPORTSTATS: | 4429 | case COM_GETPORTSTATS: |
4438 | rc = stli_getportstats(NULL, argp); | 4430 | rc = stli_getportstats(NULL, argp); |
@@ -4455,6 +4447,7 @@ static int stli_memioctl(struct inode *ip, struct file *fp, unsigned int cmd, un | |||
4455 | done++; | 4447 | done++; |
4456 | break; | 4448 | break; |
4457 | } | 4449 | } |
4450 | unlock_kernel(); | ||
4458 | 4451 | ||
4459 | if (done) | 4452 | if (done) |
4460 | return rc; | 4453 | return rc; |
@@ -4472,6 +4465,8 @@ static int stli_memioctl(struct inode *ip, struct file *fp, unsigned int cmd, un | |||
4472 | if (brdp->state == 0) | 4465 | if (brdp->state == 0) |
4473 | return -ENODEV; | 4466 | return -ENODEV; |
4474 | 4467 | ||
4468 | lock_kernel(); | ||
4469 | |||
4475 | switch (cmd) { | 4470 | switch (cmd) { |
4476 | case STL_BINTR: | 4471 | case STL_BINTR: |
4477 | EBRDINTR(brdp); | 4472 | EBRDINTR(brdp); |
@@ -4494,6 +4489,7 @@ static int stli_memioctl(struct inode *ip, struct file *fp, unsigned int cmd, un | |||
4494 | rc = -ENOIOCTLCMD; | 4489 | rc = -ENOIOCTLCMD; |
4495 | break; | 4490 | break; |
4496 | } | 4491 | } |
4492 | unlock_kernel(); | ||
4497 | return rc; | 4493 | return rc; |
4498 | } | 4494 | } |
4499 | 4495 | ||