Lines Matching refs:ioinfo

93 	if (ioinfo[irq] == INVALID_STORAGE_AREA) \
95 if (ioinfo[irq]->st) \
132 ioinfo_t *ioinfo[__MAX_SUBCHANNELS] = { variable
562 if (ioinfo[i] != INVALID_STORAGE_AREA) { in blacklist_parse_proc_parameters()
563 if (!ioinfo[i]->st) in blacklist_parse_proc_parameters()
564 if ((ioinfo[i]->schib.pmcw.dev >= from) in blacklist_parse_proc_parameters()
565 && (ioinfo[i]->schib.pmcw.dev <= in blacklist_parse_proc_parameters()
793 if (ioinfo[irq] == INVALID_STORAGE_AREA) in s390_request_irq_special()
796 if (ioinfo[irq]->st) in s390_request_irq_special()
807 if (ioinfo[irq]->ui.flags.unfriendly && in s390_request_irq_special()
811 } else if (!ioinfo[irq]->ui.flags.ready) { in s390_request_irq_special()
814 ioinfo[irq]->irq_desc.handler = io_handler; in s390_request_irq_special()
815 ioinfo[irq]->irq_desc.name = devname; in s390_request_irq_special()
816 ioinfo[irq]->irq_desc.dev_id = dev_id; in s390_request_irq_special()
817 ioinfo[irq]->ui.flags.ready = 1; in s390_request_irq_special()
822 ioinfo[irq]->ui.flags.ready = 0; in s390_request_irq_special()
826 stsch (irq, &ioinfo[irq]->schib); in s390_request_irq_special()
827 if (ioinfo[irq]->schib.pmcw.ena) in s390_request_irq_special()
846 ioinfo[irq]->ui.flags.pgid_supp = 1; in s390_request_irq_special()
847 ioinfo[irq]->ui.flags.notacccap = 1; in s390_request_irq_special()
850 (!ioinfo[irq]->ui.flags.pgid || in s390_request_irq_special()
863 mask = (0x80 >> i) & ioinfo[irq]->opm; in s390_request_irq_special()
878 (!ioinfo[irq]->ui.flags.unfriendly)) in s390_request_irq_special()
881 if (ioinfo[irq]->ui.flags.unfriendly && in s390_request_irq_special()
891 ioinfo[irq]->ui.flags.newreq = 1; in s390_request_irq_special()
892 ioinfo[irq]->nopfunc = not_oper_handler; in s390_request_irq_special()
914 ioinfo[irq]->ui.flags.newreq = 0; in s390_request_irq()
928 if (irq >= __MAX_SUBCHANNELS || ioinfo[irq] == INVALID_STORAGE_AREA) in s390_free_irq()
931 if (ioinfo[irq]->st) in s390_free_irq()
949 if (ioinfo[irq]->ui.flags.ready) { in s390_free_irq()
950 if (dev_id == ioinfo[irq]->irq_desc.dev_id) { in s390_free_irq()
952 ioinfo[irq]->ui.flags.unready = 1; in s390_free_irq()
984 if (ioinfo[irq]->ui.flags.busy) { in s390_free_irq()
989 ioinfo[irq]->devstat. in s390_free_irq()
996 ioinfo[irq]-> in s390_free_irq()
1003 ioinfo[irq]->ui.flags.ready = 0; in s390_free_irq()
1004 ioinfo[irq]->ui.flags.unready = 0; /* deregister ended */ in s390_free_irq()
1006 ioinfo[irq]->nopfunc = NULL; in s390_free_irq()
1052 if (ioinfo[irq]->ui.flags.d_disable) { in enable_subchannel()
1053 ioinfo[irq]->ui.flags.d_disable = 0; in enable_subchannel()
1056 ccode = stsch (irq, &(ioinfo[irq]->schib)); in enable_subchannel()
1061 ioinfo[irq]->schib.pmcw.ena = 1; in enable_subchannel()
1064 ioinfo[irq]->schib.pmcw.isc = 7; in enable_subchannel()
1066 ioinfo[irq]->schib.pmcw.isc = 3; in enable_subchannel()
1071 ccode = msch (irq, &(ioinfo[irq]->schib)); in enable_subchannel()
1081 ioinfo[irq]->ui.flags.s_pend = 1; in enable_subchannel()
1083 ioinfo[irq]->ui.flags.s_pend = 0; in enable_subchannel()
1100 ioinfo[irq]->ui.flags.oper = 0; in enable_subchannel()
1133 if (ioinfo[irq]->ui.flags.busy) { in disable_subchannel()
1146 cc = stsch (irq, &(ioinfo[irq]->schib)); in disable_subchannel()
1149 ioinfo[irq]->ui.flags.oper = 0; in disable_subchannel()
1150 ioinfo[irq]->ui.flags.d_disable = 1; in disable_subchannel()
1155 ioinfo[irq]->schib.pmcw.ena = 0; in disable_subchannel()
1158 cc = msch (irq, &(ioinfo[irq]->schib)); in disable_subchannel()
1167 ioinfo[irq]->ui.flags.s_pend = 1; in disable_subchannel()
1169 ioinfo[irq]->ui.flags.s_pend = 0; in disable_subchannel()
1184 ioinfo[irq]->devstat.devno); in disable_subchannel()
1190 ioinfo[irq]->devstat. in disable_subchannel()
1200 ioinfo[irq]->ui.flags.oper = 0; in disable_subchannel()
1201 ioinfo[irq]->ui.flags.d_disable = 1; in disable_subchannel()
1337 ioinfo[irq]->orb.intparm = (__u32) (long) &ioinfo[irq]->u_intparm; in s390_start_IO()
1338 ioinfo[irq]->orb.fmt = 1; in s390_start_IO()
1340 ioinfo[irq]->orb.pfch = !(flag & DOIO_DENY_PREFETCH); in s390_start_IO()
1341 ioinfo[irq]->orb.spnd = (flag & DOIO_ALLOW_SUSPEND ? TRUE : FALSE); in s390_start_IO()
1342 ioinfo[irq]->orb.ssic = ((flag & DOIO_ALLOW_SUSPEND) in s390_start_IO()
1346 ioinfo[irq]->orb.lpm = lpm; in s390_start_IO()
1348 ioinfo[irq]->orb.lpm = ioinfo[irq]->opm; in s390_start_IO()
1356 ioinfo[irq]->orb.c64 = 1; in s390_start_IO()
1357 ioinfo[irq]->orb.i2k = 0; in s390_start_IO()
1360 ioinfo[irq]->orb.cpa = (__u32) virt_to_phys (cpa); in s390_start_IO()
1377 ioinfo[irq]->ui.flags.repnone = 1; in s390_start_IO()
1385 ioinfo[irq]->orb.key = get_storage_key() >> 4; in s390_start_IO()
1386 ioinfo[irq]->orb.cpa = in s390_start_IO()
1387 (__u32) pfix_get_addr((void *)ioinfo[irq]->orb.cpa); in s390_start_IO()
1388 ccode = diag98 (irq, &(ioinfo[irq]->orb)); in s390_start_IO()
1390 ccode = ssch (irq, &(ioinfo[irq]->orb)); in s390_start_IO()
1399 if (!ioinfo[irq]->ui.flags.w4sense) { in s390_start_IO()
1405 memset (&((devstat_t *) ioinfo[irq]->irq_desc.dev_id)-> in s390_start_IO()
1409 memset (&ioinfo[irq]->devstat.ii.irb, '\0', sizeof (irb_t)); in s390_start_IO()
1414 ioinfo[irq]->ui.flags.busy = 1; in s390_start_IO()
1415 ioinfo[irq]->ui.flags.doio = 1; in s390_start_IO()
1417 ioinfo[irq]->u_intparm = user_intparm; in s390_start_IO()
1418 ioinfo[irq]->devstat.cstat = 0; in s390_start_IO()
1419 ioinfo[irq]->devstat.dstat = 0; in s390_start_IO()
1420 ioinfo[irq]->devstat.lpum = 0; in s390_start_IO()
1421 ioinfo[irq]->devstat.flag = DEVSTAT_START_FUNCTION; in s390_start_IO()
1422 ioinfo[irq]->devstat.scnt = 0; in s390_start_IO()
1424 ioinfo[irq]->ui.flags.fast = 0; in s390_start_IO()
1425 ioinfo[irq]->ui.flags.repall = 0; in s390_start_IO()
1433 ioinfo[irq]->ui.flags.fast = 1; in s390_start_IO()
1435 ioinfo[irq]->ui.flags.repall = 1; in s390_start_IO()
1557 if (!ioinfo[irq]->ui.flags.syncio) { in s390_start_IO()
1562 ioinfo[irq]->devstat.flag = DEVSTAT_START_FUNCTION in s390_start_IO()
1568 memset (&((devstat_t *) ioinfo[irq]->irq_desc.dev_id)->ii.irb, in s390_start_IO()
1579 ioinfo[irq]->ui.flags.s_pend = 1; in s390_start_IO()
1580 ioinfo[irq]->ui.flags.busy = 1; in s390_start_IO()
1581 ioinfo[irq]->ui.flags.doio = 1; in s390_start_IO()
1585 ioinfo[irq]->ui.flags.s_pend = 0; in s390_start_IO()
1586 ioinfo[irq]->ui.flags.busy = 0; in s390_start_IO()
1587 ioinfo[irq]->ui.flags.doio = 0; in s390_start_IO()
1589 ioinfo[irq]->ui.flags.repall = 0; in s390_start_IO()
1590 ioinfo[irq]->ui.flags.w4final = 0; in s390_start_IO()
1592 ioinfo[irq]->devstat.flag |= DEVSTAT_FINAL_STATUS; in s390_start_IO()
1601 if (ioinfo[irq]->devstat.ii.irb.scsw.cc == 3) { in s390_start_IO()
1603 if (ioinfo[irq]->opm == 0) { in s390_start_IO()
1605 ioinfo[irq]->ui.flags.oper = 0; in s390_start_IO()
1611 ioinfo[irq]->devstat.flag |= DEVSTAT_NOT_OPER; in s390_start_IO()
1617 stsch (irq, &(ioinfo[irq]->schib)); in s390_start_IO()
1622 irq, ioinfo[irq]->devstat.devno); in s390_start_IO()
1625 &(ioinfo[irq]->devstat.ii.irb), in s390_start_IO()
1631 irq, ioinfo[irq]->devstat.devno); in s390_start_IO()
1634 &(ioinfo[irq]->schib), in s390_start_IO()
1637 if (ioinfo[irq]->devstat. in s390_start_IO()
1644 ioinfo[irq]->devstat.devno); in s390_start_IO()
1647 ioinfo[irq]->irq_desc. in s390_start_IO()
1649 ioinfo[irq]->irq_desc. in s390_start_IO()
1656 stsch (irq, &(ioinfo[irq]->schib)); in s390_start_IO()
1661 CIO_HEX_EVENT(2, &(ioinfo[irq]->devstat.ii.irb), in s390_start_IO()
1664 CIO_HEX_EVENT(2, &(ioinfo[irq]->schib), in s390_start_IO()
1667 if (ioinfo[irq]->devstat. in s390_start_IO()
1670 CIO_HEX_EVENT(2, ioinfo[irq]->irq_desc. in s390_start_IO()
1672 ioinfo[irq]->irq_desc. in s390_start_IO()
1679 ioinfo[irq]->devstat.flag &= ~DEVSTAT_NOT_OPER; in s390_start_IO()
1680 ioinfo[irq]->ui.flags.oper = 1; in s390_start_IO()
1694 ioinfo[irq]->opm &= ~lpm; in s390_start_IO()
1696 ioinfo[irq]->opm = 0; in s390_start_IO()
1700 if (ioinfo[irq]->opm == 0) { in s390_start_IO()
1701 ioinfo[irq]->ui.flags.oper = 0; in s390_start_IO()
1702 ioinfo[irq]->devstat.flag |= DEVSTAT_NOT_OPER; in s390_start_IO()
1708 memcpy (ioinfo[irq]->irq_desc.dev_id, in s390_start_IO()
1709 &(ioinfo[irq]->devstat), sizeof (devstat_t)); in s390_start_IO()
1713 stsch (irq, &(ioinfo[irq]->schib)); in s390_start_IO()
1717 irq, ioinfo[irq]->devstat.devno); in s390_start_IO()
1720 &(ioinfo[irq]->schib), sizeof (schib_t)); in s390_start_IO()
1723 stsch (irq, &(ioinfo[irq]->schib)); in s390_start_IO()
1726 CIO_HEX_EVENT(2, &(ioinfo[irq]->schib), in s390_start_IO()
1740 ioinfo[irq]->ui.flags.repnone = 0; in s390_start_IO()
1760 if (!ioinfo[irq]->ui.flags.ready || ioinfo[irq]->ui.flags.unready) { in do_IO()
1768 if (ioinfo[irq]->ui.flags.noio) in do_IO()
1775 if (!ioinfo[irq]->ui.flags.busy) { /* last I/O completed ? */ in do_IO()
1803 if (ioinfo[irq]->ui.flags.busy) { in resume_IO()
1828 ioinfo[irq]->ui.flags.oper = 0; in resume_IO()
1829 ioinfo[irq]->ui.flags.busy = 0; in resume_IO()
1858 if (ioinfo[irq]->ui.flags.noio) in halt_IO()
1864 if (!ioinfo[irq]->ui.flags.ready) { in halt_IO()
1871 if (ioinfo[irq]->ui.flags.w4sense) { in halt_IO()
1901 ioinfo[irq]->ui.flags.haltio = 1; in halt_IO()
1903 if (!ioinfo[irq]->ui.flags.doio) { in halt_IO()
1904 ioinfo[irq]->ui.flags.busy = 1; in halt_IO()
1905 ioinfo[irq]->u_intparm = user_intparm; in halt_IO()
1906 ioinfo[irq]->devstat.cstat = 0; in halt_IO()
1907 ioinfo[irq]->devstat.dstat = 0; in halt_IO()
1908 ioinfo[irq]->devstat.lpum = 0; in halt_IO()
1909 ioinfo[irq]->devstat.flag = DEVSTAT_HALT_FUNCTION; in halt_IO()
1910 ioinfo[irq]->devstat.scnt = 0; in halt_IO()
1913 ioinfo[irq]->devstat.flag |= DEVSTAT_HALT_FUNCTION; in halt_IO()
1998 if (!ioinfo[irq]->ui.flags.syncio) { in halt_IO()
2003 ioinfo[irq]->devstat.flag |= DEVSTAT_STATUS_PENDING; in halt_IO()
2008 memset (&ioinfo[irq]->irq_desc.dev_id->ii.irb, in halt_IO()
2020 ioinfo[irq]->ui.flags.s_pend = 1; in halt_IO()
2021 ioinfo[irq]->ui.flags.busy = 1; in halt_IO()
2022 ioinfo[irq]->ui.flags.doio = 1; in halt_IO()
2026 ioinfo[irq]->ui.flags.s_pend = 0; in halt_IO()
2027 ioinfo[irq]->ui.flags.busy = 0; in halt_IO()
2028 ioinfo[irq]->ui.flags.doio = 0; in halt_IO()
2029 ioinfo[irq]->ui.flags.repall = 0; in halt_IO()
2030 ioinfo[irq]->ui.flags.w4final = 0; in halt_IO()
2032 ioinfo[irq]->devstat.flag |= DEVSTAT_FINAL_STATUS; in halt_IO()
2042 if (ioinfo[irq]->devstat.ii.irb.scsw.cc == 3) { in halt_IO()
2044 ioinfo[irq]->devstat.flag |= DEVSTAT_NOT_OPER; in halt_IO()
2045 ioinfo[irq]->ui.flags.oper = 0; in halt_IO()
2048 ioinfo[irq]->devstat.flag &= ~DEVSTAT_NOT_OPER; in halt_IO()
2049 ioinfo[irq]->ui.flags.oper = 1; in halt_IO()
2090 if (ioinfo[irq] == INVALID_STORAGE_AREA) in clear_IO()
2093 if (ioinfo[irq]->ui.flags.noio) in clear_IO()
2098 if (!ioinfo[irq]->ui.flags.ready) in clear_IO()
2104 if (ioinfo[irq]->ui.flags.w4sense) in clear_IO()
2134 ioinfo[irq]->ui.flags.haltio = 1; in clear_IO()
2136 if (!ioinfo[irq]->ui.flags.doio) { in clear_IO()
2137 ioinfo[irq]->ui.flags.busy = 1; in clear_IO()
2138 ioinfo[irq]->u_intparm = user_intparm; in clear_IO()
2139 ioinfo[irq]->devstat.cstat = 0; in clear_IO()
2140 ioinfo[irq]->devstat.dstat = 0; in clear_IO()
2141 ioinfo[irq]->devstat.lpum = 0; in clear_IO()
2142 ioinfo[irq]->devstat.flag = DEVSTAT_CLEAR_FUNCTION; in clear_IO()
2143 ioinfo[irq]->devstat.scnt = 0; in clear_IO()
2146 ioinfo[irq]->devstat.flag |= DEVSTAT_CLEAR_FUNCTION; in clear_IO()
2343 if (ioinfo[irq] == INVALID_STORAGE_AREA) { in do_IRQ()
2347 if (ioinfo[irq]->st) { in do_IRQ()
2415 if (ioinfo[irq] == INVALID_STORAGE_AREA) { in s390_process_IRQ()
2430 if (ioinfo[irq]->st) { in s390_process_IRQ()
2436 dp = &ioinfo[irq]->devstat; in s390_process_IRQ()
2437 udp = ioinfo[irq]->irq_desc.dev_id; in s390_process_IRQ()
2445 if (!ioinfo[irq]->ui.flags.ready) { in s390_process_IRQ()
2446 if (!ioinfo[irq]->ui.flags.d_disable) { in s390_process_IRQ()
2451 irq, ioinfo[irq]->devstat.devno); in s390_process_IRQ()
2459 ioinfo[irq]->devstat.devno); in s390_process_IRQ()
2509 if (ioinfo[irq]->ui.flags.busy) { in s390_process_IRQ()
2512 dp->intparm = ioinfo[irq]->u_intparm; in s390_process_IRQ()
2579 ioinfo[irq]->devstat.devno, irq, dp->dstat, in s390_process_IRQ()
2587 ioinfo[irq]->devstat.devno, irq, in s390_process_IRQ()
2654 ioinfo[irq]->stctl |= stctl; in s390_process_IRQ()
2673 && (ioinfo[irq]->ui.flags.busy == 0)) { in s390_process_IRQ()
2706 if (!ioinfo[irq]->ui.flags.ready) in s390_process_IRQ()
2721 || (ioinfo[irq]->ui.flags.delsense && ending_status)) { in s390_process_IRQ()
2723 ccw1_t *s_ccw = &ioinfo[irq]->senseccw; in s390_process_IRQ()
2732 if (ioinfo[irq]->ui.flags.w4sense && in s390_process_IRQ()
2736 ioinfo[irq]->ui.info, ending_status); in s390_process_IRQ()
2749 (__u32) virt_to_phys (ioinfo[irq]-> in s390_process_IRQ()
2758 if (ioinfo[irq]->ui.flags.unready in s390_process_IRQ()
2759 || ioinfo[irq]->ui.flags.syncio) in s390_process_IRQ()
2781 ioinfo[irq]->ui.flags.fast = 0; in s390_process_IRQ()
2782 ioinfo[irq]->ui.flags.repall = 0; in s390_process_IRQ()
2783 ioinfo[irq]->ui.flags.w4final = 0; in s390_process_IRQ()
2784 ioinfo[irq]->ui.flags.delsense = 0; in s390_process_IRQ()
2790 ioinfo[irq]->ui.flags.w4sense = 1; in s390_process_IRQ()
2803 ioinfo[irq]->ui.flags.w4sense = 0; in s390_process_IRQ()
2804 ioinfo[irq]->ui.flags.oper = 0; in s390_process_IRQ()
2812 ioinfo[irq]->ui.flags.w4sense = 0; in s390_process_IRQ()
2813 ioinfo[irq]->ui.flags.delsense = 1; in s390_process_IRQ()
2818 ioinfo[irq]->ui.flags.w4sense = 0; in s390_process_IRQ()
2829 ioinfo[irq]->ui.flags.fast = 0; in s390_process_IRQ()
2830 ioinfo[irq]->ui.flags.repall = 0; in s390_process_IRQ()
2832 ioinfo[irq]->ui.flags.delsense = 1; in s390_process_IRQ()
2850 || (ioinfo[irq]->ui.flags.repall) in s390_process_IRQ()
2852 || ((ioinfo[irq]->ui.flags.fast) in s390_process_IRQ()
2854 || (ioinfo[irq]->ui.flags.oper == 0); in s390_process_IRQ()
2873 if (ioinfo[irq]->ui.flags.w4sense) { in s390_process_IRQ()
2876 ioinfo[irq]->devstat.rescnt; in s390_process_IRQ()
2889 ioinfo[irq]->ui.flags.w4sense = 0; in s390_process_IRQ()
2895 ioinfo[irq]->sense_data, in s390_process_IRQ()
2918 if (ioinfo[irq]->ui.flags.s_pend in s390_process_IRQ()
2919 || ioinfo[irq]->ui.flags.unready in s390_process_IRQ()
2920 || ioinfo[irq]->ui.flags.repnone) { in s390_process_IRQ()
2923 ioinfo[irq]->ui.flags.busy = 0; in s390_process_IRQ()
2924 ioinfo[irq]->ui.flags.doio = 0; in s390_process_IRQ()
2925 ioinfo[irq]->ui.flags.haltio = 0; in s390_process_IRQ()
2926 ioinfo[irq]->ui.flags.fast = 0; in s390_process_IRQ()
2927 ioinfo[irq]->ui.flags.repall = 0; in s390_process_IRQ()
2928 ioinfo[irq]->ui.flags.w4final = 0; in s390_process_IRQ()
2948 if (ending_status || !ioinfo[irq]->ui.flags.oper) { in s390_process_IRQ()
2949 ioinfo[irq]->ui.flags.oper = 1; /* dev IS oper */ in s390_process_IRQ()
2951 ioinfo[irq]->ui.flags.busy = 0; in s390_process_IRQ()
2952 ioinfo[irq]->ui.flags.doio = 0; in s390_process_IRQ()
2953 ioinfo[irq]->ui.flags.haltio = 0; in s390_process_IRQ()
2954 ioinfo[irq]->ui.flags.fast = 0; in s390_process_IRQ()
2955 ioinfo[irq]->ui.flags.repall = 0; in s390_process_IRQ()
2956 ioinfo[irq]->ui.flags.w4final = 0; in s390_process_IRQ()
2961 if (!ioinfo[irq]->ui.flags.killio) in s390_process_IRQ()
2962 ioinfo[irq]->irq_desc.handler (irq, udp, NULL); in s390_process_IRQ()
2971 ioinfo[irq]->ui.flags.w4final = 1; in s390_process_IRQ()
2988 ioinfo[irq]->irq_desc.handler (irq, udp, NULL); in s390_process_IRQ()
2998 ioinfo[irq]->ui.flags.busy = 0; in s390_process_IRQ()
2999 ioinfo[irq]->ui.flags.doio = 0; in s390_process_IRQ()
3000 ioinfo[irq]->ui.flags.haltio = 0; in s390_process_IRQ()
3010 stsch(irq, &ioinfo[irq]->schib); in s390_process_IRQ()
3011 ioinfo[irq]->opm &= in s390_process_IRQ()
3012 ~ioinfo[irq]->schib.pmcw.pnom; in s390_process_IRQ()
3015 if (ioinfo[irq]->opm == 0) { in s390_process_IRQ()
3016 ioinfo[irq]->ui.flags.oper = 0; in s390_process_IRQ()
3020 ioinfo[irq]->devstat.flag |= DEVSTAT_NOT_OPER; in s390_process_IRQ()
3021 ioinfo[irq]->devstat.flag |= DEVSTAT_FINAL_STATUS; in s390_process_IRQ()
3036 ioinfo[irq]->ui.flags.fast = 0; in s390_process_IRQ()
3037 ioinfo[irq]->ui.flags.repall = 0; in s390_process_IRQ()
3038 ioinfo[irq]->ui.flags.w4final = 0; in s390_process_IRQ()
3043 if (!ioinfo[irq]->ui.flags.ready) in s390_process_IRQ()
3052 if (ioinfo[irq]->ui.flags.w4sense) in s390_process_IRQ()
3053 ioinfo[irq]->ui.flags.w4sense = 0; in s390_process_IRQ()
3055 memcpy (udp, &(ioinfo[irq]->devstat), sdevstat); in s390_process_IRQ()
3057 ioinfo[irq]->devstat.intparm = 0; in s390_process_IRQ()
3059 if (!ioinfo[irq]->ui.flags.s_pend in s390_process_IRQ()
3060 && !ioinfo[irq]->ui.flags.repnone in s390_process_IRQ()
3061 && !ioinfo[irq]->ui.flags.killio) { in s390_process_IRQ()
3063 ioinfo[irq]->irq_desc.handler (irq, udp, NULL); in s390_process_IRQ()
3073 ioinfo[irq]->ui.flags.noio && in s390_process_IRQ()
3074 !ioinfo[irq]->ui.flags.syncio && in s390_process_IRQ()
3075 !ioinfo[irq]->ui.flags.w4sense) { in s390_process_IRQ()
3076 if(ioinfo[irq]->ui.flags.ready) { in s390_process_IRQ()
3079 ioinfo[irq]->ui.flags.killio = 0; in s390_process_IRQ()
3080 ioinfo[irq]->ui.flags.noio = 0; in s390_process_IRQ()
3122 ccode = stsch (irq, &(ioinfo[irq]->schib)); in set_cons_dev()
3126 ioinfo[irq]->devstat.flag |= DEVSTAT_NOT_OPER; in set_cons_dev()
3128 ioinfo[irq]->schib.pmcw.isc = 7; in set_cons_dev()
3130 ccode = msch (irq, &(ioinfo[irq]->schib)); in set_cons_dev()
3165 if (ioinfo[irq]->ui.flags.busy == 1) { in wait_cons_dev()
3186 } while (ioinfo[irq]->ui.flags.busy == 1); in wait_cons_dev()
3215 (ioinfo[irq] != INVALID_STORAGE_AREA) && in enable_cpu_sync_isc()
3216 (!ioinfo[irq]->st)) { in enable_cpu_sync_isc()
3231 ccode = stsch (irq, &(ioinfo[irq]->schib)); in enable_cpu_sync_isc()
3234 ioinfo[irq]->schib.pmcw.isc = 5; in enable_cpu_sync_isc()
3238 &(ioinfo[irq]->schib)); in enable_cpu_sync_isc()
3252 ioinfo[irq]->ui.flags.syncio = 1; in enable_cpu_sync_isc()
3262 ioinfo[irq]->ui.flags.s_pend = in enable_cpu_sync_isc()
3265 ioinfo[irq]->ui.flags.s_pend = in enable_cpu_sync_isc()
3298 ccode = stsch(irq, &ioinfo[irq]->schib); in enable_cpu_sync_isc()
3299 if (!ccode && ioinfo[irq]->schib.pmcw.isc != 5) { in enable_cpu_sync_isc()
3300 ioinfo[irq]->ui.flags.syncio = 0; in enable_cpu_sync_isc()
3334 (ioinfo[irq] != INVALID_STORAGE_AREA) && in disable_cpu_sync_isc()
3335 (!ioinfo[irq]->st)) { in disable_cpu_sync_isc()
3352 ccode = stsch (irq, &(ioinfo[irq]->schib)); in disable_cpu_sync_isc()
3354 ioinfo[irq]->schib.pmcw.isc = 3; in disable_cpu_sync_isc()
3360 msch (irq, &(ioinfo[irq]->schib)); in disable_cpu_sync_isc()
3380 ioinfo[irq]->ui.flags.s_pend = in disable_cpu_sync_isc()
3383 ioinfo[irq]->ui.flags.s_pend = in disable_cpu_sync_isc()
3414 ioinfo[irq]->ui.flags.syncio = 0; in disable_cpu_sync_isc()
3818 if (ioinfo[irq]->ui.flags.oper == 0) { in read_dev_chars()
3823 if (ioinfo[irq]->ui.flags.unfriendly) { in read_dev_chars()
3842 rdc_ccw = &ioinfo[irq]->senseccw; in read_dev_chars()
3844 if (!ioinfo[irq]->ui.flags.ready) { in read_dev_chars()
3874 memset (ioinfo[irq]->irq_desc.dev_id, in read_dev_chars()
3884 ioinfo[irq]->irq_desc.dev_id->flag; in read_dev_chars()
3943 } else if (ioinfo[irq]->ui.flags.oper == 0) { in read_conf_data()
3945 } else if (ioinfo[irq]->ui.flags.esid == 0) { in read_conf_data()
3952 if (ioinfo[irq]->ui.flags.unfriendly) { in read_conf_data()
3965 if (ioinfo[irq]->senseid.ciw[ciw_cnt].ct == CIW_TYPE_RCD) { in read_conf_data()
3969 if (ioinfo[irq]->senseid.ciw[ciw_cnt].cmd != 0 in read_conf_data()
3970 && ioinfo[irq]->senseid.ciw[ciw_cnt].count != 0) { in read_conf_data()
3985 ccw1_t *rcd_ccw = &ioinfo[irq]->senseccw; in read_conf_data()
3993 if (!ioinfo[irq]->ui.flags.ready) { in read_conf_data()
4004 pdevstat = ioinfo[irq]->irq_desc.dev_id; in read_conf_data()
4011 kmalloc (ioinfo[irq]->senseid.ciw[ciw_cnt]. in read_conf_data()
4015 alloc_bootmem_low (ioinfo[irq]->senseid. in read_conf_data()
4027 ioinfo[irq]->senseid.ciw[ciw_cnt]. in read_conf_data()
4032 ioinfo[irq]->senseid.ciw[ciw_cnt]. in read_conf_data()
4037 ioinfo[irq]->senseid.ciw[ciw_cnt]. in read_conf_data()
4092 *length = ioinfo[irq]->senseid.ciw[ciw_cnt].count; in read_conf_data()
4100 ioinfo[irq]->senseid. in read_conf_data()
4180 if (ioinfo[irq] != INVALID_STORAGE_AREA) { in get_irq_next()
4181 if (ioinfo[irq]->next) { in get_irq_next()
4182 if ((ioinfo[irq]->next->ui.flags.oper) && in get_irq_next()
4183 (!ioinfo[irq]->next->ui.flags.unfriendly) && in get_irq_next()
4184 (!ioinfo[irq]->next->st)) { in get_irq_next()
4185 ret_irq = ioinfo[irq]->next->irq; in get_irq_next()
4188 get_next_available_irq (ioinfo[irq]->next); in get_irq_next()
4212 pdi->devno = ioinfo[irq]->schib.pmcw.dev; in get_dev_info_by_irq()
4215 if (ioinfo[irq]->ui.flags.oper && !ioinfo[irq]->ui.flags.unknown) { in get_dev_info_by_irq()
4218 &ioinfo[irq]->senseid, sizeof (senseid_t)); in get_dev_info_by_irq()
4220 } else if (ioinfo[irq]->ui.flags.unfriendly) { in get_dev_info_by_irq()
4225 } else if (ioinfo[irq]->ui.flags.unknown) { in get_dev_info_by_irq()
4237 if (ioinfo[irq]->ui.flags.ready) in get_dev_info_by_irq()
4256 if ((ioinfo[i] != INVALID_STORAGE_AREA) && in get_dev_info_by_devno()
4257 (!ioinfo[i]->st) && in get_dev_info_by_devno()
4258 (ioinfo[i]->schib.pmcw.dev == devno)) { in get_dev_info_by_devno()
4263 if (ioinfo[i]->ui.flags.oper in get_dev_info_by_devno()
4264 && !ioinfo[i]->ui.flags.unknown) { in get_dev_info_by_devno()
4267 &ioinfo[i]->senseid, in get_dev_info_by_devno()
4270 } else if (ioinfo[i]->ui.flags.unfriendly) { in get_dev_info_by_devno()
4277 } else if (ioinfo[i]->ui.flags.unknown) { in get_dev_info_by_devno()
4294 if (ioinfo[i]->ui.flags.ready) in get_dev_info_by_devno()
4297 if (!ioinfo[i]->ui.flags.unfriendly) in get_dev_info_by_devno()
4318 if ((ioinfo[i] != INVALID_STORAGE_AREA) in get_irq_by_devno()
4319 && (!ioinfo[i]->st) in get_irq_by_devno()
4320 && (ioinfo[i]->schib.pmcw.dev == devno) in get_irq_by_devno()
4321 && (ioinfo[i]->schib.pmcw.dnv == 1)) { in get_irq_by_devno()
4337 || (ioinfo[irq] == INVALID_STORAGE_AREA)) { in get_devno_by_irq()
4342 if (ioinfo[irq]->st) in get_devno_by_irq()
4352 if (ioinfo[irq]->schib.pmcw.dnv) in get_devno_by_irq()
4353 return (ioinfo[irq]->schib.pmcw.dev); in get_devno_by_irq()
4378 if ((ioinfo[irq] != INVALID_STORAGE_AREA) in s390_device_recognition_irq()
4379 && (!ioinfo[irq]->st) in s390_device_recognition_irq()
4380 && (ioinfo[irq]->schib.pmcw.st == 0) in s390_device_recognition_irq()
4381 && (ioinfo[irq]->ui.flags.oper == 1)) { in s390_device_recognition_irq()
4385 if (ioinfo[irq]->ui.flags.pgid_supp) in s390_device_recognition_irq()
4399 ioinfo[irq]->ui.flags.unknown = 0; in s390_device_recognition_irq()
4401 memset (&ioinfo[irq]->senseid, '\0', in s390_device_recognition_irq()
4420 ret = s390_SenseID (irq, &ioinfo[irq]->senseid, 0xff); in s390_device_recognition_irq()
4426 ioinfo[irq]->ui.flags.unfriendly = 1; in s390_device_recognition_irq()
4434 if (ioinfo[irq]->schib.pmcw.pim != 0x80) { in s390_device_recognition_irq()
4450 ioinfo[irq]->schib. in s390_device_recognition_irq()
4517 if (ioinfo[irq] == INVALID_STORAGE_AREA) { in s390_redo_validation()
4521 if (ioinfo[irq]->ui.flags.oper) { in s390_redo_validation()
4525 s390_search_devreg (ioinfo[irq]); in s390_redo_validation()
4536 cio_procfs_device_create (ioinfo in s390_redo_validation()
4560 if (ioinfo[irq]->ui.flags.ready) { in s390_trigger_resense()
4571 ioinfo[irq]->ui.flags.unfriendly = 0; in s390_trigger_resense()
4637 && (ioinfo[irq] != INVALID_STORAGE_AREA)) { in s390_validate_subchannel()
4638 p_schib = &ioinfo[irq]->schib; in s390_validate_subchannel()
4647 if (ioinfo[irq] != INVALID_STORAGE_AREA) { in s390_validate_subchannel()
4648 ioinfo[irq]->ui.flags.oper = 0; in s390_validate_subchannel()
4649 ioinfo[irq]->ui.flags.dval = 0; in s390_validate_subchannel()
4672 if (ioinfo[irq] != INVALID_STORAGE_AREA) in s390_validate_subchannel()
4673 ioinfo[irq]->ui.flags.oper = 0; in s390_validate_subchannel()
4698 if (ioinfo[irq] == INVALID_STORAGE_AREA) { in s390_validate_subchannel()
4700 ioinfo[irq] = (ioinfo_t *) in s390_validate_subchannel()
4703 ioinfo[irq] = (ioinfo_t *) in s390_validate_subchannel()
4707 if (!ioinfo[irq]) in s390_validate_subchannel()
4711 memset (ioinfo[irq], '\0', sizeof (ioinfo_t)); in s390_validate_subchannel()
4712 memcpy (&ioinfo[irq]->schib, p_init_schib, sizeof (schib_t)); in s390_validate_subchannel()
4720 ioinfo_head = ioinfo[irq]; in s390_validate_subchannel()
4721 ioinfo_tail = ioinfo[irq]; in s390_validate_subchannel()
4723 ioinfo[irq]->next = ioinfo_head; in s390_validate_subchannel()
4724 ioinfo_head->prev = ioinfo[irq]; in s390_validate_subchannel()
4725 ioinfo_head = ioinfo[irq]; in s390_validate_subchannel()
4727 ioinfo_tail->next = ioinfo[irq]; in s390_validate_subchannel()
4728 ioinfo[irq]->prev = ioinfo_tail; in s390_validate_subchannel()
4729 ioinfo_tail = ioinfo[irq]; in s390_validate_subchannel()
4737 ioinfo[irq]->next = pi->next; in s390_validate_subchannel()
4738 ioinfo[irq]->prev = pi; in s390_validate_subchannel()
4739 pi->next->prev = ioinfo[irq]; in s390_validate_subchannel()
4740 pi->next = ioinfo[irq]; in s390_validate_subchannel()
4749 ioinfo[irq]->irq = irq; in s390_validate_subchannel()
4750 ioinfo[irq]->st = ioinfo[irq]->schib.pmcw.st; in s390_validate_subchannel()
4751 if (ioinfo[irq]->st) in s390_validate_subchannel()
4754 ioinfo[irq]->opm = ioinfo[irq]->schib.pmcw.pim in s390_validate_subchannel()
4755 & ioinfo[irq]->schib.pmcw.pam & ioinfo[irq]->schib.pmcw.pom; in s390_validate_subchannel()
4758 if (ioinfo[irq]->opm) { in s390_validate_subchannel()
4761 if (ioinfo[irq]->opm & mask) { in s390_validate_subchannel()
4763 (ioinfo[irq]->schib.pmcw.chpid[chp], in s390_validate_subchannel()
4766 ioinfo[irq]->opm &= ~mask; in s390_validate_subchannel()
4770 clear_bit(ioinfo[irq]->schib.pmcw.chpid[chp], in s390_validate_subchannel()
4782 ioinfo[irq]->schib.pmcw.dev, in s390_validate_subchannel()
4784 ioinfo[irq]->schib.pmcw.pim, in s390_validate_subchannel()
4785 ioinfo[irq]->schib.pmcw.pam, in s390_validate_subchannel()
4786 ioinfo[irq]->schib.pmcw.pom); in s390_validate_subchannel()
4794 ioinfo[irq]->schib.pmcw.dev, in s390_validate_subchannel()
4796 ioinfo[irq]->schib.pmcw.pim, in s390_validate_subchannel()
4797 ioinfo[irq]->schib.pmcw.pam, in s390_validate_subchannel()
4798 ioinfo[irq]->schib.pmcw.pom); in s390_validate_subchannel()
4803 if (!ioinfo[irq]->ui.flags.ready) { in s390_validate_subchannel()
4804 ioinfo[irq]->nopfunc = NULL; in s390_validate_subchannel()
4805 ioinfo[irq]->ui.flags.busy = 0; in s390_validate_subchannel()
4806 ioinfo[irq]->ui.flags.dval = 1; in s390_validate_subchannel()
4807 ioinfo[irq]->devstat.intparm = 0; in s390_validate_subchannel()
4810 ioinfo[irq]->devstat.devno = ioinfo[irq]->schib.pmcw.dev; in s390_validate_subchannel()
4811 ioinfo[irq]->devno = ioinfo[irq]->schib.pmcw.dev; in s390_validate_subchannel()
4816 if (ioinfo[irq]->opm) { in s390_validate_subchannel()
4828 ioinfo[irq]->schib.pmcw.isc = 3; /* could be smth. else */ in s390_validate_subchannel()
4829 ioinfo[irq]->schib.pmcw.csense = 1; /* concurrent sense */ in s390_validate_subchannel()
4830 ioinfo[irq]->schib.pmcw.ena = enable; in s390_validate_subchannel()
4831 ioinfo[irq]->schib.pmcw.intparm = ioinfo[irq]->schib.pmcw.dev; in s390_validate_subchannel()
4833 if ((ioinfo[irq]->opm != 0x80) in s390_validate_subchannel()
4834 && (ioinfo[irq]->opm != 0x40) in s390_validate_subchannel()
4835 && (ioinfo[irq]->opm != 0x20) in s390_validate_subchannel()
4836 && (ioinfo[irq]->opm != 0x10) in s390_validate_subchannel()
4837 && (ioinfo[irq]->opm != 0x08) in s390_validate_subchannel()
4838 && (ioinfo[irq]->opm != 0x04) in s390_validate_subchannel()
4839 && (ioinfo[irq]->opm != 0x02) in s390_validate_subchannel()
4840 && (ioinfo[irq]->opm != 0x01)) { in s390_validate_subchannel()
4841 ioinfo[irq]->schib.pmcw.mp = 1; /* multipath mode */ in s390_validate_subchannel()
4848 ccode2 = msch_err (irq, &ioinfo[irq]->schib); in s390_validate_subchannel()
4857 ioinfo[irq]->ui.flags.oper = 1; in s390_validate_subchannel()
4858 ioinfo[irq]->ui.flags.consns = 1; in s390_validate_subchannel()
4871 ioinfo[irq]->ui.flags.s_pend = 1; in s390_validate_subchannel()
4873 ioinfo[irq]->ui.flags.s_pend = 0; in s390_validate_subchannel()
4885 ioinfo[irq]->ui.flags.oper = 0; in s390_validate_subchannel()
4892 ioinfo[irq]->ui.flags.oper = 0; in s390_validate_subchannel()
4906 ioinfo[irq]->schib.pmcw.csense = 0; in s390_validate_subchannel()
4909 msch_err (irq, &ioinfo[irq]->schib); in s390_validate_subchannel()
4920 ioinfo[irq]->ui.flags.oper = 0; in s390_validate_subchannel()
4923 ioinfo[irq]->ui.flags.oper = 1; in s390_validate_subchannel()
4924 ioinfo[irq]->ui. in s390_validate_subchannel()
4937 ioinfo[irq]->ui.flags.oper = 0; in s390_validate_subchannel()
4963 ioinfo[irq]->ui.flags.oper = 0; in s390_validate_subchannel()
5007 if (ioinfo[irq]->ui.flags.oper == 0) { in s390_SenseID()
5012 if (ioinfo[irq]->ui.flags.unfriendly) { in s390_SenseID()
5022 if (!ioinfo[irq]->ui.flags.ready) { in s390_SenseID()
5041 pdevstat = ioinfo[irq]->irq_desc.dev_id; in s390_SenseID()
5065 if (ioinfo[irq]->schib.pmcw.pim != 0x80) { in s390_SenseID()
5086 domask = ioinfo[irq]->opm & pathmask; in s390_SenseID()
5126 if (ioinfo[irq]->schib.pmcw.pim != 0x80) { in s390_SenseID()
5149 ioinfo[irq]->ui.flags.esid = 1; in s390_SenseID()
5167 ioinfo[irq]->schib.pmcw.dev, irq, in s390_SenseID()
5175 ioinfo in s390_SenseID()
5192 ioinfo[irq]->schib.pmcw.dev, in s390_SenseID()
5200 ioinfo[irq]->schib.pmcw.dev, in s390_SenseID()
5215 ioinfo[irq]->schib.pmcw.dev, in s390_SenseID()
5237 ioinfo[irq]-> in s390_SenseID()
5270 ioinfo[irq]->schib.pmcw.dev, irq); in s390_SenseID()
5278 ioinfo[irq]->schib.pmcw.dev, irq); in s390_SenseID()
5281 ioinfo[irq]->opm &= ~domask; in s390_SenseID()
5291 ioinfo[irq]->schib.pmcw.dev, in s390_SenseID()
5300 ioinfo[irq]->schib.pmcw.dev, irq, in s390_SenseID()
5366 VM_virtual_device_info (ioinfo[irq]->schib.pmcw.dev, sid); in s390_SenseID()
5380 ioinfo[irq]->schib.pmcw.dev, irq); in s390_SenseID()
5384 ioinfo[irq]->schib.pmcw.dev, irq); in s390_SenseID()
5385 ioinfo[irq]->ui.flags.unknown = 1; in s390_SenseID()
5392 if (!ioinfo[irq]->ui.flags.unknown) { in s390_SenseID()
5399 ioinfo[irq]->schib.pmcw.dev, in s390_SenseID()
5406 ioinfo[irq]->schib. in s390_SenseID()
5417 ioinfo[irq]->schib.pmcw.dev, in s390_SenseID()
5422 ioinfo[irq]->schib. in s390_SenseID()
5430 if (!ioinfo[irq]->ui.flags.unknown) in s390_SenseID()
5443 cc = stsch (irq, &ioinfo[irq]->schib); in s390_SetMultiPath()
5446 ioinfo[irq]->schib.pmcw.mp = 1; /* multipath mode */ in s390_SetMultiPath()
5448 cc = msch (irq, &ioinfo[irq]->schib); in s390_SetMultiPath()
5469 dev_path = usermask ? usermask : ioinfo[irq]->opm; in s390_do_path_verification()
5471 if (ioinfo[irq]->ui.flags.pgid == 0) { in s390_do_path_verification()
5472 memcpy (&ioinfo[irq]->pgid, global_pgid, sizeof (pgid_t)); in s390_do_path_verification()
5473 ioinfo[irq]->ui.flags.pgid = 1; in s390_do_path_verification()
5483 if (!test_bit(ioinfo[irq]->schib.pmcw.chpid[i], in s390_do_path_verification()
5509 memcpy (&ioinfo[irq]->pgid, in s390_do_path_verification()
5515 ioinfo[irq]->ui.flags.pgid_supp = 0; in s390_do_path_verification()
5521 irq, ioinfo[irq]->schib.pmcw.dev); in s390_do_path_verification()
5527 ioinfo[irq]->schib.pmcw.dev); in s390_do_path_verification()
5534 ioinfo[irq]->schib.pmcw.dev); in s390_do_path_verification()
5539 ioinfo[irq]->schib.pmcw.dev); in s390_do_path_verification()
5541 ioinfo[irq]->ui.flags.pgid_supp = 0; in s390_do_path_verification()
5547 ioinfo[irq]->schib.pmcw.dev); in s390_do_path_verification()
5551 ioinfo[irq]->schib.pmcw.dev); in s390_do_path_verification()
5553 ioinfo[irq]->ui.flags.pgid_supp = 0; in s390_do_path_verification()
5572 irq, ioinfo[irq]->schib.pmcw.dev); in s390_do_path_verification()
5576 irq, ioinfo[irq]->schib.pmcw.dev); in s390_do_path_verification()
5583 if (!ioinfo[irq]->ui.flags.noio) { in s390_do_path_verification()
5591 irq, ret, ioinfo[irq]->schib.pmcw.dev); in s390_do_path_verification()
5595 irq, ret, ioinfo[irq]->schib.pmcw.dev); in s390_do_path_verification()
5597 ioinfo[irq]->ui.flags.pgid_supp = 0; in s390_do_path_verification()
5600 if (stsch(irq, &ioinfo[irq]->schib) != 0) in s390_do_path_verification()
5609 ioinfo[irq]->opm = ioinfo[irq]->schib.pmcw.pim & in s390_do_path_verification()
5610 ioinfo[irq]->schib.pmcw.pam & in s390_do_path_verification()
5611 ioinfo[irq]->schib.pmcw.pom; in s390_do_path_verification()
5614 if (ioinfo[irq]->opm) { in s390_do_path_verification()
5617 if ((ioinfo[irq]->opm & mask) && in s390_do_path_verification()
5618 (!test_bit(ioinfo[irq]->schib.pmcw.chpid[i], in s390_do_path_verification()
5621 ioinfo[irq]->opm &= ~mask; in s390_do_path_verification()
5626 ioinfo[irq]->ui.flags.noio = 0; in s390_do_path_verification()
5629 if (ioinfo[irq]->opm != 0) { in s390_do_path_verification()
5631 pdevreg = s390_search_devreg(ioinfo[irq]); in s390_do_path_verification()
5668 if (ioinfo[irq]->st) in s390_DevicePathVerification()
5672 old_opm = ioinfo[irq]->opm; in s390_DevicePathVerification()
5674 ccode = stsch (irq, &(ioinfo[irq]->schib)); in s390_DevicePathVerification()
5679 if (ioinfo[irq]->schib.pmcw.pim == 0x80) { in s390_DevicePathVerification()
5683 ioinfo[irq]->ui.flags.pgid_supp = 0; in s390_DevicePathVerification()
5685 ioinfo[irq]->ui.flags.noio = 0; in s390_DevicePathVerification()
5691 if (!test_bit(ioinfo[irq]->schib.pmcw.chpid[0], in s390_DevicePathVerification()
5694 ioinfo[irq]->opm = 0; in s390_DevicePathVerification()
5695 ioinfo[irq]->ui.flags.oper = 0; in s390_DevicePathVerification()
5700 if (ioinfo[irq]->nopfunc) { in s390_DevicePathVerification()
5701 if (ioinfo[irq]->ui.flags.notacccap) in s390_DevicePathVerification()
5702 ioinfo[irq]->nopfunc(irq, in s390_DevicePathVerification()
5706 ioinfo[irq]->nopfunc; in s390_DevicePathVerification()
5711 (ioinfo[irq]->devno); in s390_DevicePathVerification()
5714 ioinfo[irq]->irq_desc.dev_id); in s390_DevicePathVerification()
5722 ioinfo[irq]->opm = ioinfo[irq]->schib.pmcw.pim in s390_DevicePathVerification()
5723 & ioinfo[irq]->schib.pmcw.pam in s390_DevicePathVerification()
5724 & ioinfo[irq]->schib.pmcw.pom; in s390_DevicePathVerification()
5726 if (ioinfo[irq]->opm) { in s390_DevicePathVerification()
5728 ioinfo[irq]->ui.flags.oper = 1; in s390_DevicePathVerification()
5729 pdevreg = s390_search_devreg(ioinfo[irq]); in s390_DevicePathVerification()
5742 ioinfo[irq]->opm = ioinfo[irq]->schib.pmcw.pim in s390_DevicePathVerification()
5743 & ioinfo[irq]->schib.pmcw.pam & ioinfo[irq]->schib.pmcw.pom; in s390_DevicePathVerification()
5746 if (ioinfo[irq]->opm) { in s390_DevicePathVerification()
5749 if ((ioinfo[irq]->opm & mask) in s390_DevicePathVerification()
5750 &&(!test_bit(ioinfo[irq]->schib.pmcw.chpid[chp], in s390_DevicePathVerification()
5753 ioinfo[irq]->opm &= ~mask; in s390_DevicePathVerification()
5759 if (ioinfo[irq]->ui.flags.pgid_supp == 0) { in s390_DevicePathVerification()
5761 if (ioinfo[irq]->opm == 0) in s390_DevicePathVerification()
5764 ioinfo[irq]->ui.flags.oper = 1; in s390_DevicePathVerification()
5765 ioinfo[irq]->ui.flags.noio = 0; in s390_DevicePathVerification()
5767 pdevreg = s390_search_devreg(ioinfo[irq]); in s390_DevicePathVerification()
5775 if (ioinfo[irq]->ui.flags.ready) in s390_DevicePathVerification()
5786 atomic_set (&ioinfo[irq]->pver_pending, 0); in s390_kick_path_verification()
5793 ioinfo[irq]->ui.flags.killio = 0; in s390_kick_path_verification()
5802 if (atomic_compare_and_swap (0, 1, &ioinfo[irq]->pver_pending)) { in s390_schedule_path_verification()
5811 INIT_LIST_HEAD (&ioinfo[irq]->pver_bh.list); in s390_schedule_path_verification()
5812 ioinfo[irq]->pver_bh.sync = 0; in s390_schedule_path_verification()
5813 ioinfo[irq]->pver_bh.routine = (void*) (void*) s390_kick_path_verification; in s390_schedule_path_verification()
5814 ioinfo[irq]->pver_bh.data = (void*) irq; in s390_schedule_path_verification()
5815 queue_task (&ioinfo[irq]->pver_bh, &tq_immediate); in s390_schedule_path_verification()
5841 if (ioinfo[irq]->ui.flags.oper == 0) { in s390_SetPGID()
5846 if (ioinfo[irq]->ui.flags.unfriendly) { in s390_SetPGID()
5854 if (!ioinfo[irq]->ui.flags.ready) { in s390_SetPGID()
5868 pdevstat = ioinfo[irq]->irq_desc.dev_id; in s390_SetPGID()
5896 spid_ccw[1].cda = (__u32) virt_to_phys (&ioinfo[irq]->pgid); in s390_SetPGID()
5900 ioinfo[irq]->pgid.inf.fc = SPID_FUNC_MULTI_PATH | SPID_FUNC_ESTABLISH; in s390_SetPGID()
5924 ioinfo[irq]->schib.pmcw.dev, in s390_SetPGID()
5933 ioinfo[irq]->schib.pmcw. in s390_SetPGID()
5962 virt_to_phys (&ioinfo[irq]->pgid); in s390_SetPGID()
5968 ioinfo[irq]->pgid.inf.fc = in s390_SetPGID()
5987 ioinfo[irq]->schib.pmcw. in s390_SetPGID()
6014 ioinfo[irq]->schib. in s390_SetPGID()
6049 ioinfo[irq]->schib.pmcw. in s390_SetPGID()
6057 ioinfo[irq]->schib. in s390_SetPGID()
6063 ioinfo[irq]->opm &= ~lpm; in s390_SetPGID()
6088 ioinfo[irq]->schib.pmcw.dev, irq); in s390_SetPGID()
6092 ioinfo[irq]->schib.pmcw.dev, irq); in s390_SetPGID()
6110 ioinfo[irq]->schib.pmcw. in s390_SetPGID()
6118 ioinfo[irq]->schib. in s390_SetPGID()
6124 ioinfo[irq]->opm &= ~lpm; in s390_SetPGID()
6126 if (ioinfo[irq]->opm != 0) in s390_SetPGID()
6176 if (ioinfo[irq]->ui.flags.oper == 0) { in s390_SensePGID()
6184 if (!ioinfo[irq]->ui.flags.ready) { in s390_SensePGID()
6199 pdevstat = ioinfo[irq]->irq_desc.dev_id; in s390_SensePGID()
6209 ioinfo[irq]->ui.flags.unfriendly = 0; /* assume it's friendly... */ in s390_SensePGID()
6277 ioinfo[irq]->schib.pmcw. in s390_SensePGID()
6304 ioinfo[irq]->schib. in s390_SensePGID()
6337 ioinfo[irq]->schib.pmcw. in s390_SensePGID()
6345 ioinfo[irq]->schib. in s390_SensePGID()
6351 ioinfo[irq]->opm &= ~lpm; in s390_SensePGID()
6369 ioinfo[irq]->schib.pmcw.dev, in s390_SensePGID()
6376 ioinfo[irq]->schib. in s390_SensePGID()
6380 ioinfo[irq]->ui.flags.unfriendly = 1; in s390_SensePGID()
6385 ioinfo[irq]->ui.flags.unfriendly = 0; in s390_SensePGID()
6395 ioinfo[irq]->schib.pmcw.dev, in s390_SensePGID()
6402 ioinfo[irq]->schib.pmcw.dev, in s390_SensePGID()
6415 ioinfo[irq]->schib.pmcw.dev, in s390_SensePGID()
6423 ioinfo[irq]->schib.pmcw. in s390_SensePGID()
6429 ioinfo[irq]->schib.pmcw.dev, irq_ret); in s390_SensePGID()
6434 ioinfo[irq]->schib.pmcw.dev, irq_ret); in s390_SensePGID()
6449 ioinfo[irq]->schib.pmcw. in s390_SensePGID()
6457 ioinfo[irq]->schib. in s390_SensePGID()
6463 ioinfo[irq]->opm &= ~lpm; in s390_SensePGID()
6465 if (ioinfo[irq]->opm != 0) in s390_SensePGID()
6507 if (ioinfo[irq] != INVALID_STORAGE_AREA) { in s390_process_subchannel_source()
6511 if (!ioinfo[irq]->st) { in s390_process_subchannel_source()
6512 dev_oper = ioinfo[irq]->ui.flags.oper; in s390_process_subchannel_source()
6514 if (ioinfo[irq]->ui.flags.dval) in s390_process_subchannel_source()
6515 dev_no = ioinfo[irq]->devno; in s390_process_subchannel_source()
6517 is_owned = ioinfo[irq]->ui.flags.ready; in s390_process_subchannel_source()
6544 if (ioinfo[irq] != INVALID_STORAGE_AREA) { in s390_process_subchannel_source()
6548 "%08lX\n", (unsigned long) ioinfo[irq] in s390_process_subchannel_source()
6550 "%08X\n", (unsigned) ioinfo[irq] in s390_process_subchannel_source()
6556 (unsigned long)ioinfo[irq]); in s390_process_subchannel_source()
6559 (unsigned)ioinfo[irq]); in s390_process_subchannel_source()
6562 if (ioinfo[irq]->st) in s390_process_subchannel_source()
6565 if (ioinfo[irq]->ui.flags.oper == 0) { in s390_process_subchannel_source()
6566 not_oper_handler_func_t nopfunc = ioinfo[irq]->nopfunc; in s390_process_subchannel_source()
6579 free_irq (irq, ioinfo[irq]->irq_desc.dev_id); in s390_process_subchannel_source()
6606 pdevreg = s390_search_devreg (ioinfo[irq]); in s390_process_subchannel_source()
6617 (ioinfo[irq]->devno); in s390_process_subchannel_source()
6625 else if ((ioinfo[irq]->devno != dev_no) in s390_process_subchannel_source()
6626 && (ioinfo[irq]->nopfunc != NULL)) { in s390_process_subchannel_source()
6628 int devno_old = ioinfo[irq]->devno; in s390_process_subchannel_source()
6630 ioinfo[irq]->nopfunc (irq, DEVSTAT_REVALIDATE); in s390_process_subchannel_source()
6636 (ioinfo[irq]->devno); in s390_process_subchannel_source()
6724 if (ioinfo[irq] == INVALID_STORAGE_AREA) in chsc_get_sch_desc_irq()
6728 ioinfo[irq]->ssd_info.valid = 1; in chsc_get_sch_desc_irq()
6729 ioinfo[irq]->ssd_info.type = 0; in chsc_get_sch_desc_irq()
6757 ioinfo[irq]->ssd_info.chpid[j] = in chsc_get_sch_desc_irq()
6760 ioinfo[irq]->ssd_info.fla[j] = in chsc_get_sch_desc_irq()
6782 if (ioinfo[irq] == INVALID_STORAGE_AREA) in chsc_get_sch_desc_irq()
6786 ioinfo[irq]->ssd_info.valid = 1; in chsc_get_sch_desc_irq()
6787 ioinfo[irq]->ssd_info.type = 1; in chsc_get_sch_desc_irq()
6805 if (ioinfo[irq] == INVALID_STORAGE_AREA) in chsc_get_sch_desc_irq()
6809 ioinfo[irq]->ssd_info.valid = 1; in chsc_get_sch_desc_irq()
6810 ioinfo[irq]->ssd_info.type = 2; in chsc_get_sch_desc_irq()
6837 ioinfo[irq]->ssd_info.chpid[j] = in chsc_get_sch_desc_irq()
6840 ioinfo[irq]->ssd_info.fla[j] = in chsc_get_sch_desc_irq()
6862 if (ioinfo[irq] == INVALID_STORAGE_AREA) in chsc_get_sch_desc_irq()
6866 ioinfo[irq]->ssd_info.valid = 1; in chsc_get_sch_desc_irq()
6867 ioinfo[irq]->ssd_info.type = 3; in chsc_get_sch_desc_irq()
6953 schib_t *schib = &ioinfo[irq]->schib; in __check_for_io_and_kill()
6957 if ((ioinfo[irq]->opm != mask) || in __check_for_io_and_kill()
6966 ioinfo[irq]->ui.flags.noio = 0; in __check_for_io_and_kill()
6967 ioinfo[irq]->ui.flags.killio = 1; in __check_for_io_and_kill()
6976 ioinfo[irq]->ui.flags.killio = 0; in __check_for_io_and_kill()
6979 (ioinfo[irq]->nopfunc)) { in __check_for_io_and_kill()
6980 ioinfo[irq]->ui.flags.oper = 0; in __check_for_io_and_kill()
6981 ioinfo[irq]->nopfunc(irq, in __check_for_io_and_kill()
6988 ioinfo[irq]->ui.flags.noio = 1; in __check_for_io_and_kill()
7018 ioinfo[irq]->ui.flags.noio = 0; in __check_for_io_and_kill()
7019 ioinfo[irq]->ui.flags.killio = 1; in __check_for_io_and_kill()
7028 ioinfo[irq]->ui.flags.killio = 0; in __check_for_io_and_kill()
7031 (ioinfo[irq]->nopfunc)) { in __check_for_io_and_kill()
7032 ioinfo[irq]->nopfunc(irq, in __check_for_io_and_kill()
7034 ioinfo[irq]->ui.flags.oper = 0; in __check_for_io_and_kill()
7040 ioinfo[irq]->ui.flags.noio = 1; in __check_for_io_and_kill()
7045 if (ioinfo[irq]->nopfunc) { in __check_for_io_and_kill()
7046 ioinfo[irq]->ui.flags.oper = 0; in __check_for_io_and_kill()
7047 ioinfo[irq]->nopfunc(irq, in __check_for_io_and_kill()
7084 if (ioinfo[irq] == INVALID_STORAGE_AREA) in s390_do_chpid_processing()
7086 if (ioinfo[irq]->st) in s390_do_chpid_processing()
7088 schib = &ioinfo[irq]->schib; in s390_do_chpid_processing()
7098 ioinfo[irq]->ui.flags.oper = 0; in s390_do_chpid_processing()
7099 if (ioinfo[irq]->nopfunc) in s390_do_chpid_processing()
7100 ioinfo[irq]->nopfunc(irq, DEVSTAT_DEVICE_GONE); in s390_do_chpid_processing()
7106 ioinfo[irq]->ui.flags.noio = 1; in s390_do_chpid_processing()
7109 if (ioinfo[irq]->ui.flags.busy) { in s390_do_chpid_processing()
7126 if (ioinfo[irq]->ui.flags.ready && in s390_do_chpid_processing()
7128 ioinfo[irq]->nopfunc && in s390_do_chpid_processing()
7129 ioinfo[irq]->ui.flags.notacccap) { in s390_do_chpid_processing()
7131 ioinfo[irq]->nopfunc(irq, DEVSTAT_NOT_ACC_ERR); in s390_do_chpid_processing()
7133 ioinfo[irq]->nopfunc(irq, DEVSTAT_NOT_ACC); in s390_do_chpid_processing()
7136 ioinfo[irq]->opm &= ~mask; in s390_do_chpid_processing()
7147 if (ioinfo[irq]->ui.flags.ready) in s390_do_chpid_processing()
7150 ioinfo[irq]->ui.flags.noio = 0; in s390_do_chpid_processing()
7151 ioinfo[irq]->ui.flags.killio = 0; in s390_do_chpid_processing()
7223 if((ioinfo[irq] != INVALID_STORAGE_AREA) in s390_do_res_acc_processing()
7224 && (ioinfo[irq]->st != 0)) in s390_do_res_acc_processing()
7227 if (ioinfo[irq] == INVALID_STORAGE_AREA) { in s390_do_res_acc_processing()
7257 if ((!ioinfo[irq]->ssd_info.valid) || in s390_do_res_acc_processing()
7258 (ioinfo[irq]->ssd_info.chpid[chp] != chpid)) in s390_do_res_acc_processing()
7262 if (ioinfo[irq]->ui.flags.ready && in s390_do_res_acc_processing()
7263 ioinfo[irq]->schib.pmcw.pim != 0x80 && in s390_do_res_acc_processing()
7264 ioinfo[irq]->nopfunc && in s390_do_res_acc_processing()
7265 ioinfo[irq]->ui.flags.notacccap) in s390_do_res_acc_processing()
7266 ioinfo[irq]->nopfunc(irq, DEVSTAT_NOT_ACC); in s390_do_res_acc_processing()
7268 ioinfo[irq]->ui.flags.noio = 1; in s390_do_res_acc_processing()
7271 if (ioinfo[irq]->ui.flags.busy) in s390_do_res_acc_processing()
7275 if (ioinfo[irq]->ui.flags.ready) { in s390_do_res_acc_processing()
7278 ioinfo[irq]->ui.flags.noio = 0; in s390_do_res_acc_processing()
7311 if (ioinfo[irq] == INVALID_STORAGE_AREA) { in s390_do_res_acc_processing()
7326 if (ioinfo[irq]->st != 0) in s390_do_res_acc_processing()
7334 if ((ioinfo[irq]->ssd_info.chpid[j] != chpid) || in s390_do_res_acc_processing()
7335 ((ioinfo[irq]->ssd_info.fla[j]&fla_mask) != fla)) in s390_do_res_acc_processing()
7339 if (ioinfo[irq]->ui.flags.ready && in s390_do_res_acc_processing()
7340 ioinfo[irq]->schib.pmcw.pim != 0x80 && in s390_do_res_acc_processing()
7341 ioinfo[irq]->nopfunc && in s390_do_res_acc_processing()
7342 ioinfo[irq]->ui.flags.notacccap) in s390_do_res_acc_processing()
7343 ioinfo[irq]->nopfunc(irq, DEVSTAT_NOT_ACC); in s390_do_res_acc_processing()
7345 ioinfo[irq]->ui.flags.noio = 1; in s390_do_res_acc_processing()
7348 if (ioinfo[irq]->ui.flags.busy) in s390_do_res_acc_processing()
7352 if (ioinfo[irq]->ui.flags.ready) { in s390_do_res_acc_processing()
7355 ioinfo[irq]->ui.flags.noio = 0; in s390_do_res_acc_processing()
7661 schib_t *schib = &ioinfo[irq]->schib; in __process_chp_gone()
7673 ioinfo[irq]->ui.flags.oper = 0; in __process_chp_gone()
7674 if (ioinfo[irq]->nopfunc) in __process_chp_gone()
7675 ioinfo[irq]->nopfunc(irq, DEVSTAT_DEVICE_GONE); in __process_chp_gone()
7681 ioinfo[irq]->ui.flags.noio = 1; in __process_chp_gone()
7684 if (ioinfo[irq]->ui.flags.busy) { in __process_chp_gone()
7697 if (ioinfo[irq]->ui.flags.ready && in __process_chp_gone()
7699 ioinfo[irq]->nopfunc && in __process_chp_gone()
7700 ioinfo[irq]->ui.flags.notacccap) { in __process_chp_gone()
7702 ioinfo[irq]->nopfunc(irq, DEVSTAT_NOT_ACC_ERR); in __process_chp_gone()
7704 ioinfo[irq]->nopfunc(irq, DEVSTAT_NOT_ACC); in __process_chp_gone()
7710 if (ioinfo[irq]->ui.flags.ready) { in __process_chp_gone()
7713 ioinfo[irq]->ui.flags.noio = 0; in __process_chp_gone()
7714 ioinfo[irq]->ui.flags.killio = 0; in __process_chp_gone()
7724 schib_t *schib = &ioinfo[irq]->schib; in __process_chp_come()
7733 if (ioinfo[irq]->ui.flags.ready && in __process_chp_come()
7735 ioinfo[irq]->nopfunc && in __process_chp_come()
7736 ioinfo[irq]->ui.flags.notacccap) in __process_chp_come()
7737 ioinfo[irq]->nopfunc(irq, DEVSTAT_NOT_ACC); in __process_chp_come()
7739 ioinfo[irq]->ui.flags.noio = 1; in __process_chp_come()
7742 if (ioinfo[irq]->ui.flags.busy) in __process_chp_come()
7746 if (ioinfo[irq]->ui.flags.ready) in __process_chp_come()
7749 ioinfo[irq]->ui.flags.noio = 0; in __process_chp_come()
7777 if ((ioinfo[irq] == INVALID_STORAGE_AREA) in s390_process_chp_source()
7778 || (ioinfo[irq]->st != 0)) in s390_process_chp_source()
7788 if (ioinfo[irq] == INVALID_STORAGE_AREA) { in s390_process_chp_source()
7801 } else if (ioinfo[irq]->st == 0) { in s390_process_chp_source()
7802 ret = stsch(irq, &ioinfo[irq]->schib); in s390_process_chp_source()
7946 free_irq (i, ioinfo[i]->irq_desc.dev_id); in reipl()
8085 schib_t *schib = &ioinfo[irq]->schib; in __vary_chpid_offline()
8093 if (ioinfo[irq]->ssd_info.chpid[i] != chpid) in __vary_chpid_offline()
8098 ioinfo[irq]->ui.flags.noio = 1; in __vary_chpid_offline()
8101 if (ioinfo[irq]->ui.flags.busy) { in __vary_chpid_offline()
8109 if (ioinfo[irq]->ui.flags.ready && in __vary_chpid_offline()
8111 ioinfo[irq]->nopfunc && in __vary_chpid_offline()
8112 ioinfo[irq]->ui.flags.notacccap) in __vary_chpid_offline()
8113 ioinfo[irq]->nopfunc(irq, DEVSTAT_NOT_ACC); in __vary_chpid_offline()
8118 if (ioinfo[irq]->ui.flags.ready) in __vary_chpid_offline()
8121 ioinfo[irq]->ui.flags.noio = 0; in __vary_chpid_offline()
8131 schib_t *schib = &ioinfo[irq]->schib; in __vary_chpid_online()
8140 if (ioinfo[irq]->ui.flags.ready && in __vary_chpid_online()
8142 ioinfo[irq]->nopfunc && in __vary_chpid_online()
8143 ioinfo[irq]->ui.flags.notacccap) in __vary_chpid_online()
8144 ioinfo[irq]->nopfunc(irq, DEVSTAT_NOT_ACC); in __vary_chpid_online()
8146 ioinfo[irq]->ui.flags.noio = 1; in __vary_chpid_online()
8149 if (ioinfo[irq]->ui.flags.busy) in __vary_chpid_online()
8208 if (ioinfo[irq] == INVALID_STORAGE_AREA) in s390_vary_chpid()
8211 if (ioinfo[irq]->st) in s390_vary_chpid()
8214 if (!ioinfo[irq]->ssd_info.valid) in s390_vary_chpid()
8275 if (!((ioinfo[i] == NULL) || (ioinfo[i] == INVALID_STORAGE_AREA) in chan_subch_open()
8276 || (ioinfo[i]->st )|| !(ioinfo[i]->ui.flags.oper))) { in chan_subch_open()
8279 ioinfo[i]->schib.pmcw.dev, i); in chan_subch_open()
8280 if (ioinfo[i]->senseid.dev_type != 0) { in chan_subch_open()
8283 ioinfo[i]->senseid.dev_type, in chan_subch_open()
8284 ioinfo[i]->senseid.dev_model, in chan_subch_open()
8285 ioinfo[i]->senseid.cu_type, in chan_subch_open()
8286 ioinfo[i]->senseid.cu_model); in chan_subch_open()
8290 ioinfo[i]->senseid.cu_type, in chan_subch_open()
8291 ioinfo[i]->senseid.cu_model); in chan_subch_open()
8293 if (ioinfo[i]->ui.flags.ready) { in chan_subch_open()
8300 ioinfo[i]->schib.pmcw.pim, in chan_subch_open()
8301 ioinfo[i]->schib.pmcw.pam, in chan_subch_open()
8302 ioinfo[i]->schib.pmcw.pom); in chan_subch_open()
8306 ioinfo[i]->schib.pmcw.chpid[j]); in chan_subch_open()
8472 if (ioinfo[irq]->senseid.dev_type == 0) { in cio_sensedata_entry_open()
8476 ioinfo[irq]->senseid. in cio_sensedata_entry_open()
8478 ioinfo[irq]->senseid. in cio_sensedata_entry_open()
8484 ioinfo[irq]->senseid. in cio_sensedata_entry_open()
8486 ioinfo[irq]->senseid. in cio_sensedata_entry_open()
8491 ioinfo[irq]->senseid. in cio_sensedata_entry_open()
8493 ioinfo[irq]->senseid. in cio_sensedata_entry_open()
8539 ioinfo[irq]->ui.flags. in cio_in_use_entry_open()
8589 ioinfo[irq]->schib.pmcw. in cio_chpid_entry_open()
8759 if (ioinfo[i] != INVALID_STORAGE_AREA) { in cio_procfs_device_purge()
8760 if (!ioinfo[i]->ui.flags.oper) in cio_procfs_device_purge()
8761 cio_procfs_device_remove (ioinfo[i]->devno); in cio_procfs_device_purge()
8791 if (ioinfo[irq] != INVALID_STORAGE_AREA) { in cio_procfs_create()
8792 if (ioinfo[irq]->ui.flags.oper) in cio_procfs_create()
8794 (ioinfo[irq]->devno) == -ENOMEM) { in cio_procfs_create()
9210 if (ioinfo[irq] == INVALID_STORAGE_AREA) in s390_get_schib()
9212 if (ioinfo[irq]->st) in s390_get_schib()
9214 return &ioinfo[irq]->schib; in s390_get_schib()
9223 ioinfo[irq]->private_data = data; in s390_set_private_data()
9233 if (ioinfo[irq] == INVALID_STORAGE_AREA) in s390_get_private_data()
9235 if (ioinfo[irq]->st) in s390_get_private_data()
9237 return ioinfo[irq]->private_data; in s390_get_private_data()
9244 EXPORT_SYMBOL (ioinfo);