/* * Function: blacklist_parse_proc_parameters * parse the stuff which is piped to /proc/cio_ignore */ static int blacklist_parse_proc_parameters(char *buf) { int rc; char *parm; parm = strsep(&buf, " "); if (strcmp("free", parm) == 0) rc = blacklist_parse_parameters(buf, free, 0); else if (strcmp("add", parm) == 0) rc = blacklist_parse_parameters(buf, add, 0); else return 1; css_schedule_reprobe(); return rc; }
void chsc_chp_online(struct chp_id chpid) { char dbf_txt[15]; struct chp_link link; sprintf(dbf_txt, "cadd%x.%02x", chpid.cssid, chpid.id); CIO_TRACE_EVENT(2, dbf_txt); if (chp_get_status(chpid) != 0) { memset(&link, 0, sizeof(struct chp_link)); link.chpid = chpid; /* Wait until previous actions have settled. */ css_wait_for_slow_path(); for_each_subchannel_staged(__s390_process_res_acc, NULL, &link); css_schedule_reprobe(); } }
/** * chsc_chp_vary - propagate channel-path vary operation to subchannels * @chpid: channl-path ID * @on: non-zero for vary online, zero for vary offline */ int chsc_chp_vary(struct chp_id chpid, int on) { struct channel_path *chp = chpid_to_chp(chpid); /* Wait until previous actions have settled. */ css_wait_for_slow_path(); /* * Redo PathVerification on the devices the chpid connects to */ if (on) { /* Try to update the channel path description. */ chp_update_desc(chp); for_each_subchannel_staged(s390_subchannel_vary_chpid_on, NULL, &chpid); css_schedule_reprobe(); } else for_each_subchannel_staged(s390_subchannel_vary_chpid_off, NULL, &chpid); return 0; }
static void s390_process_res_acc(struct chp_link *link) { char dbf_txt[15]; sprintf(dbf_txt, "accpr%x.%02x", link->chpid.cssid, link->chpid.id); CIO_TRACE_EVENT( 2, dbf_txt); if (link->fla != 0) { sprintf(dbf_txt, "fla%x", link->fla); CIO_TRACE_EVENT( 2, dbf_txt); } /* Wait until previous actions have settled. */ css_wait_for_slow_path(); /* * I/O resources may have become accessible. * Scan through all subchannels that may be concerned and * do a validation on those. * The more information we have (info), the less scanning * will we have to do. */ for_each_subchannel_staged(__s390_process_res_acc, NULL, link); css_schedule_reprobe(); }