Re: [PULL] Wrapper macros for struct task_struct and structmm_struct cpumask transition

From: Andrew Morton
Date: Thu Mar 12 2009 - 05:26:56 EST


On Thu, 12 Mar 2009 19:43:02 +1030 Rusty Russell <rusty@xxxxxxxxxxxxxxx> wrote:

> On Thursday 12 March 2009 18:07:09 Andrew Morton wrote:
> > On Thu, 12 Mar 2009 17:45:22 +1030 Rusty Russell <rusty@xxxxxxxxxxxxxxx> wrote:
> ...
> > Please prefer to put the patches in the email if practical? More
> > eyeballs and all that.
>
> Hmm, yes. Is there a preferred way of doing that with git request-pull?
> Or just append the diff?

You're asking me about git?

> > : +/* Future-safe accessor for struct mm_struct's cpu_vm_mask. */
> > : +#define mm_cpumask(mm) (&(mm)->cpu_vm_mask)
> > : +
> ...
> > It would be pretty perverse to run tsk_cpumask() against a `struct
> > cpuset*', but your proposed implementation would merrily permit that
> > mistake.
> >
> > Can we write the kernel in C please??
>
> You mean use an inline? No, it's a bad idea for two reasons. The minor
> reason is that this macro is a temporary so it makes more sense to fix the
> final version.
>
> But the major one is const correctness. Macros give a const value for
> const input.

hm. Sounds weaselly.

> We can enhance the macro to check, but that's even uglier:
>
> static inline int check_is_task_struct(const struct task_struct *t) { }
> #define tsk_cpumask(t) (sizeof(check_is_task_struct(t)), &(t)->cpu_vm_mask)

include/linux/typecheck.h has help?

> > yup, the patches are quite safe and mergeable. And if they'd been in the
> > email body, Linus might have seen that and pulled them ;)
>
> Probably not, as that's not what he complained about last time.

Linus? Complain?

> He might have
> been enlightened by the commit messages tho.

--
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/