Kaynağa Gözat

[hermon] Map all event types to our event queue

Only port state change events are currently mapped to our event queue,
since those are the only events we are prepared to handle.  This
ignores a potentially useful source of diagnostic information in the
case of unexpected failures.

Fix by mapping all events to the event queue; a build with debugging
enabled will therefore at least dump the raw content of the unexpected
events.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
tags/v1.20.1
Michael Brown 13 yıl önce
ebeveyn
işleme
e4ed060983

+ 2
- 3
src/drivers/infiniband/hermon.c Dosyayı Görüntüle

@@ -1727,9 +1727,8 @@ static int hermon_create_eq ( struct hermon *hermon ) {
1727 1727
 		goto err_sw2hw_eq;
1728 1728
 	}
1729 1729
 
1730
-	/* Map events to this event queue */
1731
-	memset ( &mask, 0, sizeof ( mask ) );
1732
-	MLX_FILL_1 ( &mask, 1, port_state_change, 1 );
1730
+	/* Map all events to this event queue */
1731
+	memset ( &mask, 0xff, sizeof ( mask ) );
1733 1732
 	if ( ( rc = hermon_cmd_map_eq ( hermon,
1734 1733
 					( HERMON_MAP_EQ | hermon_eq->eqn ),
1735 1734
 					&mask ) ) != 0 ) {

+ 19
- 2
src/drivers/infiniband/hermon.h Dosyayı Görüntüle

@@ -161,9 +161,26 @@ struct hermonprm_event_mask_st {
161 161
 	pseudo_bit_t reserved0[0x00020];
162 162
 /* -------------- */
163 163
 	pseudo_bit_t completion[0x00001];
164
-	pseudo_bit_t reserved1[0x0008];
164
+	pseudo_bit_t path_migration_succeeded[0x00001];
165
+	pseudo_bit_t communication_established[0x00001];
166
+	pseudo_bit_t send_queue_drained[0x00001];
167
+	pseudo_bit_t cq_error[0x00001];
168
+	pseudo_bit_t wq_catastrophe[0x00001];
169
+	pseudo_bit_t qpc_catastrophe[0x00001];
170
+	pseudo_bit_t path_migration_failed[0x00001];
171
+	pseudo_bit_t internal_error[0x00001];
165 172
 	pseudo_bit_t port_state_change[0x00001];
166
-	pseudo_bit_t reserved2[0x00016];
173
+	pseudo_bit_t command_done[0x00001];
174
+	pseudo_bit_t fexch_error[0x00001];
175
+	pseudo_bit_t reserved1[0x00004];
176
+	pseudo_bit_t wq_invalid_request[0x00001];
177
+	pseudo_bit_t wq_access_violation[0x00001];
178
+	pseudo_bit_t srq_catastrophe[0x00001];
179
+	pseudo_bit_t srq_last_wqe[0x00001];
180
+	pseudo_bit_t srq_rq_limit[0x00001];
181
+	pseudo_bit_t gpio[0x00001];
182
+	pseudo_bit_t clientreregister[0x00001];
183
+	pseudo_bit_t reserved2[0x00009];
167 184
 } __attribute__ (( packed ));
168 185
 
169 186
 struct hermonprm_port_state_change_event_st {

Loading…
İptal
Kaydet