lkml.org 
[lkml]   [2012]   [Jul]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectFwd: Re: [linux-next-20120706] x86/mm: incompatible pointer type warning.
Forward to LKML

-------- Original Message --------
Subject: Re: [linux-next-20120706] x86/mm: incompatible pointer type
warning.
Date: Fri, 06 Jul 2012 22:08:12 +0800
From: Alex Shi <alex.shi@intel.com>
To: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
CC: yongjie.ren@intel.com, hpa@zytor.com, "Wu, Fengguang"
<fengguang.wu@intel.com>

On 07/06/2012 08:13 PM, Tetsuo Handa wrote:

> Hello.
>
> Commit 611ae8e3 "x86/tlb: enable tlb flush range support for x86" causes
> below warning on allnoconfig.
>
> mm/memory.c: In function 'tlb_flush_mmu':
> mm/memory.c:231: warning: passing argument 1 of 'flush_tlb_mm_range' from incompatible pointer type
> /usr/src/linux-next/arch/x86/include/asm/tlbflush.h:108: note: expected 'struct vm_area_struct *' but argument is of type 'struct mm_struct *'
> mm/memory.c:231: warning: passing argument 1 of 'flush_tlb_mm_range' from incompatible pointer type
> /usr/src/linux-next/arch/x86/include/asm/tlbflush.h:108: note: expected 'struct vm_area_struct *' but argument is of type 'struct mm_struct *'
>
> Did tlb->mm in tlb_flush() mean tlb->mm->mmap or tlb->mm->mmap_cache?



Thanks for your report, mm should means mm_struct. no vma. My fault.
Could you like try this patch.

Fengguang, I remember you build system also collect the warning message
before. Do you stop this? :)

---

From 97781231b130e7f7fced12244653ed9b9946c944 Mon Sep 17 00:00:00 2001
From: Alex Shi <alex.shi@intel.com>
Date: Fri, 6 Jul 2012 20:49:25 +0800
Subject: [PATCH] x86/tlb: fix allnoconfig building warning

The incompatible parameter of flush_tlb_mm_range cause build warning.
Fix it by correct parameter.

Reported-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Signed-off-by: Alex Shi <alex.shi@intel.com>
---
arch/x86/include/asm/tlbflush.h | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/include/asm/tlbflush.h
b/arch/x86/include/asm/tlbflush.h
index b5a27bd..74a4433 100644
--- a/arch/x86/include/asm/tlbflush.h
+++ b/arch/x86/include/asm/tlbflush.h
@@ -105,10 +105,10 @@ static inline void flush_tlb_range(struct
vm_area_struct *vma,
__flush_tlb();
}

-static inline void flush_tlb_mm_range(struct vm_area_struct *vma,
+static inline void flush_tlb_mm_range(struct mm_struct *mm,
unsigned long start, unsigned long end, unsigned long vmflag)
{
- if (vma->vm_mm == current->active_mm)
+ if (mm == current->active_mm)
__flush_tlb();
}

--
1.7.5.4


\
 
 \ /
  Last update: 2012-07-06 16:41    [W:0.039 / U:0.272 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site