Lines Matching refs:schid
47 struct subchannel_id schid; in for_each_subchannel() local
50 init_subchannel_id(&schid); in for_each_subchannel()
53 ret = fn(schid, data); in for_each_subchannel()
56 } while (schid.sch_no++ < __MAX_SUBCHANNEL); in for_each_subchannel()
57 schid.sch_no = 0; in for_each_subchannel()
58 } while (schid.ssid++ < max_ssid); in for_each_subchannel()
76 idset_sch_del(cb->set, sch->schid); in call_fn_known_sch()
82 static int call_fn_unknown_sch(struct subchannel_id schid, void *data) in call_fn_unknown_sch() argument
87 if (idset_sch_contains(cb->set, schid)) in call_fn_unknown_sch()
88 rc = cb->fn_unknown_sch(schid, cb->data); in call_fn_unknown_sch()
92 static int call_fn_all_sch(struct subchannel_id schid, void *data) in call_fn_all_sch() argument
98 sch = get_subchannel_by_schid(schid); in call_fn_all_sch()
105 rc = cb->fn_unknown_sch(schid, cb->data); in call_fn_all_sch()
167 static int css_validate_subchannel(struct subchannel_id schid, in css_validate_subchannel() argument
177 else if (is_blacklisted(schid.ssid, schib->pmcw.dev)) { in css_validate_subchannel()
180 schib->pmcw.dev, schid.ssid); in css_validate_subchannel()
192 schid.ssid, schid.sch_no, schib->pmcw.st); in css_validate_subchannel()
197 struct subchannel *css_alloc_subchannel(struct subchannel_id schid, in css_alloc_subchannel() argument
203 ret = css_validate_subchannel(schid, schib); in css_alloc_subchannel()
211 sch->schid = schid; in css_alloc_subchannel()
248 dev_set_name(&sch->dev, "0.%x.%04x", sch->schid.ssid, in css_sch_device_register()
249 sch->schid.sch_no); in css_sch_device_register()
300 ret = chsc_get_ssd_info(sch->schid, &sch->ssd_info); in css_update_ssd_info()
413 return sysfs_emit(buf, "0.%x.%04x\n", sch->schid.ssid, in dev_busid_show()
449 sch->schid.ssid, sch->schid.sch_no, ret); in css_register_subchannel()
455 static int css_probe_device(struct subchannel_id schid, struct schib *schib) in css_probe_device() argument
460 sch = css_alloc_subchannel(schid, schib); in css_probe_device()
475 struct subchannel_id *schid = (void *)data; in check_subchannel() local
478 return schid_equal(&sch->schid, schid); in check_subchannel()
482 get_subchannel_by_schid(struct subchannel_id schid) in get_subchannel_by_schid() argument
487 &schid, check_subchannel); in get_subchannel_by_schid()
506 static int css_evaluate_new_subchannel(struct subchannel_id schid, int slow) in css_evaluate_new_subchannel() argument
521 ccode = stsch(schid, &schib); in css_evaluate_new_subchannel()
525 return css_probe_device(schid, &schib); in css_evaluate_new_subchannel()
542 sch->schid.ssid, sch->schid.sch_no, ret); in css_evaluate_known_subchannel()
547 static void css_evaluate_subchannel(struct subchannel_id schid, int slow) in css_evaluate_subchannel() argument
552 sch = get_subchannel_by_schid(schid); in css_evaluate_subchannel()
557 ret = css_evaluate_new_subchannel(schid, slow); in css_evaluate_subchannel()
559 css_schedule_eval(schid); in css_evaluate_subchannel()
574 sch->schid.ssid, sch->schid.sch_no, todo); in css_sched_sch_todo()
598 CIO_MSG_EVENT(4, "sch_todo: sch=0.%x.%04x, todo=%d\n", sch->schid.ssid, in css_sch_todo()
599 sch->schid.sch_no, todo); in css_sch_todo()
644 eval = idset_sch_contains(slow_subchannel_set, sch->schid); in slow_eval_known_fn()
645 idset_sch_del(slow_subchannel_set, sch->schid); in slow_eval_known_fn()
650 css_schedule_eval(sch->schid); in slow_eval_known_fn()
660 static int slow_eval_unknown_fn(struct subchannel_id schid, void *data) in slow_eval_unknown_fn() argument
666 eval = idset_sch_contains(slow_subchannel_set, schid); in slow_eval_unknown_fn()
667 idset_sch_del(slow_subchannel_set, schid); in slow_eval_unknown_fn()
670 rc = css_evaluate_new_subchannel(schid, 1); in slow_eval_unknown_fn()
673 css_schedule_eval(schid); in slow_eval_unknown_fn()
681 idset_sch_del_subseq(slow_subchannel_set, schid); in slow_eval_unknown_fn()
712 void css_schedule_eval(struct subchannel_id schid) in css_schedule_eval() argument
717 idset_sch_add(slow_subchannel_set, schid); in css_schedule_eval()
747 idset_sch_del(set, sch->schid); in __unset_validpath()
758 idset_sch_del(set, sch->schid); in __unset_online()