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 dd6b84e6206c4f40b213de597108af64abf9f3ea..367e28fa75643a1fe27218d640f090ac004877b9 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)
This page took 0.025627 seconds and 5 git commands to generate.