Skip to content

Commit

Permalink
ARM: Kirkwood: TS219: Fix crash by double PCIe instantiation
Browse files Browse the repository at this point in the history
When creating the DT based boards-ts219.c the none DT ts219-setup.c
was used as a template. This includes a lateinit() call to initialize
the PCIe bus. The code makes use of machine_is_ts219() which is never
true on DT, so a FIXME was added and the code left as is. This was
unproblematic until b73690c: "ARM: Kirkwood: Support basic
hotplug for PCI-E" which changes the way the PCIe bus is
initialized. The non-DT ts219-setup.c now crashes during boot.  The
lateinit() call in the DT boards-ts219.c is being called,
machine_is_ts219() is true and so the PCIe is initialized a second
time.

This patch removes the useless, and now clearly dangerous, code from
boards-ts219.c, making ts219-setup.c work again.

Signed-off-by: Andrew Lunn <andrew@lunn.ch>
Cc: <stable@vger.kernel.org> # v3.9.x
Signed-off-by: Jason Cooper <jason@lakedaemon.net>
  • Loading branch information
Andrew Lunn authored and Jason Cooper committed May 28, 2013
1 parent 489e138 commit e89b405
Showing 1 changed file with 0 additions and 10 deletions.
10 changes: 0 additions & 10 deletions arch/arm/mach-kirkwood/board-ts219.c
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,3 @@ void __init qnap_dt_ts219_init(void)

pm_power_off = qnap_tsx1x_power_off;
}

/* FIXME: Will not work with DT. Maybe use MPP40_GPIO? */
static int __init ts219_pci_init(void)
{
if (machine_is_ts219())
kirkwood_pcie_init(KW_PCIE0);

return 0;
}
subsys_initcall(ts219_pci_init);

0 comments on commit e89b405

Please sign in to comment.