From: Ingo Molnar <mingo@elte.hu> To: Linus Torvalds <torvalds@linux-foundation.org> Cc: linux-kernel@vger.kernel.org, Thomas Gleixner <tglx@linutronix.de>, "H. Peter Anvin" <hpa@zytor.com> Subject: [git pull] x86 fixes Date: Fri, 31 Oct 2008 00:34:12 +0100 [thread overview] Message-ID: <20081030233412.GA15508@elte.hu> (raw) Linus, Please pull the latest x86-fixes-for-linus git tree from: git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git x86-fixes-for-linus out-of-topic modifications in x86-fixes-for-linus: -------------------------------------------------- .mailmap # 17c2297: mailmap: add Peter Oruba Thanks, Ingo ------------------> Gary Hade (1): x86: remove debug code from arch_add_memory() Harvey Harrison (2): x86: two trivial sparse annotations x86: start annotating early ioremap pointers with __iomem James Bottomley (5): x86/voyager: fix boot breakage caused by x86: boot secondary cpus through initial_code x86: use CONFIG_X86_SMP instead of CONFIG_SMP x86/voyager: fix compile breakage casued by x86: move prefill_possible_map calling early x86/voyager: fix compile breakage caused by dc1e35c6e95e8923cf1d3510438b63c600fee1e2 x86/voyager: fix missing cpu_index initialisation Jan Beulich (1): i386/PAE: fix pud_page() Joerg Roedel (1): x86, gart: fix gart detection for Fam11h CPUs Ken'ichi Ohmichi (1): x86, kdump: fix invalid access on i386 sparsemem Markus Metzger (1): x86, bts: improve help text for BTS config Mike Travis (1): x86, uv: fix compile error in uv_hub.h Peter Oruba (3): mailmap: add Peter Oruba x86: microcode patch loader author update x86: AMD microcode patch loader author update Ravikiran G Thirumalai (1): x86: fix /dev/mem mmap breakage when PAT is disabled Uwe Hermann (1): doc/x86: fix doc subdirs Yinghai Lu (3): x86: fix APIC_DEBUG with inquire_remote_apic x86: 64 bit print out absent pages num too x86: fix init_memory_mapping for [dc000000 - e0000000) - v2 .mailmap | 2 + Documentation/00-INDEX | 4 +- Documentation/kernel-parameters.txt | 12 ++-- Documentation/lguest/lguest.c | 2 +- Documentation/x86/x86_64/boot-options.txt | 4 +- Documentation/x86/x86_64/fake-numa-for-cpusets | 2 +- arch/x86/Kconfig | 4 ++ arch/x86/Kconfig.cpu | 24 ++++---- arch/x86/include/asm/es7000/wakecpu.h | 9 ++-- arch/x86/include/asm/io.h | 6 +- arch/x86/include/asm/mach-default/mach_wakecpu.h | 9 ++-- arch/x86/include/asm/pgtable-3level.h | 4 +- arch/x86/include/asm/smp.h | 6 ++ arch/x86/include/asm/uv/uv_hub.h | 1 + arch/x86/kernel/cpu/addon_cpuid_features.c | 2 +- arch/x86/kernel/cpu/common.c | 4 +- arch/x86/kernel/k8.c | 1 - arch/x86/kernel/machine_kexec_32.c | 5 ++- arch/x86/kernel/microcode_amd.c | 2 +- arch/x86/kernel/microcode_core.c | 4 +- arch/x86/kernel/pci-gart_64.c | 2 +- arch/x86/kernel/tsc.c | 2 +- arch/x86/kernel/vsmp_64.c | 2 +- arch/x86/mach-voyager/voyager_smp.c | 12 ++++- arch/x86/mm/gup.c | 2 +- arch/x86/mm/init_64.c | 61 ++++++++++++++-------- arch/x86/mm/ioremap.c | 22 ++++---- arch/x86/mm/pat.c | 4 ++ 28 files changed, 131 insertions(+), 83 deletions(-) diff --git a/.mailmap b/.mailmap index eba9bf9..97f7b4f 100644 --- a/.mailmap +++ b/.mailmap @@ -80,6 +80,8 @@ Nguyen Anh Quynh <aquynh@gmail.com> Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Patrick Mochel <mochel@digitalimplant.org> Peter A Jonsson <pj@ludd.ltu.se> +Peter Oruba <peter@oruba.de> +Peter Oruba <peter.oruba@amd.com> Praveen BP <praveenbp@ti.com> Rajesh Shah <rajesh.shah@intel.com> Ralf Baechle <ralf@linux-mips.org> diff --git a/Documentation/00-INDEX b/Documentation/00-INDEX index 7286ad0..edef85c 100644 --- a/Documentation/00-INDEX +++ b/Documentation/00-INDEX @@ -172,7 +172,7 @@ i2c/ - directory with info about the I2C bus/protocol (2 wire, kHz speed). i2o/ - directory with info about the Linux I2O subsystem. -i386/ +x86/i386/ - directory with info about Linux on Intel 32 bit architecture. ia64/ - directory with info about Linux on Intel 64 bit architecture. @@ -382,7 +382,7 @@ w1/ - directory with documents regarding the 1-wire (w1) subsystem. watchdog/ - how to auto-reboot Linux if it has "fallen and can't get up". ;-) -x86_64/ +x86/x86_64/ - directory with info on Linux support for AMD x86-64 (Hammer) machines. zorro.txt - info on writing drivers for Zorro bus devices found on Amigas. diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 343e0f0..1bbcaa8 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -100,7 +100,7 @@ parameter is applicable: X86-32 X86-32, aka i386 architecture is enabled. X86-64 X86-64 architecture is enabled. More X86-64 boot options can be found in - Documentation/x86_64/boot-options.txt . + Documentation/x86/x86_64/boot-options.txt . X86 Either 32bit or 64bit x86 (same as X86-32+X86-64) In addition, the following text indicates that the option: @@ -112,10 +112,10 @@ In addition, the following text indicates that the option: Parameters denoted with BOOT are actually interpreted by the boot loader, and have no meaning to the kernel directly. Do not modify the syntax of boot loader parameters without extreme -need or coordination with <Documentation/i386/boot.txt>. +need or coordination with <Documentation/x86/i386/boot.txt>. There are also arch-specific kernel-parameters not documented here. -See for example <Documentation/x86_64/boot-options.txt>. +See for example <Documentation/x86/x86_64/boot-options.txt>. Note that ALL kernel parameters listed below are CASE SENSITIVE, and that a trailing = on the name of any parameter states that that parameter will @@ -1222,7 +1222,7 @@ and is between 256 and 4096 characters. It is defined in the file mce [X86-32] Machine Check Exception - mce=option [X86-64] See Documentation/x86_64/boot-options.txt + mce=option [X86-64] See Documentation/x86/x86_64/boot-options.txt md= [HW] RAID subsystems devices and level See Documentation/md.txt. @@ -1728,7 +1728,7 @@ and is between 256 and 4096 characters. It is defined in the file See Documentation/paride.txt. pirq= [SMP,APIC] Manual mp-table setup - See Documentation/i386/IO-APIC.txt. + See Documentation/x86/i386/IO-APIC.txt. plip= [PPT,NET] Parallel port network link Format: { parport<nr> | timid | 0 } @@ -2343,7 +2343,7 @@ and is between 256 and 4096 characters. It is defined in the file See Documentation/fb/modedb.txt. vga= [BOOT,X86-32] Select a particular video mode - See Documentation/i386/boot.txt and + See Documentation/x86/i386/boot.txt and Documentation/svga.txt. Use vga=ask for menu. This is actually a boot loader parameter; the value is diff --git a/Documentation/lguest/lguest.c b/Documentation/lguest/lguest.c index 7228369..da86fd5 100644 --- a/Documentation/lguest/lguest.c +++ b/Documentation/lguest/lguest.c @@ -402,7 +402,7 @@ static unsigned long load_bzimage(int fd) void *p = from_guest_phys(0x100000); /* Go back to the start of the file and read the header. It should be - * a Linux boot header (see Documentation/i386/boot.txt) */ + * a Linux boot header (see Documentation/x86/i386/boot.txt) */ lseek(fd, 0, SEEK_SET); read(fd, &boot, sizeof(boot)); diff --git a/Documentation/x86/x86_64/boot-options.txt b/Documentation/x86/x86_64/boot-options.txt index 72ffb53..f6d561a 100644 --- a/Documentation/x86/x86_64/boot-options.txt +++ b/Documentation/x86/x86_64/boot-options.txt @@ -35,7 +35,7 @@ APICs nolapic Don't use the local APIC (alias for i386 compatibility) - pirq=... See Documentation/i386/IO-APIC.txt + pirq=... See Documentation/x86/i386/IO-APIC.txt noapictimer Don't set up the APIC timer @@ -139,7 +139,7 @@ Non Executable Mappings SMP additional_cpus=NUM Allow NUM more CPUs for hotplug - (defaults are specified by the BIOS, see Documentation/x86_64/cpu-hotplug-spec) + (defaults are specified by the BIOS, see Documentation/x86/x86_64/cpu-hotplug-spec) NUMA diff --git a/Documentation/x86/x86_64/fake-numa-for-cpusets b/Documentation/x86/x86_64/fake-numa-for-cpusets index d1a985c..33bb566 100644 --- a/Documentation/x86/x86_64/fake-numa-for-cpusets +++ b/Documentation/x86/x86_64/fake-numa-for-cpusets @@ -10,7 +10,7 @@ amount of system memory that are available to a certain class of tasks. For more information on the features of cpusets, see Documentation/cpusets.txt. There are a number of different configurations you can use for your needs. For more information on the numa=fake command line option and its various ways of -configuring fake nodes, see Documentation/x86_64/boot-options.txt. +configuring fake nodes, see Documentation/x86/x86_64/boot-options.txt. For the purposes of this introduction, we'll assume a very primitive NUMA emulation setup of "numa=fake=4*512,". This will split our system memory into diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index 350bee1..2a40c4c 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -231,6 +231,10 @@ config SMP If you don't know what to do here, say N. +config X86_HAS_BOOT_CPU_ID + def_bool y + depends on X86_VOYAGER + config X86_FIND_SMP_CONFIG def_bool y depends on X86_MPPARSE || X86_VOYAGER diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu index 0b7c4a3..b815664 100644 --- a/arch/x86/Kconfig.cpu +++ b/arch/x86/Kconfig.cpu @@ -513,19 +513,19 @@ config CPU_SUP_UMC_32 If unsure, say N. config X86_DS - bool "Debug Store support" - default y - help - Add support for Debug Store. - This allows the kernel to provide a memory buffer to the hardware - to store various profiling and tracing events. + def_bool X86_PTRACE_BTS + depends on X86_DEBUGCTLMSR config X86_PTRACE_BTS - bool "ptrace interface to Branch Trace Store" + bool "Branch Trace Store" default y - depends on (X86_DS && X86_DEBUGCTLMSR) + depends on X86_DEBUGCTLMSR help - Add a ptrace interface to allow collecting an execution trace - of the traced task. - This collects control flow changes in a (cyclic) buffer and allows - debuggers to fill in the gaps and show an execution trace of the debuggee. + This adds a ptrace interface to the hardware's branch trace store. + + Debuggers may use it to collect an execution trace of the debugged + application in order to answer the question 'how did I get here?'. + Debuggers may trace user mode as well as kernel mode. + + Say Y unless there is no application development on this machine + and you want to save a small amount of code size. diff --git a/arch/x86/include/asm/es7000/wakecpu.h b/arch/x86/include/asm/es7000/wakecpu.h index 3ffc5a7..3984934 100644 --- a/arch/x86/include/asm/es7000/wakecpu.h +++ b/arch/x86/include/asm/es7000/wakecpu.h @@ -50,10 +50,9 @@ static inline void restore_NMI_vector(unsigned short *high, unsigned short *low) { } -#if APIC_DEBUG - #define inquire_remote_apic(apicid) __inquire_remote_apic(apicid) -#else - #define inquire_remote_apic(apicid) {} -#endif +#define inquire_remote_apic(apicid) do { \ + if (apic_verbosity >= APIC_DEBUG) \ + __inquire_remote_apic(apicid); \ + } while (0) #endif /* __ASM_MACH_WAKECPU_H */ diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h index 5618a10..ac2abc8 100644 --- a/arch/x86/include/asm/io.h +++ b/arch/x86/include/asm/io.h @@ -82,9 +82,9 @@ extern void __iomem *ioremap_wc(unsigned long offset, unsigned long size); extern void early_ioremap_init(void); extern void early_ioremap_clear(void); extern void early_ioremap_reset(void); -extern void *early_ioremap(unsigned long offset, unsigned long size); -extern void *early_memremap(unsigned long offset, unsigned long size); -extern void early_iounmap(void *addr, unsigned long size); +extern void __iomem *early_ioremap(unsigned long offset, unsigned long size); +extern void __iomem *early_memremap(unsigned long offset, unsigned long size); +extern void early_iounmap(void __iomem *addr, unsigned long size); extern void __iomem *fix_ioremap(unsigned idx, unsigned long phys); diff --git a/arch/x86/include/asm/mach-default/mach_wakecpu.h b/arch/x86/include/asm/mach-default/mach_wakecpu.h index d5c0b82..9d80db9 100644 --- a/arch/x86/include/asm/mach-default/mach_wakecpu.h +++ b/arch/x86/include/asm/mach-default/mach_wakecpu.h @@ -33,10 +33,9 @@ static inline void restore_NMI_vector(unsigned short *high, unsigned short *low) { } -#if APIC_DEBUG - #define inquire_remote_apic(apicid) __inquire_remote_apic(apicid) -#else - #define inquire_remote_apic(apicid) {} -#endif +#define inquire_remote_apic(apicid) do { \ + if (apic_verbosity >= APIC_DEBUG) \ + __inquire_remote_apic(apicid); \ + } while (0) #endif /* _ASM_X86_MACH_DEFAULT_MACH_WAKECPU_H */ diff --git a/arch/x86/include/asm/pgtable-3level.h b/arch/x86/include/asm/pgtable-3level.h index fb16cec..52597ae 100644 --- a/arch/x86/include/asm/pgtable-3level.h +++ b/arch/x86/include/asm/pgtable-3level.h @@ -120,13 +120,13 @@ static inline void pud_clear(pud_t *pudp) write_cr3(pgd); } -#define pud_page(pud) ((struct page *) __va(pud_val(pud) & PTE_PFN_MASK)) +#define pud_page(pud) pfn_to_page(pud_val(pud) >> PAGE_SHIFT) #define pud_page_vaddr(pud) ((unsigned long) __va(pud_val(pud) & PTE_PFN_MASK)) /* Find an entry in the second-level page table.. */ -#define pmd_offset(pud, address) ((pmd_t *)pud_page(*(pud)) + \ +#define pmd_offset(pud, address) ((pmd_t *)pud_page_vaddr(*(pud)) + \ pmd_index(address)) #ifdef CONFIG_SMP diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h index 2766021..d12811c 100644 --- a/arch/x86/include/asm/smp.h +++ b/arch/x86/include/asm/smp.h @@ -225,5 +225,11 @@ static inline int hard_smp_processor_id(void) #endif /* CONFIG_X86_LOCAL_APIC */ +#ifdef CONFIG_X86_HAS_BOOT_CPU_ID +extern unsigned char boot_cpu_id; +#else +#define boot_cpu_id 0 +#endif + #endif /* __ASSEMBLY__ */ #endif /* _ASM_X86_SMP_H */ diff --git a/arch/x86/include/asm/uv/uv_hub.h b/arch/x86/include/asm/uv/uv_hub.h index c6ad93e..7a57826 100644 --- a/arch/x86/include/asm/uv/uv_hub.h +++ b/arch/x86/include/asm/uv/uv_hub.h @@ -13,6 +13,7 @@ #include <linux/numa.h> #include <linux/percpu.h> +#include <linux/timer.h> #include <asm/types.h> #include <asm/percpu.h> diff --git a/arch/x86/kernel/cpu/addon_cpuid_features.c b/arch/x86/kernel/cpu/addon_cpuid_features.c index 0d9c993..ef8f831 100644 --- a/arch/x86/kernel/cpu/addon_cpuid_features.c +++ b/arch/x86/kernel/cpu/addon_cpuid_features.c @@ -69,7 +69,7 @@ void __cpuinit init_scattered_cpuid_features(struct cpuinfo_x86 *c) */ void __cpuinit detect_extended_topology(struct cpuinfo_x86 *c) { -#ifdef CONFIG_SMP +#ifdef CONFIG_X86_SMP unsigned int eax, ebx, ecx, edx, sub_index; unsigned int ht_mask_width, core_plus_mask_width; unsigned int core_select_mask, core_level_siblings; diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c index 25581dc..da8f15a 100644 --- a/arch/x86/kernel/cpu/common.c +++ b/arch/x86/kernel/cpu/common.c @@ -549,6 +549,8 @@ static void __init early_identify_cpu(struct cpuinfo_x86 *c) this_cpu->c_early_init(c); validate_pat_support(c); + + c->cpu_index = boot_cpu_id; } void __init early_cpu_init(void) @@ -1134,7 +1136,7 @@ void __cpuinit cpu_init(void) /* * Boot processor to setup the FP and extended state context info. */ - if (!smp_processor_id()) + if (smp_processor_id() == boot_cpu_id) init_thread_xstate(); xsave_init(); diff --git a/arch/x86/kernel/k8.c b/arch/x86/kernel/k8.c index 304d8ba..cbc4332 100644 --- a/arch/x86/kernel/k8.c +++ b/arch/x86/kernel/k8.c @@ -18,7 +18,6 @@ static u32 *flush_words; struct pci_device_id k8_nb_ids[] = { { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_K8_NB_MISC) }, { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_10H_NB_MISC) }, - { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_11H_NB_MISC) }, {} }; EXPORT_SYMBOL(k8_nb_ids); diff --git a/arch/x86/kernel/machine_kexec_32.c b/arch/x86/kernel/machine_kexec_32.c index 0732adb..7a38574 100644 --- a/arch/x86/kernel/machine_kexec_32.c +++ b/arch/x86/kernel/machine_kexec_32.c @@ -162,7 +162,10 @@ void machine_kexec(struct kimage *image) page_list[VA_PTE_0] = (unsigned long)kexec_pte0; page_list[PA_PTE_1] = __pa(kexec_pte1); page_list[VA_PTE_1] = (unsigned long)kexec_pte1; - page_list[PA_SWAP_PAGE] = (page_to_pfn(image->swap_page) << PAGE_SHIFT); + + if (image->type == KEXEC_TYPE_DEFAULT) + page_list[PA_SWAP_PAGE] = (page_to_pfn(image->swap_page) + << PAGE_SHIFT); /* The segment registers are funny things, they have both a * visible and an invisible part. Whenever the visible part is diff --git a/arch/x86/kernel/microcode_amd.c b/arch/x86/kernel/microcode_amd.c index 7a1f8ee..5f8e5d7 100644 --- a/arch/x86/kernel/microcode_amd.c +++ b/arch/x86/kernel/microcode_amd.c @@ -39,7 +39,7 @@ #include <asm/microcode.h> MODULE_DESCRIPTION("AMD Microcode Update Driver"); -MODULE_AUTHOR("Peter Oruba <peter.oruba@amd.com>"); +MODULE_AUTHOR("Peter Oruba"); MODULE_LICENSE("GPL v2"); #define UCODE_MAGIC 0x00414d44 diff --git a/arch/x86/kernel/microcode_core.c b/arch/x86/kernel/microcode_core.c index 936d8d5..82fb280 100644 --- a/arch/x86/kernel/microcode_core.c +++ b/arch/x86/kernel/microcode_core.c @@ -480,8 +480,8 @@ static int __init microcode_init(void) printk(KERN_INFO "Microcode Update Driver: v" MICROCODE_VERSION - " <tigran@aivazian.fsnet.co.uk>" - " <peter.oruba@amd.com>\n"); + " <tigran@aivazian.fsnet.co.uk>," + " Peter Oruba\n"); return 0; } diff --git a/arch/x86/kernel/pci-gart_64.c b/arch/x86/kernel/pci-gart_64.c index e3f75bb..a42b02b 100644 --- a/arch/x86/kernel/pci-gart_64.c +++ b/arch/x86/kernel/pci-gart_64.c @@ -744,7 +744,7 @@ void __init gart_iommu_init(void) long i; if (cache_k8_northbridges() < 0 || num_k8_northbridges == 0) { - printk(KERN_INFO "PCI-GART: No AMD northbridge found.\n"); + printk(KERN_INFO "PCI-GART: No AMD GART found.\n"); return; } diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c index 161bb85..62348e4 100644 --- a/arch/x86/kernel/tsc.c +++ b/arch/x86/kernel/tsc.c @@ -759,7 +759,7 @@ __cpuinit int unsynchronized_tsc(void) if (!cpu_has_tsc || tsc_unstable) return 1; -#ifdef CONFIG_SMP +#ifdef CONFIG_X86_SMP if (apic_is_clustered_box()) return 1; #endif diff --git a/arch/x86/kernel/vsmp_64.c b/arch/x86/kernel/vsmp_64.c index 7766d36..a688f3b 100644 --- a/arch/x86/kernel/vsmp_64.c +++ b/arch/x86/kernel/vsmp_64.c @@ -78,7 +78,7 @@ static unsigned __init_or_module vsmp_patch(u8 type, u16 clobbers, void *ibuf, static void __init set_vsmp_pv_ops(void) { - void *address; + void __iomem *address; unsigned int cap, ctl, cfg; /* set vSMP magic bits to indicate vSMP capable kernel */ diff --git a/arch/x86/mach-voyager/voyager_smp.c b/arch/x86/mach-voyager/voyager_smp.c index 0f6e8a6..7f4c6af 100644 --- a/arch/x86/mach-voyager/voyager_smp.c +++ b/arch/x86/mach-voyager/voyager_smp.c @@ -90,6 +90,7 @@ static void ack_vic_irq(unsigned int irq); static void vic_enable_cpi(void); static void do_boot_cpu(__u8 cpuid); static void do_quad_bootstrap(void); +static void initialize_secondary(void); int hard_smp_processor_id(void); int safe_smp_processor_id(void); @@ -344,6 +345,12 @@ static void do_quad_bootstrap(void) } } +void prefill_possible_map(void) +{ + /* This is empty on voyager because we need a much + * earlier detection which is done in find_smp_config */ +} + /* Set up all the basic stuff: read the SMP config and make all the * SMP information reflect only the boot cpu. All others will be * brought on-line later. */ @@ -413,6 +420,7 @@ void __init smp_store_cpu_info(int id) struct cpuinfo_x86 *c = &cpu_data(id); *c = boot_cpu_data; + c->cpu_index = id; identify_secondary_cpu(c); } @@ -650,6 +658,8 @@ void __init smp_boot_cpus(void) smp_tune_scheduling(); */ smp_store_cpu_info(boot_cpu_id); + /* setup the jump vector */ + initial_code = (unsigned long)initialize_secondary; printk("CPU%d: ", boot_cpu_id); print_cpu_info(&cpu_data(boot_cpu_id)); @@ -702,7 +712,7 @@ void __init smp_boot_cpus(void) /* Reload the secondary CPUs task structure (this function does not * return ) */ -void __init initialize_secondary(void) +static void __init initialize_secondary(void) { #if 0 // AC kernels only diff --git a/arch/x86/mm/gup.c b/arch/x86/mm/gup.c index 4ba373c..be54176 100644 --- a/arch/x86/mm/gup.c +++ b/arch/x86/mm/gup.c @@ -233,7 +233,7 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write, len = (unsigned long) nr_pages << PAGE_SHIFT; end = start + len; if (unlikely(!access_ok(write ? VERIFY_WRITE : VERIFY_READ, - start, len))) + (void __user *)start, len))) goto slow_irqon; /* diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c index f79a02f..9db01db 100644 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c @@ -671,12 +671,13 @@ unsigned long __init_refok init_memory_mapping(unsigned long start, unsigned long last_map_addr = 0; unsigned long page_size_mask = 0; unsigned long start_pfn, end_pfn; + unsigned long pos; struct map_range mr[NR_RANGE_MR]; int nr_range, i; int use_pse, use_gbpages; - printk(KERN_INFO "init_memory_mapping\n"); + printk(KERN_INFO "init_memory_mapping: %016lx-%016lx\n", start, end); /* * Find space for the kernel direct mapping tables. @@ -710,35 +711,50 @@ unsigned long __init_refok init_memory_mapping(unsigned long start, /* head if not big page alignment ?*/ start_pfn = start >> PAGE_SHIFT; - end_pfn = ((start + (PMD_SIZE - 1)) >> PMD_SHIFT) + pos = start_pfn << PAGE_SHIFT; + end_pfn = ((pos + (PMD_SIZE - 1)) >> PMD_SHIFT) << (PMD_SHIFT - PAGE_SHIFT); - nr_range = save_mr(mr, nr_range, start_pfn, end_pfn, 0); + if (start_pfn < end_pfn) { + nr_range = save_mr(mr, nr_range, start_pfn, end_pfn, 0); + pos = end_pfn << PAGE_SHIFT; + } /* big page (2M) range*/ - start_pfn = ((start + (PMD_SIZE - 1))>>PMD_SHIFT) + start_pfn = ((pos + (PMD_SIZE - 1))>>PMD_SHIFT) << (PMD_SHIFT - PAGE_SHIFT); - end_pfn = ((start + (PUD_SIZE - 1))>>PUD_SHIFT) + end_pfn = ((pos + (PUD_SIZE - 1))>>PUD_SHIFT) << (PUD_SHIFT - PAGE_SHIFT); - if (end_pfn > ((end>>PUD_SHIFT)<<(PUD_SHIFT - PAGE_SHIFT))) - end_pfn = ((end>>PUD_SHIFT)<<(PUD_SHIFT - PAGE_SHIFT)); - nr_range = save_mr(mr, nr_range, start_pfn, end_pfn, - page_size_mask & (1<<PG_LEVEL_2M)); + if (end_pfn > ((end>>PMD_SHIFT)<<(PMD_SHIFT - PAGE_SHIFT))) + end_pfn = ((end>>PMD_SHIFT)<<(PMD_SHIFT - PAGE_SHIFT)); + if (start_pfn < end_pfn) { + nr_range = save_mr(mr, nr_range, start_pfn, end_pfn, + page_size_mask & (1<<PG_LEVEL_2M)); + pos = end_pfn << PAGE_SHIFT; + } /* big page (1G) range */ - start_pfn = end_pfn; - end_pfn = (end>>PUD_SHIFT) << (PUD_SHIFT - PAGE_SHIFT); - nr_range = save_mr(mr, nr_range, start_pfn, end_pfn, + start_pfn = ((pos + (PUD_SIZE - 1))>>PUD_SHIFT) + << (PUD_SHIFT - PAGE_SHIFT); + end_pfn = (end >> PUD_SHIFT) << (PUD_SHIFT - PAGE_SHIFT); + if (start_pfn < end_pfn) { + nr_range = save_mr(mr, nr_range, start_pfn, end_pfn, page_size_mask & ((1<<PG_LEVEL_2M)|(1<<PG_LEVEL_1G))); + pos = end_pfn << PAGE_SHIFT; + } /* tail is not big page (1G) alignment */ - start_pfn = end_pfn; - end_pfn = (end>>PMD_SHIFT) << (PMD_SHIFT - PAGE_SHIFT); - nr_range = save_mr(mr, nr_range, start_pfn, end_pfn, - page_size_mask & (1<<PG_LEVEL_2M)); + start_pfn = ((pos + (PMD_SIZE - 1))>>PMD_SHIFT) + << (PMD_SHIFT - PAGE_SHIFT); + end_pfn = (end >> PMD_SHIFT) << (PMD_SHIFT - PAGE_SHIFT); + if (start_pfn < end_pfn) { + nr_range = save_mr(mr, nr_range, start_pfn, end_pfn, + page_size_mask & (1<<PG_LEVEL_2M)); + pos = end_pfn << PAGE_SHIFT; + } /* tail is not big page (2M) alignment */ - start_pfn = end_pfn; + start_pfn = pos>>PAGE_SHIFT; end_pfn = end>>PAGE_SHIFT; nr_range = save_mr(mr, nr_range, start_pfn, end_pfn, 0); @@ -842,7 +858,7 @@ int arch_add_memory(int nid, u64 start, u64 size) max_pfn_mapped = last_mapped_pfn; ret = __add_pages(zone, start_pfn, nr_pages); - WARN_ON(1); + WARN_ON_ONCE(ret); return ret; } @@ -884,6 +900,7 @@ static struct kcore_list kcore_mem, kcore_vmalloc, kcore_kernel, void __init mem_init(void) { long codesize, reservedpages, datasize, initsize; + unsigned long absent_pages; start_periodic_check_for_corruption(); @@ -899,8 +916,9 @@ void __init mem_init(void) #else totalram_pages = free_all_bootmem(); #endif - reservedpages = max_pfn - totalram_pages - - absent_pages_in_range(0, max_pfn); + + absent_pages = absent_pages_in_range(0, max_pfn); + reservedpages = max_pfn - totalram_pages - absent_pages; after_bootmem = 1; codesize = (unsigned long) &_etext - (unsigned long) &_text; @@ -917,10 +935,11 @@ void __init mem_init(void) VSYSCALL_END - VSYSCALL_START); printk(KERN_INFO "Memory: %luk/%luk available (%ldk kernel code, " - "%ldk reserved, %ldk data, %ldk init)\n", + "%ldk absent, %ldk reserved, %ldk data, %ldk init)\n", (unsigned long) nr_free_pages() << (PAGE_SHIFT-10), max_pfn << (PAGE_SHIFT-10), codesize >> 10, + absent_pages << (PAGE_SHIFT-10), reservedpages << (PAGE_SHIFT-10), datasize >> 10, initsize >> 10); diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c index ae71e11..d4c4307 100644 --- a/arch/x86/mm/ioremap.c +++ b/arch/x86/mm/ioremap.c @@ -387,7 +387,7 @@ static void __iomem *ioremap_default(resource_size_t phys_addr, unsigned long size) { unsigned long flags; - void *ret; + void __iomem *ret; int err; /* @@ -399,11 +399,11 @@ static void __iomem *ioremap_default(resource_size_t phys_addr, if (err < 0) return NULL; - ret = (void *) __ioremap_caller(phys_addr, size, flags, - __builtin_return_address(0)); + ret = __ioremap_caller(phys_addr, size, flags, + __builtin_return_address(0)); free_memtype(phys_addr, phys_addr + size); - return (void __iomem *)ret; + return ret; } void __iomem *ioremap_prot(resource_size_t phys_addr, unsigned long size, @@ -622,7 +622,7 @@ static inline void __init early_clear_fixmap(enum fixed_addresses idx) __early_set_fixmap(idx, 0, __pgprot(0)); } -static void *prev_map[FIX_BTMAPS_SLOTS] __initdata; +static void __iomem *prev_map[FIX_BTMAPS_SLOTS] __initdata; static unsigned long prev_size[FIX_BTMAPS_SLOTS] __initdata; static int __init check_early_ioremap_leak(void) { @@ -645,7 +645,7 @@ static int __init check_early_ioremap_leak(void) } late_initcall(check_early_ioremap_leak); -static void __init *__early_ioremap(unsigned long phys_addr, unsigned long size, pgprot_t prot) +static void __init __iomem *__early_ioremap(unsigned long phys_addr, unsigned long size, pgprot_t prot) { unsigned long offset, last_addr; unsigned int nrpages; @@ -713,23 +713,23 @@ static void __init *__early_ioremap(unsigned long phys_addr, unsigned long size, if (early_ioremap_debug) printk(KERN_CONT "%08lx + %08lx\n", offset, fix_to_virt(idx0)); - prev_map[slot] = (void *) (offset + fix_to_virt(idx0)); + prev_map[slot] = (void __iomem *)(offset + fix_to_virt(idx0)); return prev_map[slot]; } /* Remap an IO device */ -void __init *early_ioremap(unsigned long phys_addr, unsigned long size) +void __init __iomem *early_ioremap(unsigned long phys_addr, unsigned long size) { return __early_ioremap(phys_addr, size, PAGE_KERNEL_IO); } /* Remap memory */ -void __init *early_memremap(unsigned long phys_addr, unsigned long size) +void __init __iomem *early_memremap(unsigned long phys_addr, unsigned long size) { return __early_ioremap(phys_addr, size, PAGE_KERNEL); } -void __init early_iounmap(void *addr, unsigned long size) +void __init early_iounmap(void __iomem *addr, unsigned long size) { unsigned long virt_addr; unsigned long offset; @@ -779,7 +779,7 @@ void __init early_iounmap(void *addr, unsigned long size) --idx; --nrpages; } - prev_map[slot] = 0; + prev_map[slot] = NULL; } void __this_fixmap_does_not_exist(void) diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c index 738fd0f..eb1bf00 100644 --- a/arch/x86/mm/pat.c +++ b/arch/x86/mm/pat.c @@ -481,12 +481,16 @@ static inline int range_is_allowed(unsigned long pfn, unsigned long size) return 1; } #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) { u64 from = ((u64)pfn) << PAGE_SHIFT; u64 to = from + size; u64 cursor = from; + if (!pat_enabled) + return 1; + while (cursor < to) { if (!devmem_is_allowed(pfn)) { printk(KERN_INFO
next reply other threads:[~2008-10-30 23:34 UTC|newest] Thread overview: 534+ messages / expand[flat|nested] mbox.gz Atom feed top 2008-10-30 23:34 Ingo Molnar [this message] 2008-10-30 23:46 ` [git pull] x86 fixes, #2 Ingo Molnar -- strict thread matches above, loose matches on Subject: below -- 2021-03-28 10:44 [GIT PULL] x86 fixes Ingo Molnar 2021-03-28 19:22 ` pr-tracker-bot 2020-10-11 8:08 Ingo Molnar 2020-10-11 18:00 ` Linus Torvalds 2020-10-11 20:00 ` Thomas Gleixner 2020-10-11 18:23 ` pr-tracker-bot 2020-09-06 8:15 Ingo Molnar 2020-09-06 19:14 ` pr-tracker-bot 2020-08-15 11:45 Ingo Molnar 2020-08-16 1:55 ` pr-tracker-bot 2020-07-25 11:46 Ingo Molnar 2020-07-25 22:30 ` pr-tracker-bot 2020-03-02 8:49 Ingo Molnar 2020-03-03 23:35 ` pr-tracker-bot 2020-01-31 11:52 Ingo Molnar 2020-01-31 19:35 ` pr-tracker-bot 2020-01-18 18:52 Ingo Molnar 2020-01-18 21:05 ` pr-tracker-bot 2019-12-01 22:22 Ingo Molnar 2019-12-02 4:40 ` pr-tracker-bot 2019-11-16 21:42 Ingo Molnar 2019-11-17 0:35 ` pr-tracker-bot 2019-10-12 13:19 Ingo Molnar 2019-10-12 22:35 ` pr-tracker-bot 2019-09-12 12:57 Ingo Molnar 2019-09-12 14:05 ` pr-tracker-bot 2019-09-05 8:07 Ingo Molnar 2019-09-05 21:15 ` pr-tracker-bot 2019-06-29 9:14 Ingo Molnar 2019-06-29 11:45 ` pr-tracker-bot 2019-06-02 17:44 Ingo Molnar 2019-06-02 18:15 ` pr-tracker-bot 2019-05-16 16:26 Ingo Molnar 2019-05-16 18:20 ` pr-tracker-bot 2019-04-27 14:42 Ingo Molnar 2019-04-27 18:45 ` pr-tracker-bot 2019-04-20 7:38 Ingo Molnar 2019-04-20 19:25 ` pr-tracker-bot 2019-04-12 13:10 Ingo Molnar 2019-04-13 4:05 ` pr-tracker-bot 2019-02-17 10:19 Ingo Molnar 2019-02-17 16:50 ` pr-tracker-bot 2019-02-10 9:13 Ingo Molnar 2019-02-10 18:30 ` pr-tracker-bot 2019-01-11 7:14 Ingo Molnar 2019-01-11 18:00 ` pr-tracker-bot 2018-12-21 12:25 Ingo Molnar 2018-12-21 19:30 ` pr-tracker-bot 2018-12-09 22:06 Ingo Molnar 2018-12-09 23:45 ` pr-tracker-bot 2018-11-30 6:29 Ingo Molnar 2018-11-30 21:00 ` pr-tracker-bot 2018-11-03 23:09 Ingo Molnar 2018-11-04 1:27 ` Linus Torvalds 2018-10-20 8:54 Ingo Molnar 2018-10-20 13:28 ` Greg Kroah-Hartman 2018-10-11 9:14 Ingo Molnar 2018-10-11 12:32 ` Greg Kroah-Hartman 2018-10-05 9:53 Ingo Molnar 2018-10-05 23:06 ` Greg Kroah-Hartman 2018-09-15 13:24 Ingo Molnar 2018-07-30 17:59 Ingo Molnar 2018-06-30 8:49 Ingo Molnar 2018-06-30 19:01 ` Linus Torvalds 2018-07-02 18:47 ` Andy Lutomirski 2018-07-02 18:53 ` Linus Torvalds 2018-07-03 7:56 ` Ingo Molnar 2018-03-31 10:36 Ingo Molnar 2018-02-15 0:45 Ingo Molnar 2018-01-17 15:41 Ingo Molnar 2018-01-17 20:35 ` Linus Torvalds 2018-01-18 0:24 ` Ingo Molnar 2018-01-18 0:29 ` Andrew Morton 2018-01-12 13:56 Ingo Molnar 2017-12-15 15:43 Ingo Molnar 2017-12-15 15:50 ` Andy Lutomirski 2017-12-15 16:07 ` Ingo Molnar 2017-12-17 3:25 ` Andy Lutomirski 2017-12-17 8:32 ` Ingo Molnar 2017-12-17 11:41 ` Thomas Gleixner 2017-12-17 15:15 ` Borislav Petkov 2017-12-06 22:36 Ingo Molnar 2017-11-26 12:48 Ingo Molnar 2017-11-05 14:46 Ingo Molnar 2017-10-27 19:24 Ingo Molnar 2017-10-14 16:16 Ingo Molnar 2017-09-24 11:28 Ingo Molnar 2017-09-13 17:54 Ingo Molnar 2017-09-12 15:38 Ingo Molnar 2017-08-26 7:26 Ingo Molnar 2017-07-21 10:26 Ingo Molnar 2017-06-10 9:03 Ingo Molnar 2017-06-02 6:54 Ingo Molnar 2017-05-12 7:39 Ingo Molnar 2017-03-07 20:40 Ingo Molnar 2017-02-28 8:08 Ingo Molnar 2017-02-11 18:18 Ingo Molnar 2017-02-02 21:04 Ingo Molnar 2017-01-15 10:06 Ingo Molnar 2016-12-23 22:57 Ingo Molnar 2016-12-07 18:53 Ingo Molnar 2016-11-22 15:41 Ingo Molnar 2016-11-14 8:03 Ingo Molnar 2016-10-28 8:41 Ingo Molnar 2016-10-22 11:16 Ingo Molnar 2016-10-18 11:22 Ingo Molnar 2016-09-13 18:20 Ingo Molnar 2016-08-18 20:49 Ingo Molnar 2016-08-12 19:46 Ingo Molnar 2016-08-06 6:13 Ingo Molnar 2016-07-13 12:54 Ingo Molnar 2016-07-08 14:00 Ingo Molnar 2016-06-10 14:43 Ingo Molnar 2016-05-25 22:00 Ingo Molnar 2016-05-10 12:01 Ingo Molnar 2016-05-06 19:20 Ingo Molnar 2016-04-28 18:00 Ingo Molnar 2016-04-23 11:38 Ingo Molnar 2016-04-14 14:13 Ingo Molnar 2016-03-24 8:01 Ingo Molnar 2016-03-12 19:06 Ingo Molnar 2016-02-20 11:30 Ingo Molnar 2016-01-14 10:16 Ingo Molnar 2016-01-08 12:57 Ingo Molnar 2015-10-23 11:45 Ingo Molnar 2015-10-03 10:24 Ingo Molnar 2015-10-03 10:57 ` Ingo Molnar 2015-10-03 19:40 ` Thomas Gleixner 2015-09-17 8:28 Ingo Molnar 2015-08-22 12:21 Ingo Molnar 2015-08-14 7:15 Ingo Molnar 2015-08-14 18:25 ` Linus Torvalds 2015-08-14 18:46 ` Andy Lutomirski 2015-08-14 18:57 ` Linus Torvalds 2015-08-14 19:06 ` Linus Torvalds 2015-08-14 19:18 ` Andy Lutomirski 2015-08-14 19:37 ` Linus Torvalds 2015-08-14 19:14 ` Andy Lutomirski 2015-08-17 8:01 ` Ingo Molnar 2015-08-17 10:59 ` Denys Vlasenko 2015-08-17 16:57 ` Linus Torvalds 2015-08-18 7:57 ` Ingo Molnar 2015-08-17 16:47 ` Linus Torvalds 2015-08-17 16:58 ` H. Peter Anvin 2015-08-17 17:17 ` Linus Torvalds 2015-08-17 22:17 ` H. Peter Anvin 2015-08-19 5:59 ` Ingo Molnar 2015-08-19 6:15 ` Ingo Molnar 2015-08-19 6:50 ` Ingo Molnar 2015-08-19 10:00 ` H. Peter Anvin 2015-08-19 22:33 ` Linus Torvalds 2015-08-20 6:54 ` H. Peter Anvin 2015-08-19 21:53 ` H. Peter Anvin 2015-08-21 10:17 ` Denys Vlasenko 2015-08-17 23:47 ` Bryan O'Donoghue 2015-08-17 21:03 ` H. Peter Anvin 2015-08-17 23:59 ` Andy Lutomirski 2015-08-18 0:01 ` H. Peter Anvin 2015-08-18 0:06 ` H. Peter Anvin 2015-08-18 0:19 ` Andy Lutomirski 2015-08-18 5:56 ` H. Peter Anvin 2015-08-18 5:59 ` H. Peter Anvin 2015-08-18 7:55 ` Ingo Molnar 2015-08-01 8:44 Ingo Molnar 2015-07-18 3:18 Ingo Molnar 2015-07-20 7:20 ` Heiko Carstens 2015-07-04 11:29 Ingo Molnar 2015-06-05 8:40 Ingo Molnar 2015-05-27 12:54 Ingo Molnar 2015-05-06 12:58 Ingo Molnar 2015-05-06 18:14 ` Linus Torvalds 2015-04-18 15:26 Ingo Molnar 2015-04-03 13:16 Ingo Molnar 2015-03-17 16:54 Ingo Molnar 2015-03-05 17:02 Ingo Molnar 2015-03-01 17:14 Ingo Molnar 2015-02-20 13:47 Ingo Molnar 2015-01-11 8:51 Ingo Molnar 2014-12-14 19:46 Ingo Molnar 2014-11-20 8:02 Ingo Molnar 2014-11-16 9:07 Ingo Molnar 2014-11-17 7:42 ` Markus Trippelsdorf 2014-11-17 8:27 ` Markus Trippelsdorf 2014-11-17 13:58 ` Ingo Molnar 2014-11-17 21:02 ` Kees Cook 2014-11-17 21:05 ` Markus Trippelsdorf 2014-11-17 21:21 ` Markus Trippelsdorf 2014-11-17 23:09 ` Kees Cook 2014-10-31 11:26 Ingo Molnar 2014-09-27 6:02 Ingo Molnar 2014-09-19 10:40 Ingo Molnar 2014-09-23 5:22 ` Linus Torvalds 2014-09-23 5:35 ` Ingo Molnar 2014-09-23 5:37 ` Ingo Molnar 2014-09-23 5:44 ` H. Peter Anvin 2014-09-23 5:59 ` Linus Torvalds 2014-09-23 6:07 ` Linus Torvalds 2014-09-23 6:56 ` Matt Fleming [not found] ` <CA+55aFz+2tf7zEGjVmkVuncZssiDdVRKJ=OUfgnDFf2TYN-KvA@mail.gmail.com> 2014-09-23 7:35 ` Matt Fleming 2014-09-23 12:18 ` Josh Boyer 2014-09-23 5:58 ` Ingo Molnar 2014-09-23 7:20 ` Matt Fleming 2014-09-23 8:18 ` Ard Biesheuvel 2014-09-23 13:18 ` Matt Fleming 2014-09-23 13:59 ` Leif Lindholm 2014-09-23 14:25 ` Maarten Lankhorst 2014-09-23 14:37 ` Matt Fleming 2014-09-23 16:01 ` Linus Torvalds 2014-09-24 7:26 ` Ingo Molnar 2014-09-24 11:42 ` Matt Fleming 2014-09-24 13:08 ` Ingo Molnar 2014-09-24 13:18 ` Matt Fleming 2014-09-24 13:18 ` Ingo Molnar 2014-09-23 16:05 ` Linus Torvalds 2014-09-23 16:11 ` Matt Fleming 2014-09-23 16:17 ` Josh Boyer 2014-09-23 17:21 ` Josh Boyer 2014-09-23 20:43 ` Matt Fleming 2014-08-24 20:28 Ingo Molnar 2014-04-16 13:21 Ingo Molnar 2013-11-13 20:47 Ingo Molnar 2013-10-18 19:11 Ingo Molnar 2013-10-12 17:15 Ingo Molnar 2013-10-12 18:05 ` Linus Torvalds 2013-10-12 18:18 ` H. Peter Anvin 2013-10-12 18:49 ` Ingo Molnar 2013-10-15 7:15 ` Ingo Molnar 2013-10-15 10:57 ` Borislav Petkov 2013-10-12 19:28 ` Matthew Garrett 2013-10-12 19:41 ` Linus Torvalds 2013-10-12 20:35 ` H. Peter Anvin 2013-10-04 7:57 Ingo Molnar 2013-09-25 18:16 Ingo Molnar 2013-09-18 16:24 Ingo Molnar 2013-09-05 11:03 Ingo Molnar 2013-08-19 11:23 Ingo Molnar 2013-04-14 15:55 Ingo Molnar 2013-02-26 12:10 Ingo Molnar 2013-02-04 18:31 Ingo Molnar 2012-10-26 14:52 Ingo Molnar 2012-09-21 19:15 Ingo Molnar 2012-08-23 10:54 Ingo Molnar 2012-08-20 9:21 Ingo Molnar 2012-08-21 8:00 ` Ingo Molnar 2012-08-03 16:51 Ingo Molnar 2012-06-29 15:33 Ingo Molnar 2012-06-15 18:53 Ingo Molnar 2012-06-08 14:46 Ingo Molnar 2012-05-17 8:24 Ingo Molnar 2012-04-27 6:57 Ingo Molnar 2012-04-03 22:45 Ingo Molnar 2012-04-03 23:47 ` Konrad Rzeszutek Wilk 2012-04-04 6:56 ` Ingo Molnar 2012-04-04 13:03 ` Konrad Rzeszutek Wilk 2012-02-27 10:32 Ingo Molnar 2012-02-02 10:10 Ingo Molnar 2012-01-26 20:15 Ingo Molnar 2012-01-15 13:40 Ingo Molnar 2011-12-13 23:00 Ingo Molnar 2011-12-05 19:18 Ingo Molnar 2011-07-07 18:24 Ingo Molnar 2011-06-19 9:09 Ingo Molnar 2011-06-13 9:49 Ingo Molnar 2011-06-07 18:44 Ingo Molnar 2011-05-31 16:30 Ingo Molnar 2011-05-31 16:35 ` Joe Perches 2011-05-31 18:16 ` Borislav Petkov 2011-05-31 19:04 ` Ingo Molnar 2011-05-31 19:51 ` Borislav Petkov 2011-05-31 21:35 ` Linus Torvalds 2011-06-01 6:00 ` Ingo Molnar 2011-06-01 6:08 ` Joe Perches 2011-06-01 6:18 ` Borislav Petkov 2011-06-01 6:24 ` Ingo Molnar 2011-05-23 10:19 Ingo Molnar 2011-05-17 21:43 Ingo Molnar 2011-05-03 11:44 Ingo Molnar 2011-04-29 18:02 Ingo Molnar 2011-04-21 16:06 Ingo Molnar 2011-04-16 10:11 Ingo Molnar 2011-04-07 17:36 Ingo Molnar 2011-04-02 10:52 Ingo Molnar 2011-03-25 13:35 Ingo Molnar 2011-03-22 10:20 Ingo Molnar 2011-03-18 13:54 Ingo Molnar 2011-03-16 16:21 Ingo Molnar 2011-03-10 8:10 Ingo Molnar 2011-02-28 17:37 Ingo Molnar 2011-02-25 19:58 Ingo Molnar 2011-02-15 16:36 Ingo Molnar 2011-02-06 11:18 Ingo Molnar 2011-01-27 17:28 Ingo Molnar 2011-01-24 13:01 Ingo Molnar 2011-01-19 19:01 Ingo Molnar 2011-01-18 19:05 Ingo Molnar 2011-01-15 15:17 Ingo Molnar 2010-12-19 15:30 Ingo Molnar 2010-11-26 13:27 Ingo Molnar 2010-11-11 11:03 Ingo Molnar 2010-10-27 16:05 Ingo Molnar 2010-10-27 16:07 ` Ingo Molnar 2010-09-26 8:50 Ingo Molnar 2010-09-08 13:08 Ingo Molnar 2010-06-02 11:49 Ingo Molnar 2010-03-30 12:30 Ingo Molnar 2010-03-26 15:43 Ingo Molnar 2010-03-29 15:47 ` Linus Torvalds 2010-03-29 16:47 ` Ingo Molnar 2010-03-13 16:39 Ingo Molnar 2010-01-31 17:19 Ingo Molnar 2010-01-16 17:03 Ingo Molnar 2010-01-16 20:34 ` Linus Torvalds 2010-01-16 20:53 ` Cyrill Gorcunov 2010-01-16 21:16 ` Ian Campbell 2010-01-16 22:12 ` Cyrill Gorcunov 2010-01-17 0:50 ` H. Peter Anvin 2010-01-16 21:06 ` H. Peter Anvin 2010-01-16 21:09 ` H. Peter Anvin 2010-01-17 0:18 ` Brian Gerst 2010-01-17 6:00 ` Ian Campbell 2009-12-31 12:03 Ingo Molnar 2009-12-31 12:56 ` Borislav Petkov 2009-12-18 18:56 Ingo Molnar 2009-12-15 20:36 Ingo Molnar 2009-12-14 19:06 Ingo Molnar 2009-12-10 19:42 Ingo Molnar 2009-11-10 17:40 Ingo Molnar 2009-11-04 15:48 Ingo Molnar 2009-11-01 15:24 Ingo Molnar 2009-10-23 14:40 Ingo Molnar 2009-10-15 10:55 Ingo Molnar 2009-10-13 18:15 Ingo Molnar 2009-10-08 18:57 Ingo Molnar 2009-10-02 12:36 Ingo Molnar 2009-09-26 12:21 Ingo Molnar 2009-09-21 12:59 Ingo Molnar 2009-08-28 10:40 Ingo Molnar 2009-08-25 18:00 Ingo Molnar 2009-08-17 21:37 Ingo Molnar 2009-08-13 18:49 Ingo Molnar 2009-08-09 16:01 Ingo Molnar 2009-08-04 18:55 Ingo Molnar 2009-06-26 19:07 Ingo Molnar 2009-06-12 10:47 Ingo Molnar 2009-05-18 14:38 Ingo Molnar 2009-05-08 18:46 Ingo Molnar 2009-05-05 9:26 Ingo Molnar 2009-04-26 17:18 Ingo Molnar 2009-04-17 1:32 Ingo Molnar 2009-04-13 17:36 Ingo Molnar 2009-04-09 15:47 Ingo Molnar 2009-04-03 22:46 Ingo Molnar 2009-03-06 18:36 [git pull] " Ingo Molnar 2009-03-03 20:59 Ingo Molnar 2009-03-02 8:47 Ingo Molnar 2009-02-27 16:28 Ingo Molnar 2009-02-21 17:08 Ingo Molnar 2009-02-20 14:18 Ingo Molnar 2009-02-19 17:10 Ingo Molnar 2009-02-21 2:13 ` Linus Torvalds 2009-02-21 6:56 ` H. Peter Anvin 2009-02-21 8:32 ` Ingo Molnar 2009-02-21 8:39 ` Ingo Molnar 2009-02-21 8:42 ` H. Peter Anvin 2009-02-21 9:18 ` Sam Ravnborg 2009-02-21 9:46 ` Ingo Molnar 2009-02-17 16:36 Ingo Molnar 2009-02-11 14:31 Ingo Molnar 2009-02-04 19:22 Ingo Molnar 2009-01-30 23:00 Ingo Molnar 2009-01-26 17:17 Ingo Molnar 2009-01-26 19:05 ` Andrew Morton 2009-01-26 19:20 ` Ingo Molnar 2009-01-26 19:40 ` Andrew Morton 2009-01-26 19:59 ` Ingo Molnar 2009-01-26 20:14 ` Andrew Morton 2009-01-26 20:28 ` Ingo Molnar 2009-01-19 23:23 Ingo Molnar 2009-01-12 18:28 Ingo Molnar 2009-01-11 14:39 Ingo Molnar 2009-01-11 16:45 ` Torsten Kaiser 2009-01-11 18:18 ` Ingo Molnar 2009-01-12 18:17 ` Pallipadi, Venkatesh 2009-01-12 19:01 ` Torsten Kaiser 2009-01-12 19:19 ` Pallipadi, Venkatesh 2009-01-12 19:29 ` Pallipadi, Venkatesh 2009-01-12 19:47 ` Linus Torvalds 2009-01-12 19:54 ` Pallipadi, Venkatesh 2009-01-12 20:38 ` Ingo Molnar 2009-01-12 20:52 ` Ingo Molnar 2009-01-12 21:03 ` Harvey Harrison 2009-01-12 21:12 ` Ingo Molnar 2009-01-12 21:55 ` Torsten Kaiser 2009-01-12 22:03 ` Ingo Molnar 2009-01-12 20:05 ` Torsten Kaiser 2009-01-12 20:40 ` Ingo Molnar 2009-01-12 21:50 ` Torsten Kaiser 2009-01-12 22:13 ` Ingo Molnar 2009-01-13 19:20 ` Torsten Kaiser 2009-01-12 22:16 ` Ingo Molnar 2009-01-02 21:48 Ingo Molnar 2008-12-20 13:43 Ingo Molnar 2008-12-20 19:16 ` Linus Torvalds 2008-12-20 19:31 ` Ingo Molnar 2008-12-20 22:11 ` Linus Torvalds 2008-12-20 20:58 ` Joerg Roedel 2008-12-08 18:26 Ingo Molnar 2008-12-04 19:46 Ingo Molnar 2008-11-29 19:31 Ingo Molnar 2008-11-20 11:22 Ingo Molnar 2008-11-18 20:35 Ingo Molnar 2008-11-06 21:29 Ingo Molnar 2008-11-01 17:06 Ingo Molnar 2008-10-28 10:49 Ingo Molnar 2008-10-23 19:33 Ingo Molnar 2008-10-17 17:27 Ingo Molnar 2008-10-15 16:32 Ingo Molnar 2008-10-01 18:05 Ingo Molnar 2008-09-27 21:02 Ingo Molnar 2008-09-23 19:34 Ingo Molnar 2008-09-17 9:58 Ingo Molnar 2008-09-09 19:03 H. Peter Anvin 2008-09-08 19:32 H. Peter Anvin 2008-09-08 20:34 ` David Sanders 2008-09-08 21:20 ` H. Peter Anvin 2008-09-08 21:22 ` H. Peter Anvin 2008-09-08 21:43 ` H. Peter Anvin 2008-09-08 22:16 ` David Sanders 2008-09-09 6:05 ` Ingo Molnar 2008-09-09 7:19 ` Ingo Molnar 2008-09-09 19:18 ` David Sanders 2008-09-09 19:56 ` Linus Torvalds 2008-09-09 20:37 ` David Sanders 2008-09-09 20:45 ` Linus Torvalds 2008-09-09 20:46 ` Linus Torvalds 2008-09-09 20:49 ` Ingo Molnar 2008-09-09 20:53 ` David Sanders 2008-09-08 17:52 H. Peter Anvin 2008-09-08 18:04 ` Linus Torvalds 2008-09-08 18:17 ` Linus Torvalds 2008-09-08 22:42 ` Andi Kleen 2008-09-08 18:22 ` H. Peter Anvin 2008-09-08 18:46 ` Arjan van de Ven 2008-09-08 18:51 ` H. Peter Anvin 2008-09-08 19:02 ` Ingo Molnar 2008-09-08 19:30 ` Linus Torvalds 2008-09-08 19:55 ` Arjan van de Ven 2008-09-08 20:14 ` H. Peter Anvin 2008-09-08 23:17 ` Krzysztof Halasa 2008-09-08 18:42 ` Arjan van de Ven 2008-09-09 10:24 ` Andi Kleen 2008-09-09 14:54 ` Linus Torvalds 2008-09-09 17:01 ` H. Peter Anvin 2008-09-09 17:17 ` Mark Lord 2008-09-09 17:19 ` H. Peter Anvin 2008-09-09 17:48 ` Mark Lord 2008-09-09 18:40 ` Andi Kleen 2008-09-09 16:05 ` Adrian Bunk 2008-09-09 16:15 ` Linus Torvalds 2008-09-08 20:25 ` Valdis.Kletnieks 2008-09-09 7:27 ` Ingo Molnar 2008-09-08 22:43 ` Andi Kleen 2008-09-09 16:57 ` Adrian Bunk 2008-09-09 17:03 ` H. Peter Anvin 2008-09-09 17:43 ` Adrian Bunk 2008-09-09 18:12 ` H. Peter Anvin 2008-09-06 19:01 Ingo Molnar 2008-09-05 18:51 Ingo Molnar 2008-08-28 11:41 Ingo Molnar 2008-08-25 17:50 Ingo Molnar 2008-08-22 12:23 Ingo Molnar 2008-08-18 18:36 Ingo Molnar 2008-07-31 21:42 Ingo Molnar 2008-07-29 15:53 Ingo Molnar 2008-07-26 19:15 Ingo Molnar 2008-07-24 15:12 Ingo Molnar 2008-07-24 19:36 ` Linus Torvalds 2008-07-24 20:38 ` H. Peter Anvin 2008-07-22 14:03 Ingo Molnar 2008-07-22 14:35 ` Johannes Weiner 2008-07-22 15:08 ` Jeremy Fitzhardinge 2008-07-22 15:23 ` Johannes Weiner 2008-07-17 17:32 Ingo Molnar 2008-07-15 15:01 Ingo Molnar 2008-07-15 15:13 ` Ingo Molnar 2008-07-15 16:03 ` Linus Torvalds 2008-07-05 19:29 Ingo Molnar 2008-07-04 16:48 Ingo Molnar 2008-06-30 15:30 Ingo Molnar 2008-06-19 15:13 Ingo Molnar 2008-06-19 21:29 ` Simon Holm Thøgersen 2008-06-19 23:34 ` Suresh Siddha 2008-06-12 19:51 Ingo Molnar 2008-05-13 19:27 Ingo Molnar 2008-05-13 19:40 ` Adrian Bunk 2008-05-13 20:02 ` Adrian Bunk 2008-05-13 20:38 ` Adrian Bunk 2008-05-13 21:01 ` H. Peter Anvin 2008-05-13 20:20 ` Linus Torvalds 2008-05-04 19:35 Ingo Molnar 2008-05-05 15:12 ` Adrian Bunk 2008-05-05 15:29 ` Andres Salomon 2008-05-06 12:49 ` Thomas Gleixner 2008-05-07 15:41 ` Andres Salomon 2008-05-07 19:08 ` Thomas Gleixner 2008-05-07 19:48 ` Andres Salomon 2008-05-07 20:07 ` Andrew Morton 2008-05-09 10:28 ` Ingo Molnar 2008-04-30 21:24 Ingo Molnar 2008-04-24 21:37 Ingo Molnar 2008-04-07 19:38 Ingo Molnar 2008-03-27 20:03 Ingo Molnar 2008-03-27 20:31 ` Linus Torvalds 2008-03-27 20:48 ` Harvey Harrison 2008-03-27 20:55 ` Ingo Molnar 2008-03-27 21:01 ` Ingo Molnar 2008-03-27 21:08 ` Harvey Harrison 2008-03-27 20:50 ` Ingo Molnar 2008-03-27 21:24 ` Ingo Molnar 2008-03-26 21:41 Ingo Molnar 2008-03-21 16:20 Ingo Molnar 2008-03-11 16:12 Ingo Molnar 2008-03-07 15:50 Ingo Molnar 2008-03-04 16:59 Ingo Molnar 2008-03-03 13:18 Ingo Molnar 2008-01-01 17:21 Ingo Molnar 2007-12-21 0:46 Ingo Molnar 2007-12-19 23:04 Ingo Molnar 2007-12-04 16:41 Ingo Molnar 2007-12-02 19:12 Ingo Molnar 2007-12-03 16:23 ` Linus Torvalds 2007-12-03 16:38 ` Ingo Molnar
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20081030233412.GA15508@elte.hu \ --to=mingo@elte.hu \ --cc=hpa@zytor.com \ --cc=linux-kernel@vger.kernel.org \ --cc=tglx@linutronix.de \ --cc=torvalds@linux-foundation.org \ --subject='Re: [git pull] x86 fixes' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).