/* called under bridge lock */ static int __br_del_if(struct net_bridge *br, struct net_device *dev) { struct net_bridge_port *p; struct net_bridge_port **pptr; if ((p = dev->br_port) == NULL) return -EINVAL; br_stp_disable_port(p); dev_set_promiscuity(dev, -1); dev->br_port = NULL; pptr = &br->port_list; while (*pptr != NULL) { if (*pptr == p) { *pptr = p->next; break; } pptr = &((*pptr)->next); } br_fdb_delete_by_port(br, p); kfree(p); dev_put(dev); return 0; }
static int store_flush(struct net_bridge_port *p, unsigned long v) { br_fdb_delete_by_port(p->br, p, 0, 0); // Don't delete local entry return 0; }
static ssize_t store_flush(struct net_bridge_port *p, unsigned long v) { br_fdb_delete_by_port(p->br, p, 0); return 0; }