2014-07-05 23:24:09

by Emil Goode

[permalink] [raw]
Subject: [PATCH] MIPS: Remove incorrect NULL check in local_flush_tlb_page()

We check that the struct vm_area_struct pointer vma is NULL and then
dereference it a few lines below. The intent was to make sure vma is
not NULL but this is not necessary since the bug pre-dates GIT history
and seem to never have caused a problem. The tlb-4k and tlb-8k versions
of local_flush_tlb_page() don't bother checking if vma is NULL, also
vma is dereferenced before being passed to local_flush_tlb_page(),
thus it is safe to remove this NULL check.

Signed-off-by: Emil Goode <[email protected]>
---
arch/mips/mm/tlb-r3k.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/mips/mm/tlb-r3k.c b/arch/mips/mm/tlb-r3k.c
index d657493..4094bbd 100644
--- a/arch/mips/mm/tlb-r3k.c
+++ b/arch/mips/mm/tlb-r3k.c
@@ -158,7 +158,7 @@ void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
{
int cpu = smp_processor_id();

- if (!vma || cpu_context(cpu, vma->vm_mm) != 0) {
+ if (cpu_context(cpu, vma->vm_mm) != 0) {
unsigned long flags;
int oldpid, newpid, idx;

--
1.7.10.4


2014-07-06 10:23:07

by Jonas Gorski

[permalink] [raw]
Subject: Re: [PATCH] MIPS: Remove incorrect NULL check in local_flush_tlb_page()

On Sun, Jul 6, 2014 at 1:23 AM, Emil Goode <[email protected]> wrote:
> We check that the struct vm_area_struct pointer vma is NULL and then
> dereference it a few lines below. The intent was to make sure vma is
> not NULL but this is not necessary since the bug pre-dates GIT history
> and seem to never have caused a problem. The tlb-4k and tlb-8k versions
> of local_flush_tlb_page() don't bother checking if vma is NULL, also
> vma is dereferenced before being passed to local_flush_tlb_page(),
> thus it is safe to remove this NULL check.
>
> Signed-off-by: Emil Goode <[email protected]>

Looks good.

Reviewed-by: Jonas Gorski <[email protected]>

> ---
> arch/mips/mm/tlb-r3k.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/mips/mm/tlb-r3k.c b/arch/mips/mm/tlb-r3k.c
> index d657493..4094bbd 100644
> --- a/arch/mips/mm/tlb-r3k.c
> +++ b/arch/mips/mm/tlb-r3k.c
> @@ -158,7 +158,7 @@ void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
> {
> int cpu = smp_processor_id();
>
> - if (!vma || cpu_context(cpu, vma->vm_mm) != 0) {
> + if (cpu_context(cpu, vma->vm_mm) != 0) {
> unsigned long flags;
> int oldpid, newpid, idx;
>
> --
> 1.7.10.4
>
>

2014-07-06 11:19:48

by Maciej W. Rozycki

[permalink] [raw]
Subject: Re: [PATCH] MIPS: Remove incorrect NULL check in local_flush_tlb_page()

On Sun, 6 Jul 2014, Jonas Gorski wrote:

> On Sun, Jul 6, 2014 at 1:23 AM, Emil Goode <[email protected]> wrote:
> > We check that the struct vm_area_struct pointer vma is NULL and then
> > dereference it a few lines below. The intent was to make sure vma is
> > not NULL but this is not necessary since the bug pre-dates GIT history
> > and seem to never have caused a problem. The tlb-4k and tlb-8k versions
> > of local_flush_tlb_page() don't bother checking if vma is NULL, also
> > vma is dereferenced before being passed to local_flush_tlb_page(),
> > thus it is safe to remove this NULL check.
> >
> > Signed-off-by: Emil Goode <[email protected]>
>
> Looks good.
>
> Reviewed-by: Jonas Gorski <[email protected]>

Acked-by: Maciej W. Rozycki <[email protected]>

(as per the observations at the previous version).

Maciej