/drivers/s390/cio/ |
D | device_status.c | 27 ccw_device_msg_control_check(struct ccw_device *cdev, struct irb *irb) in ccw_device_msg_control_check() argument 31 if (!scsw_is_valid_cstat(&irb->scsw) || in ccw_device_msg_control_check() 32 !(scsw_cstat(&irb->scsw) & (SCHN_STAT_CHN_DATA_CHK | in ccw_device_msg_control_check() 41 scsw_dstat(&irb->scsw), scsw_cstat(&irb->scsw)); in ccw_device_msg_control_check() 44 CIO_HEX_EVENT(0, irb, sizeof(struct irb)); in ccw_device_msg_control_check() 73 ccw_device_accumulate_ecw(struct ccw_device *cdev, struct irb *irb) in ccw_device_accumulate_ecw() argument 80 cdev->private->irb.scsw.cmd.ectl = 0; in ccw_device_accumulate_ecw() 81 if ((irb->scsw.cmd.stctl & SCSW_STCTL_ALERT_STATUS) && in ccw_device_accumulate_ecw() 82 !(irb->scsw.cmd.stctl & SCSW_STCTL_INTER_STATUS)) in ccw_device_accumulate_ecw() 83 cdev->private->irb.scsw.cmd.ectl = irb->scsw.cmd.ectl; in ccw_device_accumulate_ecw() [all …]
|
D | ccwreq.c | 65 memset(&cdev->private->irb, 0, sizeof(struct irb)); in ccwreq_stop() 88 memset(&cdev->private->irb, 0, sizeof(struct irb)); in ccwreq_do() 169 static enum io_status ccwreq_status(struct ccw_device *cdev, struct irb *lcirb) in ccwreq_status() 171 struct irb *irb = &cdev->private->irb; in ccwreq_status() local 172 struct cmd_scsw *scsw = &irb->scsw.cmd; in ccwreq_status() 185 if (irb->esw.esw0.erw.cons) { in ccwreq_status() 189 CIO_HEX_EVENT(2, &cdev->private->irb.ecw, SENSE_MAX_COUNT); in ccwreq_status() 191 if (irb->ecw[0] & SNS0_CMD_REJECT) in ccwreq_status() 255 struct irb *irb = (struct irb *)&S390_lowcore.irb; in ccw_request_handler() local 261 status = ccwreq_status(cdev, irb); in ccw_request_handler() [all …]
|
D | device_fsm.c | 384 memset(&cdev->private->irb, 0, sizeof(struct irb)); in ccw_device_done() 498 static void create_fake_irb(struct irb *irb, int type) in create_fake_irb() argument 500 memset(irb, 0, sizeof(*irb)); in create_fake_irb() 502 struct cmd_scsw *scsw = &irb->scsw.cmd; in create_fake_irb() 508 struct tm_scsw *scsw = &irb->scsw.tm; in create_fake_irb() 540 create_fake_irb(&cdev->private->irb, in ccw_device_verify_done() 545 &cdev->private->irb); in ccw_device_verify_done() 546 memset(&cdev->private->irb, 0, sizeof(struct irb)); in ccw_device_verify_done() 702 (scsw_stctl(&cdev->private->irb.scsw) & SCSW_STCTL_STATUS_PEND)) { in ccw_device_online_verify() 739 struct irb *irb; in ccw_device_irq() local [all …]
|
D | cio.c | 430 struct irb irb; in cio_enable_subchannel() local 431 if (tsch(sch->schid, &irb) != 0) in cio_enable_subchannel() 463 struct irb irb; in cio_disable_subchannel() local 464 if (tsch(sch->schid, &irb) != 0) in cio_disable_subchannel() 573 struct irb *irb; in do_IRQ() local 586 irb = (struct irb *)&S390_lowcore.irb; in do_IRQ() 597 tsch(tpi_info->schid, irb); in do_IRQ() 602 if (tsch(tpi_info->schid, irb) == 0) { in do_IRQ() 604 memcpy (&sch->schib.scsw, &irb->scsw, in do_IRQ() 605 sizeof (irb->scsw)); in do_IRQ() [all …]
|
D | eadm_sch.c | 136 struct irb *irb = (struct irb *)&S390_lowcore.irb; in eadm_subchannel_irq() local 140 EADM_LOG_HEX(6, irb, sizeof(*irb)); in eadm_subchannel_irq() 145 && scsw->eswf == 1 && irb->esw.eadm.erw.r) in eadm_subchannel_irq() 155 EADM_LOG_HEX(1, irb, sizeof(*irb)); in eadm_subchannel_irq()
|
D | chsc_sch.c | 57 struct irb *irb = (struct irb *)&S390_lowcore.irb; in chsc_subchannel_irq() local 60 CHSC_LOG_HEX(4, irb, sizeof(*irb)); in chsc_subchannel_irq() 70 memcpy(&request->irb, irb, sizeof(*irb)); in chsc_subchannel_irq() 303 if (!(scsw_stctl(&request->irb.scsw) & SCSW_STCTL_STATUS_PEND)) in chsc_examine_irb() 305 backed_up = scsw_cstat(&request->irb.scsw) & SCHN_STAT_CHAIN_CHECK; in chsc_examine_irb() 306 request->irb.scsw.cmd.cstat &= ~SCHN_STAT_CHAIN_CHECK; in chsc_examine_irb() 307 if (scsw_cstat(&request->irb.scsw) == 0) in chsc_examine_irb() 311 if (scsw_cstat(&request->irb.scsw) & SCHN_STAT_PROG_CHECK) in chsc_examine_irb() 313 if (scsw_cstat(&request->irb.scsw) & SCHN_STAT_PROT_CHECK) in chsc_examine_irb() 315 if (scsw_cstat(&request->irb.scsw) & SCHN_STAT_CHN_DATA_CHK) in chsc_examine_irb() [all …]
|
D | device.h | 104 void ccw_device_accumulate_irb(struct ccw_device *, struct irb *); 105 void ccw_device_accumulate_basic_sense(struct ccw_device *, struct irb *); 106 int ccw_device_accumulate_and_sense(struct ccw_device *, struct irb *); 107 int ccw_device_do_sense(struct ccw_device *, struct irb *);
|
D | chsc_sch.h | 6 struct irb irb; member
|
D | io_sch.h | 77 enum io_status (*filter)(struct ccw_device *, void *, struct irb *, 157 struct irb irb; /* device status */ member
|
/drivers/s390/char/ |
D | tape_3590.c | 780 struct irb *irb, int rc) in tape_3590_erp_failed() argument 784 tape_dump_sense_dbf(device, request, irb); in tape_3590_erp_failed() 793 struct irb *irb) in tape_3590_erp_retry() argument 796 tape_dump_sense_dbf(device, request, irb); in tape_3590_erp_retry() 804 tape_3590_unsolicited_irq(struct tape_device *device, struct irb *irb) in tape_3590_unsolicited_irq() argument 806 if (irb->scsw.cmd.dstat == DEV_STAT_CHN_END) in tape_3590_unsolicited_irq() 809 else if (irb->scsw.cmd.dstat == 0x85) in tape_3590_unsolicited_irq() 812 else if (irb->scsw.cmd.dstat & DEV_STAT_ATTENTION) { in tape_3590_unsolicited_irq() 816 tape_dump_sense_dbf(device, NULL, irb); in tape_3590_unsolicited_irq() 828 struct irb *irb, int rc) in tape_3590_erp_basic() argument [all …]
|
D | tape_34xx.c | 221 tape_34xx_unsolicited_irq(struct tape_device *device, struct irb *irb) in tape_34xx_unsolicited_irq() argument 223 if (irb->scsw.cmd.dstat == 0x85) { /* READY */ in tape_34xx_unsolicited_irq() 230 tape_dump_sense_dbf(device, NULL, irb); in tape_34xx_unsolicited_irq() 262 struct irb *irb, int no) in tape_34xx_erp_bug() argument 267 tape_dump_sense_dbf(device, request, irb); in tape_34xx_erp_bug() 278 struct irb *irb) in tape_34xx_erp_overrun() argument 280 if (irb->ecw[3] == 0x40) { in tape_34xx_erp_overrun() 285 return tape_34xx_erp_bug(device, request, irb, -1); in tape_34xx_erp_overrun() 293 struct tape_request *request, struct irb *irb) in tape_34xx_erp_sequence() argument 295 if (irb->ecw[3] == 0x41) { in tape_34xx_erp_sequence() [all …]
|
D | tape_core.c | 33 static void __tape_do_irq (struct ccw_device *, unsigned long, struct irb *); 915 struct irb *irb) in tape_dump_sense_dbf() argument 925 irb->scsw.cmd.dstat, irb->scsw.cmd.cstat); in tape_dump_sense_dbf() 927 sptr = (unsigned int *) irb->ecw; in tape_dump_sense_dbf() 1100 __tape_do_irq (struct ccw_device *cdev, unsigned long intparm, struct irb *irb) in __tape_do_irq() argument 1115 if (IS_ERR(irb)) { in __tape_do_irq() 1117 switch (PTR_ERR(irb)) { in __tape_do_irq() 1126 device->cdev_id, PTR_ERR(irb)); in __tape_do_irq() 1138 if (irb->scsw.cmd.cc != 0 && in __tape_do_irq() 1139 (irb->scsw.cmd.fctl & SCSW_FCTL_START_FUNC) && in __tape_do_irq() [all …]
|
D | raw3270.c | 331 raw3270_irq (struct ccw_device *cdev, unsigned long intparm, struct irb *irb) in raw3270_irq() argument 344 if (IS_ERR(irb)) in raw3270_irq() 346 else if (irb->scsw.cmd.fctl & SCSW_FCTL_HALT_FUNC) { in raw3270_irq() 349 } else if (irb->scsw.cmd.dstat == (DEV_STAT_CHN_END | DEV_STAT_DEV_END | in raw3270_irq() 356 if (irb->scsw.cmd.dstat & DEV_STAT_DEV_END) { in raw3270_irq() 363 rc = view->fn->intv(view, rq, irb); in raw3270_irq() 679 struct irb *irb) in raw3270_init_irq() argument 687 if (irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) { in raw3270_init_irq() 689 if (irb->ecw[0] & SNS0_INTERVENTION_REQ) { in raw3270_init_irq() 695 if (irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) { in raw3270_init_irq() [all …]
|
D | vmur.c | 305 struct irb *irb) in ur_int_handler() argument 310 intparm, irb->scsw.cmd.cstat, irb->scsw.cmd.dstat, in ur_int_handler() 311 irb->scsw.cmd.count); in ur_int_handler() 320 if (IS_ERR(irb)) in ur_int_handler() 321 urd->io_request_rc = PTR_ERR(irb); in ur_int_handler() 322 else if (irb->scsw.cmd.dstat == (DEV_STAT_CHN_END | DEV_STAT_DEV_END)) in ur_int_handler()
|
D | fs3270.c | 221 fs3270_irq(struct fs3270 *fp, struct raw3270_request *rq, struct irb *irb) in fs3270_irq() argument 224 if (irb->scsw.cmd.dstat & DEV_STAT_ATTENTION) { in fs3270_irq() 230 if (irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) in fs3270_irq() 234 rq->rescnt = irb->scsw.cmd.count; in fs3270_irq()
|
/drivers/s390/block/ |
D | dasd_fba.c | 240 struct irb *irb) in dasd_fba_check_for_device_change() argument 246 if ((irb->scsw.cmd.dstat & mask) == mask) in dasd_fba_check_for_device_change() 447 dasd_fba_dump_sense_dbf(struct dasd_device *device, struct irb *irb, in dasd_fba_dump_sense_dbf() argument 452 sense = (u64 *) dasd_get_sense(irb); in dasd_fba_dump_sense_dbf() 457 scsw_is_tm(&irb->scsw) ? "t" : "c", in dasd_fba_dump_sense_dbf() 458 scsw_cc(&irb->scsw), scsw_cstat(&irb->scsw), in dasd_fba_dump_sense_dbf() 459 scsw_dstat(&irb->scsw), sense[0], sense[1], in dasd_fba_dump_sense_dbf() 470 struct irb *irb) in dasd_fba_dump_sense() argument 487 irb->scsw.cmd.cstat, irb->scsw.cmd.dstat); in dasd_fba_dump_sense() 491 (void *) (addr_t) irb->scsw.cmd.cpa); in dasd_fba_dump_sense() [all …]
|
D | dasd_erp.c | 157 dasd_log_sense(struct dasd_ccw_req *cqr, struct irb *irb) in dasd_log_sense() argument 164 device->discipline->dump_sense(device, cqr, irb); in dasd_log_sense() 168 dasd_log_sense_dbf(struct dasd_ccw_req *cqr, struct irb *irb) in dasd_log_sense_dbf() argument 175 device->discipline->dump_sense_dbf(device, irb, "log"); in dasd_log_sense_dbf()
|
D | dasd_int.h | 192 struct irb irb; /* device status in case of an error */ member 337 struct irb *); 338 void (*dump_sense_dbf) (struct dasd_device *, struct irb *, char *); 341 struct irb *); 697 enum uc_todo dasd_generic_uc_handler(struct ccw_device *, struct irb *); 702 char *dasd_get_sense(struct irb *); 765 void dasd_log_sense(struct dasd_ccw_req *, struct irb *); 766 void dasd_log_sense_dbf(struct dasd_ccw_req *cqr, struct irb *irb);
|
D | dasd_3990_erp.c | 156 ~(erp->irb.esw.esw0.sublog.lpum); in dasd_3990_erp_alternate_path() 158 erp->lpm &= ~(erp->irb.esw.esw0.sublog.lpum); in dasd_3990_erp_alternate_path() 164 erp->lpm, erp->irb.esw.esw0.sublog.lpum, opm); in dasd_3990_erp_alternate_path() 172 "/opm=%x)\n", erp->irb.esw.esw0.sublog.lpum, opm); in dasd_3990_erp_alternate_path() 1427 sense = dasd_get_sense(&erp->refers->irb); in dasd_3990_erp_inspect_alias() 1613 if (scsw_is_tm(&cqr->irb.scsw)) { in dasd_3990_erp_action_1B_32() 1630 cpa = default_erp->refers->irb.scsw.cmd.cpa; in dasd_3990_erp_action_1B_32() 1769 if (scsw_is_tm(&cqr->irb.scsw)) { in dasd_3990_update_1B() 1788 cpa = previous_erp->irb.scsw.cmd.cpa; in dasd_3990_update_1B() 2224 if (scsw_cstat(&erp->refers->irb.scsw) & (SCHN_STAT_INTF_CTRL_CHK in dasd_3990_erp_control_check() [all …]
|
D | dasd_eckd.c | 1860 sense = dasd_get_sense(&init_cqr->irb); in dasd_eckd_analysis_evaluation() 2416 struct irb *irb) in dasd_eckd_check_for_device_change() argument 2425 if ((scsw_dstat(&irb->scsw) & mask) == mask) { in dasd_eckd_check_for_device_change() 2449 sense = dasd_get_sense(irb); in dasd_eckd_check_for_device_change() 2455 (scsw_dstat(&irb->scsw) & DEV_STAT_UNIT_CHECK)) { in dasd_eckd_check_for_device_change() 2456 dasd_alias_handle_summary_unit_check(device, irb); in dasd_eckd_check_for_device_change() 2472 (scsw_dstat(&irb->scsw) & DEV_STAT_UNIT_CHECK) && in dasd_eckd_check_for_device_change() 4005 dasd_eckd_dump_sense_dbf(struct dasd_device *device, struct irb *irb, in dasd_eckd_dump_sense_dbf() argument 4011 sense = (u64 *) dasd_get_sense(irb); in dasd_eckd_dump_sense_dbf() 4012 stat = (u64 *) &irb->scsw; in dasd_eckd_dump_sense_dbf() [all …]
|
D | dasd.c | 50 void dasd_int_handler(struct ccw_device *, unsigned long, struct irb *); 1611 struct irb *irb) in dasd_int_handler() argument 1618 if (IS_ERR(irb)) { in dasd_int_handler() 1619 switch (PTR_ERR(irb)) { in dasd_int_handler() 1629 PTR_ERR(irb)); in dasd_int_handler() 1639 !(scsw_dstat(&irb->scsw) == (DEV_STAT_CHN_END | DEV_STAT_DEV_END) && in dasd_int_handler() 1640 scsw_cstat(&irb->scsw) == 0)) { in dasd_int_handler() 1642 memcpy(&cqr->irb, irb, sizeof(*irb)); in dasd_int_handler() 1651 device->discipline->dump_sense_dbf(device, irb, "int"); in dasd_int_handler() 1653 device->discipline->dump_sense(device, cqr, irb); in dasd_int_handler() [all …]
|
/drivers/s390/net/ |
D | ctcm_main.c | 230 kfree(ch->irb); in channel_remove() 276 static long ctcm_check_irb_error(struct ccw_device *cdev, struct irb *irb) in ctcm_check_irb_error() argument 278 if (!IS_ERR(irb)) in ctcm_check_irb_error() 283 PTR_ERR(irb), dev_name(&cdev->dev)); in ctcm_check_irb_error() 285 switch (PTR_ERR(irb)) { in ctcm_check_irb_error() 298 return PTR_ERR(irb); in ctcm_check_irb_error() 1197 unsigned long intparm, struct irb *irb) in ctcm_irq_handler() argument 1209 if (ctcm_check_irb_error(cdev, irb)) in ctcm_irq_handler() 1214 cstat = irb->scsw.cmd.cstat; in ctcm_irq_handler() 1215 dstat = irb->scsw.cmd.dstat; in ctcm_irq_handler() [all …]
|
D | lcs.c | 1309 lcs_check_irb_error(struct ccw_device *cdev, struct irb *irb) in lcs_check_irb_error() argument 1311 if (!IS_ERR(irb)) in lcs_check_irb_error() 1314 switch (PTR_ERR(irb)) { in lcs_check_irb_error() 1330 PTR_ERR(irb)); in lcs_check_irb_error() 1334 return PTR_ERR(irb); in lcs_check_irb_error() 1338 lcs_get_problem(struct ccw_device *cdev, struct irb *irb) in lcs_get_problem() argument 1343 sense = (char *) irb->ecw; in lcs_get_problem() 1344 cstat = irb->scsw.cmd.cstat; in lcs_get_problem() 1345 dstat = irb->scsw.cmd.dstat; in lcs_get_problem() 1389 lcs_irq(struct ccw_device *cdev, unsigned long intparm, struct irb *irb) in lcs_irq() argument [all …]
|
D | claw.c | 187 unsigned long intparm, struct irb *irb); 572 unsigned long intparm, struct irb *irb) in claw_irq_handler() argument 586 irb->scsw.cmd.cstat, irb->scsw.cmd.dstat); in claw_irq_handler() 607 memcpy(p_ch->irb, irb, sizeof(struct irb)); in claw_irq_handler() 610 if (irb->scsw.cmd.cstat && !(irb->scsw.cmd.cstat & SCHN_STAT_PCI)) { in claw_irq_handler() 615 irb->scsw.cmd.cstat, irb->scsw.cmd.dstat, in claw_irq_handler() 616 irb->scsw.cmd.cpa); in claw_irq_handler() 622 if (irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) in claw_irq_handler() 623 ccw_check_unit_check(p_ch, irb->ecw[0]); in claw_irq_handler() 626 p_ch->last_dstat = irb->scsw.cmd.dstat; in claw_irq_handler() [all …]
|
/drivers/s390/kvm/ |
D | virtio_ccw.c | 596 static int irb_is_error(struct irb *irb) in irb_is_error() argument 598 if (scsw_cstat(&irb->scsw) != 0) in irb_is_error() 600 if (scsw_dstat(&irb->scsw) & ~(DEV_STAT_CHN_END | DEV_STAT_DEV_END)) in irb_is_error() 602 if (scsw_cc(&irb->scsw) != 0) in irb_is_error() 628 struct irb *irb) in virtio_ccw_int_handler() argument 638 (scsw_stctl(&irb->scsw) == in virtio_ccw_int_handler() 642 if (irb_is_error(irb)) in virtio_ccw_int_handler()
|