On 16/2/07 10:09, "Andrew Morton" <akpm at linux-foundation.org> wrote: > Are the places where the domU code references machine addresses splattered > all over the code? If not, they can just be wrapped with > preempt_disable/preempt_enable? The main places where machine addresses are 'visible' are any code that holds a pte_t,pmd_t,pud_t,pgd_t. We hide the machine-to-pseudophysical and pseudophysical-to-machine translations inside e.g., pte_val() and __pte() (i.e., constructors and extractors for page table entries). Obviously the users of these macros are open coded all over the place, quite apart from the performance cost of sprinkling preempt_{enable,disable} so liberally. -- Keir