Lines Matching refs:mdb_entry_port

994 	struct mlxsw_sp_mdb_entry_port *mdb_entry_port;  in mlxsw_sp_mdb_entry_port_lookup()  local
996 list_for_each_entry(mdb_entry_port, &mdb_entry->ports_list, list) { in mlxsw_sp_mdb_entry_port_lookup()
997 if (mdb_entry_port->local_port == local_port) in mlxsw_sp_mdb_entry_port_lookup()
998 return mdb_entry_port; in mlxsw_sp_mdb_entry_port_lookup()
1009 struct mlxsw_sp_mdb_entry_port *mdb_entry_port; in mlxsw_sp_mdb_entry_port_get() local
1012 mdb_entry_port = mlxsw_sp_mdb_entry_port_lookup(mdb_entry, local_port); in mlxsw_sp_mdb_entry_port_get()
1013 if (mdb_entry_port) { in mlxsw_sp_mdb_entry_port_get()
1014 if (mdb_entry_port->mrouter && in mlxsw_sp_mdb_entry_port_get()
1015 refcount_read(&mdb_entry_port->refcount) == 1) in mlxsw_sp_mdb_entry_port_get()
1018 refcount_inc(&mdb_entry_port->refcount); in mlxsw_sp_mdb_entry_port_get()
1019 return mdb_entry_port; in mlxsw_sp_mdb_entry_port_get()
1027 mdb_entry_port = kzalloc(sizeof(*mdb_entry_port), GFP_KERNEL); in mlxsw_sp_mdb_entry_port_get()
1028 if (!mdb_entry_port) { in mlxsw_sp_mdb_entry_port_get()
1033 mdb_entry_port->local_port = local_port; in mlxsw_sp_mdb_entry_port_get()
1034 refcount_set(&mdb_entry_port->refcount, 1); in mlxsw_sp_mdb_entry_port_get()
1035 list_add(&mdb_entry_port->list, &mdb_entry->ports_list); in mlxsw_sp_mdb_entry_port_get()
1038 return mdb_entry_port; in mlxsw_sp_mdb_entry_port_get()
1051 struct mlxsw_sp_mdb_entry_port *mdb_entry_port; in mlxsw_sp_mdb_entry_port_put() local
1053 mdb_entry_port = mlxsw_sp_mdb_entry_port_lookup(mdb_entry, local_port); in mlxsw_sp_mdb_entry_port_put()
1054 if (!mdb_entry_port) in mlxsw_sp_mdb_entry_port_put()
1057 if (!force && !refcount_dec_and_test(&mdb_entry_port->refcount)) { in mlxsw_sp_mdb_entry_port_put()
1058 if (mdb_entry_port->mrouter && in mlxsw_sp_mdb_entry_port_put()
1059 refcount_read(&mdb_entry_port->refcount) == 1) in mlxsw_sp_mdb_entry_port_put()
1065 list_del(&mdb_entry_port->list); in mlxsw_sp_mdb_entry_port_put()
1066 kfree(mdb_entry_port); in mlxsw_sp_mdb_entry_port_put()
1076 struct mlxsw_sp_mdb_entry_port *mdb_entry_port; in mlxsw_sp_mdb_entry_mrouter_port_get() local
1079 mdb_entry_port = mlxsw_sp_mdb_entry_port_lookup(mdb_entry, local_port); in mlxsw_sp_mdb_entry_mrouter_port_get()
1080 if (mdb_entry_port) { in mlxsw_sp_mdb_entry_mrouter_port_get()
1081 if (!mdb_entry_port->mrouter) in mlxsw_sp_mdb_entry_mrouter_port_get()
1082 refcount_inc(&mdb_entry_port->refcount); in mlxsw_sp_mdb_entry_mrouter_port_get()
1083 return mdb_entry_port; in mlxsw_sp_mdb_entry_mrouter_port_get()
1091 mdb_entry_port = kzalloc(sizeof(*mdb_entry_port), GFP_KERNEL); in mlxsw_sp_mdb_entry_mrouter_port_get()
1092 if (!mdb_entry_port) { in mlxsw_sp_mdb_entry_mrouter_port_get()
1097 mdb_entry_port->local_port = local_port; in mlxsw_sp_mdb_entry_mrouter_port_get()
1098 refcount_set(&mdb_entry_port->refcount, 1); in mlxsw_sp_mdb_entry_mrouter_port_get()
1099 mdb_entry_port->mrouter = true; in mlxsw_sp_mdb_entry_mrouter_port_get()
1100 list_add(&mdb_entry_port->list, &mdb_entry->ports_list); in mlxsw_sp_mdb_entry_mrouter_port_get()
1102 return mdb_entry_port; in mlxsw_sp_mdb_entry_mrouter_port_get()
1115 struct mlxsw_sp_mdb_entry_port *mdb_entry_port; in mlxsw_sp_mdb_entry_mrouter_port_put() local
1117 mdb_entry_port = mlxsw_sp_mdb_entry_port_lookup(mdb_entry, local_port); in mlxsw_sp_mdb_entry_mrouter_port_put()
1118 if (!mdb_entry_port) in mlxsw_sp_mdb_entry_mrouter_port_put()
1121 if (!mdb_entry_port->mrouter) in mlxsw_sp_mdb_entry_mrouter_port_put()
1124 mdb_entry_port->mrouter = false; in mlxsw_sp_mdb_entry_mrouter_port_put()
1125 if (!refcount_dec_and_test(&mdb_entry_port->refcount)) in mlxsw_sp_mdb_entry_mrouter_port_put()
1128 list_del(&mdb_entry_port->list); in mlxsw_sp_mdb_entry_mrouter_port_put()
1129 kfree(mdb_entry_port); in mlxsw_sp_mdb_entry_mrouter_port_put()
1870 struct mlxsw_sp_mdb_entry_port *mdb_entry_port; in mlxsw_sp_mc_mdb_mrouters_add() local
1875 mdb_entry_port = mlxsw_sp_mdb_entry_mrouter_port_get(mlxsw_sp, in mlxsw_sp_mc_mdb_mrouters_add()
1878 if (IS_ERR(mdb_entry_port)) { in mlxsw_sp_mc_mdb_mrouters_add()
1889 return PTR_ERR(mdb_entry_port); in mlxsw_sp_mc_mdb_mrouters_add()
1931 struct mlxsw_sp_mdb_entry_port *mdb_entry_port; in mlxsw_sp_mc_mdb_entry_init() local
1952 mdb_entry_port = mlxsw_sp_mdb_entry_port_get(mlxsw_sp, mdb_entry, in mlxsw_sp_mc_mdb_entry_init()
1954 if (IS_ERR(mdb_entry_port)) { in mlxsw_sp_mc_mdb_entry_init()
1955 err = PTR_ERR(mdb_entry_port); in mlxsw_sp_mc_mdb_entry_init()
2020 struct mlxsw_sp_mdb_entry_port *mdb_entry_port; in mlxsw_sp_mc_mdb_entry_get() local
2022 mdb_entry_port = mlxsw_sp_mdb_entry_port_get(mlxsw_sp, in mlxsw_sp_mc_mdb_entry_get()
2025 if (IS_ERR(mdb_entry_port)) in mlxsw_sp_mc_mdb_entry_get()
2026 return ERR_CAST(mdb_entry_port); in mlxsw_sp_mc_mdb_entry_get()
2063 struct mlxsw_sp_mdb_entry_port *mdb_entry_port; in mlxsw_sp_mc_mdb_entry_put() local
2065 mdb_entry_port = mlxsw_sp_mdb_entry_port_lookup(mdb_entry, local_port); in mlxsw_sp_mc_mdb_entry_put()
2066 if (!mdb_entry_port) in mlxsw_sp_mc_mdb_entry_put()
2075 if (mlxsw_sp_mc_mdb_entry_remove(mdb_entry, mdb_entry_port, force)) in mlxsw_sp_mc_mdb_entry_put()