aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/char/sclp.c
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2010-10-25 10:10:38 -0400
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>2010-10-25 10:10:19 -0400
commitf6649a7e5a9ee99e9623878f4a5579cc2f6cdd51 (patch)
tree183438313c7593565980a1445f208e0ba30162cd /drivers/s390/char/sclp.c
parent1e54622e0403891b10f2105663e0f9dd595a1f17 (diff)
[S390] cleanup lowcore access from external interrupts
Read external interrupts parameters from the lowcore in the first level interrupt handler in entry[64].S. Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/char/sclp.c')
-rw-r--r--drivers/s390/char/sclp.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/s390/char/sclp.c b/drivers/s390/char/sclp.c
index 5707a80b96b6..35cc4686b99b 100644
--- a/drivers/s390/char/sclp.c
+++ b/drivers/s390/char/sclp.c
@@ -395,16 +395,16 @@ __sclp_find_req(u32 sccb)
395/* Handler for external interruption. Perform request post-processing. 395/* Handler for external interruption. Perform request post-processing.
396 * Prepare read event data request if necessary. Start processing of next 396 * Prepare read event data request if necessary. Start processing of next
397 * request on queue. */ 397 * request on queue. */
398static void 398static void sclp_interrupt_handler(unsigned int ext_int_code,
399sclp_interrupt_handler(__u16 code) 399 unsigned int param32, unsigned long param64)
400{ 400{
401 struct sclp_req *req; 401 struct sclp_req *req;
402 u32 finished_sccb; 402 u32 finished_sccb;
403 u32 evbuf_pending; 403 u32 evbuf_pending;
404 404
405 spin_lock(&sclp_lock); 405 spin_lock(&sclp_lock);
406 finished_sccb = S390_lowcore.ext_params & 0xfffffff8; 406 finished_sccb = param32 & 0xfffffff8;
407 evbuf_pending = S390_lowcore.ext_params & 0x3; 407 evbuf_pending = param32 & 0x3;
408 if (finished_sccb) { 408 if (finished_sccb) {
409 del_timer(&sclp_request_timer); 409 del_timer(&sclp_request_timer);
410 sclp_running_state = sclp_running_state_reset_pending; 410 sclp_running_state = sclp_running_state_reset_pending;
@@ -819,12 +819,12 @@ EXPORT_SYMBOL(sclp_reactivate);
819 819
820/* Handler for external interruption used during initialization. Modify 820/* Handler for external interruption used during initialization. Modify
821 * request state to done. */ 821 * request state to done. */
822static void 822static void sclp_check_handler(unsigned int ext_int_code,
823sclp_check_handler(__u16 code) 823 unsigned int param32, unsigned long param64)
824{ 824{
825 u32 finished_sccb; 825 u32 finished_sccb;
826 826
827 finished_sccb = S390_lowcore.ext_params & 0xfffffff8; 827 finished_sccb = param32 & 0xfffffff8;
828 /* Is this the interrupt we are waiting for? */ 828 /* Is this the interrupt we are waiting for? */
829 if (finished_sccb == 0) 829 if (finished_sccb == 0)
830 return; 830 return;