[4.4-rc6-rt1 PATCH 0/2] ARM: am437x: boot test report
From: grygorii.strashko@ti.com (Grygorii Strashko)
Date: 2016-01-15 11:36:20
Also in:
linux-rt-users, lkml
Hi Russell, On 01/14/2016 11:30 PM, Russell King - ARM Linux wrote:
quoted hunk ↗ jump to hunk
On Thu, Jan 14, 2016 at 10:11:09PM +0200, Grygorii Strashko wrote:quoted
diff --git a/arch/arm/mm/highmem.c b/arch/arm/mm/highmem.c index deabc36..b9b4f9c 100644 --- a/arch/arm/mm/highmem.c +++ b/arch/arm/mm/highmem.c@@ -167,7 +167,7 @@ void switch_kmaps(struct task_struct *prev_p, struct task_struct *next_p) * Clear @prev's kmap_atomic mappings */ for (i = 0; i < prev_p->kmap_idx; i++) { - int idx = i + KM_TYPE_NR * smp_processor_id(); + int idx = FIX_KMAP_BEGIN + i + KM_TYPE_NR * smp_processor_id(); set_fixmap_pte(idx, __pte(0)); }@@ -175,7 +175,7 @@ void switch_kmaps(struct task_struct *prev_p, struct task_struct *next_p) * Restore @next_p's kmap_atomic mappings */ for (i = 0; i < next_p->kmap_idx; i++) { - int idx = i + KM_TYPE_NR * smp_processor_id(); + int idx = FIX_KMAP_BEGIN + i + KM_TYPE_NR * smp_processor_id(); if (!pte_none(next_p->kmap_pte[i])) set_fixmap_pte(idx, next_p->kmap_pte[i]);This looks like it introduces the 4th and 5th copies of the same calcuation, so can I suggest that we do this to prevent this kind of error?diff --git a/arch/arm/mm/highmem.c b/arch/arm/mm/highmem.c index d02f8187b1cc..61f0d5941116 100644 --- a/arch/arm/mm/highmem.c +++ b/arch/arm/mm/highmem.c@@ -34,6 +34,11 @@ static inline pte_t get_fixmap_pte(unsigned long vaddr) return *ptep; } +static unsigned int fixmap_idx(int type) +{ + return FIX_KMAP_BEGIN + type + KM_TYPE_NR * smp_processor_id(); +} +
This looks very reasonable - I'll updated and re-send. Would you agree if I'll add your Signed-off-by: in final patch? Thanks for review. [...] -- regards, -grygorii