On Tuesday 27 November 2007 08:21, Roland Dreier wrote: > Linus, please pull from > > master.kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git > for-linus > > > Jack Morgenstein (1): > mlx4_core: Fix state check in mlx4_qp_modify() > MUST also enter the patch I send yesterday: [PATCH] ipoib: fix kernel Oops resulting from xmit when priv->broadcast is NULL.
(critical bug fix -- will get kernel Oopses whenever ports on the network go down!). (patch given again below) - Jack ====================================================================================================================== IPoIB: Fix kernel Oops resulting from xmit following dev_down. If a port goes down, ipoib_ib_dev_down is invoked -- which flushed the mcasts (clearing priv->broadcast) and clearing the path record cache. If ipoib_start_xmit is then invoked (before the port is upped), a kernel Oops results from attempting to access priv->broadcast. Returning NULL if priv->broadcast is NULL is a harmless way of bypassing the problem -- the offending packet is simply discarded "without prejudice". Signed-off-by: Jack Morgenstein <[EMAIL PROTECTED]> diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c index a03a65e..c9f6077 100644 --- a/drivers/infiniband/ulp/ipoib/ipoib_main.c +++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c @@ -460,6 +460,9 @@ static struct ipoib_path *path_rec_create(struct net_device *dev, void *gid) struct ipoib_dev_priv *priv = netdev_priv(dev); struct ipoib_path *path; + if (!priv->broadcast) + return NULL; + path = kzalloc(sizeof *path, GFP_ATOMIC); if (!path) return NULL; - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/