X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/7d1583626feb64482457250252884a1730727ed3..7231ec09a2ae26a5347ba73a6229c931b3f00d13:/target/linux/brcm47xx/patches-2.6.34/920-cache-wround.patch diff --git a/target/linux/brcm47xx/patches-2.6.34/920-cache-wround.patch b/target/linux/brcm47xx/patches-2.6.34/920-cache-wround.patch index 3edf04bf0..4769f2cf9 100644 --- a/target/linux/brcm47xx/patches-2.6.34/920-cache-wround.patch +++ b/target/linux/brcm47xx/patches-2.6.34/920-cache-wround.patch @@ -1,25 +1,28 @@ --- a/arch/mips/include/asm/r4kcache.h +++ b/arch/mips/include/asm/r4kcache.h -@@ -20,10 +20,25 @@ +@@ -20,10 +20,28 @@ #ifdef CONFIG_BCM47XX #include #include --#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE))) +-#define BCM4710_DUMMY_RREG() ((void) *((u8 *) KSEG1ADDR(SSB_ENUM_BASE))) +#define BCM4710_DUMMY_RREG() bcm4710_dummy_rreg() + -+static inline unsigned long bcm4710_dummy_rreg(void) { -+ return (*(volatile unsigned long *)(KSEG1ADDR(SSB_ENUM_BASE + SSB_IMSTATE))); ++static inline unsigned long bcm4710_dummy_rreg(void) ++{ ++ return *(volatile unsigned long *)(KSEG1ADDR(SSB_ENUM_BASE)); +} + -+#define BCM4710_FILL_TLB(addr) bcm4710_fill_tlb((void*)(addr)) ++#define BCM4710_FILL_TLB(addr) bcm4710_fill_tlb((void *)(addr)) + -+static inline unsigned long bcm4710_fill_tlb(void *addr) { -+ return (*(unsigned long *)addr); ++static inline unsigned long bcm4710_fill_tlb(void *addr) ++{ ++ return *(unsigned long *)addr; +} + -+#define BCM4710_PROTECTED_FILL_TLB(addr) bcm4710_protected_fill_tlb((void*)(addr)) ++#define BCM4710_PROTECTED_FILL_TLB(addr) bcm4710_protected_fill_tlb((void *)(addr)) + -+static inline void bcm4710_protected_fill_tlb(void *addr) { ++static inline void bcm4710_protected_fill_tlb(void *addr) ++{ + unsigned long x; + get_dbe(x, (unsigned long *)addr);; +} @@ -31,7 +34,7 @@ --- a/arch/mips/mm/tlbex.c +++ b/arch/mips/mm/tlbex.c -@@ -611,6 +611,9 @@ build_get_pgde32(u32 **p, unsigned int t +@@ -707,6 +707,9 @@ build_get_pgde32(u32 **p, unsigned int t #endif uasm_i_addu(p, ptr, tmp, ptr); #else @@ -41,7 +44,7 @@ UASM_i_LA_mostly(p, ptr, pgdc); #endif uasm_i_mfc0(p, tmp, C0_BADVADDR); /* get faulting address */ -@@ -749,12 +752,12 @@ static void __cpuinit build_r4000_tlb_re +@@ -868,12 +871,12 @@ static void __cpuinit build_r4000_tlb_re /* No need for uasm_i_nop */ } @@ -57,7 +60,7 @@ build_get_pgde32(&p, K0, K1); /* get pgd in K1 */ #endif -@@ -766,6 +769,9 @@ static void __cpuinit build_r4000_tlb_re +@@ -885,6 +888,9 @@ static void __cpuinit build_r4000_tlb_re build_update_entries(&p, K0, K1); build_tlb_write_entry(&p, &l, &r, tlb_random); uasm_l_leave(&l, p); @@ -67,7 +70,7 @@ uasm_i_eret(&p); /* return from trap */ #ifdef CONFIG_HUGETLB_PAGE -@@ -1206,12 +1212,12 @@ build_r4000_tlbchange_handler_head(u32 * +@@ -1321,12 +1327,12 @@ build_r4000_tlbchange_handler_head(u32 * struct uasm_reloc **r, unsigned int pte, unsigned int ptr) { @@ -83,7 +86,7 @@ build_get_pgde32(p, pte, ptr); /* get pgd in ptr */ #endif -@@ -1248,6 +1254,9 @@ build_r4000_tlbchange_handler_tail(u32 * +@@ -1363,6 +1369,9 @@ build_r4000_tlbchange_handler_tail(u32 * build_update_entries(p, tmp, ptr); build_tlb_write_entry(p, l, r, tlb_indexed); uasm_l_leave(l, *p);