Lines Matching refs:port
24 struct hsr_port *port; in hsr_handle_frame() local
32 port = hsr_port_get_rcu(skb->dev); in hsr_handle_frame()
34 if (hsr_addr_is_self(port->hsr, eth_hdr(skb)->h_source)) { in hsr_handle_frame()
45 hsr_forward_skb(skb, port); in hsr_handle_frame()
101 static int hsr_portdev_setup(struct net_device *dev, struct hsr_port *port) in hsr_portdev_setup() argument
115 res = netdev_rx_handler_register(dev, hsr_handle_frame, port); in hsr_portdev_setup()
133 struct hsr_port *port, *master; in hsr_add_port() local
142 port = hsr_port_get_hsr(hsr, type); in hsr_add_port()
143 if (port != NULL) in hsr_add_port()
146 port = kzalloc(sizeof(*port), GFP_KERNEL); in hsr_add_port()
147 if (port == NULL) in hsr_add_port()
151 res = hsr_portdev_setup(dev, port); in hsr_add_port()
156 port->hsr = hsr; in hsr_add_port()
157 port->dev = dev; in hsr_add_port()
158 port->type = type; in hsr_add_port()
160 list_add_tail_rcu(&port->port_list, &hsr->ports); in hsr_add_port()
170 kfree(port); in hsr_add_port()
174 void hsr_del_port(struct hsr_port *port) in hsr_del_port() argument
179 hsr = port->hsr; in hsr_del_port()
181 list_del_rcu(&port->port_list); in hsr_del_port()
183 if (port != master) { in hsr_del_port()
188 netdev_rx_handler_unregister(port->dev); in hsr_del_port()
189 dev_set_promiscuity(port->dev, -1); in hsr_del_port()
198 if (port != master) in hsr_del_port()
199 dev_put(port->dev); in hsr_del_port()