* This lets us disable promiscuous mode and write
* this config to hw.
*/
- if (br->auto_cnt <= br_auto_port(p))
+ if (br->auto_cnt == 0 ||
+ (br->auto_cnt == 1 && br_auto_port(p)))
br_port_clear_promisc(p);
else
br_port_set_promisc(p);
static void nbp_delete_promisc(struct net_bridge_port *p)
{
- /* If port is currently promiscous, unset promiscuity.
+ /* If port is currently promiscuous, unset promiscuity.
* Otherwise, it is a static port so remove all addresses
* from it.
*/
kobject_put(&p->kobj);
p = NULL; /* kobject_put frees */
err1:
- dev_set_promiscuity(dev, -1);
+ dev_set_allmulti(dev, -1);
put_back:
dev_put(dev);
kfree(p);