All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthew Rosato <mjrosato@linux.ibm.com>
To: cohuck@redhat.com, thuth@redhat.com
Cc: pmorel@linux.ibm.com, david@redhat.com, schnelle@linux.ibm.com,
	richard.henderson@linaro.org, qemu-s390x@nongnu.org,
	qemu-devel@nongnu.org, pasic@linux.ibm.com,
	borntraeger@de.ibm.com, alex.williamson@redhat.com,
	mst@redhat.com, pbonzini@redhat.com
Subject: [RFC 5/8] s390x/pci: Fix memory_region_access_valid call
Date: Wed,  9 Dec 2020 15:34:23 -0500	[thread overview]
Message-ID: <1607546066-2240-6-git-send-email-mjrosato@linux.ibm.com> (raw)
In-Reply-To: <1607546066-2240-1-git-send-email-mjrosato@linux.ibm.com>

In pcistb_service_handler, a call is made to validate that the memory
region can be accessed.  However, the call is made using the entire length
of the pcistb operation, which can be larger than the allowed memory
access size (8).  Since we already know that the provided buffer is a
multiple of 8, fix the call to memory_region_access_valid to iterate
over the memory region in the same way as the subsequent call to
memory_region_dispatch_write.

Signed-off-by: Matthew Rosato <mjrosato@linux.ibm.com>
---
 hw/s390x/s390-pci-inst.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/hw/s390x/s390-pci-inst.c b/hw/s390x/s390-pci-inst.c
index b07ef2a..a5270d0 100644
--- a/hw/s390x/s390-pci-inst.c
+++ b/hw/s390x/s390-pci-inst.c
@@ -795,9 +795,11 @@ static int pcistb_default(S390PCIBusDevice *pbdev, S390CPU *cpu,
     mr = s390_get_subregion(mr, offset, len);
     offset -= mr->addr;
 
-    if (!memory_region_access_valid(mr, offset, len, true,
-                                    MEMTXATTRS_UNSPECIFIED)) {
-        return -EINVAL;
+    for (i = 0; i < len / 8; i++) {
+        if (!memory_region_access_valid(mr, offset + i * 8, 8, true,
+                                        MEMTXATTRS_UNSPECIFIED)) {
+            return -EINVAL;
+        }
     }
 
     if (s390_cpu_virt_mem_read(cpu, gaddr, ar, pbdev->pcistb_buf, len)) {
-- 
1.8.3.1



  parent reply	other threads:[~2020-12-09 20:53 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-09 20:34 [RFC 0/8] s390x/pci: Fixing s390 vfio-pci ISM support Matthew Rosato
2020-12-09 20:34 ` [RFC 1/8] linux-headers: update against 5.10-rc7 Matthew Rosato
2020-12-09 20:34 ` [RFC 2/8] s390x/pci: MSI-X isn't strictly required for passthrough Matthew Rosato
2020-12-10 10:28   ` Cornelia Huck
2020-12-10 15:13     ` Matthew Rosato
2020-12-17 13:08       ` Cornelia Huck
2020-12-17 15:12         ` Matthew Rosato
2020-12-09 20:34 ` [RFC 3/8] s390x/pci: fix pcistb length Matthew Rosato
2020-12-10 10:30   ` Cornelia Huck
2020-12-10 15:15     ` Matthew Rosato
2020-12-17 13:09       ` Cornelia Huck
2020-12-09 20:34 ` [RFC 4/8] s390x/pci: Introduce the ZpciOps structure Matthew Rosato
2020-12-09 20:34 ` Matthew Rosato [this message]
2020-12-10 12:15   ` [RFC 5/8] s390x/pci: Fix memory_region_access_valid call Cornelia Huck
2020-12-09 20:34 ` [RFC 6/8] s390x/pci: Handle devices that support relaxed alignment Matthew Rosato
2020-12-09 20:34 ` [RFC 7/8] s390x/pci: PCISTB via the vfio zPCI I/O region Matthew Rosato
2020-12-09 20:34 ` [RFC 8/8] s390x/pci: PCILG " Matthew Rosato

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=1607546066-2240-6-git-send-email-mjrosato@linux.ibm.com \
    --to=mjrosato@linux.ibm.com \
    --cc=alex.williamson@redhat.com \
    --cc=borntraeger@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=david@redhat.com \
    --cc=mst@redhat.com \
    --cc=pasic@linux.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=pmorel@linux.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-s390x@nongnu.org \
    --cc=richard.henderson@linaro.org \
    --cc=schnelle@linux.ibm.com \
    --cc=thuth@redhat.com \
    /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.