Lines Matching refs:schid

47 	struct subchannel_id schid;
50 init_subchannel_id(&schid);
53 ret = fn(schid, data);
56 } while (schid.sch_no++ < __MAX_SUBCHANNEL);
57 schid.sch_no = 0;
58 } while (schid.ssid++ < max_ssid);
76 idset_sch_del(cb->set, sch->schid);
82 static int call_fn_unknown_sch(struct subchannel_id schid, void *data)
87 if (idset_sch_contains(cb->set, schid))
88 rc = cb->fn_unknown_sch(schid, cb->data);
92 static int call_fn_all_sch(struct subchannel_id schid, void *data)
98 sch = get_subchannel_by_schid(schid);
105 rc = cb->fn_unknown_sch(schid, cb->data);
174 static int css_validate_subchannel(struct subchannel_id schid,
184 else if (is_blacklisted(schid.ssid, schib->pmcw.dev)) {
187 schib->pmcw.dev, schid.ssid);
199 schid.ssid, schid.sch_no, schib->pmcw.st);
204 struct subchannel *css_alloc_subchannel(struct subchannel_id schid,
210 ret = css_validate_subchannel(schid, schib);
218 sch->schid = schid;
259 dev_set_name(&sch->dev, "0.%x.%04x", sch->schid.ssid,
260 sch->schid.sch_no);
311 ret = chsc_get_ssd_info(sch->schid, &sch->ssd_info);
424 return sysfs_emit(buf, "0.%x.%04x\n", sch->schid.ssid,
460 sch->schid.ssid, sch->schid.sch_no, ret);
466 static int css_probe_device(struct subchannel_id schid, struct schib *schib)
471 sch = css_alloc_subchannel(schid, schib);
486 struct subchannel_id *schid = (void *)data;
489 return schid_equal(&sch->schid, schid);
493 get_subchannel_by_schid(struct subchannel_id schid)
498 &schid, check_subchannel);
517 static int css_evaluate_new_subchannel(struct subchannel_id schid, int slow)
532 ccode = stsch(schid, &schib);
536 return css_probe_device(schid, &schib);
553 sch->schid.ssid, sch->schid.sch_no, ret);
558 static void css_evaluate_subchannel(struct subchannel_id schid, int slow)
563 sch = get_subchannel_by_schid(schid);
568 ret = css_evaluate_new_subchannel(schid, slow);
570 css_schedule_eval(schid);
585 sch->schid.ssid, sch->schid.sch_no, todo);
609 CIO_MSG_EVENT(4, "sch_todo: sch=0.%x.%04x, todo=%d\n", sch->schid.ssid,
610 sch->schid.sch_no, todo);
655 eval = idset_sch_contains(slow_subchannel_set, sch->schid);
656 idset_sch_del(slow_subchannel_set, sch->schid);
661 css_schedule_eval(sch->schid);
671 static int slow_eval_unknown_fn(struct subchannel_id schid, void *data)
677 eval = idset_sch_contains(slow_subchannel_set, schid);
678 idset_sch_del(slow_subchannel_set, schid);
681 rc = css_evaluate_new_subchannel(schid, 1);
684 css_schedule_eval(schid);
692 idset_sch_del_subseq(slow_subchannel_set, schid);
723 void css_schedule_eval(struct subchannel_id schid)
728 idset_sch_add(slow_subchannel_set, schid);
758 idset_sch_del(set, sch->schid);
769 idset_sch_del(set, sch->schid);