浏览代码

[arbel] Poll for link state changes while DOWN

No event is generated upon reaching INIT, so we must poll separately
for link state changes while we remain DOWN.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
tags/v1.20.1
Michael Brown 13 年前
父节点
当前提交
3e8e2773de
共有 1 个文件被更改,包括 9 次插入0 次删除
  1. 9
    0
      src/drivers/infiniband/arbel.c

+ 9
- 0
src/drivers/infiniband/arbel.c 查看文件

@@ -1451,6 +1451,15 @@ static void arbel_poll_eq ( struct ib_device *ibdev ) {
1451 1451
 	unsigned int eqe_idx_mask;
1452 1452
 	unsigned int event_type;
1453 1453
 
1454
+	/* No event is generated upon reaching INIT, so we must poll
1455
+	 * separately for link state changes while we remain DOWN.
1456
+	 */
1457
+	if ( ib_is_open ( ibdev ) &&
1458
+	     ( ibdev->port_state == IB_PORT_STATE_DOWN ) ) {
1459
+		ib_smc_update ( ibdev, arbel_mad );
1460
+	}
1461
+
1462
+	/* Poll event queue */
1454 1463
 	while ( 1 ) {
1455 1464
 		/* Look for event entry */
1456 1465
 		eqe_idx_mask = ( ARBEL_NUM_EQES - 1 );

正在加载...
取消
保存