* [GIT PULL] x86/urgent for 2.6.36-rc1
@ 2010-08-12 19:08 H. Peter Anvin
2010-08-13 6:09 ` David Hill
0 siblings, 1 reply; 2+ messages in thread
From: H. Peter Anvin @ 2010-08-12 19:08 UTC (permalink / raw)
To: Linus Torvalds
Cc: stable, David Hill, Dieter Stussy, Eric W. Biederman,
H. Peter Anvin, H. Peter Anvin, Ingo Molnar,
Linux Kernel Mailing List, Luca Barbieri, Namhyung Kim,
Thomas Gleixner, Tvrtko Ursulin
Hi Linus,
First batch of x86 fixes.
The following changes since commit ad41a1e0cab07c5125456e8d38e5b1ab148d04aa:
Merge branch 'io_remap_pfn_range' of git://www.jni.nu/cris (2010-08-12 10:17:19 -0700)
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git x86/urgent
Eric W. Biederman (1):
x86, apic: Map the local apic when parsing the MP table.
Luca Barbieri (2):
x86, asm: Refactor atomic64_386_32.S to support old binutils and be cleaner
x86, asm: Use a lower case name for the end macro in atomic64_386_32.S
Namhyung Kim (1):
x86: Document __phys_reloc_hide() usage in __pa_symbol()
arch/x86/include/asm/page.h | 7 +
arch/x86/kernel/apic/apic.c | 2 +-
arch/x86/kernel/mpparse.c | 16 +++
arch/x86/lib/atomic64_386_32.S | 238 ++++++++++++++++++++++------------------
4 files changed, 154 insertions(+), 109 deletions(-)
diff --git a/arch/x86/include/asm/page.h b/arch/x86/include/asm/page.h
index 625c3f0..8ca8283 100644
--- a/arch/x86/include/asm/page.h
+++ b/arch/x86/include/asm/page.h
@@ -37,6 +37,13 @@ static inline void copy_user_page(void *to, void *from, unsigned long vaddr,
#define __pa_nodebug(x) __phys_addr_nodebug((unsigned long)(x))
/* __pa_symbol should be used for C visible symbols.
This seems to be the official gcc blessed way to do such arithmetic. */
+/*
+ * We need __phys_reloc_hide() here because gcc may assume that there is no
+ * overflow during __pa() calculation and can optimize it unexpectedly.
+ * Newer versions of gcc provide -fno-strict-overflow switch to handle this
+ * case properly. Once all supported versions of gcc understand it, we can
+ * remove this Voodoo magic stuff. (i.e. once gcc3.x is deprecated)
+ */
#define __pa_symbol(x) __pa(__phys_reloc_hide((unsigned long)(x)))
#define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET))
diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
index 980508c..e3b534c 100644
--- a/arch/x86/kernel/apic/apic.c
+++ b/arch/x86/kernel/apic/apic.c
@@ -1606,7 +1606,7 @@ void __init init_apic_mappings(void)
* acpi lapic path already maps that address in
* acpi_register_lapic_address()
*/
- if (!acpi_lapic)
+ if (!acpi_lapic && !smp_found_config)
set_fixmap_nocache(FIX_APIC_BASE, apic_phys);
apic_printk(APIC_VERBOSE, "mapped APIC to %08lx (%08lx)\n",
diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c
index d86dbf7..d7b6f7f 100644
--- a/arch/x86/kernel/mpparse.c
+++ b/arch/x86/kernel/mpparse.c
@@ -274,6 +274,18 @@ static void __init smp_dump_mptable(struct mpc_table *mpc, unsigned char *mpt)
void __init default_smp_read_mpc_oem(struct mpc_table *mpc) { }
+static void __init smp_register_lapic_address(unsigned long address)
+{
+ mp_lapic_addr = address;
+
+ set_fixmap_nocache(FIX_APIC_BASE, address);
+ if (boot_cpu_physical_apicid == -1U) {
+ boot_cpu_physical_apicid = read_apic_id();
+ apic_version[boot_cpu_physical_apicid] =
+ GET_APIC_VERSION(apic_read(APIC_LVR));
+ }
+}
+
static int __init smp_read_mpc(struct mpc_table *mpc, unsigned early)
{
char str[16];
@@ -295,6 +307,10 @@ static int __init smp_read_mpc(struct mpc_table *mpc, unsigned early)
if (early)
return 1;
+ /* Initialize the lapic mapping */
+ if (!acpi_lapic)
+ smp_register_lapic_address(mpc->lapic);
+
if (mpc->oemptr)
x86_init.mpparse.smp_read_mpc_oem(mpc);
diff --git a/arch/x86/lib/atomic64_386_32.S b/arch/x86/lib/atomic64_386_32.S
index 4a5979a..2cda60a 100644
--- a/arch/x86/lib/atomic64_386_32.S
+++ b/arch/x86/lib/atomic64_386_32.S
@@ -25,150 +25,172 @@
CFI_ADJUST_CFA_OFFSET -4
.endm
-.macro BEGIN func reg
-$v = \reg
-
-ENTRY(atomic64_\func\()_386)
- CFI_STARTPROC
- LOCK $v
-
-.macro RETURN
- UNLOCK $v
+#define BEGIN(op) \
+.macro endp; \
+ CFI_ENDPROC; \
+ENDPROC(atomic64_##op##_386); \
+.purgem endp; \
+.endm; \
+ENTRY(atomic64_##op##_386); \
+ CFI_STARTPROC; \
+ LOCK v;
+
+#define ENDP endp
+
+#define RET \
+ UNLOCK v; \
ret
-.endm
-
-.macro END_
- CFI_ENDPROC
-ENDPROC(atomic64_\func\()_386)
-.purgem RETURN
-.purgem END_
-.purgem END
-.endm
-
-.macro END
-RETURN
-END_
-.endm
-.endm
-BEGIN read %ecx
- movl ($v), %eax
- movl 4($v), %edx
-END
-
-BEGIN set %esi
- movl %ebx, ($v)
- movl %ecx, 4($v)
-END
-
-BEGIN xchg %esi
- movl ($v), %eax
- movl 4($v), %edx
- movl %ebx, ($v)
- movl %ecx, 4($v)
-END
-
-BEGIN add %ecx
- addl %eax, ($v)
- adcl %edx, 4($v)
-END
-
-BEGIN add_return %ecx
- addl ($v), %eax
- adcl 4($v), %edx
- movl %eax, ($v)
- movl %edx, 4($v)
-END
-
-BEGIN sub %ecx
- subl %eax, ($v)
- sbbl %edx, 4($v)
-END
-
-BEGIN sub_return %ecx
+#define RET_ENDP \
+ RET; \
+ ENDP
+
+#define v %ecx
+BEGIN(read)
+ movl (v), %eax
+ movl 4(v), %edx
+RET_ENDP
+#undef v
+
+#define v %esi
+BEGIN(set)
+ movl %ebx, (v)
+ movl %ecx, 4(v)
+RET_ENDP
+#undef v
+
+#define v %esi
+BEGIN(xchg)
+ movl (v), %eax
+ movl 4(v), %edx
+ movl %ebx, (v)
+ movl %ecx, 4(v)
+RET_ENDP
+#undef v
+
+#define v %ecx
+BEGIN(add)
+ addl %eax, (v)
+ adcl %edx, 4(v)
+RET_ENDP
+#undef v
+
+#define v %ecx
+BEGIN(add_return)
+ addl (v), %eax
+ adcl 4(v), %edx
+ movl %eax, (v)
+ movl %edx, 4(v)
+RET_ENDP
+#undef v
+
+#define v %ecx
+BEGIN(sub)
+ subl %eax, (v)
+ sbbl %edx, 4(v)
+RET_ENDP
+#undef v
+
+#define v %ecx
+BEGIN(sub_return)
negl %edx
negl %eax
sbbl $0, %edx
- addl ($v), %eax
- adcl 4($v), %edx
- movl %eax, ($v)
- movl %edx, 4($v)
-END
-
-BEGIN inc %esi
- addl $1, ($v)
- adcl $0, 4($v)
-END
-
-BEGIN inc_return %esi
- movl ($v), %eax
- movl 4($v), %edx
+ addl (v), %eax
+ adcl 4(v), %edx
+ movl %eax, (v)
+ movl %edx, 4(v)
+RET_ENDP
+#undef v
+
+#define v %esi
+BEGIN(inc)
+ addl $1, (v)
+ adcl $0, 4(v)
+RET_ENDP
+#undef v
+
+#define v %esi
+BEGIN(inc_return)
+ movl (v), %eax
+ movl 4(v), %edx
addl $1, %eax
adcl $0, %edx
- movl %eax, ($v)
- movl %edx, 4($v)
-END
-
-BEGIN dec %esi
- subl $1, ($v)
- sbbl $0, 4($v)
-END
-
-BEGIN dec_return %esi
- movl ($v), %eax
- movl 4($v), %edx
+ movl %eax, (v)
+ movl %edx, 4(v)
+RET_ENDP
+#undef v
+
+#define v %esi
+BEGIN(dec)
+ subl $1, (v)
+ sbbl $0, 4(v)
+RET_ENDP
+#undef v
+
+#define v %esi
+BEGIN(dec_return)
+ movl (v), %eax
+ movl 4(v), %edx
subl $1, %eax
sbbl $0, %edx
- movl %eax, ($v)
- movl %edx, 4($v)
-END
+ movl %eax, (v)
+ movl %edx, 4(v)
+RET_ENDP
+#undef v
-BEGIN add_unless %ecx
+#define v %ecx
+BEGIN(add_unless)
addl %eax, %esi
adcl %edx, %edi
- addl ($v), %eax
- adcl 4($v), %edx
+ addl (v), %eax
+ adcl 4(v), %edx
cmpl %eax, %esi
je 3f
1:
- movl %eax, ($v)
- movl %edx, 4($v)
+ movl %eax, (v)
+ movl %edx, 4(v)
movl $1, %eax
2:
-RETURN
+ RET
3:
cmpl %edx, %edi
jne 1b
xorl %eax, %eax
jmp 2b
-END_
+ENDP
+#undef v
-BEGIN inc_not_zero %esi
- movl ($v), %eax
- movl 4($v), %edx
+#define v %esi
+BEGIN(inc_not_zero)
+ movl (v), %eax
+ movl 4(v), %edx
testl %eax, %eax
je 3f
1:
addl $1, %eax
adcl $0, %edx
- movl %eax, ($v)
- movl %edx, 4($v)
+ movl %eax, (v)
+ movl %edx, 4(v)
movl $1, %eax
2:
-RETURN
+ RET
3:
testl %edx, %edx
jne 1b
jmp 2b
-END_
+ENDP
+#undef v
-BEGIN dec_if_positive %esi
- movl ($v), %eax
- movl 4($v), %edx
+#define v %esi
+BEGIN(dec_if_positive)
+ movl (v), %eax
+ movl 4(v), %edx
subl $1, %eax
sbbl $0, %edx
js 1f
- movl %eax, ($v)
- movl %edx, 4($v)
+ movl %eax, (v)
+ movl %edx, 4(v)
1:
-END
+RET_ENDP
+#undef v
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [GIT PULL] x86/urgent for 2.6.36-rc1
2010-08-12 19:08 [GIT PULL] x86/urgent for 2.6.36-rc1 H. Peter Anvin
@ 2010-08-13 6:09 ` David Hill
0 siblings, 0 replies; 2+ messages in thread
From: David Hill @ 2010-08-13 6:09 UTC (permalink / raw)
To: H. Peter Anvin, Linus Torvalds
Cc: stable, Dieter Stussy, Eric W. Biederman, H. Peter Anvin,
H. Peter Anvin, Ingo Molnar, Linux Kernel Mailing List,
Luca Barbieri, Namhyung Kim, Thomas Gleixner, Tvrtko Ursulin
Eureka!
This seems to solve my problem! My Dual P3-500MHZ is now booting with
that patch.
Good work guys!!!!
Thank you very much,
David C. Hill
----- Original Message -----
From: "H. Peter Anvin" <hpa@linux.intel.com>
To: "Linus Torvalds" <torvalds@linux-foundation.org>
Cc: <stable@kernel.org>; "David Hill" <hilld@binarystorm.net>; "Dieter
Stussy" <kd6lvw+software@kd6lvw.ampr.org>; "Eric W. Biederman"
<ebiederm@xmission.com>; "H. Peter Anvin" <hpa@linux.intel.com>; "H. Peter
Anvin" <hpa@zytor.com>; "Ingo Molnar" <mingo@elte.hu>; "Linux Kernel Mailing
List" <linux-kernel@vger.kernel.org>; "Luca Barbieri"
<luca@luca-barbieri.com>; "Namhyung Kim" <namhyung@gmail.com>; "Thomas
Gleixner" <tglx@linutronix.de>; "Tvrtko Ursulin" <tvrtko.ursulin@sophos.com>
Sent: Thursday, August 12, 2010 3:08 PM
Subject: [GIT PULL] x86/urgent for 2.6.36-rc1
> Hi Linus,
>
> First batch of x86 fixes.
>
> The following changes since commit
> ad41a1e0cab07c5125456e8d38e5b1ab148d04aa:
>
> Merge branch 'io_remap_pfn_range' of git://www.jni.nu/cris (2010-08-12
> 10:17:19 -0700)
>
> are available in the git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git
> x86/urgent
>
> Eric W. Biederman (1):
> x86, apic: Map the local apic when parsing the MP table.
>
> Luca Barbieri (2):
> x86, asm: Refactor atomic64_386_32.S to support old binutils and be
> cleaner
> x86, asm: Use a lower case name for the end macro in
> atomic64_386_32.S
>
> Namhyung Kim (1):
> x86: Document __phys_reloc_hide() usage in __pa_symbol()
>
> arch/x86/include/asm/page.h | 7 +
> arch/x86/kernel/apic/apic.c | 2 +-
> arch/x86/kernel/mpparse.c | 16 +++
> arch/x86/lib/atomic64_386_32.S | 238
> ++++++++++++++++++++++------------------
> 4 files changed, 154 insertions(+), 109 deletions(-)
>
> diff --git a/arch/x86/include/asm/page.h b/arch/x86/include/asm/page.h
> index 625c3f0..8ca8283 100644
> --- a/arch/x86/include/asm/page.h
> +++ b/arch/x86/include/asm/page.h
> @@ -37,6 +37,13 @@ static inline void copy_user_page(void *to, void *from,
> unsigned long vaddr,
> #define __pa_nodebug(x) __phys_addr_nodebug((unsigned long)(x))
> /* __pa_symbol should be used for C visible symbols.
> This seems to be the official gcc blessed way to do such arithmetic. */
> +/*
> + * We need __phys_reloc_hide() here because gcc may assume that there is
> no
> + * overflow during __pa() calculation and can optimize it unexpectedly.
> + * Newer versions of gcc provide -fno-strict-overflow switch to handle
> this
> + * case properly. Once all supported versions of gcc understand it, we
> can
> + * remove this Voodoo magic stuff. (i.e. once gcc3.x is deprecated)
> + */
> #define __pa_symbol(x) __pa(__phys_reloc_hide((unsigned long)(x)))
>
> #define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET))
> diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
> index 980508c..e3b534c 100644
> --- a/arch/x86/kernel/apic/apic.c
> +++ b/arch/x86/kernel/apic/apic.c
> @@ -1606,7 +1606,7 @@ void __init init_apic_mappings(void)
> * acpi lapic path already maps that address in
> * acpi_register_lapic_address()
> */
> - if (!acpi_lapic)
> + if (!acpi_lapic && !smp_found_config)
> set_fixmap_nocache(FIX_APIC_BASE, apic_phys);
>
> apic_printk(APIC_VERBOSE, "mapped APIC to %08lx (%08lx)\n",
> diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c
> index d86dbf7..d7b6f7f 100644
> --- a/arch/x86/kernel/mpparse.c
> +++ b/arch/x86/kernel/mpparse.c
> @@ -274,6 +274,18 @@ static void __init smp_dump_mptable(struct mpc_table
> *mpc, unsigned char *mpt)
>
> void __init default_smp_read_mpc_oem(struct mpc_table *mpc) { }
>
> +static void __init smp_register_lapic_address(unsigned long address)
> +{
> + mp_lapic_addr = address;
> +
> + set_fixmap_nocache(FIX_APIC_BASE, address);
> + if (boot_cpu_physical_apicid == -1U) {
> + boot_cpu_physical_apicid = read_apic_id();
> + apic_version[boot_cpu_physical_apicid] =
> + GET_APIC_VERSION(apic_read(APIC_LVR));
> + }
> +}
> +
> static int __init smp_read_mpc(struct mpc_table *mpc, unsigned early)
> {
> char str[16];
> @@ -295,6 +307,10 @@ static int __init smp_read_mpc(struct mpc_table *mpc,
> unsigned early)
> if (early)
> return 1;
>
> + /* Initialize the lapic mapping */
> + if (!acpi_lapic)
> + smp_register_lapic_address(mpc->lapic);
> +
> if (mpc->oemptr)
> x86_init.mpparse.smp_read_mpc_oem(mpc);
>
> diff --git a/arch/x86/lib/atomic64_386_32.S
> b/arch/x86/lib/atomic64_386_32.S
> index 4a5979a..2cda60a 100644
> --- a/arch/x86/lib/atomic64_386_32.S
> +++ b/arch/x86/lib/atomic64_386_32.S
> @@ -25,150 +25,172 @@
> CFI_ADJUST_CFA_OFFSET -4
> .endm
>
> -.macro BEGIN func reg
> -$v = \reg
> -
> -ENTRY(atomic64_\func\()_386)
> - CFI_STARTPROC
> - LOCK $v
> -
> -.macro RETURN
> - UNLOCK $v
> +#define BEGIN(op) \
> +.macro endp; \
> + CFI_ENDPROC; \
> +ENDPROC(atomic64_##op##_386); \
> +.purgem endp; \
> +.endm; \
> +ENTRY(atomic64_##op##_386); \
> + CFI_STARTPROC; \
> + LOCK v;
> +
> +#define ENDP endp
> +
> +#define RET \
> + UNLOCK v; \
> ret
> -.endm
> -
> -.macro END_
> - CFI_ENDPROC
> -ENDPROC(atomic64_\func\()_386)
> -.purgem RETURN
> -.purgem END_
> -.purgem END
> -.endm
> -
> -.macro END
> -RETURN
> -END_
> -.endm
> -.endm
>
> -BEGIN read %ecx
> - movl ($v), %eax
> - movl 4($v), %edx
> -END
> -
> -BEGIN set %esi
> - movl %ebx, ($v)
> - movl %ecx, 4($v)
> -END
> -
> -BEGIN xchg %esi
> - movl ($v), %eax
> - movl 4($v), %edx
> - movl %ebx, ($v)
> - movl %ecx, 4($v)
> -END
> -
> -BEGIN add %ecx
> - addl %eax, ($v)
> - adcl %edx, 4($v)
> -END
> -
> -BEGIN add_return %ecx
> - addl ($v), %eax
> - adcl 4($v), %edx
> - movl %eax, ($v)
> - movl %edx, 4($v)
> -END
> -
> -BEGIN sub %ecx
> - subl %eax, ($v)
> - sbbl %edx, 4($v)
> -END
> -
> -BEGIN sub_return %ecx
> +#define RET_ENDP \
> + RET; \
> + ENDP
> +
> +#define v %ecx
> +BEGIN(read)
> + movl (v), %eax
> + movl 4(v), %edx
> +RET_ENDP
> +#undef v
> +
> +#define v %esi
> +BEGIN(set)
> + movl %ebx, (v)
> + movl %ecx, 4(v)
> +RET_ENDP
> +#undef v
> +
> +#define v %esi
> +BEGIN(xchg)
> + movl (v), %eax
> + movl 4(v), %edx
> + movl %ebx, (v)
> + movl %ecx, 4(v)
> +RET_ENDP
> +#undef v
> +
> +#define v %ecx
> +BEGIN(add)
> + addl %eax, (v)
> + adcl %edx, 4(v)
> +RET_ENDP
> +#undef v
> +
> +#define v %ecx
> +BEGIN(add_return)
> + addl (v), %eax
> + adcl 4(v), %edx
> + movl %eax, (v)
> + movl %edx, 4(v)
> +RET_ENDP
> +#undef v
> +
> +#define v %ecx
> +BEGIN(sub)
> + subl %eax, (v)
> + sbbl %edx, 4(v)
> +RET_ENDP
> +#undef v
> +
> +#define v %ecx
> +BEGIN(sub_return)
> negl %edx
> negl %eax
> sbbl $0, %edx
> - addl ($v), %eax
> - adcl 4($v), %edx
> - movl %eax, ($v)
> - movl %edx, 4($v)
> -END
> -
> -BEGIN inc %esi
> - addl $1, ($v)
> - adcl $0, 4($v)
> -END
> -
> -BEGIN inc_return %esi
> - movl ($v), %eax
> - movl 4($v), %edx
> + addl (v), %eax
> + adcl 4(v), %edx
> + movl %eax, (v)
> + movl %edx, 4(v)
> +RET_ENDP
> +#undef v
> +
> +#define v %esi
> +BEGIN(inc)
> + addl $1, (v)
> + adcl $0, 4(v)
> +RET_ENDP
> +#undef v
> +
> +#define v %esi
> +BEGIN(inc_return)
> + movl (v), %eax
> + movl 4(v), %edx
> addl $1, %eax
> adcl $0, %edx
> - movl %eax, ($v)
> - movl %edx, 4($v)
> -END
> -
> -BEGIN dec %esi
> - subl $1, ($v)
> - sbbl $0, 4($v)
> -END
> -
> -BEGIN dec_return %esi
> - movl ($v), %eax
> - movl 4($v), %edx
> + movl %eax, (v)
> + movl %edx, 4(v)
> +RET_ENDP
> +#undef v
> +
> +#define v %esi
> +BEGIN(dec)
> + subl $1, (v)
> + sbbl $0, 4(v)
> +RET_ENDP
> +#undef v
> +
> +#define v %esi
> +BEGIN(dec_return)
> + movl (v), %eax
> + movl 4(v), %edx
> subl $1, %eax
> sbbl $0, %edx
> - movl %eax, ($v)
> - movl %edx, 4($v)
> -END
> + movl %eax, (v)
> + movl %edx, 4(v)
> +RET_ENDP
> +#undef v
>
> -BEGIN add_unless %ecx
> +#define v %ecx
> +BEGIN(add_unless)
> addl %eax, %esi
> adcl %edx, %edi
> - addl ($v), %eax
> - adcl 4($v), %edx
> + addl (v), %eax
> + adcl 4(v), %edx
> cmpl %eax, %esi
> je 3f
> 1:
> - movl %eax, ($v)
> - movl %edx, 4($v)
> + movl %eax, (v)
> + movl %edx, 4(v)
> movl $1, %eax
> 2:
> -RETURN
> + RET
> 3:
> cmpl %edx, %edi
> jne 1b
> xorl %eax, %eax
> jmp 2b
> -END_
> +ENDP
> +#undef v
>
> -BEGIN inc_not_zero %esi
> - movl ($v), %eax
> - movl 4($v), %edx
> +#define v %esi
> +BEGIN(inc_not_zero)
> + movl (v), %eax
> + movl 4(v), %edx
> testl %eax, %eax
> je 3f
> 1:
> addl $1, %eax
> adcl $0, %edx
> - movl %eax, ($v)
> - movl %edx, 4($v)
> + movl %eax, (v)
> + movl %edx, 4(v)
> movl $1, %eax
> 2:
> -RETURN
> + RET
> 3:
> testl %edx, %edx
> jne 1b
> jmp 2b
> -END_
> +ENDP
> +#undef v
>
> -BEGIN dec_if_positive %esi
> - movl ($v), %eax
> - movl 4($v), %edx
> +#define v %esi
> +BEGIN(dec_if_positive)
> + movl (v), %eax
> + movl 4(v), %edx
> subl $1, %eax
> sbbl $0, %edx
> js 1f
> - movl %eax, ($v)
> - movl %edx, 4($v)
> + movl %eax, (v)
> + movl %edx, 4(v)
> 1:
> -END
> +RET_ENDP
> +#undef v
>
> --
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.
>
>
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-08-13 6:10 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-08-12 19:08 [GIT PULL] x86/urgent for 2.6.36-rc1 H. Peter Anvin
2010-08-13 6:09 ` David Hill
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox