]> git.baikalelectronics.ru Git - kernel.git/commit
ARM: footbridge: fix overlapping PCI mappings
authorMike Frysinger <vapier@gentoo.org>
Fri, 28 Jun 2013 02:42:36 +0000 (22:42 -0400)
committerOlof Johansson <olof@lixom.net>
Tue, 23 Jul 2013 03:00:47 +0000 (20:00 -0700)
commit28e1bbdc8e25eb8c2078ab26d9fe4f21e211617d
tree15ddaa9a5dde305b4087056d35a2808ae78d91bf
parentfee5025b55f8519c91b9362121360617ebb7ac46
ARM: footbridge: fix overlapping PCI mappings

Commit ad79b1ba833da687d7bf5a6ff20008028e460745 (ARM: footbridge: use
fixed PCI i/o mapping) broke booting on my netwinder.  Before that,
everything boots fine.  Since then, it crashes on boot.

With earlyprintk, I see it BUG-ing like so:
kernel BUG at lib/ioremap.c:27!
Internal error: Oops - BUG: 0 [#1] ARM
...
[<c0139b54>] (ioremap_page_range+0x128/0x154) from [<c02e6a6c>] (dc21285_setup+0xd0/0x114)
[<c02e6a6c>] (dc21285_setup+0xd0/0x114) from [<c02e4874>] (pci_common_init+0xa0/0x298)
[<c02e4874>] (pci_common_init+0xa0/0x298) from [<c02e793c>] (netwinder_pci_init+0xc/0x18)
[<c02e793c>] (netwinder_pci_init+0xc/0x18) from [<c02e27d0>] (do_one_initcall+0xb4/0x180)
...

Russell points out it's because of overlapping PCI mappings that was
added with the aforementioned commit.  Rob thought the code would re-use
the static mapping, but that turns out to not be the case and instead
hits the BUG further down.

After deleting this hunk as suggested by Russel, the system boots up fine
again and all my PCI devices work (IDE, ethernet, the DC21285).

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Acked-by: Rob Herring <rob.herring@calxeda.com>
Cc: stable@vger.kernel.org # v3.5+
Signed-off-by: Olof Johansson <olof@lixom.net>
arch/arm/mach-footbridge/dc21285.c