diff options
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/qlcnic/qlcnic.h | 1 | ||||
-rw-r--r-- | drivers/net/qlcnic/qlcnic_main.c | 5 |
2 files changed, 6 insertions, 0 deletions
diff --git a/drivers/net/qlcnic/qlcnic.h b/drivers/net/qlcnic/qlcnic.h index 26c37d3a5868..a60ff17eafd8 100644 --- a/drivers/net/qlcnic/qlcnic.h +++ b/drivers/net/qlcnic/qlcnic.h | |||
@@ -942,6 +942,7 @@ struct qlcnic_ipaddr { | |||
942 | #define QLCNIC_LOOPBACK_TEST 2 | 942 | #define QLCNIC_LOOPBACK_TEST 2 |
943 | 943 | ||
944 | #define QLCNIC_FILTER_AGE 80 | 944 | #define QLCNIC_FILTER_AGE 80 |
945 | #define QLCNIC_READD_AGE 20 | ||
945 | #define QLCNIC_LB_MAX_FILTERS 64 | 946 | #define QLCNIC_LB_MAX_FILTERS 64 |
946 | 947 | ||
947 | struct qlcnic_filter { | 948 | struct qlcnic_filter { |
diff --git a/drivers/net/qlcnic/qlcnic_main.c b/drivers/net/qlcnic/qlcnic_main.c index f047c7c48314..5a3ce084c391 100644 --- a/drivers/net/qlcnic/qlcnic_main.c +++ b/drivers/net/qlcnic/qlcnic_main.c | |||
@@ -1860,6 +1860,11 @@ qlcnic_send_filter(struct qlcnic_adapter *adapter, | |||
1860 | hlist_for_each_entry_safe(tmp_fil, tmp_hnode, n, head, fnode) { | 1860 | hlist_for_each_entry_safe(tmp_fil, tmp_hnode, n, head, fnode) { |
1861 | if (!memcmp(tmp_fil->faddr, &src_addr, ETH_ALEN) && | 1861 | if (!memcmp(tmp_fil->faddr, &src_addr, ETH_ALEN) && |
1862 | tmp_fil->vlan_id == vlan_id) { | 1862 | tmp_fil->vlan_id == vlan_id) { |
1863 | |||
1864 | if (jiffies > | ||
1865 | (QLCNIC_READD_AGE * HZ + tmp_fil->ftime)) | ||
1866 | qlcnic_change_filter(adapter, src_addr, vlan_id, | ||
1867 | tx_ring); | ||
1863 | tmp_fil->ftime = jiffies; | 1868 | tmp_fil->ftime = jiffies; |
1864 | return; | 1869 | return; |
1865 | } | 1870 | } |