mirror of
https://git.proxmox.com/git/qemu
synced 2025-08-07 05:51:36 +00:00
hw/qxl.c: qxl_phys2virt: replace panics with guest_bug
Signed-off-by: Alon Levy <alevy@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
4efee029cb
commit
4b635c59b0
25
hw/qxl.c
25
hw/qxl.c
@ -1097,15 +1097,28 @@ void *qxl_phys2virt(PCIQXLDevice *qxl, QXLPHYSICAL pqxl, int group_id)
|
|||||||
case MEMSLOT_GROUP_HOST:
|
case MEMSLOT_GROUP_HOST:
|
||||||
return (void *)(intptr_t)offset;
|
return (void *)(intptr_t)offset;
|
||||||
case MEMSLOT_GROUP_GUEST:
|
case MEMSLOT_GROUP_GUEST:
|
||||||
PANIC_ON(slot >= NUM_MEMSLOTS);
|
if (slot >= NUM_MEMSLOTS) {
|
||||||
PANIC_ON(!qxl->guest_slots[slot].active);
|
qxl_guest_bug(qxl, "slot too large %d >= %d", slot, NUM_MEMSLOTS);
|
||||||
PANIC_ON(offset < qxl->guest_slots[slot].delta);
|
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;
|
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;
|
return qxl->guest_slots[slot].ptr + offset;
|
||||||
default:
|
|
||||||
PANIC_ON(1);
|
|
||||||
}
|
}
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void qxl_create_guest_primary_complete(PCIQXLDevice *qxl)
|
static void qxl_create_guest_primary_complete(PCIQXLDevice *qxl)
|
||||||
|
Loading…
Reference in New Issue
Block a user