diff options
| author | 2021-10-07 00:40:17 +0200 | |
|---|---|---|
| committer | 2021-10-07 00:40:17 +0200 | |
| commit | b08cadbd3b8721db738d9a00ef3ce3ed667e6d9c (patch) | |
| tree | 1b44ef760764ea19f82fd80088135d23ab565d2d /net/core/dev_addr_lists.c | |
| parent | objtool: Support pv_opsindirect calls for noinstr (diff) | |
| parent | objtool: Remove redundant 'len' field from struct section (diff) | |
| download | linux-dev-b08cadbd3b8721db738d9a00ef3ce3ed667e6d9c.tar.xz linux-dev-b08cadbd3b8721db738d9a00ef3ce3ed667e6d9c.zip | |
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) { |
