sparc64: Fix missing put_cpu_var() in tlb_batch_add_one() when not batching. [Linux 3.9]

This Linux kernel change "sparc64: Fix missing put_cpu_var() in tlb_batch_add_one() when not batching" is included in the Linux 3.9 release. This change is authored by David S. Miller <davem [at] davemloft.net> on Wed Apr 24 16:52:18 2013 -0700. The commit for this change in Linux stable tree is f0af970 (patch).

sparc64: Fix missing put_cpu_var() in tlb_batch_add_one() when not batching.

Reported-by: Meelis Roos <[email protected]>
Signed-off-by: David S. Miller <[email protected]>

There are 3 lines of Linux source code added/deleted in this change. Code changes to Linux kernel are as follows.

 arch/sparc/mm/tlb.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/sparc/mm/tlb.c b/arch/sparc/mm/tlb.c
index 272aa4f..83d89bc 100644
--- a/arch/sparc/mm/tlb.c
+++ b/arch/sparc/mm/tlb.c
@@ -87,7 +87,7 @@ static void tlb_batch_add_one(struct mm_struct *mm, unsigned long vaddr,
    if (!tb->active) {
        global_flush_tlb_page(mm, vaddr);
        flush_tsb_user_page(mm, vaddr);
-       return;
+       goto out;
    }

    if (nr == 0)
@@ -98,6 +98,7 @@ static void tlb_batch_add_one(struct mm_struct *mm, unsigned long vaddr,
    if (nr >= TLB_BATCH_NR)
        flush_tlb_pending();

+out:
    put_cpu_var(tlb_batch);
 }

Leave a Reply

Your email address will not be published. Required fields are marked *