diff options
author | Jiri Slaby <jslaby@suse.cz> | 2012-03-08 15:01:19 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-03-08 15:26:31 -0500 |
commit | 9e12dd5fce1c676e709625bd2f55dc83664c3c93 (patch) | |
tree | 5a93e4e2a7bcb4431dc3777423c6bc3ac3e7b85c /arch/ia64/hp/sim/simserial.c | |
parent | 6efb6b77ff6fd512e9ef45b29f1940cb924cd7a6 (diff) |
simserial, bail out when request_irq fails
Without this, the code succeeds when the port is opened by root and we
get unwanted interrupts storm on the first key stroke.
Instead of that, tell the user we failed and that we won't continue. I
suppose, the code was copied from the serial layer where we may want
to change the irq number, so we must allow open even of the failing
port. This is not the case for this driver at all.
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'arch/ia64/hp/sim/simserial.c')
-rw-r--r-- | arch/ia64/hp/sim/simserial.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/arch/ia64/hp/sim/simserial.c b/arch/ia64/hp/sim/simserial.c index 3a079decde51..8f68972b015f 100644 --- a/arch/ia64/hp/sim/simserial.c +++ b/arch/ia64/hp/sim/simserial.c | |||
@@ -692,15 +692,8 @@ startup(struct async_struct *info) | |||
692 | handler = rs_interrupt_single; | 692 | handler = rs_interrupt_single; |
693 | 693 | ||
694 | retval = request_irq(state->irq, handler, IRQ_T(info), "simserial", NULL); | 694 | retval = request_irq(state->irq, handler, IRQ_T(info), "simserial", NULL); |
695 | if (retval) { | 695 | if (retval) |
696 | if (capable(CAP_SYS_ADMIN)) { | ||
697 | if (info->tty) | ||
698 | set_bit(TTY_IO_ERROR, | ||
699 | &info->tty->flags); | ||
700 | retval = 0; | ||
701 | } | ||
702 | goto errout; | 696 | goto errout; |
703 | } | ||
704 | } | 697 | } |
705 | 698 | ||
706 | /* | 699 | /* |