ソースを参照

[hermon] 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年前
コミット
14a76b5927
1個のファイルの変更9行の追加0行の削除
  1. 9
    0
      src/drivers/infiniband/hermon.c

+ 9
- 0
src/drivers/infiniband/hermon.c ファイルの表示

@@ -1836,6 +1836,15 @@ static void hermon_poll_eq ( struct ib_device *ibdev ) {
1836 1836
 	unsigned int eqe_idx_mask;
1837 1837
 	unsigned int event_type;
1838 1838
 
1839
+	/* No event is generated upon reaching INIT, so we must poll
1840
+	 * separately for link state changes while we remain DOWN.
1841
+	 */
1842
+	if ( ib_is_open ( ibdev ) &&
1843
+	     ( ibdev->port_state == IB_PORT_STATE_DOWN ) ) {
1844
+		ib_smc_update ( ibdev, hermon_mad );
1845
+	}
1846
+
1847
+	/* Poll event queue */
1839 1848
 	while ( 1 ) {
1840 1849
 		/* Look for event entry */
1841 1850
 		eqe_idx_mask = ( HERMON_NUM_EQES - 1 );

読み込み中…
キャンセル
保存