Parcourir la source

[hermon] Remove temporary workaround for missing BOFM mport support

This reverts commit 15c1200 ("[hermon] Work around missing mport
support in current BOFM implementations").

Signed-off-by: Michael Brown <mcb30@ipxe.org>
tags/v1.20.1
Michael Brown il y a 13 ans
Parent
révision
c738a635cb
1 fichiers modifiés avec 15 ajouts et 39 suppressions
  1. 15
    39
      src/drivers/infiniband/hermon.c

+ 15
- 39
src/drivers/infiniband/hermon.c Voir le fichier

@@ -3382,56 +3382,32 @@ static int hermon_bofm_update ( struct bofm_device *bofm, unsigned int mport,
3382 3382
 	union {
3383 3383
 		uint8_t bytes[8];
3384 3384
 		uint32_t dwords[2];
3385
-		uint64_t qword;
3386 3385
 	} buf;
3387
-	uint8_t *mac_copy = &buf.bytes[ sizeof ( buf.bytes ) - ETH_ALEN ];
3388 3386
 	int rc;
3389 3387
 
3390 3388
 	/* Prepare MAC address */
3391 3389
 	memset ( &buf, 0, sizeof ( buf ) );
3392
-	memcpy ( mac_copy, mac, ETH_ALEN );
3390
+	memcpy ( &buf.bytes[ sizeof ( buf.bytes ) - ETH_ALEN ], mac,
3391
+		 ETH_ALEN );
3393 3392
 
3394
-	/* Current BOFM versions are unable to create entries with
3395
-	 * mport>1, which means that only the port 1 MAC address can
3396
-	 * be explicitly specified.  Work around this by using the
3397
-	 * provided MAC address as a base address for all subsequent
3398
-	 * ports.  For example, if BOFM assigns the address
3399
-	 *
3400
-	 *    00:1A:64:76:00:09 for port 1
3401
-	 *
3402
-	 * then we will assign the addresses
3403
-	 *
3404
-	 *    00:1A:64:76:00:09 for port 1
3405
-	 *    00:1A:64:76:00:0a for port 2
3406
-	 *
3407
-	 * Note that hermon->cap.num_ports is not yet defined at this
3408
-	 * point.
3409
-	 */
3410
-	for ( ; mport <= HERMON_MAX_PORTS ; mport++ ) {
3411
-
3412
-		/* Modify static configuration */
3413
-		memset ( &stat_cfg, 0, sizeof ( stat_cfg ) );
3414
-		MLX_FILL_2 ( &stat_cfg, 36,
3415
-			     mac_m, 1,
3416
-			     mac_high, ntohl ( buf.dwords[0] ) );
3417
-		MLX_FILL_1 ( &stat_cfg, 37, mac_low, ntohl ( buf.dwords[1] ) );
3418
-		if ( ( rc = hermon_mod_stat_cfg ( hermon, mport,
3393
+	/* Modify static configuration */
3394
+	memset ( &stat_cfg, 0, sizeof ( stat_cfg ) );
3395
+	MLX_FILL_2 ( &stat_cfg, 36,
3396
+		     mac_m, 1,
3397
+		     mac_high, ntohl ( buf.dwords[0] ) );
3398
+	MLX_FILL_1 ( &stat_cfg, 37, mac_low, ntohl ( buf.dwords[1] ) );
3399
+	if ( ( rc = hermon_mod_stat_cfg ( hermon, mport,
3419 3400
 					  HERMON_MOD_STAT_CFG_SET,
3420 3401
 					  HERMON_MOD_STAT_CFG_OFFSET ( mac_m ),
3421 3402
 					  &stat_cfg ) ) != 0 ) {
3422
-			DBGC ( hermon, "Hermon %p port %d could not modify "
3423
-			       "configuration: %s\n",
3424
-			       hermon, mport, strerror ( rc ) );
3425
-			return rc;
3426
-		}
3427
-
3428
-		DBGC ( hermon, "Hermon %p port %d updated MAC address to %s\n",
3429
-		       hermon, mport, eth_ntoa ( mac_copy ) );
3430
-
3431
-		/* Increment MAC address */
3432
-		buf.qword = cpu_to_be64 ( be64_to_cpu ( buf.qword ) + 1 );
3403
+		DBGC ( hermon, "Hermon %p port %d could not modify "
3404
+		       "configuration: %s\n", hermon, mport, strerror ( rc ) );
3405
+		return rc;
3433 3406
 	}
3434 3407
 
3408
+	DBGC ( hermon, "Hermon %p port %d updated MAC address to %s\n",
3409
+	       hermon, mport, eth_ntoa ( mac ) );
3410
+
3435 3411
 	return 0;
3436 3412
 }
3437 3413
 

Chargement…
Annuler
Enregistrer