mirror of
https://abf.rosa.ru/djam/kernel-5.15.git
synced 2025-02-24 02:52:55 +00:00
56 lines
2.1 KiB
Diff
56 lines
2.1 KiB
Diff
From foo@baz Thu Feb 23 21:13:05 CET 2017
|
|
From: Marcus Huewe <suse-tux@gmx.de>
|
|
Date: Wed, 15 Feb 2017 01:00:36 +0100
|
|
Subject: net: neigh: Fix netevent NETEVENT_DELAY_PROBE_TIME_UPDATE notification
|
|
|
|
From: Marcus Huewe <suse-tux@gmx.de>
|
|
|
|
|
|
[ Upstream commit 7627ae6030f56a9a91a5b3867b21f35d79c16e64 ]
|
|
|
|
When setting a neigh related sysctl parameter, we always send a
|
|
NETEVENT_DELAY_PROBE_TIME_UPDATE netevent. For instance, when
|
|
executing
|
|
|
|
sysctl net.ipv6.neigh.wlp3s0.retrans_time_ms=2000
|
|
|
|
a NETEVENT_DELAY_PROBE_TIME_UPDATE netevent is generated.
|
|
|
|
This is caused by commit 2a4501ae18b5 ("neigh: Send a
|
|
notification when DELAY_PROBE_TIME changes"). According to the
|
|
commit's description, it was intended to generate such an event
|
|
when setting the "delay_first_probe_time" sysctl parameter.
|
|
|
|
In order to fix this, only generate this event when actually
|
|
setting the "delay_first_probe_time" sysctl parameter. This fix
|
|
should not have any unintended side-effects, because all but one
|
|
registered netevent callbacks check for other netevent event
|
|
types (the registered callbacks were obtained by grepping for
|
|
"register_netevent_notifier"). The only callback that uses the
|
|
NETEVENT_DELAY_PROBE_TIME_UPDATE event is
|
|
mlxsw_sp_router_netevent_event() (in
|
|
drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c): in case
|
|
of this event, it only accesses the DELAY_PROBE_TIME of the
|
|
passed neigh_parms.
|
|
|
|
Fixes: 2a4501ae18b5 ("neigh: Send a notification when DELAY_PROBE_TIME changes")
|
|
Signed-off-by: Marcus Huewe <suse-tux@gmx.de>
|
|
Reviewed-by: Ido Schimmel <idosch@mellanox.com>
|
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
---
|
|
net/core/neighbour.c | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
--- a/net/core/neighbour.c
|
|
+++ b/net/core/neighbour.c
|
|
@@ -2927,7 +2927,8 @@ static void neigh_proc_update(struct ctl
|
|
return;
|
|
|
|
set_bit(index, p->data_state);
|
|
- call_netevent_notifiers(NETEVENT_DELAY_PROBE_TIME_UPDATE, p);
|
|
+ if (index == NEIGH_VAR_DELAY_PROBE_TIME)
|
|
+ call_netevent_notifiers(NETEVENT_DELAY_PROBE_TIME_UPDATE, p);
|
|
if (!dev) /* NULL dev means this is default value */
|
|
neigh_copy_dflt_parms(net, p, index);
|
|
}
|