From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([209.51.188.92]:47736) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h3PHA-0003Ah-Vy for qemu-devel@nongnu.org; Mon, 11 Mar 2019 14:03:50 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h3PH9-0002hq-W6 for qemu-devel@nongnu.org; Mon, 11 Mar 2019 14:03:48 -0400 Received: from mail-qk1-x744.google.com ([2607:f8b0:4864:20::744]:34643) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1h3PH6-0002Wv-4x for qemu-devel@nongnu.org; Mon, 11 Mar 2019 14:03:46 -0400 Received: by mail-qk1-x744.google.com with SMTP id n6so3279391qkf.1 for ; Mon, 11 Mar 2019 11:03:31 -0700 (PDT) From: Jason Andryuk Date: Mon, 11 Mar 2019 14:02:16 -0400 Message-Id: <20190311180216.18811-7-jandryuk@gmail.com> In-Reply-To: <20190311180216.18811-1-jandryuk@gmail.com> References: <20190311180216.18811-1-jandryuk@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [Qemu-devel] [PATCH 6/6] xen-pt: Round pci regions sizes to XEN_PAGE_SIZE List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: xen-devel@lists.xenproject.org, marmarek@invisiblethingslab.com, Simon Gaiser , Jason Andryuk , Stefano Stabellini , Anthony Perard , Paul Durrant From: Simon Gaiser If a pci memory region has a size < XEN_PAGE_SIZE it can get located at an address which is not page aligned. This breaks the memory mapping via xc_domain_memory_mapping since this function is page based and the "offset" is therefore lost. Without this patch you will see error like this in the stubdom log: [00:05.0] xen_pt_bar_read: Error: Should not read BAR through QEMU. @0x0000000000000004 QubesOS/qubes-issues#2849 Signed-off-by: Simon Gaiser Signed-off-by: Jason Andryuk --- hw/xen/xen_pt.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c index 5539d56c3a..7f680442ee 100644 --- a/hw/xen/xen_pt.c +++ b/hw/xen/xen_pt.c @@ -449,9 +449,10 @@ static int xen_pt_register_regions(XenPCIPassthroughState *s, uint16_t *cmd) /* Register PIO/MMIO BARs */ for (i = 0; i < PCI_ROM_SLOT; i++) { XenHostPCIIORegion *r = &d->io_regions[i]; + pcibus_t r_size = r->size; uint8_t type; - if (r->base_addr == 0 || r->size == 0) { + if (r->base_addr == 0 || r_size == 0) { continue; } @@ -469,15 +470,18 @@ static int xen_pt_register_regions(XenPCIPassthroughState *s, uint16_t *cmd) type |= PCI_BASE_ADDRESS_MEM_TYPE_64; } *cmd |= PCI_COMMAND_MEMORY; + + /* Round up to a full page for the hypercall. */ + r_size = (r_size + XC_PAGE_SIZE - 1) & XC_PAGE_MASK; } memory_region_init_io(&s->bar[i], OBJECT(s), &ops, &s->dev, - "xen-pci-pt-bar", r->size); + "xen-pci-pt-bar", r_size); pci_register_bar(&s->dev, i, type, &s->bar[i]); XEN_PT_LOG(&s->dev, "IO region %i registered (size=0x%08"PRIx64 " base_addr=0x%08"PRIx64" type: %#x)\n", - i, r->size, r->base_addr, type); + i, r_size, r->base_addr, type); } /* Register expansion ROM address */ -- 2.20.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Andryuk Subject: [PATCH 6/6] xen-pt: Round pci regions sizes to XEN_PAGE_SIZE Date: Mon, 11 Mar 2019 14:02:16 -0400 Message-ID: <20190311180216.18811-7-jandryuk@gmail.com> References: <20190311180216.18811-1-jandryuk@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1h3PGu-0001KC-0l for xen-devel@lists.xenproject.org; Mon, 11 Mar 2019 18:03:32 +0000 Received: by mail-qk1-x741.google.com with SMTP id u22so3269871qkj.11 for ; Mon, 11 Mar 2019 11:03:31 -0700 (PDT) In-Reply-To: <20190311180216.18811-1-jandryuk@gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: qemu-devel@nongnu.org Cc: Stefano Stabellini , Jason Andryuk , marmarek@invisiblethingslab.com, Simon Gaiser , Paul Durrant , Anthony Perard , xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org RnJvbTogU2ltb24gR2Fpc2VyIDxzaW1vbkBpbnZpc2libGV0aGluZ3NsYWIuY29tPgoKSWYgYSBw Y2kgbWVtb3J5IHJlZ2lvbiBoYXMgYSBzaXplIDwgWEVOX1BBR0VfU0laRSBpdCBjYW4gZ2V0IGxv Y2F0ZWQgYXQKYW4gYWRkcmVzcyB3aGljaCBpcyBub3QgcGFnZSBhbGlnbmVkLiBUaGlzIGJyZWFr cyB0aGUgbWVtb3J5IG1hcHBpbmcgdmlhCnhjX2RvbWFpbl9tZW1vcnlfbWFwcGluZyBzaW5jZSB0 aGlzIGZ1bmN0aW9uIGlzIHBhZ2UgYmFzZWQgYW5kIHRoZQoib2Zmc2V0IiBpcyB0aGVyZWZvcmUg bG9zdC4KCldpdGhvdXQgdGhpcyBwYXRjaCB5b3Ugd2lsbCBzZWUgZXJyb3IgbGlrZSB0aGlzIGlu IHRoZSBzdHViZG9tIGxvZzoKCiAgWzAwOjA1LjBdIHhlbl9wdF9iYXJfcmVhZDogRXJyb3I6IFNo b3VsZCBub3QgcmVhZCBCQVIgdGhyb3VnaCBRRU1VLiBAMHgwMDAwMDAwMDAwMDAwMDA0CgpRdWJl c09TL3F1YmVzLWlzc3VlcyMyODQ5CgpTaWduZWQtb2ZmLWJ5OiBTaW1vbiBHYWlzZXIgPHNpbW9u QGludmlzaWJsZXRoaW5nc2xhYi5jb20+ClNpZ25lZC1vZmYtYnk6IEphc29uIEFuZHJ5dWsgPGph bmRyeXVrQGdtYWlsLmNvbT4KLS0tCiBody94ZW4veGVuX3B0LmMgfCAxMCArKysrKysrLS0tCiAx IGZpbGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2h3L3hlbi94ZW5fcHQuYyBiL2h3L3hlbi94ZW5fcHQuYwppbmRleCA1NTM5ZDU2YzNhLi43 ZjY4MDQ0MmVlIDEwMDY0NAotLS0gYS9ody94ZW4veGVuX3B0LmMKKysrIGIvaHcveGVuL3hlbl9w dC5jCkBAIC00NDksOSArNDQ5LDEwIEBAIHN0YXRpYyBpbnQgeGVuX3B0X3JlZ2lzdGVyX3JlZ2lv bnMoWGVuUENJUGFzc3Rocm91Z2hTdGF0ZSAqcywgdWludDE2X3QgKmNtZCkKICAgICAvKiBSZWdp c3RlciBQSU8vTU1JTyBCQVJzICovCiAgICAgZm9yIChpID0gMDsgaSA8IFBDSV9ST01fU0xPVDsg aSsrKSB7CiAgICAgICAgIFhlbkhvc3RQQ0lJT1JlZ2lvbiAqciA9ICZkLT5pb19yZWdpb25zW2ld OworICAgICAgICBwY2lidXNfdCByX3NpemUgPSByLT5zaXplOwogICAgICAgICB1aW50OF90IHR5 cGU7CiAKLSAgICAgICAgaWYgKHItPmJhc2VfYWRkciA9PSAwIHx8IHItPnNpemUgPT0gMCkgewor ICAgICAgICBpZiAoci0+YmFzZV9hZGRyID09IDAgfHwgcl9zaXplID09IDApIHsKICAgICAgICAg ICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKQEAgLTQ2OSwxNSArNDcwLDE4IEBAIHN0YXRpYyBp bnQgeGVuX3B0X3JlZ2lzdGVyX3JlZ2lvbnMoWGVuUENJUGFzc3Rocm91Z2hTdGF0ZSAqcywgdWlu dDE2X3QgKmNtZCkKICAgICAgICAgICAgICAgICB0eXBlIHw9IFBDSV9CQVNFX0FERFJFU1NfTUVN X1RZUEVfNjQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAqY21kIHw9IFBDSV9DT01NQU5E X01FTU9SWTsKKworICAgICAgICAgICAgLyogUm91bmQgdXAgdG8gYSBmdWxsIHBhZ2UgZm9yIHRo ZSBoeXBlcmNhbGwuICovCisgICAgICAgICAgICByX3NpemUgPSAocl9zaXplICsgWENfUEFHRV9T SVpFIC0gMSkgJiBYQ19QQUdFX01BU0s7CiAgICAgICAgIH0KIAogICAgICAgICBtZW1vcnlfcmVn aW9uX2luaXRfaW8oJnMtPmJhcltpXSwgT0JKRUNUKHMpLCAmb3BzLCAmcy0+ZGV2LAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgInhlbi1wY2ktcHQtYmFyIiwgci0+c2l6ZSk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAieGVuLXBjaS1wdC1iYXIiLCByX3NpemUpOwogICAg ICAgICBwY2lfcmVnaXN0ZXJfYmFyKCZzLT5kZXYsIGksIHR5cGUsICZzLT5iYXJbaV0pOwogCiAg ICAgICAgIFhFTl9QVF9MT0coJnMtPmRldiwgIklPIHJlZ2lvbiAlaSByZWdpc3RlcmVkIChzaXpl PTB4JTA4IlBSSXg2NAogICAgICAgICAgICAgICAgICAgICIgYmFzZV9hZGRyPTB4JTA4IlBSSXg2 NCIgdHlwZTogJSN4KVxuIiwKLSAgICAgICAgICAgICAgICAgICBpLCByLT5zaXplLCByLT5iYXNl X2FkZHIsIHR5cGUpOworICAgICAgICAgICAgICAgICAgIGksIHJfc2l6ZSwgci0+YmFzZV9hZGRy LCB0eXBlKTsKICAgICB9CiAKICAgICAvKiBSZWdpc3RlciBleHBhbnNpb24gUk9NIGFkZHJlc3Mg Ki8KLS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qu b3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2 ZWw=