Re: [PATCH] mm: pagefault_{disable,enable}()

From: Geert Uytterhoeven
Date: Wed Jan 10 2007 - 17:28:46 EST


On Wed, 10 Jan 2007, Linus Torvalds wrote:
> On Wed, 10 Jan 2007, Geert Uytterhoeven wrote:
> > This change causes lots of compile errors of the following form on m68k:
> >
> > | linux-2.6.20-rc4/include/linux/uaccess.h: In function `pagefault_disable':
> > | linux-2.6.20-rc4/include/linux/uaccess.h:18: error: dereferencing pointer to incomplete type
> > | linux-2.6.20-rc4/include/linux/uaccess.h: In function `pagefault_enable':
> > | linux-2.6.20-rc4/include/linux/uaccess.h:33: error: dereferencing pointer to incomplete type
>
> Ouch. However, I think your patch is bogus.
>
> You're fixing somethign that doesn't need fixing: <linux/uaccess.h>
> already includes <linux/preempt.h> for the preemption functions.

Indeed.

> The REAL problem seems to be that the m68k preempt.h (or rather, to be
> exact, asm/thread_info.h) doesn't do things right, and while it exposes
> "inc_preempt_count()", it doesn't expose enough information to actually
> use it.
>
> I think your "current_thread_info()" is broken.

But struct task_struct is defined in <linux/sched.h>, which cannot be included
in <asm/thread_info.h> due to include recursion hell.

The alternative is to move struct task_struct to its own file, which may be a
bit too intrusive for 2.6.20.

So I'm afraid my patch is the least intrusive solution. Or am I missing
something?

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/