[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-merge] Odd diff in mpparse.c



Maybe it's just too late to be piddling around with this still .. but ...

I don't understand this diff section:


@@ -690,7 +697,7 @@ void __init get_smp_config (void)
                 * Read the physical hardware table.  Anything here will
                 * override the defaults.
                 */
-               if (!smp_read_mpc((void *)mpf->mpf_physptr)) {
+               if (!smp_read_mpc(isa_bus_to_virt(mpf->mpf_physptr))) {
                        smp_found_config = 0;
                        printk(KERN_ERR "BIOS bug, MP table errors detected!...\
n");
                        printk(KERN_ERR "... disabling SMP support. (tell your h
w vendor)\n");


That's going from the standard to the xen base. Obvious thing is 
to just abstract out isa_bus_to_virt, etc. But ...How the hell was
that working in teh first plae, seems like we're passing a phys ptr
into something that's expecting a virtual address ???? The xen version
looks fine, it's the original that worries me.

Later down there's this:

-       unsigned long *bp = phys_to_virt(base);
+       unsigned long *bp = isa_bus_to_virt(base);


which makes rather more sense to me. If anyone can make more sense of that
bit than me, would help to slap me with it.

Thanks,

M.


_______________________________________________
Xen-merge mailing list
Xen-merge@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-merge


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.