Lines Matching refs:l2_accel
1205 struct fm10k_l2_accel *l2_accel) in fm10k_assign_l2_accel() argument
1212 rcu_assign_pointer(ring->l2_accel, l2_accel); in fm10k_assign_l2_accel()
1215 interface->l2_accel = l2_accel; in fm10k_assign_l2_accel()
1222 struct fm10k_l2_accel *l2_accel = interface->l2_accel; in fm10k_dfwd_add_station() local
1230 if (!l2_accel) { in fm10k_dfwd_add_station()
1236 l2_accel = kzalloc(size, GFP_KERNEL); in fm10k_dfwd_add_station()
1237 if (!l2_accel) in fm10k_dfwd_add_station()
1240 l2_accel->size = 7; in fm10k_dfwd_add_station()
1241 l2_accel->dglort = interface->glort; in fm10k_dfwd_add_station()
1244 fm10k_assign_l2_accel(interface, l2_accel); in fm10k_dfwd_add_station()
1246 } else if ((l2_accel->count == FM10K_MAX_STATIONS) || in fm10k_dfwd_add_station()
1247 (l2_accel->count == (interface->glort_count - 1))) { in fm10k_dfwd_add_station()
1250 } else if (l2_accel->count == l2_accel->size) { in fm10k_dfwd_add_station()
1251 old_l2_accel = l2_accel; in fm10k_dfwd_add_station()
1253 macvlan[(l2_accel->size * 2) + 1]); in fm10k_dfwd_add_station()
1254 l2_accel = kzalloc(size, GFP_KERNEL); in fm10k_dfwd_add_station()
1255 if (!l2_accel) in fm10k_dfwd_add_station()
1258 memcpy(l2_accel, old_l2_accel, in fm10k_dfwd_add_station()
1262 l2_accel->size = (old_l2_accel->size * 2) + 1; in fm10k_dfwd_add_station()
1265 fm10k_assign_l2_accel(interface, l2_accel); in fm10k_dfwd_add_station()
1270 for (i = 0; i < l2_accel->size; i++) { in fm10k_dfwd_add_station()
1271 if (!l2_accel->macvlan[i]) in fm10k_dfwd_add_station()
1276 l2_accel->macvlan[i] = sdev; in fm10k_dfwd_add_station()
1277 l2_accel->count++; in fm10k_dfwd_add_station()
1285 dglort.shared_l = fls(l2_accel->size); in fm10k_dfwd_add_station()
1291 glort = l2_accel->dglort + 1 + i; in fm10k_dfwd_add_station()
1303 struct fm10k_l2_accel *l2_accel = ACCESS_ONCE(interface->l2_accel); in fm10k_dfwd_del_station() local
1310 if (!l2_accel) in fm10k_dfwd_del_station()
1314 for (i = 0; i < l2_accel->size; i++) { in fm10k_dfwd_del_station()
1315 if (l2_accel->macvlan[i] == sdev) in fm10k_dfwd_del_station()
1320 if (i == l2_accel->size) in fm10k_dfwd_del_station()
1326 glort = l2_accel->dglort + 1 + i; in fm10k_dfwd_del_station()
1333 l2_accel->macvlan[i] = NULL; in fm10k_dfwd_del_station()
1334 l2_accel->count--; in fm10k_dfwd_del_station()
1342 if (l2_accel) in fm10k_dfwd_del_station()
1343 dglort.shared_l = fls(l2_accel->size); in fm10k_dfwd_del_station()
1347 if (l2_accel->count == 0) { in fm10k_dfwd_del_station()
1349 kfree_rcu(l2_accel, rcu); in fm10k_dfwd_del_station()