[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <8737gzd9l2.fsf@lautreamont.i-did-not-set--mail-host-address--so-tickle-me>
Date: Wed, 04 Jan 2017 00:09:45 +0100
From: Wolfgang Reiter <wr0112358@...il.com>
To: Neil Horman <nhorman@...driver.com>,
David Miller <davem@...emloft.net>
Cc: netdev@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] drop_monitor: consider inserted data in genlmsg_end
Yes, genlmsg_end changes nlmsg_len field dependent on skb->tail.
After allocation in reset_per_cpu_data skb->tail is modified in
trace_drop_common via __nla_reserve_nohdr.
Best place for setting nlmsg_len to its final value is after being
swapped out in reset_per_cpu_data.
Neil Horman <nhorman@...driver.com> writes:
> On Tue, Jan 03, 2017 at 09:54:19AM -0500, David Miller wrote:
>> From: Reiter Wolfgang <wr0112358@...il.com>
>> 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@...il.com>
>>
>> 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?
Powered by blists - more mailing lists