diff options
author | Cornelia Huck <cornelia.huck@de.ibm.com> | 2008-07-14 03:59:02 -0400 |
---|---|---|
committer | Heiko Carstens <heiko.carstens@de.ibm.com> | 2008-07-14 04:02:11 -0400 |
commit | 99611f87176b2a908d8c66ab19a5fc550a3cd13a (patch) | |
tree | 2c9898f347d00aeab5ffcbf74c90469efb86043e /drivers/s390/cio/chp.c | |
parent | 6ef556ccc8fd256259745c4f0d0ab65aaf703824 (diff) |
[S390] cio: Repair chpid event handling.
Passing the affected chpid in chp_event() worked only by
chance since chpid is the first element in res_acc_data.
Make it work properly by generalizing res_acc_data as
chp_link and always passing around a properly filled out
chp_link structure in chp_event().
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Diffstat (limited to 'drivers/s390/cio/chp.c')
-rw-r--r-- | drivers/s390/cio/chp.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/s390/cio/chp.c b/drivers/s390/cio/chp.c index 62df43b2124c..19078d528853 100644 --- a/drivers/s390/cio/chp.c +++ b/drivers/s390/cio/chp.c | |||
@@ -525,7 +525,7 @@ static void chp_process_crw(struct crw *crw0, struct crw *crw1, | |||
525 | } | 525 | } |
526 | } | 526 | } |
527 | 527 | ||
528 | int chp_ssd_get_mask(struct chsc_ssd_info *ssd, struct res_acc_data *data) | 528 | int chp_ssd_get_mask(struct chsc_ssd_info *ssd, struct chp_link *link) |
529 | { | 529 | { |
530 | int i; | 530 | int i; |
531 | int mask; | 531 | int mask; |
@@ -534,10 +534,10 @@ int chp_ssd_get_mask(struct chsc_ssd_info *ssd, struct res_acc_data *data) | |||
534 | mask = 0x80 >> i; | 534 | mask = 0x80 >> i; |
535 | if (!(ssd->path_mask & mask)) | 535 | if (!(ssd->path_mask & mask)) |
536 | continue; | 536 | continue; |
537 | if (!chp_id_is_equal(&ssd->chpid[i], &data->chpid)) | 537 | if (!chp_id_is_equal(&ssd->chpid[i], &link->chpid)) |
538 | continue; | 538 | continue; |
539 | if ((ssd->fla_valid_mask & mask) && | 539 | if ((ssd->fla_valid_mask & mask) && |
540 | ((ssd->fla[i] & data->fla_mask) != data->fla)) | 540 | ((ssd->fla[i] & link->fla_mask) != link->fla)) |
541 | continue; | 541 | continue; |
542 | return mask; | 542 | return mask; |
543 | } | 543 | } |