Lines Matching refs:l2_accel
1204 struct fm10k_l2_accel *l2_accel) in fm10k_assign_l2_accel() argument
1211 rcu_assign_pointer(ring->l2_accel, l2_accel); in fm10k_assign_l2_accel()
1214 interface->l2_accel = l2_accel; in fm10k_assign_l2_accel()
1221 struct fm10k_l2_accel *l2_accel = interface->l2_accel; in fm10k_dfwd_add_station() local
1229 if (!l2_accel) { in fm10k_dfwd_add_station()
1235 l2_accel = kzalloc(size, GFP_KERNEL); in fm10k_dfwd_add_station()
1236 if (!l2_accel) in fm10k_dfwd_add_station()
1239 l2_accel->size = 7; in fm10k_dfwd_add_station()
1240 l2_accel->dglort = interface->glort; in fm10k_dfwd_add_station()
1243 fm10k_assign_l2_accel(interface, l2_accel); in fm10k_dfwd_add_station()
1245 } else if ((l2_accel->count == FM10K_MAX_STATIONS) || in fm10k_dfwd_add_station()
1246 (l2_accel->count == (interface->glort_count - 1))) { in fm10k_dfwd_add_station()
1249 } else if (l2_accel->count == l2_accel->size) { in fm10k_dfwd_add_station()
1250 old_l2_accel = l2_accel; in fm10k_dfwd_add_station()
1252 macvlan[(l2_accel->size * 2) + 1]); in fm10k_dfwd_add_station()
1253 l2_accel = kzalloc(size, GFP_KERNEL); in fm10k_dfwd_add_station()
1254 if (!l2_accel) in fm10k_dfwd_add_station()
1257 memcpy(l2_accel, old_l2_accel, in fm10k_dfwd_add_station()
1261 l2_accel->size = (old_l2_accel->size * 2) + 1; in fm10k_dfwd_add_station()
1264 fm10k_assign_l2_accel(interface, l2_accel); in fm10k_dfwd_add_station()
1269 for (i = 0; i < l2_accel->size; i++) { in fm10k_dfwd_add_station()
1270 if (!l2_accel->macvlan[i]) in fm10k_dfwd_add_station()
1275 l2_accel->macvlan[i] = sdev; in fm10k_dfwd_add_station()
1276 l2_accel->count++; in fm10k_dfwd_add_station()
1284 dglort.shared_l = fls(l2_accel->size); in fm10k_dfwd_add_station()
1290 glort = l2_accel->dglort + 1 + i; in fm10k_dfwd_add_station()
1302 struct fm10k_l2_accel *l2_accel = ACCESS_ONCE(interface->l2_accel); in fm10k_dfwd_del_station() local
1309 if (!l2_accel) in fm10k_dfwd_del_station()
1313 for (i = 0; i < l2_accel->size; i++) { in fm10k_dfwd_del_station()
1314 if (l2_accel->macvlan[i] == sdev) in fm10k_dfwd_del_station()
1319 if (i == l2_accel->size) in fm10k_dfwd_del_station()
1325 glort = l2_accel->dglort + 1 + i; in fm10k_dfwd_del_station()
1332 l2_accel->macvlan[i] = NULL; in fm10k_dfwd_del_station()
1333 l2_accel->count--; in fm10k_dfwd_del_station()
1341 dglort.shared_l = fls(l2_accel->size); in fm10k_dfwd_del_station()
1345 if (l2_accel->count == 0) { in fm10k_dfwd_del_station()
1347 kfree_rcu(l2_accel, rcu); in fm10k_dfwd_del_station()