commit: http://blackfin.uclinux.org/git/?p=linux-kernel;a=commitdiff;h=844353ec13f21277413ed1fbdb704ac06b1c7dad
branch: http://blackfin.uclinux.org/git/?p=linux-kernel;a=shortlog;h=refs/heads/trunk

Signed-off-by: Steven Miao <[email protected]>
---
 arch/blackfin/kernel/cplb-nompu/cplbmgr.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/arch/blackfin/kernel/cplb-nompu/cplbmgr.c b/arch/blackfin/kernel/cplb-nompu/cplbmgr.c
index 2d520e7..79cc0f6 100644
--- a/arch/blackfin/kernel/cplb-nompu/cplbmgr.c
+++ b/arch/blackfin/kernel/cplb-nompu/cplbmgr.c
@@ -178,6 +178,8 @@ MGR_ATTR static int dcplb_miss(int cpu)
 	cplb_pageflags = PAGE_SIZE_4MB;
 	cplb_pagesize = SIZE_4M;
 #endif
+
+find_pagesize:
 	addr1 = addr & ~(cplb_pagesize - 1);
 	if (addr1 >= base && (addr1 + cplb_pagesize) <= eaddr) {
 		/*
@@ -186,8 +188,16 @@ MGR_ATTR static int dcplb_miss(int cpu)
 		 */
 		d_data |= cplb_pageflags;
 		addr = addr1;
+		goto found_pagesize;
+	} else {
+		if (cplb_pagesize > SIZE_4M) {
+			cplb_pageflags = PAGE_SIZE_4MB;
+			cplb_pagesize = SIZE_4M;
+			goto find_pagesize;
+		}
 	}
 
+found_pagesize:
 #ifdef CONFIG_BF60x
 	if ((addr >= ASYNC_BANK0_BASE)
 		&& (addr < ASYNC_BANK3_BASE + ASYNC_BANK3_SIZE))
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to