summaryrefslogtreecommitdiffstats
path: root/src/drivers/infiniband
diff options
context:
space:
mode:
authorMichael Brown2009-01-02 22:04:31 +0100
committerMichael Brown2009-01-02 22:04:31 +0100
commit53a7dd26cd0aff8409e16c6cc1c7423d4a551f4b (patch)
tree84a376781898482a5b6dba32d4134d7769f020b4 /src/drivers/infiniband
parent[pcbios] Add additional sanity check for bogus e820 map (diff)
downloadipxe-53a7dd26cd0aff8409e16c6cc1c7423d4a551f4b.tar.gz
ipxe-53a7dd26cd0aff8409e16c6cc1c7423d4a551f4b.tar.xz
ipxe-53a7dd26cd0aff8409e16c6cc1c7423d4a551f4b.zip
[infiniband] Call ib_open() only when opening the IPoIB net device
Defer the call to ib_open() until we want to actually open the device, rather than when the device is registered.
Diffstat (limited to 'src/drivers/infiniband')
-rw-r--r--src/drivers/infiniband/arbel.c4
-rw-r--r--src/drivers/infiniband/hermon.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/src/drivers/infiniband/arbel.c b/src/drivers/infiniband/arbel.c
index e9bc260e..1756a6e2 100644
--- a/src/drivers/infiniband/arbel.c
+++ b/src/drivers/infiniband/arbel.c
@@ -2175,6 +2175,10 @@ static int arbel_probe ( struct pci_device *pci,
if ( ( rc = arbel_create_eq ( arbel ) ) != 0 )
goto err_create_eq;
+ /* Update MAD parameters */
+ for ( i = 0 ; i < ARBEL_NUM_PORTS ; i++ )
+ ib_smc_update ( arbel->ibdev[i], arbel_mad );
+
/* Register Infiniband devices */
for ( i = 0 ; i < ARBEL_NUM_PORTS ; i++ ) {
if ( ( rc = register_ibdev ( arbel->ibdev[i] ) ) != 0 ) {
diff --git a/src/drivers/infiniband/hermon.c b/src/drivers/infiniband/hermon.c
index f598a31f..40add28a 100644
--- a/src/drivers/infiniband/hermon.c
+++ b/src/drivers/infiniband/hermon.c
@@ -2244,6 +2244,10 @@ static int hermon_probe ( struct pci_device *pci,
if ( ( rc = hermon_create_eq ( hermon ) ) != 0 )
goto err_create_eq;
+ /* Update MAD parameters */
+ for ( i = 0 ; i < HERMON_NUM_PORTS ; i++ )
+ ib_smc_update ( hermon->ibdev[i], hermon_mad );
+
/* Register Infiniband devices */
for ( i = 0 ; i < HERMON_NUM_PORTS ; i++ ) {
if ( ( rc = register_ibdev ( hermon->ibdev[i] ) ) != 0 ) {