Subject: Re: [net-next PATCH v2] net: sched: cls_u32: rcu can not be last node

From: John Fastabend <[email-masked]>
Date: Wed, 17 Sep 2014 11:03:42 -0700

On 09/17/2014 10:48 AM, Eric Dumazet wrote:
> On Wed, 2014-09-17 at 10:31 -0700, John Fastabend wrote:
>> tc_u32_sel 'sel' in tc_u_knode expects to be the last element in the
>> structure and pads the structure with tc_u32_key fields for each key.
>>
>>   kzalloc(sizeof(*n) + s->nkeys*sizeof(struct tc_u32_key), GFP_KERNEL)
>>
>> CC: Eric Dumazet <[email-masked]>
>> Signed-off-by: John Fastabend <[email-masked]>
>> ---
>>   net/sched/cls_u32.c |    3 ++-
>>   1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/net/sched/cls_u32.c b/net/sched/cls_u32.c
>> index eceeb04..8462132 100644
>> --- a/net/sched/cls_u32.c
>> +++ b/net/sched/cls_u32.c
>> @@ -64,8 +64,9 @@ struct tc_u_knode {
>>   	u32 __percpu		*pcpu_success;
>>   #endif
>>   	struct tcf_proto	*tp;
>> -	struct tc_u32_sel	sel;
>>   	struct rcu_head		rcu;
>> +	struct tc_u32_sel	sel;
>> +	/* tc_u32_keys allocated at end of structure */
>>   };
>>
>>   struct tc_u_hnode {
>
> Sorry to be picky, but comment should be before 'sel' or at same line.

no problem lets get it right, I'll post a v3 now and write a better
comment.

>
> It should mention that 'sel' MUST be last field.
>
> Thanks !
>

-- 
John Fastabend         Intel Corporation