Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4e3828c4 authored by Amerigo Wang's avatar Amerigo Wang Committed by David S. Miller
Browse files

bridge: use list_for_each_entry() in netpoll functions



We don't delete 'p' from the list in the loop,
so we can just use list_for_each_entry().

Cc: David Miller <davem@davemloft.net>
Cc: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: default avatarCong Wang <amwang@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d30362c0
Loading
Loading
Loading
Loading
+4 −5
Original line number Original line Diff line number Diff line
@@ -206,21 +206,20 @@ static void br_poll_controller(struct net_device *br_dev)
static void br_netpoll_cleanup(struct net_device *dev)
static void br_netpoll_cleanup(struct net_device *dev)
{
{
	struct net_bridge *br = netdev_priv(dev);
	struct net_bridge *br = netdev_priv(dev);
	struct net_bridge_port *p, *n;
	struct net_bridge_port *p;


	list_for_each_entry_safe(p, n, &br->port_list, list) {
	list_for_each_entry(p, &br->port_list, list)
		br_netpoll_disable(p);
		br_netpoll_disable(p);
}
}
}


static int br_netpoll_setup(struct net_device *dev, struct netpoll_info *ni,
static int br_netpoll_setup(struct net_device *dev, struct netpoll_info *ni,
			    gfp_t gfp)
			    gfp_t gfp)
{
{
	struct net_bridge *br = netdev_priv(dev);
	struct net_bridge *br = netdev_priv(dev);
	struct net_bridge_port *p, *n;
	struct net_bridge_port *p;
	int err = 0;
	int err = 0;


	list_for_each_entry_safe(p, n, &br->port_list, list) {
	list_for_each_entry(p, &br->port_list, list) {
		if (!p->dev)
		if (!p->dev)
			continue;
			continue;
		err = br_netpoll_enable(p, gfp);
		err = br_netpoll_enable(p, gfp);