Lines Matching refs:pgid

1800 	struct ocelot_pgid *pgid;
1802 pgid = kzalloc(sizeof(*pgid), GFP_KERNEL);
1803 if (!pgid)
1806 pgid->ports = ports;
1807 pgid->index = index;
1808 refcount_set(&pgid->refcount, 1);
1809 list_add_tail(&pgid->list, &ocelot->pgids);
1811 return pgid;
1814 static void ocelot_pgid_free(struct ocelot *ocelot, struct ocelot_pgid *pgid)
1816 if (!refcount_dec_and_test(&pgid->refcount))
1819 list_del(&pgid->list);
1820 kfree(pgid);
1826 struct ocelot_pgid *pgid;
1838 list_for_each_entry(pgid, &ocelot->pgids, list) {
1842 if (pgid->index && pgid->ports == mc->ports) {
1843 refcount_inc(&pgid->refcount);
1844 return pgid;
1852 list_for_each_entry(pgid, &ocelot->pgids, list) {
1853 if (pgid->index == index) {
1887 struct ocelot_pgid *pgid;
1909 ocelot_pgid_free(ocelot, mc->pgid);
1916 pgid = ocelot_mdb_get_pgid(ocelot, mc);
1917 if (IS_ERR(pgid)) {
1922 return PTR_ERR(pgid);
1924 mc->pgid = pgid;
1930 ocelot_write_rix(ocelot, pgid->ports, ANA_PGID_PGID,
1931 pgid->index);
1933 return ocelot_mact_learn(ocelot, pgid->index, addr, vid,
1944 struct ocelot_pgid *pgid;
1957 ocelot_pgid_free(ocelot, mc->pgid);
1966 pgid = ocelot_mdb_get_pgid(ocelot, mc);
1967 if (IS_ERR(pgid))
1968 return PTR_ERR(pgid);
1969 mc->pgid = pgid;
1975 ocelot_write_rix(ocelot, pgid->ports, ANA_PGID_PGID,
1976 pgid->index);
1978 return ocelot_mact_learn(ocelot, pgid->index, addr, vid,
2149 struct ocelot_pgid *pgid;
2159 ocelot_pgid_free(ocelot, mc->pgid);
2166 pgid = ocelot_mdb_get_pgid(ocelot, mc);
2167 if (IS_ERR(pgid)) {
2172 return PTR_ERR(pgid);
2174 mc->pgid = pgid;
2180 ocelot_write_rix(ocelot, pgid->ports, ANA_PGID_PGID,
2181 pgid->index);
2183 return ocelot_mact_learn(ocelot, pgid->index, addr, vid,