diff for duplicates of <20140410063540.GA25198@1wt.eu> diff --git a/a/1.txt b/N1/1.txt index 6af3d8f..244d4f3 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -24,50 +24,3 @@ OK, thank you. I've updated the attached patch with your better description. Cheers, Willy - --------------- next part -------------- ->From f90886f625d95781a3302bbc025304635dd97e9c Mon Sep 17 00:00:00 2001 -From: Willy Tarreau <w@1wt.eu> -Date: Wed, 9 Apr 2014 08:05:09 +0200 -Subject: pci: mvebu: fix off-by-one in the computed size of the mbus windows - -mvebu_pcie_handle_membase_change() and -mvebu_pcie_handle_iobase_change() do not correctly compute the window -size. PCI uses an inclusive start/end address pair, which requires a -+1 when converting to size. - -This only worked because a bug in the mbus driver allowed it to -silently accept and round up bogus sizes. - -Fix this by adding one to the computed size. - -Signed-off-by: Willy Tarreau <w@1wt.eu> -Reviewed-By: Jason Gunthorpe <jgunthorpe@obsidianresearch.com> ---- - drivers/pci/host/pci-mvebu.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/drivers/pci/host/pci-mvebu.c b/drivers/pci/host/pci-mvebu.c -index 0e79665..eff0ab5 100644 ---- a/drivers/pci/host/pci-mvebu.c -+++ b/drivers/pci/host/pci-mvebu.c -@@ -329,7 +329,7 @@ static void mvebu_pcie_handle_iobase_change(struct mvebu_pcie_port *port) - port->iowin_base = port->pcie->io.start + iobase; - port->iowin_size = ((0xFFF | ((port->bridge.iolimit & 0xF0) << 8) | - (port->bridge.iolimitupper << 16)) - -- iobase); -+ iobase) + 1; - - mvebu_mbus_add_window_remap_by_id(port->io_target, port->io_attr, - port->iowin_base, port->iowin_size, -@@ -362,7 +362,7 @@ static void mvebu_pcie_handle_membase_change(struct mvebu_pcie_port *port) - port->memwin_base = ((port->bridge.membase & 0xFFF0) << 16); - port->memwin_size = - (((port->bridge.memlimit & 0xFFF0) << 16) | 0xFFFFF) - -- port->memwin_base; -+ port->memwin_base + 1; - - mvebu_mbus_add_window_by_id(port->mem_target, port->mem_attr, - port->memwin_base, port->memwin_size); --- -1.7.12.2.21.g234cd45.dirty diff --git a/N1/2.hdr b/N1/2.hdr new file mode 100644 index 0000000..0c7143f --- /dev/null +++ b/N1/2.hdr @@ -0,0 +1,2 @@ +Content-Type: text/plain; charset=us-ascii +Content-Disposition: attachment; filename="0001-pci-mvebu-fix-off-by-one-in-the-computed-size-of-the.patch" diff --git a/N1/2.txt b/N1/2.txt new file mode 100644 index 0000000..8c48ab5 --- /dev/null +++ b/N1/2.txt @@ -0,0 +1,45 @@ +>From f90886f625d95781a3302bbc025304635dd97e9c Mon Sep 17 00:00:00 2001 +From: Willy Tarreau <w@1wt.eu> +Date: Wed, 9 Apr 2014 08:05:09 +0200 +Subject: pci: mvebu: fix off-by-one in the computed size of the mbus windows + +mvebu_pcie_handle_membase_change() and +mvebu_pcie_handle_iobase_change() do not correctly compute the window +size. PCI uses an inclusive start/end address pair, which requires a ++1 when converting to size. + +This only worked because a bug in the mbus driver allowed it to +silently accept and round up bogus sizes. + +Fix this by adding one to the computed size. + +Signed-off-by: Willy Tarreau <w@1wt.eu> +Reviewed-By: Jason Gunthorpe <jgunthorpe@obsidianresearch.com> +--- + drivers/pci/host/pci-mvebu.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/pci/host/pci-mvebu.c b/drivers/pci/host/pci-mvebu.c +index 0e79665..eff0ab5 100644 +--- a/drivers/pci/host/pci-mvebu.c ++++ b/drivers/pci/host/pci-mvebu.c +@@ -329,7 +329,7 @@ static void mvebu_pcie_handle_iobase_change(struct mvebu_pcie_port *port) + port->iowin_base = port->pcie->io.start + iobase; + port->iowin_size = ((0xFFF | ((port->bridge.iolimit & 0xF0) << 8) | + (port->bridge.iolimitupper << 16)) - +- iobase); ++ iobase) + 1; + + mvebu_mbus_add_window_remap_by_id(port->io_target, port->io_attr, + port->iowin_base, port->iowin_size, +@@ -362,7 +362,7 @@ static void mvebu_pcie_handle_membase_change(struct mvebu_pcie_port *port) + port->memwin_base = ((port->bridge.membase & 0xFFF0) << 16); + port->memwin_size = + (((port->bridge.memlimit & 0xFFF0) << 16) | 0xFFFFF) - +- port->memwin_base; ++ port->memwin_base + 1; + + mvebu_mbus_add_window_by_id(port->mem_target, port->mem_attr, + port->memwin_base, port->memwin_size); +-- +1.7.12.2.21.g234cd45.dirty diff --git a/a/content_digest b/N1/content_digest index da68eb4..774b820 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,11 +1,17 @@ "ref\01397000654-10849-1-git-send-email-jgunthorpe@obsidianresearch.com\0" "ref\020140409061128.GC16465@1wt.eu\0" "ref\020140409162040.GA19743@obsidianresearch.com\0" - "From\0w@1wt.eu (Willy Tarreau)\0" - "Subject\0[PATCH v2] bus: mvebu-mbus: Avoid setting an undefined window size\0" + "From\0Willy Tarreau <w@1wt.eu>\0" + "Subject\0Re: [PATCH v2] bus: mvebu-mbus: Avoid setting an undefined window size\0" "Date\0Thu, 10 Apr 2014 08:35:40 +0200\0" - "To\0linux-arm-kernel@lists.infradead.org\0" - "\00:1\0" + "To\0Jason Gunthorpe <jgunthorpe@obsidianresearch.com>\0" + "Cc\0Thomas Petazzoni <thomas.petazzoni@free-electrons.com>" + Neil Greatorex <neil@fatboyfat.co.uk> + linux-arm-kernel@lists.infradead.org + Matthew Minter <matthew_minter@xyratex.com> + linux-kernel@vger.kernel.org + " Jason Cooper <jason@lakedaemon.net>\0" + "\01:1\0" "b\0" "Hi Jason,\n" "\n" @@ -32,9 +38,10 @@ "OK, thank you. I've updated the attached patch with your better description.\n" "\n" "Cheers,\n" - "Willy\n" - "\n" - "-------------- next part --------------\n" + Willy + "\01:2\0" + "fn\00001-pci-mvebu-fix-off-by-one-in-the-computed-size-of-the.patch\0" + "b\0" ">From f90886f625d95781a3302bbc025304635dd97e9c Mon Sep 17 00:00:00 2001\n" "From: Willy Tarreau <w@1wt.eu>\n" "Date: Wed, 9 Apr 2014 08:05:09 +0200\n" @@ -81,4 +88,4 @@ "-- \n" 1.7.12.2.21.g234cd45.dirty -d89f5ac365fa0b0d76739884bfefe312ac4511eb52eaa3c8c9b3fe4c0959b4a7 +a00c74ae7c7026a425a57731487b0b616967f2a5982903c01501a5fcbf01def0
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.