diff options
author | Peter Zijlstra <peterz@infradead.org> | 2021-10-07 00:40:17 +0200 |
---|---|---|
committer | Peter Zijlstra <peterz@infradead.org> | 2021-10-07 00:40:17 +0200 |
commit | b08cadbd3b8721db738d9a00ef3ce3ed667e6d9c (patch) | |
tree | 1b44ef760764ea19f82fd80088135d23ab565d2d /net/core/dev_addr_lists.c | |
parent | db2b0c5d7b6f19b3c2cab08c531b65342eb5252b (diff) | |
parent | fe255fe6ad97685e5a4be0d871f43288dbc10ad6 (diff) |
Merge branch 'objtool/urgent'
Fixup conflicts.
# Conflicts:
# tools/objtool/check.c
Diffstat (limited to 'net/core/dev_addr_lists.c')
-rw-r--r-- | net/core/dev_addr_lists.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/net/core/dev_addr_lists.c b/net/core/dev_addr_lists.c index 8c39283c26ae..f0cb38344126 100644 --- a/net/core/dev_addr_lists.c +++ b/net/core/dev_addr_lists.c @@ -50,6 +50,11 @@ static int __hw_addr_add_ex(struct netdev_hw_addr_list *list, if (addr_len > MAX_ADDR_LEN) return -EINVAL; + ha = list_first_entry(&list->list, struct netdev_hw_addr, list); + if (ha && !memcmp(addr, ha->addr, addr_len) && + (!addr_type || addr_type == ha->type)) + goto found_it; + while (*ins_point) { int diff; @@ -64,6 +69,7 @@ static int __hw_addr_add_ex(struct netdev_hw_addr_list *list, } else if (diff > 0) { ins_point = &parent->rb_right; } else { +found_it: if (exclusive) return -EEXIST; if (global) { |