patch-2.2.19 linux/arch/s390/kernel/s390io.c
Next file: linux/arch/s390/kernel/setup.c
Previous file: linux/arch/s390/kernel/s390dyn.c
Back to the patch index
Back to the overall index
- Lines: 90
- Date:
Sun Mar 25 11:37:30 2001
- Orig file:
v2.2.18/arch/s390/kernel/s390io.c
- Orig date:
Sun Mar 25 11:28:19 2001
diff -u --new-file --recursive --exclude-from /usr/src/exclude v2.2.18/arch/s390/kernel/s390io.c linux/arch/s390/kernel/s390io.c
@@ -8,6 +8,7 @@
* Author(s): Ingo Adlung (adlung@de.ibm.com)
*/
+#include <linux/module.h>
#include <linux/errno.h>
#include <linux/kernel_stat.h>
#include <linux/signal.h>
@@ -126,7 +127,7 @@
not_oper_handler_func_t not_oper_handler,
unsigned long irqflags,
const char *devname,
- void *dev_id)
+ devstat_t *dev_id)
{
int retval;
struct s390_irqaction *action;
@@ -204,7 +205,7 @@
NULL,
irqflags,
devname,
- dev_id);
+ (devstat_t *)dev_id);
if ( ret == 0 )
{
@@ -2041,6 +2042,7 @@
int ending_status = 0;
int allow4handler = 1;
int chnchk = 0;
+ devstat_t *dp;
#if 0
int cpu = smp_processor_id();
@@ -2058,7 +2060,8 @@
action = ioinfo[irq]->irq_desc.action;
} /* endif */
-
+ dp = &ioinfo[irq]->devstat;
+
#ifdef CONFIG_DEBUG_IO
/*
* It might be possible that a device was not-oper. at the time
@@ -2176,8 +2179,26 @@
chnchk = 1;
} /* endif */
+ if( dp->ii.irb.scsw.ectl==0)
+ {
+ issense=0;
+ }
+ else if ( (dp->ii.irb.scsw.stctl == SCSW_STCTL_STATUS_PEND)
+ && (dp->ii.irb.scsw.eswf == 0 ))
+ {
+ issense = 0;
+ }
+ else if ( (dp->ii.irb.scsw.stctl ==
+ (SCSW_STCTL_STATUS_PEND | SCSW_STCTL_INTER_STATUS))
+ && ((dp->ii.irb.scsw.actl & SCSW_ACTL_SUSPENDED) == 0))
+ {
+ issense = 0;
+ }
+ else
+ {
+ issense = dp->ii.irb.esw.esw0.erw.cons;
- issense = ioinfo[irq]->devstat.ii.irb.esw.esw0.erw.cons;
+ } /* endif */
if ( issense )
{
@@ -5524,3 +5545,17 @@
do_reipl( 0x10000 | sch );
}
+EXPORT_SYMBOL(halt_IO);
+EXPORT_SYMBOL(clear_IO);
+EXPORT_SYMBOL(do_IO);
+EXPORT_SYMBOL(resume_IO);
+EXPORT_SYMBOL(ioinfo);
+EXPORT_SYMBOL(get_dev_info_by_irq);
+EXPORT_SYMBOL(get_dev_info_by_devno);
+EXPORT_SYMBOL(get_irq_by_devno);
+EXPORT_SYMBOL(get_devno_by_irq);
+EXPORT_SYMBOL(get_irq_first);
+EXPORT_SYMBOL(get_irq_next);
+EXPORT_SYMBOL(read_conf_data);
+EXPORT_SYMBOL(read_dev_chars);
+EXPORT_SYMBOL(s390_request_irq_special);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)