diff options
| author | David S. Miller <davem@davemloft.net> | 2012-08-22 17:21:38 -0400 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2012-08-22 17:21:38 -0400 |
| commit | 1304a7343b30fc4f16045412efdbb4179a3d9255 (patch) | |
| tree | 83d667ac4f62e30f70305ce4cc7e030e3465f92e /drivers/net/team | |
| parent | 1d76efe1577b4323609b1bcbfafa8b731eda071a (diff) | |
| parent | 23dcfa61bac244e1200ff9ad19c6e9144dcb6bb5 (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Diffstat (limited to 'drivers/net/team')
| -rw-r--r-- | drivers/net/team/team.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c index bc36d13c267..c8a3f108dc9 100644 --- a/drivers/net/team/team.c +++ b/drivers/net/team/team.c | |||
| @@ -913,16 +913,17 @@ static void team_port_leave(struct team *team, struct team_port *port) | |||
| 913 | } | 913 | } |
| 914 | 914 | ||
| 915 | #ifdef CONFIG_NET_POLL_CONTROLLER | 915 | #ifdef CONFIG_NET_POLL_CONTROLLER |
| 916 | static int team_port_enable_netpoll(struct team *team, struct team_port *port) | 916 | static int team_port_enable_netpoll(struct team *team, struct team_port *port, |
| 917 | gfp_t gfp) | ||
| 917 | { | 918 | { |
| 918 | struct netpoll *np; | 919 | struct netpoll *np; |
| 919 | int err; | 920 | int err; |
| 920 | 921 | ||
| 921 | np = kzalloc(sizeof(*np), GFP_KERNEL); | 922 | np = kzalloc(sizeof(*np), gfp); |
| 922 | if (!np) | 923 | if (!np) |
| 923 | return -ENOMEM; | 924 | return -ENOMEM; |
| 924 | 925 | ||
| 925 | err = __netpoll_setup(np, port->dev); | 926 | err = __netpoll_setup(np, port->dev, gfp); |
| 926 | if (err) { | 927 | if (err) { |
| 927 | kfree(np); | 928 | kfree(np); |
| 928 | return err; | 929 | return err; |
| @@ -951,7 +952,8 @@ static struct netpoll_info *team_netpoll_info(struct team *team) | |||
| 951 | } | 952 | } |
| 952 | 953 | ||
| 953 | #else | 954 | #else |
| 954 | static int team_port_enable_netpoll(struct team *team, struct team_port *port) | 955 | static int team_port_enable_netpoll(struct team *team, struct team_port *port, |
| 956 | gfp_t gfp) | ||
| 955 | { | 957 | { |
| 956 | return 0; | 958 | return 0; |
| 957 | } | 959 | } |
| @@ -1037,7 +1039,7 @@ static int team_port_add(struct team *team, struct net_device *port_dev) | |||
| 1037 | } | 1039 | } |
| 1038 | 1040 | ||
| 1039 | if (team_netpoll_info(team)) { | 1041 | if (team_netpoll_info(team)) { |
| 1040 | err = team_port_enable_netpoll(team, port); | 1042 | err = team_port_enable_netpoll(team, port, GFP_KERNEL); |
| 1041 | if (err) { | 1043 | if (err) { |
| 1042 | netdev_err(dev, "Failed to enable netpoll on device %s\n", | 1044 | netdev_err(dev, "Failed to enable netpoll on device %s\n", |
| 1043 | portname); | 1045 | portname); |
| @@ -1633,7 +1635,7 @@ static void team_netpoll_cleanup(struct net_device *dev) | |||
| 1633 | } | 1635 | } |
| 1634 | 1636 | ||
| 1635 | static int team_netpoll_setup(struct net_device *dev, | 1637 | static int team_netpoll_setup(struct net_device *dev, |
| 1636 | struct netpoll_info *npifo) | 1638 | struct netpoll_info *npifo, gfp_t gfp) |
| 1637 | { | 1639 | { |
| 1638 | struct team *team = netdev_priv(dev); | 1640 | struct team *team = netdev_priv(dev); |
| 1639 | struct team_port *port; | 1641 | struct team_port *port; |
| @@ -1641,7 +1643,7 @@ static int team_netpoll_setup(struct net_device *dev, | |||
| 1641 | 1643 | ||
| 1642 | mutex_lock(&team->lock); | 1644 | mutex_lock(&team->lock); |
| 1643 | list_for_each_entry(port, &team->port_list, list) { | 1645 | list_for_each_entry(port, &team->port_list, list) { |
| 1644 | err = team_port_enable_netpoll(team, port); | 1646 | err = team_port_enable_netpoll(team, port, gfp); |
| 1645 | if (err) { | 1647 | if (err) { |
| 1646 | __team_netpoll_cleanup(team); | 1648 | __team_netpoll_cleanup(team); |
| 1647 | break; | 1649 | break; |
