Lines Matching refs:port
25 struct hsr_port *port; in hsr_handle_frame() local
34 port = hsr_port_get_rcu(skb->dev); in hsr_handle_frame()
35 if (!port) in hsr_handle_frame()
38 if (hsr_addr_is_self(port->hsr, eth_hdr(skb)->h_source)) { in hsr_handle_frame()
50 hsr_forward_skb(skb, port); in hsr_handle_frame()
106 static int hsr_portdev_setup(struct net_device *dev, struct hsr_port *port) in hsr_portdev_setup() argument
120 res = netdev_rx_handler_register(dev, hsr_handle_frame, port); in hsr_portdev_setup()
138 struct hsr_port *port, *master; in hsr_add_port() local
147 port = hsr_port_get_hsr(hsr, type); in hsr_add_port()
148 if (port != NULL) in hsr_add_port()
151 port = kzalloc(sizeof(*port), GFP_KERNEL); in hsr_add_port()
152 if (port == NULL) in hsr_add_port()
155 port->hsr = hsr; in hsr_add_port()
156 port->dev = dev; in hsr_add_port()
157 port->type = type; in hsr_add_port()
160 res = hsr_portdev_setup(dev, port); in hsr_add_port()
165 list_add_tail_rcu(&port->port_list, &hsr->ports); in hsr_add_port()
175 kfree(port); in hsr_add_port()
179 void hsr_del_port(struct hsr_port *port) in hsr_del_port() argument
184 hsr = port->hsr; in hsr_del_port()
186 list_del_rcu(&port->port_list); in hsr_del_port()
188 if (port != master) { in hsr_del_port()
193 netdev_rx_handler_unregister(port->dev); in hsr_del_port()
194 dev_set_promiscuity(port->dev, -1); in hsr_del_port()
203 if (port != master) in hsr_del_port()
204 dev_put(port->dev); in hsr_del_port()