ia64_change_mode and BSPSTORE region

Christian Kandeler christian.kandeler at hob.de
Fri Jul 4 14:48:43 UTC 2008


Hi,

function ia64_change_mode (sys/ia64/ia64/support.S) changes the 
addressing mode from virtual to physical or vice versa. In the course 
of this, the address of the backing store is converted as well. This 
conversion is done by simply stripping off (or inserting) the virtual 
region number, so the function obviously assumes that BSPSTORE is 
identity-mapped (i.e. in region 7). This does not seem to be 
necessarily true, though: For instance, when I call 
ia64_call_pal_stacked_physical() from a kernel module (which I have 
no reason to believe is illegal), it crashes, because BSPSTORE is in 
region 5. I also recall that once during a kdb session, I tried to 
read the translation registers and it also crashed, presumably for 
the same reason. What's going wrong here?

Regards,
Christian


More information about the freebsd-ia64 mailing list