>> +static inline void flush_tlb_mm_range(struct vm_area_struct *vma,
>> +       unsigned long start, unsigned long end, unsigned long vmflag)
>> +{
>> +    if (vma->vm_mm == current->active_mm)
>> +            __flush_tlb();
>> +}
> 
> There's a problem with this in one of my randconfig tests. It has
> !CONFIG_SMP and the warning is:
> 
> mm/memory.c: In function ‘tlb_flush_mmu’:
> mm/memory.c:230:2: warning: passing argument 1 of ‘flush_tlb_mm_range’ from 
> incompatible pointer type
> /usr/src/linux-2.6/arch/x86/include/asm/tlbflush.h:108:20: note: expected 
> ‘struct vm_area_struct *’ but argument is of type ‘struct mm_struct *’
> mm/memory.c:230:2: warning: passing argument 1 of ‘flush_tlb_mm_range’ from 
> incompatible pointer type
> /usr/src/linux-2.6/arch/x86/include/asm/tlbflush.h:108:20: note: expected 
> ‘struct vm_area_struct *’ but argument is of type ‘struct mm_struct *’
> 
> 
> Due to the fact that the macro flush_tlb actually resolves to
> flush_tlb_mm_range and this function has a different signature based on
> CONFIG_SMP. On !SMP expects struct vm_area_struct * as a first argument
> but on SMP its first argument is struct mm_struct *.
> 
> So two different function signatures based on a config option? Now
> that's a first. What is going on?


Sure, it is a bug, the fix had sent:
https://lkml.org/lkml/2012/7/6/350

> 


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to