From be66bc817c1809a8d9835032d53a890b6406727b Mon Sep 17 00:00:00 2001 From: Vladimir Sokolovsky Date: Tue, 1 Mar 2016 10:05:56 +0200 Subject: [PATCH] IB/ipoib: Do not update neigh validity if not resolved yet ipoib_neigh_get whenever tries to access specific neigh updates its "alive" variable member, the neigh now considered as updated and will not bee cleaned by the GC process even if it needs to be resolved again. issue: http://bugs.openfabrics.org/bugzilla/show_bug.cgi?id=2561 Signed-off-by: Erez Shitrit Signed-off-by: Vladimir Sokolovsky --- ...update-neigh-validity-if-not-resolve.patch | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 linux-next-pending/0035-IB-ipoib-Do-not-update-neigh-validity-if-not-resolve.patch diff --git a/linux-next-pending/0035-IB-ipoib-Do-not-update-neigh-validity-if-not-resolve.patch b/linux-next-pending/0035-IB-ipoib-Do-not-update-neigh-validity-if-not-resolve.patch new file mode 100644 index 0000000..e733a1b --- /dev/null +++ b/linux-next-pending/0035-IB-ipoib-Do-not-update-neigh-validity-if-not-resolve.patch @@ -0,0 +1,28 @@ +From: Erez Shitrit +Subject: [PATCH] IB/ipoib: Do not update neigh validity if not resolved yet + + +ipoib_neigh_get whenever tries to access specific neigh updates its +"alive" variable member, the neigh now considered as updated and will +not bee cleaned by the GC process even if it needs to be resolved again. + +Signed-off-by: Erez Shitrit +--- + drivers/infiniband/ulp/ipoib/ipoib_main.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c +index xxxxxxx..xxxxxxx xxxxxx +--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c ++++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c +@@ -1131,7 +1131,9 @@ struct ipoib_neigh *ipoib_neigh_get(struct net_device *dev, u8 *daddr) + neigh = NULL; + goto out_unlock; + } +- neigh->alive = jiffies; ++ ++ if (likely(skb_queue_len(&neigh->queue) < IPOIB_MAX_PATH_REC_QUEUE)) ++ neigh->alive = jiffies; + goto out_unlock; + } + } -- 2.46.0