I'm announcing the release of the 2.6.35.2 kernel.
All users of the 2.6.35 kernel series must upgrade.
I'm tired of people trying to parse my words like I'm the Federal
Reserve Chairman, just go update already. If you use a kernel.org-based
kernel, and you aren't updating to the latest -stable updates, well, why
are you using a kernel.org kernel in the first place?
The updated 2.6.35.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.35.y.git
and can be browsed at the normal kernel.org git web browser:
http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.35.y.git;a=summary
thanks,
greg k-h
------------
Makefile | 2
arch/arm/Kconfig | 12 +++
arch/arm/include/asm/tlbflush.h | 8 ++
arch/arm/mach-pxa/cm-x300.c | 3
arch/arm/plat-mxc/include/mach/gpio.h | 1
arch/powerpc/Makefile | 16 +++-
arch/powerpc/kernel/perf_event_fsl_emb.c | 1
arch/x86/include/asm/cmpxchg_32.h | 68 ++++++++++----------
arch/x86/include/asm/cmpxchg_64.h | 40 ++++++------
arch/x86/kernel/cpu/mtrr/main.c | 56 +++++++++++++----
arch/x86/kernel/cpu/vmware.c | 9 ++
arch/x86/kernel/smpboot.c | 7 ++
arch/x86/mm/fault.c | 4 -
arch/x86/mm/kmmio.c | 16 +++-
arch/x86/mm/testmmiotrace.c | 22 ++++++
arch/x86/pci/acpi.c | 9 ++
crypto/Kconfig | 8 ++
crypto/algboss.c | 4 +
crypto/testmgr.c | 14 ++++
drivers/ata/ata_piix.c | 8 ++
drivers/atm/solos-pci.c | 7 +-
drivers/block/drbd/drbd_main.c | 27 +++++---
drivers/bluetooth/btusb.c | 3
...diff --git a/Makefile b/Makefile
index 0b9c763..3cf2397 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 35
-EXTRAVERSION = .1
+EXTRAVERSION = .2
NAME = Sheep on Meth
# *DOCUMENTATION*
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 98922f7..4824fb4 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1027,6 +1027,18 @@ config PL310_ERRATA_588369
is not correctly implemented in PL310 as clean lines are not
invalidated as a result of these operations. Note that this errata
uses Texas Instrument's secure monitor api.
+
+config ARM_ERRATA_720789
+ bool "ARM errata: TLBIASIDIS and TLBIMVAIS operations can broadcast a faulty ASID"
+ depends on CPU_V7 && SMP
+ help
+ This option enables the workaround for the 720789 Cortex-A9 (prior to
+ r2p0) erratum. A faulty ASID can be sent to the other CPUs for the
+ broadcasted CP15 TLB maintenance operations TLBIASIDIS and TLBIMVAIS.
+ As a consequence of this erratum, some TLB entries which should be
+ invalidated are not, resulting in an incoherency in the system page
+ tables. The workaround changes the TLB flushing routines to invalidate
+ entries regardless of the ASID.
endmenu
source "arch/arm/common/Kconfig"
diff --git a/arch/arm/include/asm/tlbflush.h b/arch/arm/include/asm/tlbflush.h
index bd863d8..33b546a 100644
--- a/arch/arm/include/asm/tlbflush.h
+++ b/arch/arm/include/asm/tlbflush.h
@@ -378,7 +378,11 @@ static inline void local_flush_tlb_mm(struct mm_struct *mm)
if (tlb_flag(TLB_V6_I_ASID))
asm("mcr p15, 0, %0, c8, c5, 2" : : "r" (asid) : "cc");
if (tlb_flag(TLB_V7_UIS_ASID))
+#ifdef CONFIG_ARM_ERRATA_720789
+ asm("mcr p15, 0, %0, c8, c3, 0" : : "r" (zero) : "cc");
+#else
asm("mcr p15, 0, %0, c8, c3, 2" : : "r" (asid) : "cc");
+#endif
if (tlb_flag(TLB_BTB)) {
/* flush the branch target cache */
@@ -424,7 +428,11 @@ local_flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr)
if ...There's a small typo in the crypto/Kconfig patch. This corrects it. diff -urN a/crypto/Kconfig b/crypto/Kconfig --- a/crypto/Kconfig 2010-08-13 22:44:56.000000000 +0200 +++ b/crypto/Kconfig 2010-08-14 08:47:17.810000001 +0200 @@ -97,7 +97,7 @@ select CRYPTO_PCOMP config CRYPTO_MANAGER_TESTS - bool "Run algolithms' self-tests" + bool "Run algorithms' self-tests" default y depends on CRYPTO_MANAGER2 help --
Heh, that's not a big deal, I suggest you get that upstream in Linus's tree, as it's the same there, right? thanks, greg k-h --
I'm not sure this is the right mailing list but this is the first kernel that fails to boot for me (since 2.6.33.x). The laptop just restarts right after "Freeing unused kernel memory: 628k freed" 2.6.35.1 is fine with the same .config. Anyone willing to help me to debug? -- Arthur Titeica --
You could try 'git bisect' between v2.6.35.1 and v2.6.35.2 to narrow the problem down to a specific commit. --
I'm trying but I'm not even close to a dev and anything beyond 'git pull' looks tricky. I've gotten so far: $ git bisect start $ git bisect bad $ git bisect good v2.6.35.1 fatal: Needed a single revision Bad rev input: v2.6.35.1 $ git bisect good v2.6.35 Bisecting: 3941 revisions left to test after this (roughly 12 steps) [2192482ee5ce5d5d4a6cec0c351b2d3a744606eb] Merge branch 'for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into devel-stable What next? ;) -- Arthur Titeica --
Build your kernel, and see if it boots. If it boots, run: git bisect good If it doesn't boot, run: git bisect bad Repeat the process until it is done (should be close to 12 times). --
You are going to bisect the wrong tree. Looks like you don't have the stable git tree: # git clone --reference linux-2.6 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.35.y.git # cd linux-2.6.35.y # git bisect start # git bisect good v2.6.35.1 # git bisect bad v2.6.35.2 'linux-2.6' would be your local clone of Linus' upstream git tree. That way git will only pull a couple of megs instead of several hundred megs. --
