diff --git a/[refs] b/[refs] index abae22ff2502..f7e6215db585 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9a007b3791cdba3601d835ea10e68c14115b9afb +refs/heads/master: 2992e545ea006992ec9dc91c4fa996ce1e15f921 diff --git a/trunk/arch/x86/pci/i386.c b/trunk/arch/x86/pci/i386.c index a70a85de5e84..52e656f17781 100644 --- a/trunk/arch/x86/pci/i386.c +++ b/trunk/arch/x86/pci/i386.c @@ -280,6 +280,15 @@ int pci_mmap_page_range(struct pci_dev *dev, struct vm_area_struct *vma, return -EINVAL; prot = pgprot_val(vma->vm_page_prot); + + /* + * Return error if pat is not enabled and write_combine is requested. + * Caller can followup with UC MINUS request and add a WC mtrr if there + * is a free mtrr slot. + */ + if (!pat_enabled && write_combine) + return -EINVAL; + if (pat_enabled && write_combine) prot |= _PAGE_CACHE_WC; else if (pat_enabled || boot_cpu_data.x86 > 3)