David Woodhouse fd18de50b9 intel-iommu: PAE memory corruption fix
PAGE_MASK is 0xFFFFF000 on i386 -- even with PAE.

So it's not sufficient to ensure that you use phys_addr_t or uint64_t
everywhere you handle physical addresses -- you also have to avoid using
the construct 'addr & PAGE_MASK', because that will strip the high 32
bits of the address.

This patch avoids that problem by using PHYSICAL_PAGE_MASK instead of
PAGE_MASK where appropriate. It leaves '& PAGE_MASK' in a few instances
that don't matter -- where it's being used on the virtual bus addresses
we're dishing out, which are 32-bit anyway.

Since PHYSICAL_PAGE_MASK is not present on other architectures, we have
to define it (to PAGE_MASK) if it's not already defined.

Maybe it would be better just to fix PAGE_MASK for i386/PAE?

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-05-11 07:51:01 -07:00
..
2009-04-22 14:49:33 -07:00
2009-04-22 14:49:33 -07:00
2008-10-15 14:24:08 +02:00
2009-04-06 11:25:33 -07:00
2008-10-15 14:24:08 +02:00
2009-03-20 10:48:14 -07:00
2009-03-20 10:48:14 -07:00
2009-04-05 02:14:15 -04:00
2009-04-22 14:49:33 -07:00
2009-02-13 12:01:56 -08:00
2008-06-25 16:05:13 -07:00
2009-04-22 14:49:33 -07:00