From: Jay Vosburgh <fubar@us.ibm.com>
To: netdev@vger.kernel.org
Cc: David Miller <davem@davemloft.net>, Vlad Yasevich <vyasevic@redhat.com>
Subject: [PATCH v2 net 2/6] net/core: __hw_addr_unsync_one "from" address not marked synced
Date: Fri, 31 May 2013 14:57:27 -0700 [thread overview]
Message-ID: <1370037451-29466-3-git-send-email-fubar@us.ibm.com> (raw)
In-Reply-To: <1370037451-29466-1-git-send-email-fubar@us.ibm.com>
When an address is added to a subordinate interface (the "to"
list), the address entry in the "from" list is not marked "synced" as
the entry added to the "to" list is.
When performing the unsync operation (e.g., dev_mc_unsync),
__hw_addr_unsync_one calls __hw_addr_del_entry with the "synced"
parameter set to true for the case when the address reference is being
released from the "from" list. This causes a test inside to fail,
with the result being that the reference count on the "from" address
is not properly decremeted and the address on the "from" list will
never be freed.
Correct this by having __hw_addr_unsync_one call the
__hw_addr_del_entry function with the "sync" flag set to false for the
"remove from the from list" case.
Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Cc: Vlad Yasevich <vyasevic@redhat.com>
---
net/core/dev_addr_lists.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/net/core/dev_addr_lists.c b/net/core/dev_addr_lists.c
index 1f919d9..c858e81 100644
--- a/net/core/dev_addr_lists.c
+++ b/net/core/dev_addr_lists.c
@@ -160,7 +160,8 @@ static void __hw_addr_unsync_one(struct netdev_hw_addr_list *to_list,
if (err)
return;
ha->sync_cnt--;
- __hw_addr_del_entry(from_list, ha, false, true);
+ /* address on from list is not marked synced */
+ __hw_addr_del_entry(from_list, ha, false, false);
}
static int __hw_addr_sync_multiple(struct netdev_hw_addr_list *to_list,
--
1.7.1
next prev parent reply other threads:[~2013-05-31 21:57 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-31 21:57 [PATCH v2 net 0/6] net/core, bonding: dev_uc_sync fixes, bonding update Jay Vosburgh
2013-05-31 21:57 ` [PATCH v2 net 1/6] net/core: __hw_addr_create_ex does not initialize sync_cnt Jay Vosburgh
2013-05-31 21:57 ` Jay Vosburgh [this message]
2013-05-31 21:57 ` [PATCH v2 net 3/6] net/core: __hw_addr_sync_one / _multiple broken Jay Vosburgh
2013-05-31 21:57 ` [PATCH v2 net 4/6] net/core: dev_mc_sync_multiple calls wrong helper Jay Vosburgh
2013-05-31 21:57 ` [PATCH v2 net 5/6] bonding: Convert hw addr handling to sync/unsync, support ucast addresses Jay Vosburgh
2013-06-07 22:06 ` David Miller
2013-05-31 21:57 ` [PATCH v2 net 6/6] bonding: disallow change of MAC if fail_over_mac enabled Jay Vosburgh
2013-06-07 22:06 ` David Miller
2013-05-31 23:58 ` [PATCH v2 net 0/6] net/core, bonding: dev_uc_sync fixes, bonding update David Miller
2013-06-01 17:00 ` Or Gerlitz
2013-06-01 19:04 ` Shawn Bohrer
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=1370037451-29466-3-git-send-email-fubar@us.ibm.com \
--to=fubar@us.ibm.com \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
--cc=vyasevic@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).