git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Revert to Fedora kernel-2.6.17-1.2187_FC5 patched with vs2.0.2.1; there are too many...
[linux-2.6.git]
/
drivers
/
infiniband
/
ulp
/
ipoib
/
ipoib_multicast.c
diff --git
a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
index
ec356ce
..
1d917ed
100644
(file)
--- a/
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+++ b/
drivers/infiniband/ulp/ipoib/ipoib_multicast.c
@@
-154,7
+154,7
@@
static struct ipoib_mcast *ipoib_mcast_alloc(struct net_device *dev,
return mcast;
}
return mcast;
}
-static struct ipoib_mcast *__ipoib_mcast_find(struct net_device *dev,
vo
id *mgid)
+static struct ipoib_mcast *__ipoib_mcast_find(struct net_device *dev,
union ib_g
id *mgid)
{
struct ipoib_dev_priv *priv = netdev_priv(dev);
struct rb_node *n = priv->multicast_tree.rb_node;
{
struct ipoib_dev_priv *priv = netdev_priv(dev);
struct rb_node *n = priv->multicast_tree.rb_node;
@@
-165,7
+165,7
@@
static struct ipoib_mcast *__ipoib_mcast_find(struct net_device *dev, void *mgid
mcast = rb_entry(n, struct ipoib_mcast, rb_node);
mcast = rb_entry(n, struct ipoib_mcast, rb_node);
- ret = memcmp(mgid, mcast->mcmember.mgid.raw,
+ ret = memcmp(mgid
->raw
, mcast->mcmember.mgid.raw,
sizeof (union ib_gid));
if (ret < 0)
n = n->rb_left;
sizeof (union ib_gid));
if (ret < 0)
n = n->rb_left;
@@
-264,10
+264,6
@@
static int ipoib_mcast_join_finish(struct ipoib_mcast *mcast,
if (!ah) {
ipoib_warn(priv, "ib_address_create failed\n");
} else {
if (!ah) {
ipoib_warn(priv, "ib_address_create failed\n");
} else {
- spin_lock_irq(&priv->lock);
- mcast->ah = ah;
- spin_unlock_irq(&priv->lock);
-
ipoib_dbg_mcast(priv, "MGID " IPOIB_GID_FMT
" AV %p, LID 0x%04x, SL %d\n",
IPOIB_GID_ARG(mcast->mcmember.mgid),
ipoib_dbg_mcast(priv, "MGID " IPOIB_GID_FMT
" AV %p, LID 0x%04x, SL %d\n",
IPOIB_GID_ARG(mcast->mcmember.mgid),
@@
-275,6
+271,10
@@
static int ipoib_mcast_join_finish(struct ipoib_mcast *mcast,
be16_to_cpu(mcast->mcmember.mlid),
mcast->mcmember.sl);
}
be16_to_cpu(mcast->mcmember.mlid),
mcast->mcmember.sl);
}
+
+ spin_lock_irq(&priv->lock);
+ mcast->ah = ah;
+ spin_unlock_irq(&priv->lock);
}
/* actually send any queued packets */
}
/* actually send any queued packets */
@@
-326,7
+326,6
@@
ipoib_mcast_sendonly_join_complete(int status,
/* Clear the busy flag so we try again */
clear_bit(IPOIB_MCAST_FLAG_BUSY, &mcast->flags);
/* Clear the busy flag so we try again */
clear_bit(IPOIB_MCAST_FLAG_BUSY, &mcast->flags);
- mcast->query = NULL;
}
complete(&mcast->done);
}
complete(&mcast->done);
@@
-695,7
+694,8
@@
static int ipoib_mcast_leave(struct net_device *dev, struct ipoib_mcast *mcast)
return 0;
}
return 0;
}
-void ipoib_mcast_send(struct net_device *dev, void *mgid, struct sk_buff *skb)
+void ipoib_mcast_send(struct net_device *dev, union ib_gid *mgid,
+ struct sk_buff *skb)
{
struct ipoib_dev_priv *priv = netdev_priv(dev);
struct ipoib_mcast *mcast;
{
struct ipoib_dev_priv *priv = netdev_priv(dev);
struct ipoib_mcast *mcast;
@@
-718,7
+718,7
@@
void ipoib_mcast_send(struct net_device *dev, void *mgid, struct sk_buff *skb)
if (!mcast) {
/* Let's create a new send only group now */
ipoib_dbg_mcast(priv, "setting up send only multicast group for "
if (!mcast) {
/* Let's create a new send only group now */
ipoib_dbg_mcast(priv, "setting up send only multicast group for "
- IPOIB_GID_FMT "\n", IPOIB_GID_
RAW_ARG(
mgid));
+ IPOIB_GID_FMT "\n", IPOIB_GID_
ARG(*
mgid));
mcast = ipoib_mcast_alloc(dev, 0);
if (!mcast) {
mcast = ipoib_mcast_alloc(dev, 0);
if (!mcast) {
@@
-730,7
+730,7
@@
void ipoib_mcast_send(struct net_device *dev, void *mgid, struct sk_buff *skb)
}
set_bit(IPOIB_MCAST_FLAG_SENDONLY, &mcast->flags);
}
set_bit(IPOIB_MCAST_FLAG_SENDONLY, &mcast->flags);
- m
emcpy(mcast->mcmember.mgid.raw, mgid, sizeof (union ib_gid))
;
+ m
cast->mcmember.mgid = *mgid
;
__ipoib_mcast_add(dev, mcast);
list_add_tail(&mcast->list, &priv->multicast_list);
}
__ipoib_mcast_add(dev, mcast);
list_add_tail(&mcast->list, &priv->multicast_list);
}
@@
-865,7
+865,8
@@
void ipoib_mcast_restart_task(void *dev_ptr)
if (mcast) {
/* Destroy the send only entry */
if (mcast) {
/* Destroy the send only entry */
- list_move_tail(&mcast->list, &remove_list);
+ list_del(&mcast->list);
+ list_add_tail(&mcast->list, &remove_list);
rb_replace_node(&mcast->rb_node,
&nmcast->rb_node,
rb_replace_node(&mcast->rb_node,
&nmcast->rb_node,
@@
-890,7
+891,8
@@
void ipoib_mcast_restart_task(void *dev_ptr)
rb_erase(&mcast->rb_node, &priv->multicast_tree);
/* Move to the remove list */
rb_erase(&mcast->rb_node, &priv->multicast_tree);
/* Move to the remove list */
- list_move_tail(&mcast->list, &remove_list);
+ list_del(&mcast->list);
+ list_add_tail(&mcast->list, &remove_list);
}
}
}
}