goldfish: Sanitize the broken interrupt handler
authorThomas Gleixner <tglx@linutronix.de>
Wed, 15 Feb 2017 10:11:51 +0000 (11:11 +0100)
committerWilly Tarreau <w@1wt.eu>
Wed, 7 Jun 2017 22:47:00 +0000 (00:47 +0200)
commit7fb0b4473100f95f4e99802b8f11d529624185fd
tree53a7dd6a4147b02ef301421adde8cc9615857c8f
parentd3926e196305a4075aaf3da82e5fbd5bc192a58d
goldfish: Sanitize the broken interrupt handler

commit 6cf18e6927c0b224f972e3042fb85770d63cb9f8 upstream.

This interrupt handler is broken in several ways:

  - It loops forever when the op code is not decodeable

  - It never returns IRQ_HANDLED because the only way to exit the loop
    returns IRQ_NONE unconditionally.

The whole concept of this is broken. Creating devices in an interrupt
handler is beyond any point of sanity.

Make it at least behave halfways sane so accidental users do not have to
deal with a hard to debug lockup.

Fixes: e809c22b8fb028 ("goldfish: add the goldfish virtual bus")
Reported-by: Gabriel C <nix.or.die@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Willy Tarreau <w@1wt.eu>
drivers/platform/goldfish/pdev_bus.c