IPoIB: Test for NULL broadcast object in ipiob_mcast_join_finish()
authorJack Morgenstein <jackm@dev.mellanox.co.il>
Tue, 20 May 2008 22:41:09 +0000 (15:41 -0700)
committerRoland Dreier <rolandd@cisco.com>
Tue, 20 May 2008 22:41:09 +0000 (15:41 -0700)
commite1d50dce5af77cb6d33555af70e2b8748dd84009
tree2ee7146889f82fa1b4f606fd7962a20433692158
parente5ec3789c16e12a1936a3be7bdda51897a4148b8
IPoIB: Test for NULL broadcast object in ipiob_mcast_join_finish()

We saw a kernel oops in our regression testing when a multicast "join
finish" occurred just after the interface was -- this is
<https://bugs.openfabrics.org/show_bug.cgi?id=1040>.  The test
randomly causes the HCA physical port to go down then up.

The cause of this is that ipoib_mcast_join_finish() processing happen
just after ipoib_mcast_dev_flush() was invoked (in which case the
broadcast pointer is NULL).  This patch tests for and handles the case
where priv->broadcast is NULL.

Cc: <stable@kernel.org>
Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/ulp/ipoib/ipoib_multicast.c