diff for duplicates of <20140409061128.GC16465@1wt.eu> diff --git a/a/1.txt b/N1/1.txt index 6c5a80c..85047a1 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -17,7 +17,7 @@ mvebu_pcie_handle_iobase_change() and mvebu_pcie_handle_membase_change() do pass a size which is in fact a mask (size - 1) and not the real size. So the mbus is fed with an incorrect size which is off by one : -root at xpgp:~# modprobe igb +root@xpgp:~# modprobe igb igb: Intel(R) Gigabit Ethernet Network Driver - version 5.0.5-k igb: Copyright (c) 2007-2013 Intel Corporation. PCI: enabling device 0000:00:09.0 (0140 -> 0143) @@ -189,7 +189,7 @@ BootROM 1.20 The cause is obvious, the two callers compute a wrong size, so the attached patch fixes it. After that I still get the panic but for the proper reason : -root at xpgp:~# modprobe igb +root@xpgp:~# modprobe igb igb: Intel(R) Gigabit Ethernet Network Driver - version 5.0.5-k igb: Copyright (c) 2007-2013 Intel Corporation. PCI: enabling device 0000:00:09.0 (0140 -> 0143) @@ -211,46 +211,3 @@ test now. Regards, Willy - --------------- next part -------------- ->From de000611015c7490a07ced6e36bfffbfdd136832 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() -compute a window size which is in fact a mask. This size is fed to -mvebu_mbus_add_window_by_id() which itself subtracts 1 to get the -mask. So clearly the two functions above are wrong. - -Fix this by adding one to the computed size. - -Signed-off-by: Willy Tarreau <w@1wt.eu> ---- - 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..6bb83d6 --- /dev/null +++ b/N1/2.txt @@ -0,0 +1,41 @@ +>From de000611015c7490a07ced6e36bfffbfdd136832 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() +compute a window size which is in fact a mask. This size is fed to +mvebu_mbus_add_window_by_id() which itself subtracts 1 to get the +mask. So clearly the two functions above are wrong. + +Fix this by adding one to the computed size. + +Signed-off-by: Willy Tarreau <w@1wt.eu> +--- + 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 b18aeaf..dbdc92d 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,9 +1,15 @@ "ref\01397000654-10849-1-git-send-email-jgunthorpe@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\0Wed, 9 Apr 2014 08:11:29 +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" @@ -24,7 +30,7 @@ "do pass a size which is in fact a mask (size - 1) and not the real size.\n" "So the mbus is fed with an incorrect size which is off by one :\n" "\n" - "root at xpgp:~# modprobe igb\n" + "root@xpgp:~# modprobe igb\n" "igb: Intel(R) Gigabit Ethernet Network Driver - version 5.0.5-k\n" "igb: Copyright (c) 2007-2013 Intel Corporation.\n" "PCI: enabling device 0000:00:09.0 (0140 -> 0143)\n" @@ -196,7 +202,7 @@ "The cause is obvious, the two callers compute a wrong size, so the attached\n" "patch fixes it. After that I still get the panic but for the proper reason :\n" "\n" - "root at xpgp:~# modprobe igb\n" + "root@xpgp:~# modprobe igb\n" "igb: Intel(R) Gigabit Ethernet Network Driver - version 5.0.5-k\n" "igb: Copyright (c) 2007-2013 Intel Corporation.\n" "PCI: enabling device 0000:00:09.0 (0140 -> 0143)\n" @@ -217,9 +223,10 @@ "test now.\n" "\n" "Regards,\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 de000611015c7490a07ced6e36bfffbfdd136832 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" @@ -262,4 +269,4 @@ "-- \n" 1.7.12.2.21.g234cd45.dirty -8f56fe2142ba4b1dbd7c29a343bf743b85b52ef329bb761b4052ce3be7c8e50b +874d13600d101350e9499ca82c53801980de7323b4acb16ff1a1a9fbe9436488
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.