From 1c2a5b0a74fcfd12017db948b86f1fd1ac14438b Mon Sep 17 00:00:00 2001 From: Andrew Morton Date: Thu, 15 Jan 2009 20:43:56 -0800 Subject: [PATCH] --- yaml --- r: 129905 b: refs/heads/master c: d3b924d960a808105180d229b4667061123cc4ef h: refs/heads/master i: 129903: d1130e5f4ea36b9ab639928f57e2aa9b70001de3 v: v3 --- [refs] | 2 +- .../drivers/infiniband/ulp/ipoib/ipoib_main.c | 27 +++++++++---------- .../infiniband/ulp/ipoib/ipoib_multicast.c | 2 +- .../drivers/infiniband/ulp/ipoib/ipoib_vlan.c | 11 +++----- trunk/drivers/net/mlx4/profile.c | 6 ++--- 5 files changed, 20 insertions(+), 28 deletions(-) diff --git a/[refs] b/[refs] index 74631d5cf19c..b580d9c57a25 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3c20962086b0ceb5498ba840e5a91bf4a692aae9 +refs/heads/master: d3b924d960a808105180d229b4667061123cc4ef diff --git a/trunk/drivers/infiniband/ulp/ipoib/ipoib_main.c b/trunk/drivers/infiniband/ulp/ipoib/ipoib_main.c index 0bd2a4ff0842..dce0443f9d69 100644 --- a/trunk/drivers/infiniband/ulp/ipoib/ipoib_main.c +++ b/trunk/drivers/infiniband/ulp/ipoib/ipoib_main.c @@ -106,17 +106,23 @@ int ipoib_open(struct net_device *dev) ipoib_dbg(priv, "bringing up interface\n"); - if (!test_and_set_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags)) - napi_enable(&priv->napi); + set_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags); if (ipoib_pkey_dev_delay_open(dev)) return 0; - if (ipoib_ib_dev_open(dev)) - goto err_disable; + napi_enable(&priv->napi); - if (ipoib_ib_dev_up(dev)) - goto err_stop; + if (ipoib_ib_dev_open(dev)) { + napi_disable(&priv->napi); + return -EINVAL; + } + + if (ipoib_ib_dev_up(dev)) { + ipoib_ib_dev_stop(dev, 1); + napi_disable(&priv->napi); + return -EINVAL; + } if (!test_bit(IPOIB_FLAG_SUBINTERFACE, &priv->flags)) { struct ipoib_dev_priv *cpriv; @@ -138,15 +144,6 @@ int ipoib_open(struct net_device *dev) netif_start_queue(dev); return 0; - -err_stop: - ipoib_ib_dev_stop(dev, 1); - -err_disable: - napi_disable(&priv->napi); - clear_bit(IPOIB_FLAG_ADMIN_UP, &priv->flags); - - return -EINVAL; } static int ipoib_stop(struct net_device *dev) diff --git a/trunk/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/trunk/drivers/infiniband/ulp/ipoib/ipoib_multicast.c index 425e31112ed7..59d02e0b8df1 100644 --- a/trunk/drivers/infiniband/ulp/ipoib/ipoib_multicast.c +++ b/trunk/drivers/infiniband/ulp/ipoib/ipoib_multicast.c @@ -409,7 +409,7 @@ static int ipoib_mcast_join_complete(int status, } if (mcast->logcount++ < 20) { - if (status == -ETIMEDOUT || status == -EAGAIN) { + if (status == -ETIMEDOUT) { ipoib_dbg_mcast(priv, "multicast join failed for %pI6, status %d\n", mcast->mcmember.mgid.raw, status); } else { diff --git a/trunk/drivers/infiniband/ulp/ipoib/ipoib_vlan.c b/trunk/drivers/infiniband/ulp/ipoib/ipoib_vlan.c index 5a76a5510350..2cf1a4088718 100644 --- a/trunk/drivers/infiniband/ulp/ipoib/ipoib_vlan.c +++ b/trunk/drivers/infiniband/ulp/ipoib/ipoib_vlan.c @@ -61,7 +61,6 @@ int ipoib_vlan_add(struct net_device *pdev, unsigned short pkey) ppriv = netdev_priv(pdev); - rtnl_lock(); mutex_lock(&ppriv->vlan_mutex); /* @@ -112,7 +111,7 @@ int ipoib_vlan_add(struct net_device *pdev, unsigned short pkey) goto device_init_failed; } - result = register_netdevice(priv->dev); + result = register_netdev(priv->dev); if (result) { ipoib_warn(priv, "failed to initialize; error %i", result); goto register_failed; @@ -135,13 +134,12 @@ int ipoib_vlan_add(struct net_device *pdev, unsigned short pkey) list_add_tail(&priv->list, &ppriv->child_intfs); mutex_unlock(&ppriv->vlan_mutex); - rtnl_unlock(); return 0; sysfs_failed: ipoib_delete_debug_files(priv->dev); - unregister_netdevice(priv->dev); + unregister_netdev(priv->dev); register_failed: ipoib_dev_cleanup(priv->dev); @@ -151,7 +149,6 @@ int ipoib_vlan_add(struct net_device *pdev, unsigned short pkey) err: mutex_unlock(&ppriv->vlan_mutex); - rtnl_unlock(); return result; } @@ -165,11 +162,10 @@ int ipoib_vlan_delete(struct net_device *pdev, unsigned short pkey) ppriv = netdev_priv(pdev); - rtnl_lock(); mutex_lock(&ppriv->vlan_mutex); list_for_each_entry_safe(priv, tpriv, &ppriv->child_intfs, list) { if (priv->pkey == pkey) { - unregister_netdevice(priv->dev); + unregister_netdev(priv->dev); ipoib_dev_cleanup(priv->dev); list_del(&priv->list); free_netdev(priv->dev); @@ -179,7 +175,6 @@ int ipoib_vlan_delete(struct net_device *pdev, unsigned short pkey) } } mutex_unlock(&ppriv->vlan_mutex); - rtnl_unlock(); return ret; } diff --git a/trunk/drivers/net/mlx4/profile.c b/trunk/drivers/net/mlx4/profile.c index 919fb9eb1b62..cebdf3243ca1 100644 --- a/trunk/drivers/net/mlx4/profile.c +++ b/trunk/drivers/net/mlx4/profile.c @@ -107,9 +107,9 @@ u64 mlx4_make_profile(struct mlx4_dev *dev, profile[MLX4_RES_AUXC].num = request->num_qp; profile[MLX4_RES_SRQ].num = request->num_srq; profile[MLX4_RES_CQ].num = request->num_cq; - profile[MLX4_RES_EQ].num = min(dev_cap->max_eqs, - dev_cap->reserved_eqs + - num_possible_cpus() + 1); + profile[MLX4_RES_EQ].num = min_t(unsigned, dev_cap->max_eqs, + dev_cap->reserved_eqs + + num_possible_cpus() + 1); profile[MLX4_RES_DMPT].num = request->num_mpt; profile[MLX4_RES_CMPT].num = MLX4_NUM_CMPTS; profile[MLX4_RES_MTT].num = request->num_mtt;