diff options
Diffstat (limited to 'drivers/net/cxgb4/l2t.c')
-rw-r--r-- | drivers/net/cxgb4/l2t.c | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/drivers/net/cxgb4/l2t.c b/drivers/net/cxgb4/l2t.c index e8f0f55e9d08..a2d323c473f8 100644 --- a/drivers/net/cxgb4/l2t.c +++ b/drivers/net/cxgb4/l2t.c | |||
@@ -481,40 +481,6 @@ void t4_l2t_update(struct adapter *adap, struct neighbour *neigh) | |||
481 | handle_failed_resolution(adap, arpq); | 481 | handle_failed_resolution(adap, arpq); |
482 | } | 482 | } |
483 | 483 | ||
484 | /* | ||
485 | * Allocate an L2T entry for use by a switching rule. Such entries need to be | ||
486 | * explicitly freed and while busy they are not on any hash chain, so normal | ||
487 | * address resolution updates do not see them. | ||
488 | */ | ||
489 | struct l2t_entry *t4_l2t_alloc_switching(struct l2t_data *d) | ||
490 | { | ||
491 | struct l2t_entry *e; | ||
492 | |||
493 | write_lock_bh(&d->lock); | ||
494 | e = alloc_l2e(d); | ||
495 | if (e) { | ||
496 | spin_lock(&e->lock); /* avoid race with t4_l2t_free */ | ||
497 | e->state = L2T_STATE_SWITCHING; | ||
498 | atomic_set(&e->refcnt, 1); | ||
499 | spin_unlock(&e->lock); | ||
500 | } | ||
501 | write_unlock_bh(&d->lock); | ||
502 | return e; | ||
503 | } | ||
504 | |||
505 | /* | ||
506 | * Sets/updates the contents of a switching L2T entry that has been allocated | ||
507 | * with an earlier call to @t4_l2t_alloc_switching. | ||
508 | */ | ||
509 | int t4_l2t_set_switching(struct adapter *adap, struct l2t_entry *e, u16 vlan, | ||
510 | u8 port, u8 *eth_addr) | ||
511 | { | ||
512 | e->vlan = vlan; | ||
513 | e->lport = port; | ||
514 | memcpy(e->dmac, eth_addr, ETH_ALEN); | ||
515 | return write_l2e(adap, e, 0); | ||
516 | } | ||
517 | |||
518 | struct l2t_data *t4_init_l2t(void) | 484 | struct l2t_data *t4_init_l2t(void) |
519 | { | 485 | { |
520 | int i; | 486 | int i; |