diff --git a/debian/changelog b/debian/changelog index 362236e91..f986b98a7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -16,6 +16,10 @@ linux-2.6 (2.6.34-1~experimental.1) UNRELEASED; urgency=low * Prepare debconf templates for translation (Closes: #576758) * [x86] Enable r8187se driver, previously named rtl8187se + [ Aurelien Jarno ] + * mips/swarm: fix boot from IDE based media (Sebastian Andrzej Siewior) + (closes: #466977). + -- maximilian attems Wed, 05 May 2010 22:57:24 +0200 linux-2.6 (2.6.33-1~experimental.5) experimental; urgency=low diff --git a/debian/patches/bugfix/mips/mips-ide-flush-dcache.patch b/debian/patches/bugfix/mips/mips-ide-flush-dcache.patch new file mode 100644 index 000000000..e6c22adb2 --- /dev/null +++ b/debian/patches/bugfix/mips/mips-ide-flush-dcache.patch @@ -0,0 +1,46 @@ +From: Sebastian Andrzej Siewior +Subject: mips/ide: flush dcache also if icache does not snoop dcache + +If this is not done then the new just read data which remains in dcache +will not make it into icache on time. Thus the CPU loads invalid data +and executes crap. The result is that the user is not able to execute +anything from its IDE based media while reading plain data is still +working well. +This problem has been reported as Debian #404951. + +Cc: stable@kernel.org +Signed-off-by: Sebastian Andrzej Siewior +--- + arch/mips/include/asm/mach-generic/ide.h | 6 +++--- + 1 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/arch/mips/include/asm/mach-generic/ide.h b/arch/mips/include/asm/mach-generic/ide.h +index 9c93a5b..e80e47f 100644 +--- a/arch/mips/include/asm/mach-generic/ide.h ++++ b/arch/mips/include/asm/mach-generic/ide.h +@@ -23,7 +23,7 @@ + static inline void __ide_flush_prologue(void) + { + #ifdef CONFIG_SMP +- if (cpu_has_dc_aliases) ++ if (cpu_has_dc_aliases || !cpu_has_ic_fills_f_dc) + preempt_disable(); + #endif + } +@@ -31,14 +31,14 @@ static inline void __ide_flush_prologue(void) + static inline void __ide_flush_epilogue(void) + { + #ifdef CONFIG_SMP +- if (cpu_has_dc_aliases) ++ if (cpu_has_dc_aliases || !cpu_has_ic_fills_f_dc) + preempt_enable(); + #endif + } + + static inline void __ide_flush_dcache_range(unsigned long addr, unsigned long size) + { +- if (cpu_has_dc_aliases) { ++ if (cpu_has_dc_aliases || !cpu_has_ic_fills_f_dc) { + unsigned long end = addr + size; + + while (addr < end) { diff --git a/debian/patches/series/base b/debian/patches/series/base index 9cbd60323..139ede480 100644 --- a/debian/patches/series/base +++ b/debian/patches/series/base @@ -56,3 +56,4 @@ + bugfix/all/p54pci-fix-serious-sparse-warning.patch + bugfix/all/p54pci-fix-regression.patch + bugfix/all/cifs-allow-null-nd-on-create.patch ++ bugfix/mips/mips-ide-flush-dcache.patch