mirror of https://github.com/ipxe/ipxe.git
[infiniband] Return status code from ib_create_mi()
Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/58/merge
parent
39ef530088
commit
c26c1fd07c
|
@ -127,8 +127,9 @@ ib_create_madx ( struct ib_device *ibdev, struct ib_mad_interface *mi,
|
|||
extern void ib_destroy_madx ( struct ib_device *ibdev,
|
||||
struct ib_mad_interface *mi,
|
||||
struct ib_mad_transaction *madx );
|
||||
extern struct ib_mad_interface * ib_create_mi ( struct ib_device *ibdev,
|
||||
enum ib_queue_pair_type type );
|
||||
extern int ib_create_mi ( struct ib_device *ibdev,
|
||||
enum ib_queue_pair_type type,
|
||||
struct ib_mad_interface **new_mi );
|
||||
extern void ib_destroy_mi ( struct ib_device *ibdev,
|
||||
struct ib_mad_interface *mi );
|
||||
|
||||
|
|
|
@ -666,10 +666,9 @@ int ib_open ( struct ib_device *ibdev ) {
|
|||
}
|
||||
|
||||
/* Create subnet management interface */
|
||||
ibdev->smi = ib_create_mi ( ibdev, IB_QPT_SMI );
|
||||
if ( ! ibdev->smi ) {
|
||||
DBGC ( ibdev, "IBDEV %s could not create SMI\n", ibdev->name );
|
||||
rc = -ENOMEM;
|
||||
if ( ( rc = ib_create_mi ( ibdev, IB_QPT_SMI, &ibdev->smi ) ) != 0 ) {
|
||||
DBGC ( ibdev, "IBDEV %s could not create SMI: %s\n",
|
||||
ibdev->name, strerror ( rc ) );
|
||||
goto err_create_smi;
|
||||
}
|
||||
|
||||
|
@ -681,10 +680,9 @@ int ib_open ( struct ib_device *ibdev ) {
|
|||
}
|
||||
|
||||
/* Create general services interface */
|
||||
ibdev->gsi = ib_create_mi ( ibdev, IB_QPT_GSI );
|
||||
if ( ! ibdev->gsi ) {
|
||||
DBGC ( ibdev, "IBDEV %s could not create GSI\n", ibdev->name );
|
||||
rc = -ENOMEM;
|
||||
if ( ( rc = ib_create_mi ( ibdev, IB_QPT_GSI, &ibdev->gsi ) ) != 0 ) {
|
||||
DBGC ( ibdev, "IBDEV %s could not create GSI: %s\n",
|
||||
ibdev->name, strerror ( rc ) );
|
||||
goto err_create_gsi;
|
||||
}
|
||||
|
||||
|
|
|
@ -341,18 +341,21 @@ void ib_destroy_madx ( struct ib_device *ibdev __unused,
|
|||
*
|
||||
* @v ibdev Infiniband device
|
||||
* @v type Queue pair type
|
||||
* @ret mi Management agent, or NULL
|
||||
* @v new_mi New management interface to fill in
|
||||
* @ret rc Return status code
|
||||
*/
|
||||
struct ib_mad_interface * ib_create_mi ( struct ib_device *ibdev,
|
||||
enum ib_queue_pair_type type ) {
|
||||
int ib_create_mi ( struct ib_device *ibdev, enum ib_queue_pair_type type,
|
||||
struct ib_mad_interface **new_mi ) {
|
||||
struct ib_mad_interface *mi;
|
||||
const char *name;
|
||||
int rc;
|
||||
|
||||
/* Allocate and initialise fields */
|
||||
mi = zalloc ( sizeof ( *mi ) );
|
||||
if ( ! mi )
|
||||
if ( ! mi ) {
|
||||
rc = -ENOMEM;
|
||||
goto err_alloc;
|
||||
}
|
||||
mi->ibdev = ibdev;
|
||||
INIT_LIST_HEAD ( &mi->madx );
|
||||
|
||||
|
@ -387,7 +390,8 @@ struct ib_mad_interface * ib_create_mi ( struct ib_device *ibdev,
|
|||
|
||||
/* Fill receive ring */
|
||||
ib_refill_recv ( ibdev, mi->qp );
|
||||
return mi;
|
||||
*new_mi = mi;
|
||||
return 0;
|
||||
|
||||
err_modify_qp:
|
||||
ib_destroy_qp ( ibdev, mi->qp );
|
||||
|
@ -396,7 +400,7 @@ struct ib_mad_interface * ib_create_mi ( struct ib_device *ibdev,
|
|||
err_create_cq:
|
||||
free ( mi );
|
||||
err_alloc:
|
||||
return NULL;
|
||||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue