diff options
Diffstat (limited to 'drivers/s390/cio/qdio_thinint.c')
-rw-r--r-- | drivers/s390/cio/qdio_thinint.c | 29 |
1 files changed, 10 insertions, 19 deletions
diff --git a/drivers/s390/cio/qdio_thinint.c b/drivers/s390/cio/qdio_thinint.c index ea7f61400267..8e90e147b746 100644 --- a/drivers/s390/cio/qdio_thinint.c +++ b/drivers/s390/cio/qdio_thinint.c | |||
@@ -125,13 +125,13 @@ void tiqdio_remove_input_queues(struct qdio_irq *irq_ptr) | |||
125 | 125 | ||
126 | static inline int tiqdio_inbound_q_done(struct qdio_q *q) | 126 | static inline int tiqdio_inbound_q_done(struct qdio_q *q) |
127 | { | 127 | { |
128 | unsigned char state; | 128 | unsigned char state = 0; |
129 | 129 | ||
130 | if (!atomic_read(&q->nr_buf_used)) | 130 | if (!atomic_read(&q->nr_buf_used)) |
131 | return 1; | 131 | return 1; |
132 | 132 | ||
133 | qdio_siga_sync_q(q); | 133 | qdio_siga_sync_q(q); |
134 | get_buf_state(q, q->first_to_check, &state); | 134 | get_buf_state(q, q->first_to_check, &state, 0); |
135 | 135 | ||
136 | if (state == SLSB_P_INPUT_PRIMED) | 136 | if (state == SLSB_P_INPUT_PRIMED) |
137 | /* more work coming */ | 137 | /* more work coming */ |
@@ -258,8 +258,6 @@ static void tiqdio_thinint_handler(void *ind, void *drv_data) | |||
258 | static int set_subchannel_ind(struct qdio_irq *irq_ptr, int reset) | 258 | static int set_subchannel_ind(struct qdio_irq *irq_ptr, int reset) |
259 | { | 259 | { |
260 | struct scssc_area *scssc_area; | 260 | struct scssc_area *scssc_area; |
261 | char dbf_text[15]; | ||
262 | void *ptr; | ||
263 | int rc; | 261 | int rc; |
264 | 262 | ||
265 | scssc_area = (struct scssc_area *)irq_ptr->chsc_page; | 263 | scssc_area = (struct scssc_area *)irq_ptr->chsc_page; |
@@ -294,19 +292,15 @@ static int set_subchannel_ind(struct qdio_irq *irq_ptr, int reset) | |||
294 | 292 | ||
295 | rc = chsc_error_from_response(scssc_area->response.code); | 293 | rc = chsc_error_from_response(scssc_area->response.code); |
296 | if (rc) { | 294 | if (rc) { |
297 | sprintf(dbf_text, "sidR%4x", scssc_area->response.code); | 295 | DBF_ERROR("%4x SSI r:%4x", irq_ptr->schid.sch_no, |
298 | QDIO_DBF_TEXT1(0, trace, dbf_text); | 296 | scssc_area->response.code); |
299 | QDIO_DBF_TEXT1(0, setup, dbf_text); | 297 | DBF_ERROR_HEX(&scssc_area->response, sizeof(void *)); |
300 | ptr = &scssc_area->response; | ||
301 | QDIO_DBF_HEX2(1, setup, &ptr, QDIO_DBF_SETUP_LEN); | ||
302 | return rc; | 298 | return rc; |
303 | } | 299 | } |
304 | 300 | ||
305 | QDIO_DBF_TEXT2(0, setup, "setscind"); | 301 | DBF_EVENT("setscind"); |
306 | QDIO_DBF_HEX2(0, setup, &scssc_area->summary_indicator_addr, | 302 | DBF_HEX(&scssc_area->summary_indicator_addr, sizeof(unsigned long)); |
307 | sizeof(unsigned long)); | 303 | DBF_HEX(&scssc_area->subchannel_indicator_addr, sizeof(unsigned long)); |
308 | QDIO_DBF_HEX2(0, setup, &scssc_area->subchannel_indicator_addr, | ||
309 | sizeof(unsigned long)); | ||
310 | return 0; | 304 | return 0; |
311 | } | 305 | } |
312 | 306 | ||
@@ -327,14 +321,11 @@ void tiqdio_free_memory(void) | |||
327 | 321 | ||
328 | int __init tiqdio_register_thinints(void) | 322 | int __init tiqdio_register_thinints(void) |
329 | { | 323 | { |
330 | char dbf_text[20]; | ||
331 | |||
332 | isc_register(QDIO_AIRQ_ISC); | 324 | isc_register(QDIO_AIRQ_ISC); |
333 | tiqdio_alsi = s390_register_adapter_interrupt(&tiqdio_thinint_handler, | 325 | tiqdio_alsi = s390_register_adapter_interrupt(&tiqdio_thinint_handler, |
334 | NULL, QDIO_AIRQ_ISC); | 326 | NULL, QDIO_AIRQ_ISC); |
335 | if (IS_ERR(tiqdio_alsi)) { | 327 | if (IS_ERR(tiqdio_alsi)) { |
336 | sprintf(dbf_text, "regthn%lx", PTR_ERR(tiqdio_alsi)); | 328 | DBF_EVENT("RTI:%lx", PTR_ERR(tiqdio_alsi)); |
337 | QDIO_DBF_TEXT0(0, setup, dbf_text); | ||
338 | tiqdio_alsi = NULL; | 329 | tiqdio_alsi = NULL; |
339 | isc_unregister(QDIO_AIRQ_ISC); | 330 | isc_unregister(QDIO_AIRQ_ISC); |
340 | return -ENOMEM; | 331 | return -ENOMEM; |
@@ -360,7 +351,7 @@ void qdio_setup_thinint(struct qdio_irq *irq_ptr) | |||
360 | if (!is_thinint_irq(irq_ptr)) | 351 | if (!is_thinint_irq(irq_ptr)) |
361 | return; | 352 | return; |
362 | irq_ptr->dsci = get_indicator(); | 353 | irq_ptr->dsci = get_indicator(); |
363 | QDIO_DBF_HEX1(0, setup, &irq_ptr->dsci, sizeof(void *)); | 354 | DBF_HEX(&irq_ptr->dsci, sizeof(void *)); |
364 | } | 355 | } |
365 | 356 | ||
366 | void qdio_shutdown_thinint(struct qdio_irq *irq_ptr) | 357 | void qdio_shutdown_thinint(struct qdio_irq *irq_ptr) |