Lines Matching refs:adap

6 static int cxgb4_mps_ref_dec_by_mac(struct adapter *adap,
13 spin_lock_bh(&adap->mps_ref_lock);
14 list_for_each_entry_safe(mps_entry, tmp, &adap->mps_ref, list) {
18 spin_unlock_bh(&adap->mps_ref_lock);
27 spin_unlock_bh(&adap->mps_ref_lock);
31 static int cxgb4_mps_ref_dec(struct adapter *adap, u16 idx)
36 spin_lock(&adap->mps_ref_lock);
37 list_for_each_entry_safe(mps_entry, tmp, &adap->mps_ref, list) {
40 spin_unlock(&adap->mps_ref_lock);
49 spin_unlock(&adap->mps_ref_lock);
53 static int cxgb4_mps_ref_inc(struct adapter *adap, const u8 *mac_addr,
60 spin_lock_bh(&adap->mps_ref_lock);
61 list_for_each_entry(mps_entry, &adap->mps_ref, list) {
76 list_add_tail(&mps_entry->list, &adap->mps_ref);
78 spin_unlock_bh(&adap->mps_ref_lock);
82 int cxgb4_free_mac_filt(struct adapter *adap, unsigned int viid,
88 if (!cxgb4_mps_ref_dec_by_mac(adap, addr[i], NULL)) {
89 ret = t4_free_mac_filt(adap, adap->mbox, viid,
100 int cxgb4_alloc_mac_filt(struct adapter *adap, unsigned int viid,
106 ret = t4_alloc_mac_filt(adap, adap->mbox, viid, free,
113 if (cxgb4_mps_ref_inc(adap, addr[i], idx[i], NULL)) {
122 cxgb4_free_mac_filt(adap, viid, naddr, addr, sleep_ok);
144 int cxgb4_free_raw_mac_filt(struct adapter *adap,
155 if (!cxgb4_mps_ref_dec(adap, idx))
156 ret = t4_free_raw_mac_filt(adap, viid, addr,
163 int cxgb4_alloc_raw_mac_filt(struct adapter *adap,
174 ret = t4_alloc_raw_mac_filt(adap, viid, addr,
180 if (cxgb4_mps_ref_inc(adap, addr, ret, mask)) {
182 t4_free_raw_mac_filt(adap, viid, addr,
190 int cxgb4_free_encap_mac_filt(struct adapter *adap, unsigned int viid,
195 if (!cxgb4_mps_ref_dec(adap, idx))
196 ret = t4_free_encap_mac_filt(adap, viid, idx, sleep_ok);
201 int cxgb4_alloc_encap_mac_filt(struct adapter *adap, unsigned int viid,
208 ret = t4_alloc_encap_mac_filt(adap, viid, addr, mask, vni, vni_mask,
213 if (cxgb4_mps_ref_inc(adap, addr, ret, mask)) {
215 t4_free_encap_mac_filt(adap, viid, ret, sleep_ok);
220 int cxgb4_init_mps_ref_entries(struct adapter *adap)
222 spin_lock_init(&adap->mps_ref_lock);
223 INIT_LIST_HEAD(&adap->mps_ref);
228 void cxgb4_free_mps_ref_entries(struct adapter *adap)
232 if (list_empty(&adap->mps_ref))
235 spin_lock(&adap->mps_ref_lock);
236 list_for_each_entry_safe(mps_entry, tmp, &adap->mps_ref, list) {
240 spin_unlock(&adap->mps_ref_lock);