Re: [PATCH] drop_monitor: consider inserted data in genlmsg_end

From: David Miller
Date: Tue Jan 03 2017 - 11:14:16 EST


From: Neil Horman <nhorman@xxxxxxxxxxxxx>
Date: Tue, 3 Jan 2017 11:04:43 -0500

> On Tue, Jan 03, 2017 at 09:54:19AM -0500, David Miller wrote:
>> From: Reiter Wolfgang <wr0112358@xxxxxxxxx>
>> Date: Tue, 3 Jan 2017 01:39:10 +0100
>>
>> > Final nlmsg_len field update must reflect inserted net_dm_drop_point
>> > data.
>> >
>> > This patch depends on previous patch:
>> > "drop_monitor: add missing call to genlmsg_end"
>> >
>> > Signed-off-by: Reiter Wolfgang <wr0112358@xxxxxxxxx>
>>
>> I don't understand why the current code doesn't work properly.
>>
>> All over the tree, the pattern is:
>>
>> x = genlmsg_put(skb, ...);
>> ...
>> genlmsg_end(skb, x);
>>
>> And that is exactly what the code is doing right now.
>>
>
> Because reset_per_cpu_data should close the use of of the established skb
> that was being written to. Without this patch we add the END tlv to the skb
> that is just getting started for use in the drop monitor, rather than for the
> skb that is getting returned for use in sending up to user space listeners.
>
> Or am I missing something?

That's the critical part I didn't see, thanks for explaining.

Applied and queued up for -stabel, thanks.