diff -urN linux-2.5.39/drivers/s390/cio/cio.c linux-2.5.39-s390/drivers/s390/cio/cio.c
--- linux-2.5.39/drivers/s390/cio/cio.c Mon Sep 30 13:33:37 2002
+++ linux-2.5.39-s390/drivers/s390/cio/cio.c Mon Sep 30 13:33:37 2002
@@ -1065,9 +1065,9 @@
* for cc=0 and cc=1 after tsch
*/
static inline int
-s390_process_IRQ_normal(unsigned int irq,
- int ending_status)
+s390_process_IRQ_normal(unsigned int irq)
{
+ int ending_status;
unsigned int fctl; /* function control */
unsigned int stctl; /* status control */
unsigned int actl; /* activity control */
@@ -1315,8 +1315,7 @@
* for cc=3 after tsch
*/
static inline int
-s390_process_IRQ_notoper(unsigned int irq,
- int ending_status)
+s390_process_IRQ_notoper(unsigned int irq)
{
devstat_t *dp;
devstat_t *udp;
@@ -1379,7 +1378,7 @@
* take fast exit if no handler is available
*/
if (!ioinfo[irq]->ui.flags.ready)
- return (ending_status);
+ return 0;
memcpy (udp, &(ioinfo[irq]->devstat),
sizeof(devstat_t) -
@@ -1417,7 +1416,6 @@
int irb_cc; /* cond code from irb */
int issense = 0;
- int ending_status = 0;
devstat_t *dp;
devstat_t *udp;
scsw_t *scsw;
@@ -1610,25 +1608,14 @@
switch (irb_cc) {
case 1: /* status pending */
-
dp->flag |= DEVSTAT_STATUS_PENDING;
case 0: /* normal i/o interruption */
+ return s390_process_IRQ_normal(irq);
- ending_status = s390_process_IRQ_normal(irq, ending_status);
-
-
- break;
-
- case 3: /* device/path not operational */
-
- ending_status = s390_process_IRQ_notoper(irq, ending_status);
-
- break;
-
+ default: /* device/path not operational */
+ return s390_process_IRQ_notoper(irq);
}
-
- return (ending_status);
}
/*
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/