[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 03/12] hw/qxl.c: qxl_phys2virt: replace panics with
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PATCH 03/12] hw/qxl.c: qxl_phys2virt: replace panics with guest_bug |
Date: |
Thu, 3 May 2012 10:53:37 +0200 |
From: Alon Levy <address@hidden>
Signed-off-by: Alon Levy <address@hidden>
Signed-off-by: Gerd Hoffmann <address@hidden>
---
hw/qxl.c | 25 +++++++++++++++++++------
1 files changed, 19 insertions(+), 6 deletions(-)
diff --git a/hw/qxl.c b/hw/qxl.c
index c3540c3..9e8cdf3 100644
--- a/hw/qxl.c
+++ b/hw/qxl.c
@@ -1097,15 +1097,28 @@ void *qxl_phys2virt(PCIQXLDevice *qxl, QXLPHYSICAL
pqxl, int group_id)
case MEMSLOT_GROUP_HOST:
return (void *)(intptr_t)offset;
case MEMSLOT_GROUP_GUEST:
- PANIC_ON(slot >= NUM_MEMSLOTS);
- PANIC_ON(!qxl->guest_slots[slot].active);
- PANIC_ON(offset < qxl->guest_slots[slot].delta);
+ if (slot >= NUM_MEMSLOTS) {
+ qxl_guest_bug(qxl, "slot too large %d >= %d", slot, NUM_MEMSLOTS);
+ return NULL;
+ }
+ if (!qxl->guest_slots[slot].active) {
+ qxl_guest_bug(qxl, "inactive slot %d\n", slot);
+ return NULL;
+ }
+ if (offset < qxl->guest_slots[slot].delta) {
+ qxl_guest_bug(qxl, "slot %d offset %"PRIu64" < delta %"PRIu64"\n",
+ slot, offset, qxl->guest_slots[slot].delta);
+ return NULL;
+ }
offset -= qxl->guest_slots[slot].delta;
- PANIC_ON(offset > qxl->guest_slots[slot].size)
+ if (offset > qxl->guest_slots[slot].size) {
+ qxl_guest_bug(qxl, "slot %d offset %"PRIu64" > size %"PRIu64"\n",
+ slot, offset, qxl->guest_slots[slot].size);
+ return NULL;
+ }
return qxl->guest_slots[slot].ptr + offset;
- default:
- PANIC_ON(1);
}
+ return NULL;
}
static void qxl_create_guest_primary_complete(PCIQXLDevice *qxl)
--
1.7.1
- [Qemu-devel] [PULL 00/12] spice patch queue, Gerd Hoffmann, 2012/05/03
- [Qemu-devel] [PATCH 08/12] qxl: cleanup s/__FUNCTION__/__func__/, Gerd Hoffmann, 2012/05/03
- [Qemu-devel] [PATCH 12/12] qxl: don't assert on guest create_guest_primary, Gerd Hoffmann, 2012/05/03
- [Qemu-devel] [PATCH 06/12] qxl: fix > 80 chars line, Gerd Hoffmann, 2012/05/03
- [Qemu-devel] [PATCH 02/12] spice_info: add mouse_mode, Gerd Hoffmann, 2012/05/03
- [Qemu-devel] [PATCH 05/12] qxl: replace panic with guest bug in qxl_track_command, Gerd Hoffmann, 2012/05/03
- [Qemu-devel] [PATCH 03/12] hw/qxl.c: qxl_phys2virt: replace panics with guest_bug,
Gerd Hoffmann <=
- [Qemu-devel] [PATCH 07/12] qxl: don't abort on guest trigerrable ring indices mismatch, Gerd Hoffmann, 2012/05/03
- [Qemu-devel] [PATCH 10/12] qxl: qxl_add_memslot: remove guest trigerrable panics, Gerd Hoffmann, 2012/05/03
- [Qemu-devel] [PATCH 09/12] qxl: interface_notify_update: remove guest trigerrable abort, Gerd Hoffmann, 2012/05/03
- [Qemu-devel] [PATCH 11/12] qxl: ioport_write: remove guest trigerrable abort, Gerd Hoffmann, 2012/05/03
- [Qemu-devel] [PATCH 01/12] spice: require spice-protocol >= 0.8.1, Gerd Hoffmann, 2012/05/03
- [Qemu-devel] [PATCH 04/12] qxl: check for NULL return from qxl_phys2virt, Gerd Hoffmann, 2012/05/03
- Re: [Qemu-devel] [PULL 00/12] spice patch queue, Anthony Liguori, 2012/05/08