|
@@ -481,12 +481,16 @@ static inline int range_is_allowed(unsigned long pfn, unsigned long size)
|
|
return 1;
|
|
return 1;
|
|
}
|
|
}
|
|
#else
|
|
#else
|
|
|
|
+/* This check is needed to avoid cache aliasing when PAT is enabled */
|
|
static inline int range_is_allowed(unsigned long pfn, unsigned long size)
|
|
static inline int range_is_allowed(unsigned long pfn, unsigned long size)
|
|
{
|
|
{
|
|
u64 from = ((u64)pfn) << PAGE_SHIFT;
|
|
u64 from = ((u64)pfn) << PAGE_SHIFT;
|
|
u64 to = from + size;
|
|
u64 to = from + size;
|
|
u64 cursor = from;
|
|
u64 cursor = from;
|
|
|
|
|
|
|
|
+ if (!pat_enabled)
|
|
|
|
+ return 1;
|
|
|
|
+
|
|
while (cursor < to) {
|
|
while (cursor < to) {
|
|
if (!devmem_is_allowed(pfn)) {
|
|
if (!devmem_is_allowed(pfn)) {
|
|
printk(KERN_INFO
|
|
printk(KERN_INFO
|