pmcw
if ((0x80 >> chp) & sch->schib.pmcw.lpum)
sch->schib.pmcw.chpid[chp]);
chpid.id = sch->schib.pmcw.chpid[i];
return sch->schib.pmcw.ena && !scsw_fctl(&sch->schib.scsw);
if (!sch->schib.pmcw.ena)
schib->pmcw.intparm = sch->config.intparm;
schib->pmcw.mbi = sch->config.mbi;
schib->pmcw.isc = sch->config.isc;
schib->pmcw.ena = sch->config.ena;
schib->pmcw.mme = sch->config.mme;
schib->pmcw.mp = sch->config.mp;
schib->pmcw.csense = sch->config.csense;
schib->pmcw.mbfc = sch->config.mbfc;
return (schib->pmcw.intparm == sch->config.intparm) &&
(schib->pmcw.mbi == sch->config.mbi) &&
(schib->pmcw.isc == sch->config.isc) &&
(schib->pmcw.ena == sch->config.ena) &&
(schib->pmcw.mme == sch->config.mme) &&
(schib->pmcw.mp == sch->config.mp) &&
(schib->pmcw.csense == sch->config.csense) &&
(schib->pmcw.mbfc == sch->config.mbfc) &&
if ((schib.pmcw.st == SUBCHANNEL_TYPE_IO) && schib.pmcw.dnv &&
(schib.pmcw.dev == console_devno)) {
(schib.pmcw.st != SUBCHANNEL_TYPE_IO) || !schib.pmcw.dnv)
console_devno = schib.pmcw.dev;
struct pmcw pmcw; /* path management control word */
switch (schib->pmcw.st) {
else if (is_blacklisted(schid.ssid, schib->pmcw.dev)) {
schib->pmcw.dev, schid.ssid);
schid.ssid, schid.sch_no, schib->pmcw.st);
sch->st = schib->pmcw.st;
static void ssd_from_pmcw(struct chsc_ssd_info *ssd, struct pmcw *pmcw)
ssd->path_mask = pmcw->pim;
if (pmcw->pim & mask) {
ssd->chpid[i].id = pmcw->chpid[i];
ssd_from_pmcw(&sch->ssd_info, &sch->schib.pmcw);
struct pmcw *pmcw = &sch->schib.pmcw;
pmcw->pim, pmcw->pam, pmcw->pom);
struct pmcw *pmcw = &sch->schib.pmcw;
if ((pmcw->st == SUBCHANNEL_TYPE_IO && pmcw->dnv) ||
(pmcw->st == SUBCHANNEL_TYPE_MSG && pmcw->w))
pmcw->dev);
if ((schib->pmcw.st == SUBCHANNEL_TYPE_IO) && !schib->pmcw.dnv)
if ((schib->pmcw.st == SUBCHANNEL_TYPE_MSG) && !schib->pmcw.w)
struct pmcw *pmcw = &sch->schib.pmcw;
(sch->opm & pmcw->pam & pmcw->pom))
sch->lpm = sch->schib.pmcw.pam & sch->opm;
sch->schib.pmcw.dev, sch->schid.ssid,
sch->schid.sch_no, sch->schib.pmcw.pim,
sch->schib.pmcw.pam, sch->schib.pmcw.pom);
if (scsw_actl(&sch->schib.scsw) == 0 || sch->schib.pmcw.lpum != mask)
if (!sch->schib.pmcw.ena)
if ((sch->schib.pmcw.pam & sch->opm) == sch->vpm)
if (sch->st != SUBCHANNEL_TYPE_IO || !sch->schib.pmcw.dnv)
if (!is_blacklisted(sch->schid.ssid, sch->schib.pmcw.dev))
sch->schib.pmcw.dev, cdev ? "" : " (no cdev)");
if (sch->schib.pmcw.dev != cdev->private->dev_id.devno) {
if ((sch->schib.pmcw.pam & sch->opm) == 0) {
dev_id.devno = sch->schib.pmcw.dev;
priv->dev_id.devno = sch->schib.pmcw.dev;
old_enabled = old_sch->schib.pmcw.ena;
sch->schib.pmcw.dev, rc);
chpid.id = sch->schib.pmcw.chpid[i];
sch->lpm = sch->schib.pmcw.pam & sch->opm;
u8 broken_paths = (sch->schib.pmcw.pam & sch->opm) ^ sch->vpm;
sch->lpm = sch->schib.pmcw.pam & sch->opm;
if (sch->schib.pmcw.dev != cdev->private->dev_id.devno)
req->lpm = sch->schib.pmcw.pam & sch->opm;
if (!sch->schib.pmcw.ena)
if (!sch->schib.pmcw.ena)
if (!sch->schib.pmcw.ena)
if (!sch->schib.pmcw.ena)
chpid.id = sch->schib.pmcw.chpid[chp_idx];
chpid.id = sch->schib.pmcw.chpid[chp_idx];
if (!sch->schib.pmcw.ena)
chpid.id = sch->schib.pmcw.chpid[i];
if (!sch->schib.pmcw.ena)
if (!(sch->schib.pmcw.pim & mask))
*chpid = sch->schib.pmcw.chpid[chp_idx];
req->lpm = sch->schib.pmcw.pam;
req->lpm = lpm_adjust(req->lpm, sch->schib.pmcw.pam &
sch->lpm = sch->schib.pmcw.pam;
cdev->private->pgid_todo_mask = sch->schib.pmcw.pam;
req->lpm = sch->schib.pmcw.pam & sch->opm;
req->lpm = sch->schib.pmcw.pam & sch->opm;
req->lpm = lpm_adjust(req->lpm, sch->schib.pmcw.pam & sch->opm &
sch->schib.pmcw.pnom);
sch->lpm &= ~sch->schib.pmcw.pnom;
__entry->devno = schib->pmcw.dev;
__entry->pmcw_ena = schib->pmcw.ena;
__entry->pmcw_st = schib->pmcw.st;
__entry->pmcw_dnv = schib->pmcw.dnv;
__entry->pmcw_dev = schib->pmcw.dev;
__entry->pmcw_lpm = schib->pmcw.lpm;
__entry->pmcw_pnom = schib->pmcw.pnom;
__entry->pmcw_lpum = schib->pmcw.lpum;
__entry->pmcw_pim = schib->pmcw.pim;
__entry->pmcw_pam = schib->pmcw.pam;
__entry->pmcw_pom = schib->pmcw.pom;
memcpy(&__entry->pmcw_chpid, &schib->pmcw.chpid, 8);
struct pmcw *pmcw = &sch->schib.pmcw;
if (pmcw->qf) {
if (sch->schib.pmcw.lpum & mask)
if (sch->schib.pmcw.lpum & mask)
if (!sch->schib.pmcw.ena)