Lines Matching refs:sgid_tbl

568 				     struct bnxt_qplib_sgid_tbl *sgid_tbl)
570 kfree(sgid_tbl->tbl);
571 kfree(sgid_tbl->hw_id);
572 kfree(sgid_tbl->ctx);
573 kfree(sgid_tbl->vlan);
574 sgid_tbl->tbl = NULL;
575 sgid_tbl->hw_id = NULL;
576 sgid_tbl->ctx = NULL;
577 sgid_tbl->vlan = NULL;
578 sgid_tbl->max = 0;
579 sgid_tbl->active = 0;
583 struct bnxt_qplib_sgid_tbl *sgid_tbl,
586 sgid_tbl->tbl = kcalloc(max, sizeof(*sgid_tbl->tbl), GFP_KERNEL);
587 if (!sgid_tbl->tbl)
590 sgid_tbl->hw_id = kcalloc(max, sizeof(u16), GFP_KERNEL);
591 if (!sgid_tbl->hw_id)
594 sgid_tbl->ctx = kcalloc(max, sizeof(void *), GFP_KERNEL);
595 if (!sgid_tbl->ctx)
598 sgid_tbl->vlan = kcalloc(max, sizeof(u8), GFP_KERNEL);
599 if (!sgid_tbl->vlan)
602 sgid_tbl->max = max;
605 kfree(sgid_tbl->ctx);
606 sgid_tbl->ctx = NULL;
608 kfree(sgid_tbl->hw_id);
609 sgid_tbl->hw_id = NULL;
611 kfree(sgid_tbl->tbl);
612 sgid_tbl->tbl = NULL;
617 struct bnxt_qplib_sgid_tbl *sgid_tbl)
621 for (i = 0; i < sgid_tbl->max; i++) {
622 if (memcmp(&sgid_tbl->tbl[i], &bnxt_qplib_gid_zero,
624 bnxt_qplib_del_sgid(sgid_tbl, &sgid_tbl->tbl[i].gid,
625 sgid_tbl->tbl[i].vlan_id, true);
627 memset(sgid_tbl->tbl, 0, sizeof(*sgid_tbl->tbl) * sgid_tbl->max);
628 memset(sgid_tbl->hw_id, -1, sizeof(u16) * sgid_tbl->max);
629 memset(sgid_tbl->vlan, 0, sizeof(u8) * sgid_tbl->max);
630 sgid_tbl->active = 0;
633 static void bnxt_qplib_init_sgid_tbl(struct bnxt_qplib_sgid_tbl *sgid_tbl,
638 for (i = 0; i < sgid_tbl->max; i++)
639 sgid_tbl->tbl[i].vlan_id = 0xffff;
641 memset(sgid_tbl->hw_id, -1, sizeof(u16) * sgid_tbl->max);
873 bnxt_qplib_cleanup_sgid_tbl(res, &res->sgid_tbl);
878 bnxt_qplib_init_sgid_tbl(&res->sgid_tbl, res->netdev);
885 bnxt_qplib_free_sgid_tbl(res, &res->sgid_tbl);
899 rc = bnxt_qplib_alloc_sgid_tbl(res, &res->sgid_tbl, dev_attr->max_sgid);