Bläddra i källkod

[infiniband] Use explicit "source" and "dest" address vector parameter names

Signed-off-by: Michael Brown <mcb30@ipxe.org>
tags/v1.20.1
Michael Brown 11 år sedan
förälder
incheckning
cbe41cb31b

+ 32
- 33
src/drivers/infiniband/arbel.c Visa fil

@@ -1250,14 +1250,14 @@ static const union ib_gid arbel_no_gid = {
1250 1250
  *
1251 1251
  * @v ibdev		Infiniband device
1252 1252
  * @v qp		Queue pair
1253
- * @v av		Address vector
1253
+ * @v dest		Destination address vector
1254 1254
  * @v iobuf		I/O buffer
1255 1255
  * @v wqe		Send work queue entry
1256 1256
  * @ret nds		Work queue entry size
1257 1257
  */
1258 1258
 static size_t arbel_fill_ud_send_wqe ( struct ib_device *ibdev,
1259 1259
 				       struct ib_queue_pair *qp __unused,
1260
-				       struct ib_address_vector *av,
1260
+				       struct ib_address_vector *dest,
1261 1261
 				       struct io_buffer *iobuf,
1262 1262
 				       union arbel_send_wqe *wqe ) {
1263 1263
 	struct arbel *arbel = ib_get_drvdata ( ibdev );
@@ -1269,16 +1269,16 @@ static size_t arbel_fill_ud_send_wqe ( struct ib_device *ibdev,
1269 1269
 		     ud_address_vector.pd, ARBEL_GLOBAL_PD,
1270 1270
 		     ud_address_vector.port_number, ibdev->port );
1271 1271
 	MLX_FILL_2 ( &wqe->ud.ud, 1,
1272
-		     ud_address_vector.rlid, av->lid,
1273
-		     ud_address_vector.g, av->gid_present );
1272
+		     ud_address_vector.rlid, dest->lid,
1273
+		     ud_address_vector.g, dest->gid_present );
1274 1274
 	MLX_FILL_2 ( &wqe->ud.ud, 2,
1275
-		     ud_address_vector.max_stat_rate, arbel_rate ( av ),
1275
+		     ud_address_vector.max_stat_rate, arbel_rate ( dest ),
1276 1276
 		     ud_address_vector.msg, 3 );
1277
-	MLX_FILL_1 ( &wqe->ud.ud, 3, ud_address_vector.sl, av->sl );
1278
-	gid = ( av->gid_present ? &av->gid : &arbel_no_gid );
1277
+	MLX_FILL_1 ( &wqe->ud.ud, 3, ud_address_vector.sl, dest->sl );
1278
+	gid = ( dest->gid_present ? &dest->gid : &arbel_no_gid );
1279 1279
 	memcpy ( &wqe->ud.ud.u.dwords[4], gid, sizeof ( *gid ) );
1280
-	MLX_FILL_1 ( &wqe->ud.ud, 8, destination_qp, av->qpn );
1281
-	MLX_FILL_1 ( &wqe->ud.ud, 9, q_key, av->qkey );
1280
+	MLX_FILL_1 ( &wqe->ud.ud, 8, destination_qp, dest->qpn );
1281
+	MLX_FILL_1 ( &wqe->ud.ud, 9, q_key, dest->qkey );
1282 1282
 	MLX_FILL_1 ( &wqe->ud.data[0], 0, byte_count, iob_len ( iobuf ) );
1283 1283
 	MLX_FILL_1 ( &wqe->ud.data[0], 1, l_key, arbel->lkey );
1284 1284
 	MLX_FILL_H ( &wqe->ud.data[0], 2,
@@ -1294,15 +1294,14 @@ static size_t arbel_fill_ud_send_wqe ( struct ib_device *ibdev,
1294 1294
  *
1295 1295
  * @v ibdev		Infiniband device
1296 1296
  * @v qp		Queue pair
1297
- * @v av		Address vector
1297
+ * @v dest		Destination address vector
1298 1298
  * @v iobuf		I/O buffer
1299 1299
  * @v wqe		Send work queue entry
1300
- * @v next		Previous work queue entry's "next" field
1301 1300
  * @ret nds		Work queue entry size
1302 1301
  */
1303 1302
 static size_t arbel_fill_mlx_send_wqe ( struct ib_device *ibdev,
1304 1303
 					struct ib_queue_pair *qp,
1305
-					struct ib_address_vector *av,
1304
+					struct ib_address_vector *dest,
1306 1305
 					struct io_buffer *iobuf,
1307 1306
 					union arbel_send_wqe *wqe ) {
1308 1307
 	struct arbel *arbel = ib_get_drvdata ( ibdev );
@@ -1312,16 +1311,16 @@ static size_t arbel_fill_mlx_send_wqe ( struct ib_device *ibdev,
1312 1311
 	iob_populate ( &headers, &wqe->mlx.headers, 0,
1313 1312
 		       sizeof ( wqe->mlx.headers ) );
1314 1313
 	iob_reserve ( &headers, sizeof ( wqe->mlx.headers ) );
1315
-	ib_push ( ibdev, &headers, qp, iob_len ( iobuf ), av );
1314
+	ib_push ( ibdev, &headers, qp, iob_len ( iobuf ), dest );
1316 1315
 
1317 1316
 	/* Construct this work queue entry */
1318 1317
 	MLX_FILL_5 ( &wqe->mlx.ctrl, 0,
1319 1318
 		     c, 1 /* generate completion */,
1320 1319
 		     icrc, 0 /* generate ICRC */,
1321
-		     max_statrate, arbel_rate ( av ),
1320
+		     max_statrate, arbel_rate ( dest ),
1322 1321
 		     slr, 0,
1323 1322
 		     v15, ( ( qp->ext_qpn == IB_QPN_SMI ) ? 1 : 0 ) );
1324
-	MLX_FILL_1 ( &wqe->mlx.ctrl, 1, rlid, av->lid );
1323
+	MLX_FILL_1 ( &wqe->mlx.ctrl, 1, rlid, dest->lid );
1325 1324
 	MLX_FILL_1 ( &wqe->mlx.data[0], 0,
1326 1325
 		     byte_count, iob_len ( &headers ) );
1327 1326
 	MLX_FILL_1 ( &wqe->mlx.data[0], 1, l_key, arbel->lkey );
@@ -1345,15 +1344,14 @@ static size_t arbel_fill_mlx_send_wqe ( struct ib_device *ibdev,
1345 1344
  *
1346 1345
  * @v ibdev		Infiniband device
1347 1346
  * @v qp		Queue pair
1348
- * @v av		Address vector
1347
+ * @v dest		Destination address vector
1349 1348
  * @v iobuf		I/O buffer
1350 1349
  * @v wqe		Send work queue entry
1351
- * @v next		Previous work queue entry's "next" field
1352 1350
  * @ret nds		Work queue entry size
1353 1351
  */
1354 1352
 static size_t arbel_fill_rc_send_wqe ( struct ib_device *ibdev,
1355 1353
 				       struct ib_queue_pair *qp __unused,
1356
-				       struct ib_address_vector *av __unused,
1354
+				       struct ib_address_vector *dest __unused,
1357 1355
 				       struct io_buffer *iobuf,
1358 1356
 				       union arbel_send_wqe *wqe ) {
1359 1357
 	struct arbel *arbel = ib_get_drvdata ( ibdev );
@@ -1374,7 +1372,7 @@ static size_t arbel_fill_rc_send_wqe ( struct ib_device *ibdev,
1374 1372
 static size_t
1375 1373
 ( * arbel_fill_send_wqe[] ) ( struct ib_device *ibdev,
1376 1374
 			      struct ib_queue_pair *qp,
1377
-			      struct ib_address_vector *av,
1375
+			      struct ib_address_vector *dest,
1378 1376
 			      struct io_buffer *iobuf,
1379 1377
 			      union arbel_send_wqe *wqe ) = {
1380 1378
 	[IB_QPT_SMI] = arbel_fill_mlx_send_wqe,
@@ -1388,13 +1386,13 @@ static size_t
1388 1386
  *
1389 1387
  * @v ibdev		Infiniband device
1390 1388
  * @v qp		Queue pair
1391
- * @v av		Address vector
1389
+ * @v dest		Destination address vector
1392 1390
  * @v iobuf		I/O buffer
1393 1391
  * @ret rc		Return status code
1394 1392
  */
1395 1393
 static int arbel_post_send ( struct ib_device *ibdev,
1396 1394
 			     struct ib_queue_pair *qp,
1397
-			     struct ib_address_vector *av,
1395
+			     struct ib_address_vector *dest,
1398 1396
 			     struct io_buffer *iobuf ) {
1399 1397
 	struct arbel *arbel = ib_get_drvdata ( ibdev );
1400 1398
 	struct arbel_queue_pair *arbel_qp = ib_qp_get_drvdata ( qp );
@@ -1424,7 +1422,7 @@ static int arbel_post_send ( struct ib_device *ibdev,
1424 1422
 	assert ( qp->type < ( sizeof ( arbel_fill_send_wqe ) /
1425 1423
 			      sizeof ( arbel_fill_send_wqe[0] ) ) );
1426 1424
 	assert ( arbel_fill_send_wqe[qp->type] != NULL );
1427
-	nds = arbel_fill_send_wqe[qp->type] ( ibdev, qp, av, iobuf, wqe );
1425
+	nds = arbel_fill_send_wqe[qp->type] ( ibdev, qp, dest, iobuf, wqe );
1428 1426
 	DBGCP ( arbel, "Arbel %p QPN %#lx posting send WQE %#lx:\n",
1429 1427
 		arbel, qp->qpn, ( wq->next_idx & wqe_idx_mask ) );
1430 1428
 	DBGCP_HDA ( arbel, virt_to_phys ( wqe ), wqe, sizeof ( *wqe ) );
@@ -1527,9 +1525,9 @@ static int arbel_complete ( struct ib_device *ibdev,
1527 1525
 	struct arbel_recv_work_queue *arbel_recv_wq;
1528 1526
 	struct arbelprm_recv_wqe *recv_wqe;
1529 1527
 	struct io_buffer *iobuf;
1530
-	struct ib_address_vector recv_av;
1528
+	struct ib_address_vector recv_source;
1531 1529
 	struct ib_global_route_header *grh;
1532
-	struct ib_address_vector *av;
1530
+	struct ib_address_vector *source;
1533 1531
 	unsigned int opcode;
1534 1532
 	unsigned long qpn;
1535 1533
 	int is_send;
@@ -1618,23 +1616,24 @@ static int arbel_complete ( struct ib_device *ibdev,
1618 1616
 			grh = iobuf->data;
1619 1617
 			iob_pull ( iobuf, sizeof ( *grh ) );
1620 1618
 			/* Construct address vector */
1621
-			av = &recv_av;
1622
-			memset ( av, 0, sizeof ( *av ) );
1623
-			av->qpn = MLX_GET ( &cqe->normal, rqpn );
1624
-			av->lid = MLX_GET ( &cqe->normal, rlid );
1625
-			av->sl = MLX_GET ( &cqe->normal, sl );
1626
-			av->gid_present = MLX_GET ( &cqe->normal, g );
1627
-			memcpy ( &av->gid, &grh->sgid, sizeof ( av->gid ) );
1619
+			source = &recv_source;
1620
+			memset ( source, 0, sizeof ( *source ) );
1621
+			source->qpn = MLX_GET ( &cqe->normal, rqpn );
1622
+			source->lid = MLX_GET ( &cqe->normal, rlid );
1623
+			source->sl = MLX_GET ( &cqe->normal, sl );
1624
+			source->gid_present = MLX_GET ( &cqe->normal, g );
1625
+			memcpy ( &source->gid, &grh->sgid,
1626
+				 sizeof ( source->gid ) );
1628 1627
 			break;
1629 1628
 		case IB_QPT_RC:
1630
-			av = &qp->av;
1629
+			source = &qp->av;
1631 1630
 			break;
1632 1631
 		default:
1633 1632
 			assert ( 0 );
1634 1633
 			return -EINVAL;
1635 1634
 		}
1636 1635
 		/* Hand off to completion handler */
1637
-		ib_complete_recv ( ibdev, qp, av, iobuf, rc );
1636
+		ib_complete_recv ( ibdev, qp, source, iobuf, rc );
1638 1637
 	}
1639 1638
 
1640 1639
 	return rc;

+ 43
- 42
src/drivers/infiniband/hermon.c Visa fil

@@ -1364,7 +1364,7 @@ static void hermon_destroy_qp ( struct ib_device *ibdev,
1364 1364
  *
1365 1365
  * @v ibdev		Infiniband device
1366 1366
  * @v qp		Queue pair
1367
- * @v av		Address vector
1367
+ * @v dest		Destination address vector
1368 1368
  * @v iobuf		I/O buffer
1369 1369
  * @v wqe		Send work queue entry
1370 1370
  * @ret opcode		Control opcode
@@ -1372,7 +1372,7 @@ static void hermon_destroy_qp ( struct ib_device *ibdev,
1372 1372
 static __attribute__ (( unused )) unsigned int
1373 1373
 hermon_fill_nop_send_wqe ( struct ib_device *ibdev __unused,
1374 1374
 			   struct ib_queue_pair *qp __unused,
1375
-			   struct ib_address_vector *av __unused,
1375
+			   struct ib_address_vector *dest __unused,
1376 1376
 			   struct io_buffer *iobuf __unused,
1377 1377
 			   union hermon_send_wqe *wqe ) {
1378 1378
 
@@ -1386,7 +1386,7 @@ hermon_fill_nop_send_wqe ( struct ib_device *ibdev __unused,
1386 1386
  *
1387 1387
  * @v ibdev		Infiniband device
1388 1388
  * @v qp		Queue pair
1389
- * @v av		Address vector
1389
+ * @v dest		Destination address vector
1390 1390
  * @v iobuf		I/O buffer
1391 1391
  * @v wqe		Send work queue entry
1392 1392
  * @ret opcode		Control opcode
@@ -1394,7 +1394,7 @@ hermon_fill_nop_send_wqe ( struct ib_device *ibdev __unused,
1394 1394
 static unsigned int
1395 1395
 hermon_fill_ud_send_wqe ( struct ib_device *ibdev,
1396 1396
 			  struct ib_queue_pair *qp __unused,
1397
-			  struct ib_address_vector *av,
1397
+			  struct ib_address_vector *dest,
1398 1398
 			  struct io_buffer *iobuf,
1399 1399
 			  union hermon_send_wqe *wqe ) {
1400 1400
 	struct hermon *hermon = ib_get_drvdata ( ibdev );
@@ -1406,14 +1406,14 @@ hermon_fill_ud_send_wqe ( struct ib_device *ibdev,
1406 1406
 		     ud_address_vector.pd, HERMON_GLOBAL_PD,
1407 1407
 		     ud_address_vector.port_number, ibdev->port );
1408 1408
 	MLX_FILL_2 ( &wqe->ud.ud, 1,
1409
-		     ud_address_vector.rlid, av->lid,
1410
-		     ud_address_vector.g, av->gid_present );
1409
+		     ud_address_vector.rlid, dest->lid,
1410
+		     ud_address_vector.g, dest->gid_present );
1411 1411
 	MLX_FILL_1 ( &wqe->ud.ud, 2,
1412
-		     ud_address_vector.max_stat_rate, hermon_rate ( av ) );
1413
-	MLX_FILL_1 ( &wqe->ud.ud, 3, ud_address_vector.sl, av->sl );
1414
-	memcpy ( &wqe->ud.ud.u.dwords[4], &av->gid, sizeof ( av->gid ) );
1415
-	MLX_FILL_1 ( &wqe->ud.ud, 8, destination_qp, av->qpn );
1416
-	MLX_FILL_1 ( &wqe->ud.ud, 9, q_key, av->qkey );
1412
+		     ud_address_vector.max_stat_rate, hermon_rate ( dest ) );
1413
+	MLX_FILL_1 ( &wqe->ud.ud, 3, ud_address_vector.sl, dest->sl );
1414
+	memcpy ( &wqe->ud.ud.u.dwords[4], &dest->gid, sizeof ( dest->gid ) );
1415
+	MLX_FILL_1 ( &wqe->ud.ud, 8, destination_qp, dest->qpn );
1416
+	MLX_FILL_1 ( &wqe->ud.ud, 9, q_key, dest->qkey );
1417 1417
 	MLX_FILL_1 ( &wqe->ud.data[0], 0, byte_count, iob_len ( iobuf ) );
1418 1418
 	MLX_FILL_1 ( &wqe->ud.data[0], 1, l_key, hermon->lkey );
1419 1419
 	MLX_FILL_H ( &wqe->ud.data[0], 2,
@@ -1428,7 +1428,7 @@ hermon_fill_ud_send_wqe ( struct ib_device *ibdev,
1428 1428
  *
1429 1429
  * @v ibdev		Infiniband device
1430 1430
  * @v qp		Queue pair
1431
- * @v av		Address vector
1431
+ * @v dest		Destination address vector
1432 1432
  * @v iobuf		I/O buffer
1433 1433
  * @v wqe		Send work queue entry
1434 1434
  * @ret opcode		Control opcode
@@ -1436,7 +1436,7 @@ hermon_fill_ud_send_wqe ( struct ib_device *ibdev,
1436 1436
 static unsigned int
1437 1437
 hermon_fill_mlx_send_wqe ( struct ib_device *ibdev,
1438 1438
 			   struct ib_queue_pair *qp,
1439
-			   struct ib_address_vector *av,
1439
+			   struct ib_address_vector *dest,
1440 1440
 			   struct io_buffer *iobuf,
1441 1441
 			   union hermon_send_wqe *wqe ) {
1442 1442
 	struct hermon *hermon = ib_get_drvdata ( ibdev );
@@ -1446,7 +1446,7 @@ hermon_fill_mlx_send_wqe ( struct ib_device *ibdev,
1446 1446
 	iob_populate ( &headers, &wqe->mlx.headers, 0,
1447 1447
 		       sizeof ( wqe->mlx.headers ) );
1448 1448
 	iob_reserve ( &headers, sizeof ( wqe->mlx.headers ) );
1449
-	ib_push ( ibdev, &headers, qp, iob_len ( iobuf ), av );
1449
+	ib_push ( ibdev, &headers, qp, iob_len ( iobuf ), dest );
1450 1450
 
1451 1451
 	/* Fill work queue entry */
1452 1452
 	MLX_FILL_1 ( &wqe->mlx.ctrl, 1, ds,
@@ -1454,10 +1454,10 @@ hermon_fill_mlx_send_wqe ( struct ib_device *ibdev,
1454 1454
 	MLX_FILL_5 ( &wqe->mlx.ctrl, 2,
1455 1455
 		     c, 0x03 /* generate completion */,
1456 1456
 		     icrc, 0 /* generate ICRC */,
1457
-		     max_statrate, hermon_rate ( av ),
1457
+		     max_statrate, hermon_rate ( dest ),
1458 1458
 		     slr, 0,
1459 1459
 		     v15, ( ( qp->ext_qpn == IB_QPN_SMI ) ? 1 : 0 ) );
1460
-	MLX_FILL_1 ( &wqe->mlx.ctrl, 3, rlid, av->lid );
1460
+	MLX_FILL_1 ( &wqe->mlx.ctrl, 3, rlid, dest->lid );
1461 1461
 	MLX_FILL_1 ( &wqe->mlx.data[0], 0,
1462 1462
 		     byte_count, iob_len ( &headers ) );
1463 1463
 	MLX_FILL_1 ( &wqe->mlx.data[0], 1, l_key, hermon->lkey );
@@ -1480,7 +1480,7 @@ hermon_fill_mlx_send_wqe ( struct ib_device *ibdev,
1480 1480
  *
1481 1481
  * @v ibdev		Infiniband device
1482 1482
  * @v qp		Queue pair
1483
- * @v av		Address vector
1483
+ * @v dest		Destination address vector
1484 1484
  * @v iobuf		I/O buffer
1485 1485
  * @v wqe		Send work queue entry
1486 1486
  * @ret opcode		Control opcode
@@ -1488,7 +1488,7 @@ hermon_fill_mlx_send_wqe ( struct ib_device *ibdev,
1488 1488
 static unsigned int
1489 1489
 hermon_fill_rc_send_wqe ( struct ib_device *ibdev,
1490 1490
 			  struct ib_queue_pair *qp __unused,
1491
-			  struct ib_address_vector *av __unused,
1491
+			  struct ib_address_vector *dest __unused,
1492 1492
 			  struct io_buffer *iobuf,
1493 1493
 			  union hermon_send_wqe *wqe ) {
1494 1494
 	struct hermon *hermon = ib_get_drvdata ( ibdev );
@@ -1510,7 +1510,7 @@ hermon_fill_rc_send_wqe ( struct ib_device *ibdev,
1510 1510
  *
1511 1511
  * @v ibdev		Infiniband device
1512 1512
  * @v qp		Queue pair
1513
- * @v av		Address vector
1513
+ * @v dest		Destination address vector
1514 1514
  * @v iobuf		I/O buffer
1515 1515
  * @v wqe		Send work queue entry
1516 1516
  * @ret opcode		Control opcode
@@ -1518,7 +1518,7 @@ hermon_fill_rc_send_wqe ( struct ib_device *ibdev,
1518 1518
 static unsigned int
1519 1519
 hermon_fill_eth_send_wqe ( struct ib_device *ibdev,
1520 1520
 			   struct ib_queue_pair *qp __unused,
1521
-			   struct ib_address_vector *av __unused,
1521
+			   struct ib_address_vector *dest __unused,
1522 1522
 			   struct io_buffer *iobuf,
1523 1523
 			   union hermon_send_wqe *wqe ) {
1524 1524
 	struct hermon *hermon = ib_get_drvdata ( ibdev );
@@ -1543,7 +1543,7 @@ hermon_fill_eth_send_wqe ( struct ib_device *ibdev,
1543 1543
 static unsigned int
1544 1544
 ( * hermon_fill_send_wqe[] ) ( struct ib_device *ibdev,
1545 1545
 			       struct ib_queue_pair *qp,
1546
-			       struct ib_address_vector *av,
1546
+			       struct ib_address_vector *dest,
1547 1547
 			       struct io_buffer *iobuf,
1548 1548
 			       union hermon_send_wqe *wqe ) = {
1549 1549
 	[IB_QPT_SMI] = hermon_fill_mlx_send_wqe,
@@ -1558,13 +1558,13 @@ static unsigned int
1558 1558
  *
1559 1559
  * @v ibdev		Infiniband device
1560 1560
  * @v qp		Queue pair
1561
- * @v av		Address vector
1561
+ * @v dest		Destination address vector
1562 1562
  * @v iobuf		I/O buffer
1563 1563
  * @ret rc		Return status code
1564 1564
  */
1565 1565
 static int hermon_post_send ( struct ib_device *ibdev,
1566 1566
 			      struct ib_queue_pair *qp,
1567
-			      struct ib_address_vector *av,
1567
+			      struct ib_address_vector *dest,
1568 1568
 			      struct io_buffer *iobuf ) {
1569 1569
 	struct hermon *hermon = ib_get_drvdata ( ibdev );
1570 1570
 	struct hermon_queue_pair *hermon_qp = ib_qp_get_drvdata ( qp );
@@ -1595,7 +1595,7 @@ static int hermon_post_send ( struct ib_device *ibdev,
1595 1595
 	assert ( qp->type < ( sizeof ( hermon_fill_send_wqe ) /
1596 1596
 			      sizeof ( hermon_fill_send_wqe[0] ) ) );
1597 1597
 	assert ( hermon_fill_send_wqe[qp->type] != NULL );
1598
-	opcode = hermon_fill_send_wqe[qp->type] ( ibdev, qp, av, iobuf, wqe );
1598
+	opcode = hermon_fill_send_wqe[qp->type] ( ibdev, qp, dest, iobuf, wqe );
1599 1599
 	barrier();
1600 1600
 	MLX_FILL_2 ( &wqe->ctrl, 0,
1601 1601
 		     opcode, opcode,
@@ -1677,9 +1677,9 @@ static int hermon_complete ( struct ib_device *ibdev,
1677 1677
 	struct ib_work_queue *wq;
1678 1678
 	struct ib_queue_pair *qp;
1679 1679
 	struct io_buffer *iobuf;
1680
-	struct ib_address_vector recv_av;
1680
+	struct ib_address_vector recv_source;
1681 1681
 	struct ib_global_route_header *grh;
1682
-	struct ib_address_vector *av;
1682
+	struct ib_address_vector *source;
1683 1683
 	unsigned int opcode;
1684 1684
 	unsigned long qpn;
1685 1685
 	int is_send;
@@ -1737,7 +1737,7 @@ static int hermon_complete ( struct ib_device *ibdev,
1737 1737
 		len = MLX_GET ( &cqe->normal, byte_cnt );
1738 1738
 		assert ( len <= iob_tailroom ( iobuf ) );
1739 1739
 		iob_put ( iobuf, len );
1740
-		memset ( &recv_av, 0, sizeof ( recv_av ) );
1740
+		memset ( &recv_source, 0, sizeof ( recv_source ) );
1741 1741
 		switch ( qp->type ) {
1742 1742
 		case IB_QPT_SMI:
1743 1743
 		case IB_QPT_GSI:
@@ -1746,28 +1746,29 @@ static int hermon_complete ( struct ib_device *ibdev,
1746 1746
 			grh = iobuf->data;
1747 1747
 			iob_pull ( iobuf, sizeof ( *grh ) );
1748 1748
 			/* Construct address vector */
1749
-			av = &recv_av;
1750
-			av->qpn = MLX_GET ( &cqe->normal, srq_rqpn );
1751
-			av->lid = MLX_GET ( &cqe->normal, slid_smac47_32 );
1752
-			av->sl = MLX_GET ( &cqe->normal, sl );
1753
-			av->gid_present = MLX_GET ( &cqe->normal, g );
1754
-			memcpy ( &av->gid, &grh->sgid, sizeof ( av->gid ) );
1749
+			source = &recv_source;
1750
+			source->qpn = MLX_GET ( &cqe->normal, srq_rqpn );
1751
+			source->lid = MLX_GET ( &cqe->normal, slid_smac47_32 );
1752
+			source->sl = MLX_GET ( &cqe->normal, sl );
1753
+			source->gid_present = MLX_GET ( &cqe->normal, g );
1754
+			memcpy ( &source->gid, &grh->sgid,
1755
+				 sizeof ( source->gid ) );
1755 1756
 			break;
1756 1757
 		case IB_QPT_RC:
1757
-			av = &qp->av;
1758
+			source = &qp->av;
1758 1759
 			break;
1759 1760
 		case IB_QPT_ETH:
1760 1761
 			/* Construct address vector */
1761
-			av = &recv_av;
1762
-			av->vlan_present = MLX_GET ( &cqe->normal, vlan );
1763
-			av->vlan = MLX_GET ( &cqe->normal, vid );
1762
+			source = &recv_source;
1763
+			source->vlan_present = MLX_GET ( &cqe->normal, vlan );
1764
+			source->vlan = MLX_GET ( &cqe->normal, vid );
1764 1765
 			break;
1765 1766
 		default:
1766 1767
 			assert ( 0 );
1767 1768
 			return -EINVAL;
1768 1769
 		}
1769 1770
 		/* Hand off to completion handler */
1770
-		ib_complete_recv ( ibdev, qp, av, iobuf, rc );
1771
+		ib_complete_recv ( ibdev, qp, source, iobuf, rc );
1771 1772
 	}
1772 1773
 
1773 1774
 	return rc;
@@ -3154,20 +3155,20 @@ static void hermon_eth_complete_send ( struct ib_device *ibdev __unused,
3154 3155
  *
3155 3156
  * @v ibdev		Infiniband device
3156 3157
  * @v qp		Queue pair
3157
- * @v av		Address vector, or NULL
3158
+ * @v source		Source address vector, or NULL
3158 3159
  * @v iobuf		I/O buffer
3159 3160
  * @v rc		Completion status code
3160 3161
  */
3161 3162
 static void hermon_eth_complete_recv ( struct ib_device *ibdev __unused,
3162 3163
 				       struct ib_queue_pair *qp,
3163
-				       struct ib_address_vector *av,
3164
+				       struct ib_address_vector *source,
3164 3165
 				       struct io_buffer *iobuf, int rc ) {
3165 3166
 	struct net_device *netdev = ib_qp_get_ownerdata ( qp );
3166 3167
 	struct net_device *vlan;
3167 3168
 
3168 3169
 	/* Find VLAN device, if applicable */
3169
-	if ( av->vlan_present ) {
3170
-		if ( ( vlan = vlan_find ( netdev, av->vlan ) ) != NULL ) {
3170
+	if ( source->vlan_present ) {
3171
+		if ( ( vlan = vlan_find ( netdev, source->vlan ) ) != NULL ) {
3171 3172
 			netdev = vlan;
3172 3173
 		} else if ( rc == 0 ) {
3173 3174
 			rc = -ENODEV;

+ 9
- 7
src/drivers/infiniband/linda.c Visa fil

@@ -936,13 +936,13 @@ static void linda_destroy_qp ( struct ib_device *ibdev,
936 936
  *
937 937
  * @v ibdev		Infiniband device
938 938
  * @v qp		Queue pair
939
- * @v av		Address vector
939
+ * @v dest		Destination address vector
940 940
  * @v iobuf		I/O buffer
941 941
  * @ret rc		Return status code
942 942
  */
943 943
 static int linda_post_send ( struct ib_device *ibdev,
944 944
 			     struct ib_queue_pair *qp,
945
-			     struct ib_address_vector *av,
945
+			     struct ib_address_vector *dest,
946 946
 			     struct io_buffer *iobuf ) {
947 947
 	struct linda *linda = ib_get_drvdata ( ibdev );
948 948
 	struct ib_work_queue *wq = &qp->send;
@@ -969,7 +969,7 @@ static int linda_post_send ( struct ib_device *ibdev,
969 969
 	/* Construct headers */
970 970
 	iob_populate ( &headers, header_buf, 0, sizeof ( header_buf ) );
971 971
 	iob_reserve ( &headers, sizeof ( header_buf ) );
972
-	ib_push ( ibdev, &headers, qp, iob_len ( iobuf ), av );
972
+	ib_push ( ibdev, &headers, qp, iob_len ( iobuf ), dest );
973 973
 
974 974
 	/* Calculate packet length */
975 975
 	len = ( ( sizeof ( sendpbc ) + iob_len ( &headers ) +
@@ -1170,7 +1170,7 @@ static void linda_complete_recv ( struct ib_device *ibdev,
1170 1170
 	struct io_buffer headers;
1171 1171
 	struct io_buffer *iobuf;
1172 1172
 	struct ib_queue_pair *intended_qp;
1173
-	struct ib_address_vector av;
1173
+	struct ib_address_vector source;
1174 1174
 	unsigned int rcvtype;
1175 1175
 	unsigned int pktlen;
1176 1176
 	unsigned int egrindex;
@@ -1238,7 +1238,7 @@ static void linda_complete_recv ( struct ib_device *ibdev,
1238 1238
 	qp0 = ( qp->qpn == 0 );
1239 1239
 	intended_qp = NULL;
1240 1240
 	if ( ( rc = ib_pull ( ibdev, &headers, ( qp0 ? &intended_qp : NULL ),
1241
-			      &payload_len, &av ) ) != 0 ) {
1241
+			      &payload_len, &source ) ) != 0 ) {
1242 1242
 		DBGC ( linda, "Linda %p could not parse headers: %s\n",
1243 1243
 		       linda, strerror ( rc ) );
1244 1244
 		err = 1;
@@ -1295,10 +1295,12 @@ static void linda_complete_recv ( struct ib_device *ibdev,
1295 1295
 				qp->recv.fill--;
1296 1296
 				intended_qp->recv.fill++;
1297 1297
 			}
1298
-			ib_complete_recv ( ibdev, intended_qp, &av, iobuf, rc);
1298
+			ib_complete_recv ( ibdev, intended_qp, &source,
1299
+					   iobuf, rc);
1299 1300
 		} else {
1300 1301
 			/* Completing on a skipped-over eager buffer */
1301
-			ib_complete_recv ( ibdev, qp, &av, iobuf, -ECANCELED );
1302
+			ib_complete_recv ( ibdev, qp, &source, iobuf,
1303
+					   -ECANCELED );
1302 1304
 		}
1303 1305
 
1304 1306
 		/* Clear eager buffer */

+ 9
- 7
src/drivers/infiniband/qib7322.c Visa fil

@@ -1173,13 +1173,13 @@ static void qib7322_destroy_qp ( struct ib_device *ibdev,
1173 1173
  *
1174 1174
  * @v ibdev		Infiniband device
1175 1175
  * @v qp		Queue pair
1176
- * @v av		Address vector
1176
+ * @v dest		Destination address vector
1177 1177
  * @v iobuf		I/O buffer
1178 1178
  * @ret rc		Return status code
1179 1179
  */
1180 1180
 static int qib7322_post_send ( struct ib_device *ibdev,
1181 1181
 			       struct ib_queue_pair *qp,
1182
-			       struct ib_address_vector *av,
1182
+			       struct ib_address_vector *dest,
1183 1183
 			       struct io_buffer *iobuf ) {
1184 1184
 	struct qib7322 *qib7322 = ib_get_drvdata ( ibdev );
1185 1185
 	struct ib_work_queue *wq = &qp->send;
@@ -1211,7 +1211,7 @@ static int qib7322_post_send ( struct ib_device *ibdev,
1211 1211
 	/* Construct headers */
1212 1212
 	iob_populate ( &headers, header_buf, 0, sizeof ( header_buf ) );
1213 1213
 	iob_reserve ( &headers, sizeof ( header_buf ) );
1214
-	ib_push ( ibdev, &headers, qp, iob_len ( iobuf ), av );
1214
+	ib_push ( ibdev, &headers, qp, iob_len ( iobuf ), dest );
1215 1215
 
1216 1216
 	/* Calculate packet length */
1217 1217
 	len = ( ( sizeof ( sendpbc ) + iob_len ( &headers ) +
@@ -1413,7 +1413,7 @@ static void qib7322_complete_recv ( struct ib_device *ibdev,
1413 1413
 	struct io_buffer headers;
1414 1414
 	struct io_buffer *iobuf;
1415 1415
 	struct ib_queue_pair *intended_qp;
1416
-	struct ib_address_vector av;
1416
+	struct ib_address_vector source;
1417 1417
 	unsigned int rcvtype;
1418 1418
 	unsigned int pktlen;
1419 1419
 	unsigned int egrindex;
@@ -1474,7 +1474,7 @@ static void qib7322_complete_recv ( struct ib_device *ibdev,
1474 1474
 	qp0 = ( qp->qpn == 0 );
1475 1475
 	intended_qp = NULL;
1476 1476
 	if ( ( rc = ib_pull ( ibdev, &headers, ( qp0 ? &intended_qp : NULL ),
1477
-			      &payload_len, &av ) ) != 0 ) {
1477
+			      &payload_len, &source ) ) != 0 ) {
1478 1478
 		DBGC ( qib7322, "QIB7322 %p could not parse headers: %s\n",
1479 1479
 		       qib7322, strerror ( rc ) );
1480 1480
 		err = 1;
@@ -1531,10 +1531,12 @@ static void qib7322_complete_recv ( struct ib_device *ibdev,
1531 1531
 				qp->recv.fill--;
1532 1532
 				intended_qp->recv.fill++;
1533 1533
 			}
1534
-			ib_complete_recv ( ibdev, intended_qp, &av, iobuf, rc);
1534
+			ib_complete_recv ( ibdev, intended_qp, &source,
1535
+					   iobuf, rc);
1535 1536
 		} else {
1536 1537
 			/* Completing on a skipped-over eager buffer */
1537
-			ib_complete_recv ( ibdev, qp, &av, iobuf, -ECANCELED );
1538
+			ib_complete_recv ( ibdev, qp, &source, iobuf,
1539
+					   -ECANCELED );
1538 1540
 		}
1539 1541
 
1540 1542
 		/* Clear eager buffer */

+ 16
- 16
src/drivers/net/ipoib.c Visa fil

@@ -423,8 +423,8 @@ static int ipoib_transmit ( struct net_device *netdev,
423 423
 	struct ipoib_device *ipoib = netdev->priv;
424 424
 	struct ib_device *ibdev = ipoib->ibdev;
425 425
 	struct ipoib_hdr *ipoib_hdr;
426
-	struct ipoib_peer *dest;
427
-	struct ib_address_vector av;
426
+	struct ipoib_peer *peer;
427
+	struct ib_address_vector dest;
428 428
 	int rc;
429 429
 
430 430
 	/* Sanity check */
@@ -441,22 +441,22 @@ static int ipoib_transmit ( struct net_device *netdev,
441 441
 		return -ENETUNREACH;
442 442
 
443 443
 	/* Identify destination address */
444
-	dest = ipoib_lookup_peer_by_key ( ipoib_hdr->u.peer.dest );
445
-	if ( ! dest )
444
+	peer = ipoib_lookup_peer_by_key ( ipoib_hdr->u.peer.dest );
445
+	if ( ! peer )
446 446
 		return -ENXIO;
447 447
 	ipoib_hdr->u.reserved = 0;
448 448
 
449 449
 	/* Construct address vector */
450
-	memset ( &av, 0, sizeof ( av ) );
451
-	av.qpn = ( ntohl ( dest->mac.flags__qpn ) & IB_QPN_MASK );
452
-	av.gid_present = 1;
453
-	memcpy ( &av.gid, &dest->mac.gid, sizeof ( av.gid ) );
454
-	if ( ( rc = ib_resolve_path ( ibdev, &av ) ) != 0 ) {
450
+	memset ( &dest, 0, sizeof ( dest ) );
451
+	dest.qpn = ( ntohl ( peer->mac.flags__qpn ) & IB_QPN_MASK );
452
+	dest.gid_present = 1;
453
+	memcpy ( &dest.gid, &peer->mac.gid, sizeof ( dest.gid ) );
454
+	if ( ( rc = ib_resolve_path ( ibdev, &dest ) ) != 0 ) {
455 455
 		/* Path not resolved yet */
456 456
 		return rc;
457 457
 	}
458 458
 
459
-	return ib_post_send ( ibdev, ipoib->qp, &av, iobuf );
459
+	return ib_post_send ( ibdev, ipoib->qp, &dest, iobuf );
460 460
 }
461 461
 
462 462
 /**
@@ -480,13 +480,13 @@ static void ipoib_complete_send ( struct ib_device *ibdev __unused,
480 480
  *
481 481
  * @v ibdev		Infiniband device
482 482
  * @v qp		Queue pair
483
- * @v av		Address vector, or NULL
483
+ * @v source		Source address vector, or NULL
484 484
  * @v iobuf		I/O buffer
485 485
  * @v rc		Completion status code
486 486
  */
487 487
 static void ipoib_complete_recv ( struct ib_device *ibdev __unused,
488 488
 				  struct ib_queue_pair *qp,
489
-				  struct ib_address_vector *av,
489
+				  struct ib_address_vector *source,
490 490
 				  struct io_buffer *iobuf, int rc ) {
491 491
 	struct ipoib_device *ipoib = ib_qp_get_ownerdata ( qp );
492 492
 	struct net_device *netdev = ipoib->netdev;
@@ -509,7 +509,7 @@ static void ipoib_complete_recv ( struct ib_device *ibdev __unused,
509 509
 		return;
510 510
 	}
511 511
 	ipoib_hdr = iobuf->data;
512
-	if ( ! av ) {
512
+	if ( ! source ) {
513 513
 		DBGC ( ipoib, "IPoIB %p received packet without address "
514 514
 		       "vector\n", ipoib );
515 515
 		netdev_rx_err ( netdev, iobuf, -ENOTTY );
@@ -517,9 +517,9 @@ static void ipoib_complete_recv ( struct ib_device *ibdev __unused,
517 517
 	}
518 518
 
519 519
 	/* Parse source address */
520
-	if ( av->gid_present ) {
521
-		ll_src.flags__qpn = htonl ( av->qpn );
522
-		memcpy ( &ll_src.gid, &av->gid, sizeof ( ll_src.gid ) );
520
+	if ( source->gid_present ) {
521
+		ll_src.flags__qpn = htonl ( source->qpn );
522
+		memcpy ( &ll_src.gid, &source->gid, sizeof ( ll_src.gid ) );
523 523
 		src = ipoib_cache_peer ( &ll_src );
524 524
 		ipoib_hdr->u.peer.src = src->key;
525 525
 	}

+ 2
- 2
src/include/ipxe/ib_packet.h Visa fil

@@ -152,9 +152,9 @@ union ib_headers {
152 152
 
153 153
 extern int ib_push ( struct ib_device *ibdev, struct io_buffer *iobuf,
154 154
 		     struct ib_queue_pair *qp, size_t payload_len,
155
-		     const struct ib_address_vector *av );
155
+		     const struct ib_address_vector *dest );
156 156
 extern int ib_pull ( struct ib_device *ibdev, struct io_buffer *iobuf,
157 157
 		     struct ib_queue_pair **qp, size_t *payload_len,
158
-		     struct ib_address_vector *av );
158
+		     struct ib_address_vector *source );
159 159
 
160 160
 #endif /* _IPXE_IB_PACKET_H */

+ 6
- 6
src/include/ipxe/infiniband.h Visa fil

@@ -205,13 +205,13 @@ struct ib_completion_queue_operations {
205 205
 	 *
206 206
 	 * @v ibdev		Infiniband device
207 207
 	 * @v qp		Queue pair
208
-	 * @v av		Address vector, or NULL
208
+	 * @v source		Source address vector, or NULL
209 209
 	 * @v iobuf		I/O buffer
210 210
 	 * @v rc		Completion status code
211 211
 	 */
212 212
 	void ( * complete_recv ) ( struct ib_device *ibdev,
213 213
 				   struct ib_queue_pair *qp,
214
-				   struct ib_address_vector *av,
214
+				   struct ib_address_vector *source,
215 215
 				   struct io_buffer *iobuf, int rc );
216 216
 };
217 217
 
@@ -289,7 +289,7 @@ struct ib_device_operations {
289 289
 	 *
290 290
 	 * @v ibdev		Infiniband device
291 291
 	 * @v qp		Queue pair
292
-	 * @v av		Address vector
292
+	 * @v dest		Destination address vector
293 293
 	 * @v iobuf		I/O buffer
294 294
 	 * @ret rc		Return status code
295 295
 	 *
@@ -300,7 +300,7 @@ struct ib_device_operations {
300 300
 	 */
301 301
 	int ( * post_send ) ( struct ib_device *ibdev,
302 302
 			      struct ib_queue_pair *qp,
303
-			      struct ib_address_vector *av,
303
+			      struct ib_address_vector *dest,
304 304
 			      struct io_buffer *iobuf );
305 305
 	/** Post receive work queue entry
306 306
 	 *
@@ -502,7 +502,7 @@ extern struct ib_queue_pair * ib_find_qp_mgid ( struct ib_device *ibdev,
502 502
 extern struct ib_work_queue * ib_find_wq ( struct ib_completion_queue *cq,
503 503
 					   unsigned long qpn, int is_send );
504 504
 extern int ib_post_send ( struct ib_device *ibdev, struct ib_queue_pair *qp,
505
-			  struct ib_address_vector *av,
505
+			  struct ib_address_vector *dest,
506 506
 			  struct io_buffer *iobuf );
507 507
 extern int ib_post_recv ( struct ib_device *ibdev, struct ib_queue_pair *qp,
508 508
 			  struct io_buffer *iobuf );
@@ -511,7 +511,7 @@ extern void ib_complete_send ( struct ib_device *ibdev,
511 511
 			       struct io_buffer *iobuf, int rc );
512 512
 extern void ib_complete_recv ( struct ib_device *ibdev,
513 513
 			       struct ib_queue_pair *qp,
514
-			       struct ib_address_vector *av,
514
+			       struct ib_address_vector *source,
515 515
 			       struct io_buffer *iobuf, int rc );
516 516
 extern void ib_refill_recv ( struct ib_device *ibdev,
517 517
 			     struct ib_queue_pair *qp );

+ 15
- 16
src/net/infiniband.c Visa fil

@@ -263,7 +263,6 @@ struct ib_queue_pair * ib_create_qp ( struct ib_device *ibdev,
263 263
  *
264 264
  * @v ibdev		Infiniband device
265 265
  * @v qp		Queue pair
266
- * @v av		New address vector, if applicable
267 266
  * @ret rc		Return status code
268 267
  */
269 268
 int ib_modify_qp ( struct ib_device *ibdev, struct ib_queue_pair *qp ) {
@@ -384,14 +383,14 @@ struct ib_work_queue * ib_find_wq ( struct ib_completion_queue *cq,
384 383
  *
385 384
  * @v ibdev		Infiniband device
386 385
  * @v qp		Queue pair
387
- * @v av		Address vector
386
+ * @v dest		Destination address vector
388 387
  * @v iobuf		I/O buffer
389 388
  * @ret rc		Return status code
390 389
  */
391 390
 int ib_post_send ( struct ib_device *ibdev, struct ib_queue_pair *qp,
392
-		   struct ib_address_vector *av,
391
+		   struct ib_address_vector *dest,
393 392
 		   struct io_buffer *iobuf ) {
394
-	struct ib_address_vector av_copy;
393
+	struct ib_address_vector dest_copy;
395 394
 	int rc;
396 395
 
397 396
 	/* Check queue fill level */
@@ -402,21 +401,21 @@ int ib_post_send ( struct ib_device *ibdev, struct ib_queue_pair *qp,
402 401
 	}
403 402
 
404 403
 	/* Use default address vector if none specified */
405
-	if ( ! av )
406
-		av = &qp->av;
404
+	if ( ! dest )
405
+		dest = &qp->av;
407 406
 
408 407
 	/* Make modifiable copy of address vector */
409
-	memcpy ( &av_copy, av, sizeof ( av_copy ) );
410
-	av = &av_copy;
408
+	memcpy ( &dest_copy, dest, sizeof ( dest_copy ) );
409
+	dest = &dest_copy;
411 410
 
412 411
 	/* Fill in optional parameters in address vector */
413
-	if ( ! av->qkey )
414
-		av->qkey = qp->qkey;
415
-	if ( ! av->rate )
416
-		av->rate = IB_RATE_2_5;
412
+	if ( ! dest->qkey )
413
+		dest->qkey = qp->qkey;
414
+	if ( ! dest->rate )
415
+		dest->rate = IB_RATE_2_5;
417 416
 
418 417
 	/* Post to hardware */
419
-	if ( ( rc = ibdev->op->post_send ( ibdev, qp, av, iobuf ) ) != 0 ) {
418
+	if ( ( rc = ibdev->op->post_send ( ibdev, qp, dest, iobuf ) ) != 0 ) {
420 419
 		DBGC ( ibdev, "IBDEV %p QPN %#lx could not post send WQE: "
421 420
 		       "%s\n", ibdev, qp->qpn, strerror ( rc ) );
422 421
 		return rc;
@@ -487,16 +486,16 @@ void ib_complete_send ( struct ib_device *ibdev, struct ib_queue_pair *qp,
487 486
  *
488 487
  * @v ibdev		Infiniband device
489 488
  * @v qp		Queue pair
490
- * @v av		Address vector, or NULL
489
+ * @v source		Source address vector, or NULL
491 490
  * @v iobuf		I/O buffer
492 491
  * @v rc		Completion status code
493 492
  */
494 493
 void ib_complete_recv ( struct ib_device *ibdev, struct ib_queue_pair *qp,
495
-			struct ib_address_vector *av,
494
+			struct ib_address_vector *source,
496 495
 			struct io_buffer *iobuf, int rc ) {
497 496
 
498 497
 	if ( qp->recv.cq->op->complete_recv ) {
499
-		qp->recv.cq->op->complete_recv ( ibdev, qp, av, iobuf, rc );
498
+		qp->recv.cq->op->complete_recv ( ibdev, qp, source, iobuf, rc );
500 499
 	} else {
501 500
 		free_iob ( iobuf );
502 501
 	}

+ 2
- 2
src/net/infiniband/ib_cmrc.c Visa fil

@@ -220,13 +220,13 @@ static void ib_cmrc_complete_send ( struct ib_device *ibdev __unused,
220 220
  *
221 221
  * @v ibdev		Infiniband device
222 222
  * @v qp		Queue pair
223
- * @v av		Address vector, or NULL
223
+ * @v source		Source address vector, or NULL
224 224
  * @v iobuf		I/O buffer
225 225
  * @v rc		Completion status code
226 226
  */
227 227
 static void ib_cmrc_complete_recv ( struct ib_device *ibdev __unused,
228 228
 				    struct ib_queue_pair *qp,
229
-				    struct ib_address_vector *av __unused,
229
+				    struct ib_address_vector *source __unused,
230 230
 				    struct io_buffer *iobuf, int rc ) {
231 231
 	struct ib_cmrc_connection *cmrc = ib_qp_get_ownerdata ( qp );
232 232
 

+ 3
- 3
src/net/infiniband/ib_mi.c Visa fil

@@ -112,13 +112,13 @@ static int ib_mi_handle ( struct ib_device *ibdev,
112 112
  *
113 113
  * @v ibdev		Infiniband device
114 114
  * @v qp		Queue pair
115
- * @v av		Address vector
115
+ * @v source		Address vector
116 116
  * @v iobuf		I/O buffer
117 117
  * @v rc		Completion status code
118 118
  */
119 119
 static void ib_mi_complete_recv ( struct ib_device *ibdev,
120 120
 				  struct ib_queue_pair *qp,
121
-				  struct ib_address_vector *av,
121
+				  struct ib_address_vector *source,
122 122
 				  struct io_buffer *iobuf, int rc ) {
123 123
 	struct ib_mad_interface *mi = ib_qp_get_ownerdata ( qp );
124 124
 	union ib_mad *mad;
@@ -152,7 +152,7 @@ static void ib_mi_complete_recv ( struct ib_device *ibdev,
152 152
 	DBGC2_HDA ( mi, 0, mad, sizeof ( *mad ) );
153 153
 
154 154
 	/* Handle MAD */
155
-	if ( ( rc = ib_mi_handle ( ibdev, mi, mad, av ) ) != 0 )
155
+	if ( ( rc = ib_mi_handle ( ibdev, mi, mad, source ) ) != 0 )
156 156
 		goto out;
157 157
 
158 158
  out:

+ 22
- 19
src/net/infiniband/ib_packet.c Visa fil

@@ -42,11 +42,12 @@ FILE_LICENCE ( GPL2_OR_LATER );
42 42
  * @v iobuf		I/O buffer to contain headers
43 43
  * @v qp		Queue pair
44 44
  * @v payload_len	Payload length
45
- * @v av		Address vector
45
+ * @v dest		Destination address vector
46
+ * @ret rc		Return status code
46 47
  */
47 48
 int ib_push ( struct ib_device *ibdev, struct io_buffer *iobuf,
48 49
 	      struct ib_queue_pair *qp, size_t payload_len,
49
-	      const struct ib_address_vector *av ) {
50
+	      const struct ib_address_vector *dest ) {
50 51
 	struct ib_local_route_header *lrh;
51 52
 	struct ib_global_route_header *grh;
52 53
 	struct ib_base_transport_header *bth;
@@ -59,7 +60,8 @@ int ib_push ( struct ib_device *ibdev, struct io_buffer *iobuf,
59 60
 	unsigned int lnh;
60 61
 
61 62
 	DBGC2 ( ibdev, "IBDEV %p TX %04x:%08lx => %04x:%08lx (key %08lx)\n",
62
-		ibdev, ibdev->lid, qp->ext_qpn, av->lid, av->qpn, av->qkey );
63
+		ibdev, ibdev->lid, qp->ext_qpn, dest->lid, dest->qpn,
64
+		dest->qkey );
63 65
 
64 66
 	/* Calculate packet length */
65 67
 	pad_len = ( (-payload_len) & 0x3 );
@@ -71,7 +73,7 @@ int ib_push ( struct ib_device *ibdev, struct io_buffer *iobuf,
71 73
 	deth = iob_push ( iobuf, sizeof ( *deth ) );
72 74
 	bth = iob_push ( iobuf, sizeof ( *bth ) );
73 75
 	grh_len = ( payload_len + iob_len ( iobuf ) - orig_iob_len );
74
-	grh = ( av->gid_present ?
76
+	grh = ( dest->gid_present ?
75 77
 		iob_push ( iobuf, sizeof ( *grh ) ) : NULL );
76 78
 	lrh = iob_push ( iobuf, sizeof ( *lrh ) );
77 79
 	lrh_len = ( payload_len + iob_len ( iobuf ) - orig_iob_len );
@@ -80,8 +82,8 @@ int ib_push ( struct ib_device *ibdev, struct io_buffer *iobuf,
80 82
 	vl = ( ( qp->ext_qpn == IB_QPN_SMI ) ? IB_VL_SMP : IB_VL_DEFAULT );
81 83
 	lrh->vl__lver = ( vl << 4 );
82 84
 	lnh = ( grh ? IB_LNH_GRH : IB_LNH_BTH );
83
-	lrh->sl__lnh = ( ( av->sl << 4 ) | lnh );
84
-	lrh->dlid = htons ( av->lid );
85
+	lrh->sl__lnh = ( ( dest->sl << 4 ) | lnh );
86
+	lrh->dlid = htons ( dest->lid );
85 87
 	lrh->length = htons ( lrh_len >> 2 );
86 88
 	lrh->slid = htons ( ibdev->lid );
87 89
 
@@ -93,18 +95,18 @@ int ib_push ( struct ib_device *ibdev, struct io_buffer *iobuf,
93 95
 		grh->nxthdr = IB_GRH_NXTHDR_IBA;
94 96
 		grh->hoplmt = 0;
95 97
 		memcpy ( &grh->sgid, &ibdev->gid, sizeof ( grh->sgid ) );
96
-		memcpy ( &grh->dgid, &av->gid, sizeof ( grh->dgid ) );
98
+		memcpy ( &grh->dgid, &dest->gid, sizeof ( grh->dgid ) );
97 99
 	}
98 100
 
99 101
 	/* Construct BTH */
100 102
 	bth->opcode = BTH_OPCODE_UD_SEND;
101 103
 	bth->se__m__padcnt__tver = ( pad_len << 4 );
102 104
 	bth->pkey = htons ( ibdev->pkey );
103
-	bth->dest_qp = htonl ( av->qpn );
105
+	bth->dest_qp = htonl ( dest->qpn );
104 106
 	bth->ack__psn = htonl ( ( qp->send.psn++ ) & 0xffffffUL );
105 107
 
106 108
 	/* Construct DETH */
107
-	deth->qkey = htonl ( av->qkey );
109
+	deth->qkey = htonl ( dest->qkey );
108 110
 	deth->src_qp = htonl ( qp->ext_qpn );
109 111
 
110 112
 	DBGCP_HDA ( ibdev, 0, iobuf->data,
@@ -120,11 +122,12 @@ int ib_push ( struct ib_device *ibdev, struct io_buffer *iobuf,
120 122
  * @v iobuf		I/O buffer containing headers
121 123
  * @v qp		Queue pair to fill in, or NULL
122 124
  * @v payload_len	Payload length to fill in, or NULL
123
- * @v av		Address vector to fill in
125
+ * @v source		Source address vector to fill in
126
+ * @ret rc		Return status code
124 127
  */
125 128
 int ib_pull ( struct ib_device *ibdev, struct io_buffer *iobuf,
126 129
 	      struct ib_queue_pair **qp, size_t *payload_len,
127
-	      struct ib_address_vector *av ) {
130
+	      struct ib_address_vector *source ) {
128 131
 	struct ib_local_route_header *lrh;
129 132
 	struct ib_global_route_header *grh;
130 133
 	struct ib_base_transport_header *bth;
@@ -140,7 +143,7 @@ int ib_pull ( struct ib_device *ibdev, struct io_buffer *iobuf,
140 143
 		*qp = NULL;
141 144
 	if ( payload_len )
142 145
 		*payload_len = 0;
143
-	memset ( av, 0, sizeof ( *av ) );
146
+	memset ( source, 0, sizeof ( *source ) );
144 147
 
145 148
 	/* Extract LRH */
146 149
 	if ( iob_len ( iobuf ) < sizeof ( *lrh ) ) {
@@ -150,8 +153,8 @@ int ib_pull ( struct ib_device *ibdev, struct io_buffer *iobuf,
150 153
 	}
151 154
 	lrh = iobuf->data;
152 155
 	iob_pull ( iobuf, sizeof ( *lrh ) );
153
-	av->lid = ntohs ( lrh->slid );
154
-	av->sl = ( lrh->sl__lnh >> 4 );
156
+	source->lid = ntohs ( lrh->slid );
157
+	source->sl = ( lrh->sl__lnh >> 4 );
155 158
 	lnh = ( lrh->sl__lnh & 0x3 );
156 159
 	lid = ntohs ( lrh->dlid );
157 160
 
@@ -171,8 +174,8 @@ int ib_pull ( struct ib_device *ibdev, struct io_buffer *iobuf,
171 174
 		}
172 175
 		grh = iobuf->data;
173 176
 		iob_pull ( iobuf, sizeof ( *grh ) );
174
-		av->gid_present = 1;
175
-		memcpy ( &av->gid, &grh->sgid, sizeof ( av->gid ) );
177
+		source->gid_present = 1;
178
+		memcpy ( &source->gid, &grh->sgid, sizeof ( source->gid ) );
176 179
 	} else {
177 180
 		grh = NULL;
178 181
 	}
@@ -200,8 +203,8 @@ int ib_pull ( struct ib_device *ibdev, struct io_buffer *iobuf,
200 203
 	}
201 204
 	deth = iobuf->data;
202 205
 	iob_pull ( iobuf, sizeof ( *deth ) );
203
-	av->qpn = ntohl ( deth->src_qp );
204
-	av->qkey = ntohl ( deth->qkey );
206
+	source->qpn = ntohl ( deth->src_qp );
207
+	source->qkey = ntohl ( deth->qkey );
205 208
 
206 209
 	/* Calculate payload length, if applicable */
207 210
 	if ( payload_len ) {
@@ -233,7 +236,7 @@ int ib_pull ( struct ib_device *ibdev, struct io_buffer *iobuf,
233 236
 	DBGC2 ( ibdev, "IBDEV %p RX %04x:%08lx <= %04x:%08lx (key %08x)\n",
234 237
 		ibdev, lid, ( IB_LID_MULTICAST( lid ) ?
235 238
 			      ( qp ? (*qp)->ext_qpn : -1UL ) : qpn ),
236
-		av->lid, av->qpn, ntohl ( deth->qkey ) );
239
+		source->lid, source->qpn, ntohl ( deth->qkey ) );
237 240
 	DBGCP_HDA ( ibdev, 0,
238 241
 		    ( iobuf->data - ( orig_iob_len - iob_len ( iobuf ) ) ),
239 242
 		    ( orig_iob_len - iob_len ( iobuf ) ) );

Laddar…
Avbryt
Spara