[3.13.y.z extended stable] Patch "PCI: mvebu: Fix potential issue in range parsing" has been added to staging queue

Kamal Mostafa kamal at canonical.com
Thu May 1 19:17:04 UTC 2014


This is a note to let you know that I have just added a patch titled

    PCI: mvebu: Fix potential issue in range parsing

to the linux-3.13.y-queue branch of the 3.13.y.z extended stable tree 
which can be found at:

 http://kernel.ubuntu.com/git?p=ubuntu/linux.git;a=shortlog;h=refs/heads/linux-3.13.y-queue

This patch is scheduled to be released in version 3.13.11.1.

If you, or anyone else, feels it should not be added to this tree, please 
reply to this email.

For more information about the 3.13.y.z tree, see
https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable

Thanks.
-Kamal

------

>From 1fae89a762dd8b9ce8bc0950a3f75cb7b93bc9d5 Mon Sep 17 00:00:00 2001
From: Jean-Jacques Hiblot <jjhiblot at traphandler.com>
Date: Fri, 14 Feb 2014 11:46:15 -0700
Subject: PCI: mvebu: Fix potential issue in range parsing

commit 4f4bde1df33bde076f53325bdf2c6430cf85e1bb upstream.

The second parameter of of_read_number() is not the index, but a size.  As
it happens, in this case it may work just fine because of the conversion to
u32 and the favorable endianness on this architecture.

Fixes: 11be65472a427 ("PCI: mvebu: Adapt to the new device tree layout")
Tested-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Signed-off-by: Jean-Jacques Hiblot <jjhiblot at traphandler.com>
Signed-off-by: Bjorn Helgaas <bhelgaas at google.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni at free-electrons.com>
Acked-by: Jason Cooper <jason at lakedaemon.net>
Signed-off-by: Kamal Mostafa <kamal at canonical.com>
---
 drivers/pci/host/pci-mvebu.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/pci/host/pci-mvebu.c b/drivers/pci/host/pci-mvebu.c
index e9b7c2c..f26731c 100644
--- a/drivers/pci/host/pci-mvebu.c
+++ b/drivers/pci/host/pci-mvebu.c
@@ -766,7 +766,7 @@ static int mvebu_get_tgt_attr(struct device_node *np, int devfn,

 	for (i = 0; i < nranges; i++) {
 		u32 flags = of_read_number(range, 1);
-		u32 slot = of_read_number(range, 2);
+		u32 slot = of_read_number(range + 1, 1);
 		u64 cpuaddr = of_read_number(range + na, pna);
 		unsigned long rtype;

--
1.9.1





More information about the kernel-team mailing list