lkml.org 
[lkml]   [2018]   [Oct]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
SubjectRe: [GIT] Networking
From
From: David Miller <davem@davemloft.net>
Date: Sat, 20 Oct 2018 15:47:37 -0700 (PDT)

>
> A few straggler bug fixes:
>
> 1) Fix indexing of multi-pass dumps of ipv6 addresses, from David
> Ahern.
>
> 2) Revert RCU locking change for bonding netpoll, causes worse problems
> than it solves.
>
> 3) pskb_trim_rcsum_slow() doesn't handle odd trim offsets, resulting in
> erroneous bad hw checksum triggers with CHECKSUM_COMPLETE devices.
> From Dimitris Michailidis.
>
> Please pull, thanks a lot!

Great, I appended one more bug fix to this pull request, a revert to
some neighbour code changes that adjust notifications in a way that
confuses some apps.

====================
From d2fb4fb8ee91c1b8a1dbba6afda6f5ed2eb28bdc Mon Sep 17 00:00:00 2001
From: Roopa Prabhu <roopa@cumulusnetworks.com>
Date: Sat, 20 Oct 2018 18:09:31 -0700
Subject: [PATCH] Revert "neighbour: force neigh_invalidate when NUD_FAILED
update is from admin"

This reverts commit 8e326289e3069dfc9fa9c209924668dd031ab8ef.

This patch results in unnecessary netlink notification when one
tries to delete a neigh entry already in NUD_FAILED state. Found
this with a buggy app that tries to delete a NUD_FAILED entry
repeatedly. While the notification issue can be fixed with more
checks, adding more complexity here seems unnecessary. Also,
recent tests with other changes in the neighbour code have
shown that the INCOMPLETE and PROBE checks are good enough for
the original issue.

Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
net/core/neighbour.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/net/core/neighbour.c b/net/core/neighbour.c
index 91592fceeaad..4e07824eec5e 100644
--- a/net/core/neighbour.c
+++ b/net/core/neighbour.c
@@ -1148,8 +1148,7 @@ int neigh_update(struct neighbour *neigh, const u8 *lladdr, u8 new,
neigh->nud_state = new;
err = 0;
notify = old & NUD_VALID;
- if (((old & (NUD_INCOMPLETE | NUD_PROBE)) ||
- (flags & NEIGH_UPDATE_F_ADMIN)) &&
+ if ((old & (NUD_INCOMPLETE | NUD_PROBE)) &&
(new & NUD_FAILED)) {
neigh_invalidate(neigh);
notify = 1;
--
2.17.2
\
 
 \ /
  Last update: 2018-10-21 07:28    [W:0.035 / U:1.776 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site