aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-07-13 16:52:27 -0400
committerIngo Molnar <mingo@elte.hu>2008-07-13 16:52:27 -0400
commitdbbcfb2211761fa69e831a78119c9288fb87eb9d (patch)
treeb40b103ed250e287bf3d4790f1c87001cf7cf52f /arch/x86
parentb0356cd0e7497252a2c45ecb07b79d931390c8b2 (diff)
parent9df2fe986770bc4c76e8fe72c20b71268eec39a7 (diff)
Merge branch 'linus' into x86/pci-ioapic-boot-irq-quirks
Conflicts: arch/x86/mm/ioremap.c Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/kernel/.gitignore1
-rw-r--r--arch/x86/mm/ioremap.c25
-rw-r--r--arch/x86/pci/common.c8
3 files changed, 29 insertions, 5 deletions
diff --git a/arch/x86/kernel/.gitignore b/arch/x86/kernel/.gitignore
index 4ea38a39aed4..08f4fd731469 100644
--- a/arch/x86/kernel/.gitignore
+++ b/arch/x86/kernel/.gitignore
@@ -1,2 +1,3 @@
1vsyscall.lds 1vsyscall.lds
2vsyscall_32.lds 2vsyscall_32.lds
3vmlinux.lds
diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
index 45e546c4ba78..115f13ee40c9 100644
--- a/arch/x86/mm/ioremap.c
+++ b/arch/x86/mm/ioremap.c
@@ -300,6 +300,29 @@ void __iomem *ioremap_cache(resource_size_t phys_addr, unsigned long size)
300} 300}
301EXPORT_SYMBOL(ioremap_cache); 301EXPORT_SYMBOL(ioremap_cache);
302 302
303static void __iomem *ioremap_default(resource_size_t phys_addr,
304 unsigned long size)
305{
306 unsigned long flags;
307 void *ret;
308 int err;
309
310 /*
311 * - WB for WB-able memory and no other conflicting mappings
312 * - UC_MINUS for non-WB-able memory with no other conflicting mappings
313 * - Inherit from confliting mappings otherwise
314 */
315 err = reserve_memtype(phys_addr, phys_addr + size, -1, &flags);
316 if (err < 0)
317 return NULL;
318
319 ret = (void *) __ioremap_caller(phys_addr, size, flags,
320 __builtin_return_address(0));
321
322 free_memtype(phys_addr, phys_addr + size);
323 return (void __iomem *)ret;
324}
325
303/** 326/**
304 * iounmap - Free a IO remapping 327 * iounmap - Free a IO remapping
305 * @addr: virtual address from ioremap_* 328 * @addr: virtual address from ioremap_*
@@ -365,7 +388,7 @@ void *xlate_dev_mem_ptr(unsigned long phys)
365 if (page_is_ram(start >> PAGE_SHIFT)) 388 if (page_is_ram(start >> PAGE_SHIFT))
366 return __va(phys); 389 return __va(phys);
367 390
368 addr = (void __force *)ioremap(start, PAGE_SIZE); 391 addr = (void __force *)ioremap_default(start, PAGE_SIZE);
369 if (addr) 392 if (addr)
370 addr = (void *)((unsigned long)addr | (phys & ~PAGE_MASK)); 393 addr = (void *)((unsigned long)addr | (phys & ~PAGE_MASK));
371 394
diff --git a/arch/x86/pci/common.c b/arch/x86/pci/common.c
index 0a9eaa736d94..00a319cd5be3 100644
--- a/arch/x86/pci/common.c
+++ b/arch/x86/pci/common.c
@@ -330,18 +330,18 @@ static struct dmi_system_id __devinitdata pciprobe_dmi_table[] = {
330#endif 330#endif
331 { 331 {
332 .callback = set_bf_sort, 332 .callback = set_bf_sort,
333 .ident = "HP ProLiant DL360", 333 .ident = "HP ProLiant DL385 G2",
334 .matches = { 334 .matches = {
335 DMI_MATCH(DMI_SYS_VENDOR, "HP"), 335 DMI_MATCH(DMI_SYS_VENDOR, "HP"),
336 DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant DL360"), 336 DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant DL385 G2"),
337 }, 337 },
338 }, 338 },
339 { 339 {
340 .callback = set_bf_sort, 340 .callback = set_bf_sort,
341 .ident = "HP ProLiant DL380", 341 .ident = "HP ProLiant DL585 G2",
342 .matches = { 342 .matches = {
343 DMI_MATCH(DMI_SYS_VENDOR, "HP"), 343 DMI_MATCH(DMI_SYS_VENDOR, "HP"),
344 DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant DL380"), 344 DMI_MATCH(DMI_PRODUCT_NAME, "ProLiant DL585 G2"),
345 }, 345 },
346 }, 346 },
347 {} 347 {}