linux-next: Tree for Nov 14 (gpu/drm/i915)
Andrew Morton
akpm at linux-foundation.org
Wed Nov 14 12:17:47 PST 2012
On Wed, 14 Nov 2012 11:41:49 -0800
Randy Dunlap <rdunlap at infradead.org> wrote:
> On 11/13/2012 09:30 PM, Stephen Rothwell wrote:
>
> > Hi all,
> >
> > News: next-20121115 (i.e. tomorrow) will be the last release until
> > next-20121126 (which should be just be after -rc7, I guess - assuming
> > that Linus does not release v3.7 before then), so if you want something
> > in linux-next for a reasonable amount of testing, it should probably be
> > committed tomorrow.
> >
> > Changes since 20121113:
> >
>
>
>
> on i386:
>
> ERROR: "__build_bug_on_failed" [drivers/gpu/drm/i915/i915.ko] undefined!
>
> Reference to that symbol is found in
> i915_gem_execbuffer.o. Reference to BUILD_BUG_ON() is found in
> i915_gem_execbuffer.c:
>
> static struct eb_objects *
> eb_create(int size)
> {
> struct eb_objects *eb;
> int count = PAGE_SIZE / sizeof(struct hlist_head) / 2;
> BUILD_BUG_ON(!is_power_of_2(PAGE_SIZE / sizeof(struct hlist_head)));
>
Where to start.
- eb_create() has no business assuming that the hlist_head has any
particular size. We could easily add some conditionally-compiled
debug fields in there, and drm blows up.
- The assertion is obviously true at present, so I assume that gcc
screwed up and failed to reduce all that to a compile-time constant.
- We have a BUILD_BUG_ON_NOT_POWER_OF_2(). Use it?
- This code is using PAGE_SIZE to scale a kernel data structure.
PAGE_SIZE can vary by a factor of 16, depending on Kconfig. This
can result in 64k PAGE_SIZE machines exhibiting different beahviour
from that which the testers saw.
Don't do it. It's better to hard-wire 4096.
More information about the dri-devel
mailing list