lkml.org 
[lkml]   [2002]   [Jan]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [PATCH] per-cpu areas for 2.5.3-pre6
Date
In message <20020130002204.A4480@are.twiddle.net> you write:
> Have we already forgotten the ppc reloc flamefest? Better
> written as
>
> #define per_cpu(var, cpu) \
> ({ __typeof__(&(var)) __ptr; \
> __asm__ ("" : "=g"(__ptr) \
> : "0"((void *)&(var) + per_cpu_offset(cpu))); \
> *__ptr; })

"better". Believe me, I was fully aware, but I refuse to write such
crap unless *proven* to be required.

> > +/* Created by linker magic */
> > +extern char __per_cpu_start, __per_cpu_end;
> [...]
> > + per_cpu_size = ((&__per_cpu_end - &__per_cpu_start) + PAGE_SIZE-1)
>
> Will fail on targets (e.g. alpha and mips) that have a notion of a
> "small data area" that can be addressed with special relocs.
>
> Better written as
>
> extern char __per_cpu_start[], __per_cpu_end[];
> per_cpu_size = (__per_cpu_end - __per_cpu_start) ...

I agree that this is much better. But do not understand what small
relocs have to do with simple address arithmetic? You've always been
right before: what am I missing?

Rusty.
--
Anyone who quotes me in their sig is an idiot. -- Rusty Russell.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:16    [W:0.239 / U:0.012 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site