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