Sfoglia il codice sorgente

[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 anni fa
parent
commit
3e8e2773de
1 ha cambiato i file con 9 aggiunte e 0 eliminazioni
  1. 9
    0
      src/drivers/infiniband/arbel.c

+ 9
- 0
src/drivers/infiniband/arbel.c Vedi File

@@ -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 );

Loading…
Annulla
Salva