Re: [PATCH 2/5] s390: Virtual channel subsystem support.

Cornelia Huck
2012-08-08T08:53:12Z

On Wed, 8 Aug 2012 09:27:32 +0100
Peter Maydell <peter.maydell@linaro.org> wrote:

> On 7 August 2012 15:52, Cornelia Huck <cornelia.huck@de.ibm.com> wrote:
> > +static void sch_handle_clear_func(SubchDev *sch)
> > +{
> > + struct pmcw *p = &sch->curr_status.pmcw;
> > + struct scsw *s = &sch->curr_status.scsw;
> > + int path;
> > +
> > + /* Path management: In our simple css, we always choose the only path. */
> > + path = 0x80;
> > +
> > + /* Reset values prior to 'issueing the clear signal'. */
> > + p->lpum = 0;
>
> This is unnecessary since we're going to set p->lpum to something else about
> ten lines later, right?

My intention here was following the description in the architecture
closely. In our case, 'attempting to issue the clear signal' will
always succeed, and so we will always set the lpum later on - on real
hardware, this may be different.

>
> > + p->pom = 0xff;
> > + s->pno = 0;
> > +
> > + /* We always 'attempt to issue the clear signal', and we always succeed. */
> > + sch->orb = NULL;
> > + sch->channel_prog = NULL;
> > + sch->last_cmd = NULL;
> > + s->actl &= ~SCSW_ACTL_CLEAR_PEND;
> > + s->stctl |= SCSW_STCTL_STATUS_PEND;
> > +
> > + s->dstat = 0;
> > + s->cstat = 0;
> > + p->lpum = path;
> > +
> > +}
>
> -- PMM
>