lkml.org 
[lkml]   [2010]   [Jan]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 7/8] percpu: add __percpu sparse annotations to hw_breakpoint
Hello,

On 01/26/2010 11:01 AM, Frederic Weisbecker wrote:
> So, may be it considers you are applying the address space overriding
> to the pointer to the type and not to the type itself.
>
> Consider:
>
> int __percpu i;
>
> What you do above *might* be considered as if SHIFT_PERCPU_PTR
> returns something of a type:
>
> int * __percpu i;
>
> So the pointer is in the normal address space, but its content is in
> __percpu address space.
>
> What if you do this:
>
>
> #define SHIFT_PERCPU_PTR(__p, __offset) ({ \
> __verify_pcpu_ptr((__p)); \
> RELOC_HIDE((__p), (__offset)); \
> })
>
> #define per_cpu(var, cpu) \
> (typeof(var) __kernel __force)(*SHIFT_PERCPU_PTR(&(var), per_cpu_offset(cpu)))

arch/x86/kernel/cpu/common.c:1149:20: warning: cast to non-scalar
arch/x86/kernel/cpu/common.c:1149:20: error: strange non-value function or array
CC arch/x86/kernel/cpu/common.o
arch/x86/kernel/cpu/common.c: In function 'cpu_init':
arch/x86/kernel/cpu/common.c:1149: error: cast specifies array type

Can't cast that way. :-(

--
tejun


\
 
 \ /
  Last update: 2010-01-26 03:11    [W:0.065 / U:13.544 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site