/* The machine won't give us any notification by machine check if a chpid has been varied online on the SE so we have to find out by magic (i. e. driving the channel subsystem to device selection and updating our path masks).  */
static void __recover_lost_chpids(struct subchannel *sch, int old_lpm)
/* The machine won't give us any notification by machine check if a chpid has been varied online on the SE so we have to find out by magic (i. e. driving the channel subsystem to device selection and updating our path masks).  */
static void __recover_lost_chpids(struct subchannel *sch, int old_lpm)
{
	int mask, i;
	struct chp_id chpid;
	chp_id_init(&chpid);
	for (i = 0; i<8; i++) {
		mask = 0x80 >> i;
		if (!(sch->lpm & mask))
			continue;
		if (old_lpm & mask)
			continue;
		chpid.id = sch->schib.pmcw.chpid[i];
		if (!chp_is_registered(chpid))
			css_schedule_eval_all();
	}
}