diff options
author | Gabor Juhos <juhosg@openwrt.org> | 2008-07-28 09:48:29 +0000 |
---|---|---|
committer | Gabor Juhos <juhosg@openwrt.org> | 2008-07-28 09:48:29 +0000 |
commit | 1a1bdc1fe96a044c7204a1518a894182f224110e (patch) | |
tree | 9b117644af2ddc2bc2e458fd7f613efbe4a15762 /target/linux/ar71xx/patches-2.6.26/902-mips_clocksource_init_war.patch | |
parent | 84f5308f97c7efb5816976b41c28a1e43230d56b (diff) | |
download | upstream-1a1bdc1fe96a044c7204a1518a894182f224110e.tar.gz upstream-1a1bdc1fe96a044c7204a1518a894182f224110e.tar.bz2 upstream-1a1bdc1fe96a044c7204a1518a894182f224110e.zip |
[ar71xx] update to 2.6.26
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@11968 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/ar71xx/patches-2.6.26/902-mips_clocksource_init_war.patch')
-rw-r--r-- | target/linux/ar71xx/patches-2.6.26/902-mips_clocksource_init_war.patch | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/target/linux/ar71xx/patches-2.6.26/902-mips_clocksource_init_war.patch b/target/linux/ar71xx/patches-2.6.26/902-mips_clocksource_init_war.patch new file mode 100644 index 0000000000..7c5125f933 --- /dev/null +++ b/target/linux/ar71xx/patches-2.6.26/902-mips_clocksource_init_war.patch @@ -0,0 +1,45 @@ +--- a/include/asm-mips/hazards.h ++++ b/include/asm-mips/hazards.h +@@ -64,7 +64,7 @@ + _ehb + ) + ASMMACRO(back_to_back_c0_hazard, +- _ehb ++ _ssnop; _ssnop; _ssnop; _ehb + ) + /* + * gcc has a tradition of misscompiling the previous construct using the +--- a/arch/mips/kernel/cevt-r4k.c ++++ b/arch/mips/kernel/cevt-r4k.c +@@ -187,7 +187,7 @@ + */ + if (c0_compare_int_pending()) { + write_c0_compare(read_c0_count()); +- irq_disable_hazard(); ++ back_to_back_c0_hazard(); + if (c0_compare_int_pending()) + return 0; + } +@@ -196,7 +196,7 @@ + cnt = read_c0_count(); + cnt += delta; + write_c0_compare(cnt); +- irq_disable_hazard(); ++ back_to_back_c0_hazard(); + if ((int)(read_c0_count() - cnt) < 0) + break; + /* increase delta if the timer was already expired */ +@@ -205,11 +205,12 @@ + while ((int)(read_c0_count() - cnt) <= 0) + ; /* Wait for expiry */ + ++ back_to_back_c0_hazard(); + if (!c0_compare_int_pending()) + return 0; + + write_c0_compare(read_c0_count()); +- irq_disable_hazard(); ++ back_to_back_c0_hazard(); + if (c0_compare_int_pending()) + return 0; + |