diff options
author | Sasha Levin <levinsasha928@gmail.com> | 2012-07-22 18:29:51 +0200 |
---|---|---|
committer | Will Deacon <will.deacon@arm.com> | 2015-06-01 16:39:52 +0100 |
commit | 226e727b202ae046608da36ed7cd05ec15751e33 (patch) | |
tree | 2bf08a6a2d7be26663e008c1202cac8a6eb08c5f /hw | |
parent | e23415808ae3b6edb24fb0a1afbeae8cbefc7e43 (diff) | |
download | kvmtool-226e727b202ae046608da36ed7cd05ec15751e33.tar.gz |
kvm tools: support injecting arbitrary sysrqs
Add support to 'lkvm debug' to inject arbitrary sysrqs using a new
'-s <sysrq>' argument.
Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
Diffstat (limited to 'hw')
-rw-r--r-- | hw/serial.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/hw/serial.c b/hw/serial.c index 852aea42..956307c5 100644 --- a/hw/serial.c +++ b/hw/serial.c @@ -153,14 +153,13 @@ static void serial8250_update_irq(struct kvm *kvm, struct serial8250_device *dev } #define SYSRQ_PENDING_NONE 0 -#define SYSRQ_PENDING_BREAK 1 static int sysrq_pending; static void serial8250__sysrq(struct kvm *kvm, struct serial8250_device *dev) { dev->lsr |= UART_LSR_DR | UART_LSR_BI; - dev->rxbuf[dev->rxcnt++] = 'p'; + dev->rxbuf[dev->rxcnt++] = sysrq_pending; sysrq_pending = SYSRQ_PENDING_NONE; } @@ -219,9 +218,9 @@ void serial8250__update_consoles(struct kvm *kvm) } } -void serial8250__inject_sysrq(struct kvm *kvm) +void serial8250__inject_sysrq(struct kvm *kvm, char sysrq) { - sysrq_pending = SYSRQ_PENDING_BREAK; + sysrq_pending = sysrq; } static struct serial8250_device *find_device(u16 port) |