PCI: rcar: Verify that mem_res is 64K-aligned
authorNobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
Mon, 16 Feb 2015 01:54:08 +0000 (10:54 +0900)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 24 Feb 2015 06:24:19 +0000 (00:24 -0600)
The lower 16 bits of the address, which is managed by mem_res, need to be
zero.  Check the address to verify this.

Signed-off-by: Nobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Simon Horman <horms+renesas@verge.net.au>
drivers/pci/host/pci-rcar-gen2.c

index dd6b84e..367e28f 100644 (file)
@@ -301,6 +301,9 @@ static int rcar_pci_probe(struct platform_device *pdev)
        if (!mem_res || !mem_res->start)
                return -ENODEV;
 
+       if (mem_res->start & 0xFFFF)
+               return -EINVAL;
+
        priv = devm_kzalloc(&pdev->dev,
                            sizeof(struct rcar_pci_priv), GFP_KERNEL);
        if (!priv)