On Mon, 2007-03-26 at 01:14 -0800, Andrew Morton wrote:> arch/i386/lguest/lguest.c:496: warning: assignment from incompatible
pointer type
> arch/i386/lguest/lguest.c:497: warning: assignment from incompatible
pointer type
> arch/i386/lguest/lguest.c:498: warning: assignment from incompatible
pointer type
>
> paravirt_ops.write_ldt_entry = lguest_write_ldt_entry;
> paravirt_ops.write_gdt_entry = lguest_write_gdt_entry;
> paravirt_ops.write_idt_entry = lguest_write_idt_entry;
And here it is:
=The prototype for paravirt_ops write_lgt_entry, write_gdt_entry and
write_idt_entry was type-corrected, so change lguest to match. We can
also use the "write_dt_entry" which was exported by that same cleanup
patch, rather than write our own.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
diff -r f52fef6a1f2d arch/i386/lguest/lguest.c
--- a/arch/i386/lguest/lguest.c Mon Mar 26 10:16:33 2007 +1000
+++ b/arch/i386/lguest/lguest.c Tue Mar 27 10:59:21 2007 +1000
@@ -362,30 +362,24 @@ static void __init lguest_init_IRQ(void)
irq_ctx_init(smp_processor_id());
}
-static inline void native_write_dt_entry(void *dt, int entry, u32 entry_low,
u32 entry_high)
-{
- u32 *lp = (u32 *)((char *)dt + entry*8);
- lp[0] = entry_low;
- lp[1] = entry_high;
-}
-
-static fastcall void lguest_write_ldt_entry(void *dt, int entrynum, u32 low,
u32 high)
+static fastcall void lguest_write_ldt_entry(struct desc_struct *dt,
+ int entrynum, u32 low, u32 high)
{
/* FIXME: Allow this. */
BUG();
}
-static fastcall void lguest_write_gdt_entry(void *dt, int entrynum,
- u32 low, u32 high)
-{
- native_write_dt_entry(dt, entrynum, low, high);
+static fastcall void lguest_write_gdt_entry(struct desc_struct *dt,
+ int entrynum, u32 low, u32 high)
+{
+ write_dt_entry(dt, entrynum, low, high);
hcall(LHCALL_LOAD_GDT, __pa(dt), GDT_ENTRIES, 0);
}
-static fastcall void lguest_write_idt_entry(void *dt, int entrynum,
- u32 low, u32 high)
-{
- native_write_dt_entry(dt, entrynum, low, high);
+static fastcall void lguest_write_idt_entry(struct desc_struct *dt,
+ int entrynum, u32 low, u32 high)
+{
+ write_dt_entry(dt, entrynum, low, high);
hcall(LHCALL_LOAD_IDT_ENTRY, entrynum, low, high);
}