diff options
author | Heiko Carstens <heiko.carstens@de.ibm.com> | 2007-02-05 15:18:37 -0500 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2007-02-05 15:18:37 -0500 |
commit | ab14de6c37fae22911ba99f4171613e6d758050b (patch) | |
tree | 7545169fe9d64a82616ae37f2b6c1a420c77f30f /drivers/s390/char/sclp.c | |
parent | 31ee4b2f40994e8b21691f85cdd4052551a789b7 (diff) |
[S390] Convert memory detection into C code.
Hopefully this will make it more maintainable and less error prone.
Code makes use of search_exception_tables(). Since it calls this
function before the kernel exeception table is sorted, there is an
early call to sort_main_extable().
This way it's easy to use the already present infrastructure of fixup
sections. Also this would allows to easily convert the rest of
head[31|64].S into C code.
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/char/sclp.c')
-rw-r--r-- | drivers/s390/char/sclp.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/s390/char/sclp.c b/drivers/s390/char/sclp.c index c1dd19bb7bf8..6a83e2d722a8 100644 --- a/drivers/s390/char/sclp.c +++ b/drivers/s390/char/sclp.c | |||
@@ -96,8 +96,8 @@ static int sclp_init_mask(int calculate); | |||
96 | static int sclp_init(void); | 96 | static int sclp_init(void); |
97 | 97 | ||
98 | /* Perform service call. Return 0 on success, non-zero otherwise. */ | 98 | /* Perform service call. Return 0 on success, non-zero otherwise. */ |
99 | static int | 99 | int |
100 | service_call(sclp_cmdw_t command, void *sccb) | 100 | sclp_service_call(sclp_cmdw_t command, void *sccb) |
101 | { | 101 | { |
102 | int cc; | 102 | int cc; |
103 | 103 | ||
@@ -173,7 +173,7 @@ __sclp_start_request(struct sclp_req *req) | |||
173 | if (sclp_running_state != sclp_running_state_idle) | 173 | if (sclp_running_state != sclp_running_state_idle) |
174 | return 0; | 174 | return 0; |
175 | del_timer(&sclp_request_timer); | 175 | del_timer(&sclp_request_timer); |
176 | rc = service_call(req->command, req->sccb); | 176 | rc = sclp_service_call(req->command, req->sccb); |
177 | req->start_count++; | 177 | req->start_count++; |
178 | 178 | ||
179 | if (rc == 0) { | 179 | if (rc == 0) { |
@@ -325,7 +325,7 @@ __sclp_make_read_req(void) | |||
325 | sccb = (struct sccb_header *) sclp_read_sccb; | 325 | sccb = (struct sccb_header *) sclp_read_sccb; |
326 | clear_page(sccb); | 326 | clear_page(sccb); |
327 | memset(&sclp_read_req, 0, sizeof(struct sclp_req)); | 327 | memset(&sclp_read_req, 0, sizeof(struct sclp_req)); |
328 | sclp_read_req.command = SCLP_CMDW_READDATA; | 328 | sclp_read_req.command = SCLP_CMDW_READ_EVENT_DATA; |
329 | sclp_read_req.status = SCLP_REQ_QUEUED; | 329 | sclp_read_req.status = SCLP_REQ_QUEUED; |
330 | sclp_read_req.start_count = 0; | 330 | sclp_read_req.start_count = 0; |
331 | sclp_read_req.callback = sclp_read_cb; | 331 | sclp_read_req.callback = sclp_read_cb; |
@@ -628,7 +628,7 @@ __sclp_make_init_req(u32 receive_mask, u32 send_mask) | |||
628 | sccb = (struct init_sccb *) sclp_init_sccb; | 628 | sccb = (struct init_sccb *) sclp_init_sccb; |
629 | clear_page(sccb); | 629 | clear_page(sccb); |
630 | memset(&sclp_init_req, 0, sizeof(struct sclp_req)); | 630 | memset(&sclp_init_req, 0, sizeof(struct sclp_req)); |
631 | sclp_init_req.command = SCLP_CMDW_WRITEMASK; | 631 | sclp_init_req.command = SCLP_CMDW_WRITE_EVENT_MASK; |
632 | sclp_init_req.status = SCLP_REQ_FILLED; | 632 | sclp_init_req.status = SCLP_REQ_FILLED; |
633 | sclp_init_req.start_count = 0; | 633 | sclp_init_req.start_count = 0; |
634 | sclp_init_req.callback = NULL; | 634 | sclp_init_req.callback = NULL; |
@@ -831,7 +831,7 @@ sclp_check_interface(void) | |||
831 | for (retry = 0; retry <= SCLP_INIT_RETRY; retry++) { | 831 | for (retry = 0; retry <= SCLP_INIT_RETRY; retry++) { |
832 | __sclp_make_init_req(0, 0); | 832 | __sclp_make_init_req(0, 0); |
833 | sccb = (struct init_sccb *) sclp_init_req.sccb; | 833 | sccb = (struct init_sccb *) sclp_init_req.sccb; |
834 | rc = service_call(sclp_init_req.command, sccb); | 834 | rc = sclp_service_call(sclp_init_req.command, sccb); |
835 | if (rc == -EIO) | 835 | if (rc == -EIO) |
836 | break; | 836 | break; |
837 | sclp_init_req.status = SCLP_REQ_RUNNING; | 837 | sclp_init_req.status = SCLP_REQ_RUNNING; |