diff options
author | Peter Oberparleiter <peter.oberparleiter@de.ibm.com> | 2007-04-27 10:01:34 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2007-04-27 10:01:40 -0400 |
commit | 83b3370c79b91b9be3f6540c3c914e689134b45f (patch) | |
tree | ad7c062b260c0259c74e45ff869208c1ad139629 /drivers/s390/cio/chp.c | |
parent | 387b734fc2b55f776b192c7afdfd892ba42347d4 (diff) |
[S390] cio: replace subchannel evaluation queue with bitmap
Use a bitmap for indicating which subchannels require evaluation
instead of allocating memory for each evaluation request. This
approach reduces memory consumption during recovery in case of
massive evaluation request occurrence and removes the need for
memory allocation failure handling.
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'drivers/s390/cio/chp.c')
-rw-r--r-- | drivers/s390/cio/chp.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/s390/cio/chp.c b/drivers/s390/cio/chp.c index 0e92c8c89860..ac289e6eadfe 100644 --- a/drivers/s390/cio/chp.c +++ b/drivers/s390/cio/chp.c | |||
@@ -491,7 +491,7 @@ void *chp_get_chp_desc(struct chp_id chpid) | |||
491 | * Handle channel-report-words indicating that the status of a channel-path | 491 | * Handle channel-report-words indicating that the status of a channel-path |
492 | * has changed. | 492 | * has changed. |
493 | */ | 493 | */ |
494 | int chp_process_crw(int id, int status) | 494 | void chp_process_crw(int id, int status) |
495 | { | 495 | { |
496 | struct chp_id chpid; | 496 | struct chp_id chpid; |
497 | 497 | ||
@@ -500,11 +500,9 @@ int chp_process_crw(int id, int status) | |||
500 | if (status) { | 500 | if (status) { |
501 | if (!chp_is_registered(chpid)) | 501 | if (!chp_is_registered(chpid)) |
502 | chp_new(chpid); | 502 | chp_new(chpid); |
503 | return chsc_chp_online(chpid); | 503 | chsc_chp_online(chpid); |
504 | } else { | 504 | } else |
505 | chsc_chp_offline(chpid); | 505 | chsc_chp_offline(chpid); |
506 | return 0; | ||
507 | } | ||
508 | } | 506 | } |
509 | 507 | ||
510 | static inline int info_bit_num(struct chp_id id) | 508 | static inline int info_bit_num(struct chp_id id) |