From: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
To: Halil Pasic <pasic@linux.vnet.ibm.com>
Cc: Cornelia Huck <cohuck@redhat.com>,
Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>,
Pierre Morel <pmorel@linux.vnet.ibm.com>,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v2 4/4] s390x/css: support ccw IDA
Date: Wed, 20 Sep 2017 14:40:58 +0800 [thread overview]
Message-ID: <20170920064058.GE11080@bjsdjshi@linux.vnet.ibm.com> (raw)
In-Reply-To: <9872cee8-3503-8d52-c68f-d9c61143201c@linux.vnet.ibm.com>
* Halil Pasic <pasic@linux.vnet.ibm.com> [2017-09-19 14:04:03 +0200]:
I have no problem with the rest parts of the discussion in this thread.
>
>
> On 09/19/2017 12:57 PM, Cornelia Huck wrote:
> >>>>> +static inline int ida_read_next_idaw(CcwDataStream *cds)
> >>>>> +{
> >>>>> + union {uint64_t fmt2; uint32_t fmt1; } idaw;
> >>>> ^
> >>>> Nit.
> >>>>
> >> Maybe checkpatch wanted it this way. My memories are blurry.
> >
> > I'd just leave it like that, tbh.
> >
> >>>>> + bool is_fmt2 = cds->flags & CDS_F_C64;
> >>>>> + int ret;
> >>>>> + hwaddr idaw_addr;
> >>>>> +
> >>>>> + if (is_fmt2) {
> >>>>> + idaw_addr = cds->cda_orig + sizeof(idaw.fmt2) * cds->at_idaw;
> >>>>> + if (idaw_addr & 0x07) {
> >>>>> + return -EINVAL; /* channel program check */
> >>>>> + }
> >>>>> + ret = address_space_rw(&address_space_memory, idaw_addr,
> >>>>> + MEMTXATTRS_UNSPECIFIED, (void *) &idaw.fmt2,
> >>>>> + sizeof(idaw.fmt2), false);
> >>>>> + cds->cda = be64_to_cpu(idaw.fmt2);
>
>
> >>>>> + } else {
> >>>>> + idaw_addr = cds->cda_orig + sizeof(idaw.fmt1) * cds->at_idaw;
> >>>>> + if (idaw_addr & 0x03) {
> >>>> ?:
> >>>> (idaw_addr & 0x80000003)
> >>> Yes.
> >>>
> >> I will double check this. Does not seem unreasonable but
> >> double-checking is better.
> > Please let me know. I think the architecture says that the bit must be
> > zero, and that we may (...) generate a channel program check.
> >
My fault... This is the address of an IDAW, not the content (data
address) in an IDAW. So what Halil pointed out is the right direction to
go I think.
I will review in the thread of the new version (v3).
>
> Not exactly. The more significant bits part of the check
> depend on the ccw format. This needs to be done for both
> idaw formats. I would need to introduce a new flag, or
> access the SubchDev to do this properly.
>
> Architecturally we also need to check the data addresses
> from which we read so we have nothing bigger than
> (1 << 31) - 1 if we are working with format-1 idaws.
Right. This is what I actually wanted to say.
>
> I also think we did not take proper care of proper
> maximum data address checks prior CwwDataStream which also
> depend on the ccw format (in absence of IDAW or MIDAW).
>
> The ccw format dependent maximum address checks are (1 << 24) - 1
> and (1 << 31) - 1 respectively for format-0 and format-1 (on
> the first indirection level that is for non-IDA for the data,
> and for (M)IDA for the (M)IDAWs).
>
> Reference:
> PoP pages 16-25 and 16-26 "Invalid IDAW or MIDAW Addre" and
> "Invalid Data Address".
>
> How shall we proceed?
>
> Halil
>
> >>>>
> >>>>> + return -EINVAL; /* channel program check */
> >>>>> +
> >>>>> + }
> >>>>> + ret = address_space_rw(&address_space_memory, idaw_addr,
> >>>>> + MEMTXATTRS_UNSPECIFIED, (void *) &idaw.fmt1,
> >>>>> + sizeof(idaw.fmt1), false);
> >>>>> + cds->cda = be64_to_cpu(idaw.fmt1);>>>>> + }
> >>>>> + ++(cds->at_idaw);
> >>>>> + if (ret != MEMTX_OK) {
> >>>>> + /* assume inaccessible address */
> >>>>> + return -EINVAL; /* channel program check */
> >>>>> +
> >>>>> + }
> >>>>> + return 0;
> >>>>> +}
--
Dong Jia Shi
next prev parent reply other threads:[~2017-09-20 6:41 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-13 11:50 [Qemu-devel] [PATCH v2 0/4] add CCW indirect data access support Halil Pasic
2017-09-13 11:50 ` [Qemu-devel] [PATCH v2 1/4] s390x/css: introduce css data stream Halil Pasic
2017-09-14 9:08 ` Cornelia Huck
2017-09-19 2:21 ` Dong Jia Shi
2017-09-19 8:38 ` Cornelia Huck
2017-09-19 9:11 ` Pierre Morel
2017-09-19 9:53 ` Cornelia Huck
2017-09-19 11:41 ` Pierre Morel
2017-09-19 12:16 ` Halil Pasic
2017-09-19 13:55 ` Pierre Morel
2017-09-13 11:50 ` [Qemu-devel] [PATCH v2 2/4] s390x/css: use ccw " Halil Pasic
2017-09-19 2:45 ` Dong Jia Shi
2017-09-19 13:57 ` Pierre Morel
2017-09-13 11:50 ` [Qemu-devel] [PATCH v2 3/4] virtio-ccw: " Halil Pasic
2017-09-14 8:47 ` Cornelia Huck
2017-09-19 3:37 ` Dong Jia Shi
2017-09-19 9:06 ` Cornelia Huck
2017-09-19 13:30 ` Halil Pasic
2017-09-20 1:16 ` Dong Jia Shi
2017-09-19 14:07 ` Pierre Morel
2017-09-13 11:50 ` [Qemu-devel] [PATCH v2 4/4] s390x/css: support ccw IDA Halil Pasic
2017-09-14 9:14 ` Cornelia Huck
2017-09-19 5:50 ` Dong Jia Shi
2017-09-19 9:48 ` Cornelia Huck
2017-09-19 10:36 ` Halil Pasic
2017-09-19 10:57 ` Cornelia Huck
2017-09-19 12:04 ` Halil Pasic
2017-09-19 12:23 ` Cornelia Huck
2017-09-19 12:32 ` Halil Pasic
2017-09-19 14:34 ` Cornelia Huck
2017-09-19 18:05 ` Halil Pasic
2017-09-20 1:37 ` Dong Jia Shi
2017-09-20 6:40 ` Dong Jia Shi [this message]
2017-09-19 13:46 ` Pierre Morel
2017-09-19 16:49 ` Halil Pasic
2017-09-14 9:15 ` [Qemu-devel] [PATCH v2 0/4] add CCW indirect data access support Cornelia Huck
2017-09-14 11:02 ` Halil Pasic
2017-09-14 11:19 ` Cornelia Huck
2017-09-14 14:16 ` Cornelia Huck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170920064058.GE11080@bjsdjshi@linux.vnet.ibm.com \
--to=bjsdjshi@linux.vnet.ibm.com \
--cc=cohuck@redhat.com \
--cc=pasic@linux.vnet.ibm.com \
--cc=pmorel@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.