On Mon, Mar 19, 2012 at 12:48:37AM -0300, Fabiano FidĂȘncio wrote: > Guys, I've been trouble using spice-protocol/spice/qemu from git, in a > 32 bits host. > > Could somone take a look in this issue? >
Please try the following patch. commit 5c3c02a581590bd746cc4c98a83f24ad40039cfa Author: Alon Levy <[email protected]> Date: Mon Mar 19 10:37:38 2012 +0100 server: get_virt should use QXLPHYSICAL for 32 bit compat diff --git a/server/red_memslots.c b/server/red_memslots.c index d727a09..976e803 100644 --- a/server/red_memslots.c +++ b/server/red_memslots.c @@ -91,7 +91,7 @@ void validate_virt(RedMemSlotInfo *info, unsigned long virt, int slot_id, } } -unsigned long get_virt(RedMemSlotInfo *info, unsigned long addr, uint32_t add_size, +unsigned long get_virt(RedMemSlotInfo *info, QXLPHYSICAL addr, uint32_t add_size, int group_id) { int slot_id; @@ -127,20 +127,6 @@ unsigned long get_virt(RedMemSlotInfo *info, unsigned long addr, uint32_t add_si return h_virt; } -void *cb_get_virt(void *opaque, unsigned long addr, - uint32_t add_size, uint32_t group_id) -{ - return (void *)get_virt((RedMemSlotInfo *)opaque, addr, add_size, group_id); -} - -void cb_validate_virt(void *opaque, - unsigned long virt, unsigned long from_addr, - uint32_t add_size, uint32_t group_id) -{ - int slot_id = get_memslot_id((RedMemSlotInfo *)opaque, from_addr); - validate_virt((RedMemSlotInfo *)opaque, virt, slot_id, add_size, group_id); -} - void *validate_chunk (RedMemSlotInfo *info, QXLPHYSICAL data, uint32_t group_id, uint32_t *data_size_out, QXLPHYSICAL *next_out) { QXLDataChunk *chunk; diff --git a/server/red_memslots.h b/server/red_memslots.h index 18d5208..75754d0 100644 --- a/server/red_memslots.h +++ b/server/red_memslots.h @@ -43,12 +43,12 @@ typedef struct RedMemSlotInfo { unsigned long memslot_clean_virt_mask; } RedMemSlotInfo; -static inline int get_memslot_id(RedMemSlotInfo *info, unsigned long addr) +static inline int get_memslot_id(RedMemSlotInfo *info, uint64_t addr) { return addr >> info->memslot_id_shift; } -static inline int get_generation(RedMemSlotInfo *info, unsigned long addr) +static inline int get_generation(RedMemSlotInfo *info, uint64_t addr) { return (addr >> info->memslot_gen_shift) & info->memslot_gen_mask; } @@ -60,11 +60,6 @@ unsigned long get_virt(RedMemSlotInfo *info, unsigned long addr, uint32_t add_si int group_id); void *validate_chunk (RedMemSlotInfo *info, QXLPHYSICAL data, uint32_t group_id, uint32_t *data_size_out, QXLPHYSICAL *next_out); -void *cb_get_virt(void *opaque, unsigned long addr, - uint32_t add_size, uint32_t group_id); -void cb_validate_virt(void *opaque, - unsigned long virt, unsigned long from_addr, - uint32_t add_size, uint32_t group_id); void red_memslot_info_init(RedMemSlotInfo *info, uint32_t num_groups, uint32_t num_slots, uint8_t generation_bits, _______________________________________________ Spice-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/spice-devel
