Re: [PATCH 07/35] m68k: use addr_limit checking for m68k CPUs that do no support address spaces

Geert Uytterhoeven
2011-12-25T20:01:32Z

On Fri, Dec 23, 2011 at 04:15, <gerg@snapgear.com> wrote:
> From: Greg Ungerer <gerg@uclinux.org>
>
> The ColdFire CPU family, and the original 68000, do not support separate
> address spaces like the other 680x0 CPU types. Modify the set_fs()/get_fs()
> functions and macros to use a thread_info addr_limit for address space
> checking. This is pretty much what all other architectures that do not
> support separate setable address spaces do.
>
> Signed-off-by: Alexander Stein <alexander.stein@systec-electronic.com>
> Signed-off-by: Greg Ungerer <gerg@uclinux.org>
> Acked-by: Matt Waddel <mwaddel@yahoo.com>
> Acked-by: Kurt Mahan <kmahan@xmission.com>

> diff --git a/arch/m68k/include/asm/thread_info.h b/arch/m68k/include/asm/thread_info.h
> index 01cef3c..29fa6da 100644
> --- a/arch/m68k/include/asm/thread_info.h
> +++ b/arch/m68k/include/asm/thread_info.h
> @@ -3,6 +3,7 @@
>
>  #include <asm/types.h>
>  #include <asm/page.h>
> +#include <asm/segment.h>
>
>  /*
>  * On machines with 4k pages we default to an 8k thread size, though we
> @@ -26,6 +27,7 @@ struct thread_info {
>        struct task_struct      *task;          /* main task structure */
>        unsigned long           flags;
>        struct exec_domain      *exec_domain;   /* execution domain */
> +       mm_segment_t            addr_limit;     /* thread address space */

Shouldn't the above be protected by #ifndef CONFIG_CPU_HAS_ADDRESS_SPACES?

>        int                     preempt_count;  /* 0 => preemptable, <0 => BUG */
>        __u32                   cpu;            /* should always be 0 on m68k */
>        unsigned long           tp_value;       /* thread pointer */
> @@ -39,6 +41,7 @@ struct thread_info {
>  {                                              \
>        .task           = &tsk,                 \
>        .exec_domain    = &default_exec_domain, \
> +       .addr_limit     = KERNEL_DS,            \

Same here

>        .preempt_count  = INIT_PREEMPT_COUNT,   \
>        .restart_block = {                      \
>                .fn = do_no_restart_syscall,    \

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

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