Re: 2.6.24-rc3-mm2 - add-64-bit-capability-support-to-the-kernel

From: Serge E. Hallyn
Date: Mon Dec 03 2007 - 10:03:54 EST


Quoting Valdis.Kletnieks@xxxxxx (Valdis.Kletnieks@xxxxxx):
> Question:
>
> The patch does the semantic equivalent of:
>
> -#define cap_clear(c) do { cap_t(c) = 0; } while(0)
> -#define cap_set_full(c) do { cap_t(c) = ~0; } while(0)
>
> +# define cap_clear(c) do { (c) = __cap_empty_set; } while (0)
> +# define cap_set_full(c) do { (c) = __cap_full_set; } while (0)
> +# define cap_set_init_eff(c) do { (c) = __cap_init_eff_set; } while (0)
>
> Was it intentional, or an oversight, that this blows chunks in modules
> that try to use cap_clear() or cap_set_full() because the __cap_*
> symbols don't get an EXPORT_SYMBOL() attached to them?

I think that's one big oops, and the following is needed.