diff options
Diffstat (limited to 'drivers/s390/cio')
-rw-r--r-- | drivers/s390/cio/chsc.c | 10 | ||||
-rw-r--r-- | drivers/s390/cio/device_fsm.c | 3 | ||||
-rw-r--r-- | drivers/s390/cio/device_status.c | 5 | ||||
-rw-r--r-- | drivers/s390/cio/qdio.c | 20 |
4 files changed, 18 insertions, 20 deletions
diff --git a/drivers/s390/cio/chsc.c b/drivers/s390/cio/chsc.c index b86f94ecd874..fa3c23b80e3a 100644 --- a/drivers/s390/cio/chsc.c +++ b/drivers/s390/cio/chsc.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * drivers/s390/cio/chsc.c | 2 | * drivers/s390/cio/chsc.c |
3 | * S/390 common I/O routines -- channel subsystem call | 3 | * S/390 common I/O routines -- channel subsystem call |
4 | * $Revision: 1.119 $ | 4 | * $Revision: 1.120 $ |
5 | * | 5 | * |
6 | * Copyright (C) 1999-2002 IBM Deutschland Entwicklung GmbH, | 6 | * Copyright (C) 1999-2002 IBM Deutschland Entwicklung GmbH, |
7 | * IBM Corporation | 7 | * IBM Corporation |
@@ -412,11 +412,7 @@ s390_process_res_acc (u8 chpid, __u16 fla, u32 fla_mask) | |||
412 | if (chp_mask == 0) { | 412 | if (chp_mask == 0) { |
413 | 413 | ||
414 | spin_unlock_irq(&sch->lock); | 414 | spin_unlock_irq(&sch->lock); |
415 | 415 | continue; | |
416 | if (fla_mask != 0) | ||
417 | break; | ||
418 | else | ||
419 | continue; | ||
420 | } | 416 | } |
421 | old_lpm = sch->lpm; | 417 | old_lpm = sch->lpm; |
422 | sch->lpm = ((sch->schib.pmcw.pim & | 418 | sch->lpm = ((sch->schib.pmcw.pim & |
@@ -430,7 +426,7 @@ s390_process_res_acc (u8 chpid, __u16 fla, u32 fla_mask) | |||
430 | 426 | ||
431 | spin_unlock_irq(&sch->lock); | 427 | spin_unlock_irq(&sch->lock); |
432 | put_device(&sch->dev); | 428 | put_device(&sch->dev); |
433 | if (fla_mask != 0) | 429 | if (fla_mask == 0xffff) |
434 | break; | 430 | break; |
435 | } | 431 | } |
436 | return rc; | 432 | return rc; |
diff --git a/drivers/s390/cio/device_fsm.c b/drivers/s390/cio/device_fsm.c index 9b7f6f548b1d..ee7a05e0c3ba 100644 --- a/drivers/s390/cio/device_fsm.c +++ b/drivers/s390/cio/device_fsm.c | |||
@@ -235,6 +235,9 @@ ccw_device_recog_done(struct ccw_device *cdev, int state) | |||
235 | sch->schib.pmcw.pam & | 235 | sch->schib.pmcw.pam & |
236 | sch->schib.pmcw.pom & | 236 | sch->schib.pmcw.pom & |
237 | sch->opm; | 237 | sch->opm; |
238 | /* Check since device may again have become not operational. */ | ||
239 | if (!sch->schib.pmcw.dnv) | ||
240 | state = DEV_STATE_NOT_OPER; | ||
238 | if (cdev->private->state == DEV_STATE_DISCONNECTED_SENSE_ID) | 241 | if (cdev->private->state == DEV_STATE_DISCONNECTED_SENSE_ID) |
239 | /* Force reprobe on all chpids. */ | 242 | /* Force reprobe on all chpids. */ |
240 | old_lpm = 0; | 243 | old_lpm = 0; |
diff --git a/drivers/s390/cio/device_status.c b/drivers/s390/cio/device_status.c index 4ab2e0d95009..12a24d4331a2 100644 --- a/drivers/s390/cio/device_status.c +++ b/drivers/s390/cio/device_status.c | |||
@@ -39,15 +39,14 @@ ccw_device_msg_control_check(struct ccw_device *cdev, struct irb *irb) | |||
39 | " ... device %04X on subchannel %04X, dev_stat " | 39 | " ... device %04X on subchannel %04X, dev_stat " |
40 | ": %02X sch_stat : %02X\n", | 40 | ": %02X sch_stat : %02X\n", |
41 | cdev->private->devno, cdev->private->irq, | 41 | cdev->private->devno, cdev->private->irq, |
42 | cdev->private->irb.scsw.dstat, | 42 | irb->scsw.dstat, irb->scsw.cstat); |
43 | cdev->private->irb.scsw.cstat); | ||
44 | 43 | ||
45 | if (irb->scsw.cc != 3) { | 44 | if (irb->scsw.cc != 3) { |
46 | char dbf_text[15]; | 45 | char dbf_text[15]; |
47 | 46 | ||
48 | sprintf(dbf_text, "chk%x", cdev->private->irq); | 47 | sprintf(dbf_text, "chk%x", cdev->private->irq); |
49 | CIO_TRACE_EVENT(0, dbf_text); | 48 | CIO_TRACE_EVENT(0, dbf_text); |
50 | CIO_HEX_EVENT(0, &cdev->private->irb, sizeof (struct irb)); | 49 | CIO_HEX_EVENT(0, irb, sizeof (struct irb)); |
51 | } | 50 | } |
52 | } | 51 | } |
53 | 52 | ||
diff --git a/drivers/s390/cio/qdio.c b/drivers/s390/cio/qdio.c index 82194c4eadfb..d36258d6665f 100644 --- a/drivers/s390/cio/qdio.c +++ b/drivers/s390/cio/qdio.c | |||
@@ -432,7 +432,7 @@ tiqdio_clear_global_summary(void) | |||
432 | 432 | ||
433 | /************************* OUTBOUND ROUTINES *******************************/ | 433 | /************************* OUTBOUND ROUTINES *******************************/ |
434 | 434 | ||
435 | inline static int | 435 | static inline int |
436 | qdio_get_outbound_buffer_frontier(struct qdio_q *q) | 436 | qdio_get_outbound_buffer_frontier(struct qdio_q *q) |
437 | { | 437 | { |
438 | int f,f_mod_no; | 438 | int f,f_mod_no; |
@@ -510,7 +510,7 @@ out: | |||
510 | } | 510 | } |
511 | 511 | ||
512 | /* all buffers are processed */ | 512 | /* all buffers are processed */ |
513 | inline static int | 513 | static inline int |
514 | qdio_is_outbound_q_done(struct qdio_q *q) | 514 | qdio_is_outbound_q_done(struct qdio_q *q) |
515 | { | 515 | { |
516 | int no_used; | 516 | int no_used; |
@@ -532,7 +532,7 @@ qdio_is_outbound_q_done(struct qdio_q *q) | |||
532 | return (no_used==0); | 532 | return (no_used==0); |
533 | } | 533 | } |
534 | 534 | ||
535 | inline static int | 535 | static inline int |
536 | qdio_has_outbound_q_moved(struct qdio_q *q) | 536 | qdio_has_outbound_q_moved(struct qdio_q *q) |
537 | { | 537 | { |
538 | int i; | 538 | int i; |
@@ -552,7 +552,7 @@ qdio_has_outbound_q_moved(struct qdio_q *q) | |||
552 | } | 552 | } |
553 | } | 553 | } |
554 | 554 | ||
555 | inline static void | 555 | static inline void |
556 | qdio_kick_outbound_q(struct qdio_q *q) | 556 | qdio_kick_outbound_q(struct qdio_q *q) |
557 | { | 557 | { |
558 | int result; | 558 | int result; |
@@ -641,7 +641,7 @@ qdio_kick_outbound_q(struct qdio_q *q) | |||
641 | } | 641 | } |
642 | } | 642 | } |
643 | 643 | ||
644 | inline static void | 644 | static inline void |
645 | qdio_kick_outbound_handler(struct qdio_q *q) | 645 | qdio_kick_outbound_handler(struct qdio_q *q) |
646 | { | 646 | { |
647 | int start, end, real_end, count; | 647 | int start, end, real_end, count; |
@@ -740,7 +740,7 @@ qdio_outbound_processing(struct qdio_q *q) | |||
740 | /************************* INBOUND ROUTINES *******************************/ | 740 | /************************* INBOUND ROUTINES *******************************/ |
741 | 741 | ||
742 | 742 | ||
743 | inline static int | 743 | static inline int |
744 | qdio_get_inbound_buffer_frontier(struct qdio_q *q) | 744 | qdio_get_inbound_buffer_frontier(struct qdio_q *q) |
745 | { | 745 | { |
746 | int f,f_mod_no; | 746 | int f,f_mod_no; |
@@ -865,7 +865,7 @@ out: | |||
865 | return q->first_to_check; | 865 | return q->first_to_check; |
866 | } | 866 | } |
867 | 867 | ||
868 | inline static int | 868 | static inline int |
869 | qdio_has_inbound_q_moved(struct qdio_q *q) | 869 | qdio_has_inbound_q_moved(struct qdio_q *q) |
870 | { | 870 | { |
871 | int i; | 871 | int i; |
@@ -898,7 +898,7 @@ qdio_has_inbound_q_moved(struct qdio_q *q) | |||
898 | } | 898 | } |
899 | 899 | ||
900 | /* means, no more buffers to be filled */ | 900 | /* means, no more buffers to be filled */ |
901 | inline static int | 901 | static inline int |
902 | tiqdio_is_inbound_q_done(struct qdio_q *q) | 902 | tiqdio_is_inbound_q_done(struct qdio_q *q) |
903 | { | 903 | { |
904 | int no_used; | 904 | int no_used; |
@@ -951,7 +951,7 @@ tiqdio_is_inbound_q_done(struct qdio_q *q) | |||
951 | return 0; | 951 | return 0; |
952 | } | 952 | } |
953 | 953 | ||
954 | inline static int | 954 | static inline int |
955 | qdio_is_inbound_q_done(struct qdio_q *q) | 955 | qdio_is_inbound_q_done(struct qdio_q *q) |
956 | { | 956 | { |
957 | int no_used; | 957 | int no_used; |
@@ -1010,7 +1010,7 @@ qdio_is_inbound_q_done(struct qdio_q *q) | |||
1010 | } | 1010 | } |
1011 | } | 1011 | } |
1012 | 1012 | ||
1013 | inline static void | 1013 | static inline void |
1014 | qdio_kick_inbound_handler(struct qdio_q *q) | 1014 | qdio_kick_inbound_handler(struct qdio_q *q) |
1015 | { | 1015 | { |
1016 | int count, start, end, real_end, i; | 1016 | int count, start, end, real_end, i; |