From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
alan@lxorguk.ukuu.org.uk, "netdev@vger.kernel.org,
Eric Dumazet" <eric.dumazet@gmail.com>,
Michal Kubecek <mkubecek@suse.cz>,
Eric Dumazet <eric.dumazet@gmail.com>
Subject: [ 07/11] [PATCH 3.0.y] route: release dst_entry.hh_cache when handling redirects
Date: Thu, 6 Dec 2012 16:57:03 -0800 [thread overview]
Message-ID: <20121207005615.450608760@linuxfoundation.org> (raw)
In-Reply-To: <20121207005613.189054768@linuxfoundation.org>
3.0-stable review patch. If anyone has any objections, please let me know.
------------------
From: Michal Kubecek <mkubecek@suse.cz>
Stable-3.0 commit 42ab5316 (ipv4: fix redirect handling) was
backport of mainline commit 9cc20b26 from 3.2-rc3 where hh
member of struct dst_entry was already gone.
However, in 3.0 we still have it and we have to clean it as
well, otherwise it keeps pointing to the cleaned up (and
unusable) hh_cache entry and packets cannot be sent out.
Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
Cc: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
net/ipv4/route.c | 4 ++++
1 file changed, 4 insertions(+)
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -1374,6 +1374,7 @@ static int check_peer_redir(struct dst_e
struct rtable *rt = (struct rtable *) dst;
__be32 orig_gw = rt->rt_gateway;
struct neighbour *n, *old_n;
+ struct hh_cache *old_hh;
dst_confirm(&rt->dst);
@@ -1381,6 +1382,9 @@ static int check_peer_redir(struct dst_e
n = __arp_bind_neighbour(&rt->dst, rt->rt_gateway);
if (IS_ERR(n))
return PTR_ERR(n);
+ old_hh = xchg(&rt->dst.hh, NULL);
+ if (old_hh)
+ hh_cache_put(old_hh);
old_n = xchg(&rt->dst._neighbour, n);
if (old_n)
neigh_release(old_n);
next prev parent reply other threads:[~2012-12-07 1:07 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-07 0:56 [ 00/11] 3.0.56-stable review Greg Kroah-Hartman
2012-12-07 0:56 ` [ 01/11] Dove: Attempt to fix PMU/RTC interrupts Greg Kroah-Hartman
2012-12-07 0:56 ` [ 02/11] Dove: Fix irq_to_pmu() Greg Kroah-Hartman
2012-12-07 0:56 ` [ 03/11] mm/vmemmap: fix wrong use of virt_to_page Greg Kroah-Hartman
2012-12-07 0:57 ` [ 04/11] mm: soft offline: split thp at the beginning of soft_offline_page() Greg Kroah-Hartman
2012-12-07 0:57 ` [ 05/11] workqueue: exit rescuer_thread() as TASK_RUNNING Greg Kroah-Hartman
2012-12-07 0:57 ` [ 06/11] Revert "sched, autogroup: Stop going ahead if autogroup is disabled" Greg Kroah-Hartman
2012-12-07 0:57 ` Greg Kroah-Hartman [this message]
2012-12-07 0:57 ` [ 08/11] ACPI: missing break Greg Kroah-Hartman
2012-12-07 0:57 ` [ 09/11] i915: Quirk no_lvds on Gigabyte GA-D525TUD ITX motherboard Greg Kroah-Hartman
2012-12-07 0:57 ` [ 10/11] drm/i915: Add no-lvds quirk for Supermicro X7SPA-H Greg Kroah-Hartman
2012-12-07 0:57 ` [ 11/11] scsi: Silence unnecessary warnings about ioctl to partition Greg Kroah-Hartman
2012-12-07 13:59 ` [ 00/11] 3.0.56-stable review Nikola Ciprich
2012-12-08 0:57 ` Shuah Khan
2012-12-08 1:47 ` satoru takeuchi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20121207005615.450608760@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=eric.dumazet@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mkubecek@suse.cz \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.