Subject: Re: [PATCH 05/28] mm: allow PF_MEMALLOC from softirq context

From: Andrew Morton <[email-masked]>
Date: Sat, 23 Feb 2008 00:05:50 -0800

On Wed, 20 Feb 2008 15:46:15 +0100 Peter Zijlstra <[email-masked]> wrote:

> Allow PF_MEMALLOC to be set in softirq context. When running softirqs from
> a borrowed context save current->flags, ksoftirqd will have its own 
> task_struct.

The second sentence doesn't make sense.

> This is needed to allow network softirq packet processing to make use of
> PF_MEMALLOC.
>
> ...
>
> +#define tsk_restore_flags(p, pflags, mask) \
> +	do {	(p)->flags &= ~(mask); \
> +		(p)->flags |= ((pflags) & (mask)); } while (0)
> +

Does it need to be a macro?

If so, it really should cook up a temporary to avoid referencing p twice -
the children might be watching.