Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[infiniband] Open device prior to creating SMI and GSI queue pairs
Signed-off-by: Michael Brown <mcb30@ipxe.org>
  • Loading branch information
mcb30 committed Nov 15, 2011
1 parent 774ea3d commit 1e7fbc5
Showing 1 changed file with 9 additions and 9 deletions.
18 changes: 9 additions & 9 deletions src/net/infiniband.c
Expand Up @@ -610,6 +610,13 @@ int ib_open ( struct ib_device *ibdev ) {
return 0;
}

/* Open device */
if ( ( rc = ibdev->op->open ( ibdev ) ) != 0 ) {
DBGC ( ibdev, "IBDEV %p could not open: %s\n",
ibdev, strerror ( rc ) );
goto err_open;
}

/* Create subnet management interface */
ibdev->smi = ib_create_mi ( ibdev, IB_QPT_SMI );
if ( ! ibdev->smi ) {
Expand All @@ -633,13 +640,6 @@ int ib_open ( struct ib_device *ibdev ) {
goto err_create_gsi;
}

/* Open device */
if ( ( rc = ibdev->op->open ( ibdev ) ) != 0 ) {
DBGC ( ibdev, "IBDEV %p could not open: %s\n",
ibdev, strerror ( rc ) );
goto err_open;
}

/* Add to head of open devices list */
list_add ( &ibdev->open_list, &open_ib_devices );

Expand All @@ -649,14 +649,14 @@ int ib_open ( struct ib_device *ibdev ) {
assert ( ibdev->open_count == 1 );
return 0;

ibdev->op->close ( ibdev );
err_open:
ib_destroy_mi ( ibdev, ibdev->gsi );
err_create_gsi:
ib_destroy_sma ( ibdev, ibdev->smi );
err_create_sma:
ib_destroy_mi ( ibdev, ibdev->smi );
err_create_smi:
ibdev->op->close ( ibdev );
err_open:
assert ( ibdev->open_count == 1 );
ibdev->open_count = 0;
return rc;
Expand Down

0 comments on commit 1e7fbc5

Please sign in to comment.