[ipxe-devel] [PATCH] [ipoib, infiniband] Fix a race when chain-loading undionly.kpxe in IPoIB

Michael Brown mcb30 at ipxe.org
Mon Aug 17 13:50:13 UTC 2015


On 12/08/15 10:32, Wissam Shoukair wrote:
> --- a/src/drivers/net/ipoib.c
> +++ b/src/drivers/net/ipoib.c
> @@ -806,7 +806,7 @@ static void ipoib_link_state_changed ( struct ib_device *ibdev ) {
>   	netdev_link_err ( netdev, ( rc ? rc : -EINPROGRESS_JOINING ) );
>
>   	/* Join new broadcast group */
> -	if ( ib_is_open ( ibdev ) && ib_link_ok ( ibdev ) &&
> +	if ( ib_is_open ( ibdev ) && ib_link_ok ( ibdev ) && ( ipoib->qp ) &&
>   	     ( ( rc = ipoib_join_broadcast_group ( ipoib ) ) != 0 ) ) {
>   		DBGC ( ipoib, "IPoIB %p could not rejoin broadcast group: "
>   		       "%s\n", ipoib, strerror ( rc ) ); @@ -894,7 +894,9 @@ static void ipoib_close ( struct net_device *netdev ) {
>
>   	/* Tear down the queues */
>   	ib_destroy_qp ( ibdev, ipoib->qp );
> +	ipoib->qp = NULL;
>   	ib_destroy_cq ( ibdev, ipoib->cq );
> +	ipoib->cq = NULL;

Thanks!  Have applied with some minor changes and an expanded commit log 
message (for my own future reference):

   http://git.ipxe.org/ipxe.git/commitdiff/eb8df9a

Michael



More information about the ipxe-devel mailing list