igb: Fix DCA errors and do not use context index for 82576
[safe/jmp/linux-2.6] / drivers / net / mlx4 / mcg.c
index b4b5787..6053c35 100644 (file)
@@ -1,5 +1,6 @@
 /*
  * Copyright (c) 2006, 2007 Cisco Systems, Inc.  All rights reserved.
+ * Copyright (c) 2007, 2008 Mellanox Technologies. All rights reserved.
  *
  * This software is available to you under a choice of one of two
  * licenses.  You may choose to be licensed under the terms of the GNU
@@ -117,17 +118,7 @@ static int find_mgm(struct mlx4_dev *dev,
                return err;
 
        if (0)
-               mlx4_dbg(dev, "Hash for %04x:%04x:%04x:%04x:"
-                         "%04x:%04x:%04x:%04x is %04x\n",
-                         be16_to_cpu(((__be16 *) gid)[0]),
-                         be16_to_cpu(((__be16 *) gid)[1]),
-                         be16_to_cpu(((__be16 *) gid)[2]),
-                         be16_to_cpu(((__be16 *) gid)[3]),
-                         be16_to_cpu(((__be16 *) gid)[4]),
-                         be16_to_cpu(((__be16 *) gid)[5]),
-                         be16_to_cpu(((__be16 *) gid)[6]),
-                         be16_to_cpu(((__be16 *) gid)[7]),
-                         *hash);
+               mlx4_dbg(dev, "Hash for %pI6 is %04x\n", gid, *hash);
 
        *index = *hash;
        *prev  = -1;
@@ -214,7 +205,7 @@ int mlx4_multicast_attach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16],
 
        if (block_mcast_loopback)
                mgm->qp[members_count++] = cpu_to_be32((qp->qpn & MGM_QPN_MASK) |
-                                                      (1 << MGM_BLCK_LB_BIT));
+                                                      (1U << MGM_BLCK_LB_BIT));
        else
                mgm->qp[members_count++] = cpu_to_be32(qp->qpn & MGM_QPN_MASK);
 
@@ -276,16 +267,7 @@ int mlx4_multicast_detach(struct mlx4_dev *dev, struct mlx4_qp *qp, u8 gid[16])
                goto out;
 
        if (index == -1) {
-               mlx4_err(dev, "MGID %04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x "
-                         "not found\n",
-                         be16_to_cpu(((__be16 *) gid)[0]),
-                         be16_to_cpu(((__be16 *) gid)[1]),
-                         be16_to_cpu(((__be16 *) gid)[2]),
-                         be16_to_cpu(((__be16 *) gid)[3]),
-                         be16_to_cpu(((__be16 *) gid)[4]),
-                         be16_to_cpu(((__be16 *) gid)[5]),
-                         be16_to_cpu(((__be16 *) gid)[6]),
-                         be16_to_cpu(((__be16 *) gid)[7]));
+               mlx4_err(dev, "MGID %pI6 not found\n", gid);
                err = -EINVAL;
                goto out;
        }
@@ -367,8 +349,8 @@ int mlx4_init_mcg_table(struct mlx4_dev *dev)
        struct mlx4_priv *priv = mlx4_priv(dev);
        int err;
 
-       err = mlx4_bitmap_init(&priv->mcg_table.bitmap,
-                              dev->caps.num_amgms, dev->caps.num_amgms - 1, 0);
+       err = mlx4_bitmap_init(&priv->mcg_table.bitmap, dev->caps.num_amgms,
+                              dev->caps.num_amgms - 1, 0, 0);
        if (err)
                return err;