android_kernel_google_msm/drivers/base
Grant Likely 38bc0fe99e drivercore: Fix ordering between deferred_probe and exiting initcalls
commit d72cca1eee upstream.

One of the side effects of deferred probe is that some drivers which
used to be probed before initcalls completed are now happening slightly
later. This causes two problems.
- If a console driver gets deferred, then it may not be ready when
  userspace starts. For example, if a uart depends on pinctrl, then the
  uart will get deferred and /dev/console will not be available
- __init sections will be discarded before built-in drivers are probed.
  Strictly speaking, __init functions should not be called in a drivers
  __probe path, but there are a lot of drivers (console stuff again)
  that do anyway. In the past it was perfectly safe to do so because all
  built-in drivers got probed before the end of initcalls.

This patch fixes the problem by forcing the first pass of the deferred
list to complete at late_initcall time. This is late enough to catch the
drivers that are known to have the above issues.

Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Tested-by: Haojian Zhuang <haojian.zhuang@linaro.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-02-28 06:59:01 -08:00
..
power PM / QoS: fix wrong error-checking condition 2012-12-03 11:47:10 -08:00
regmap regmap: debugfs: Avoid overflows for very small reads 2013-01-17 08:50:54 -08:00
attribute_container.c
base.h driver core: move the deferred probe pointer into the private area 2012-03-08 12:17:22 -08:00
bus.c Driver core: treat unregistered bus_types as having no devices 2013-02-28 06:59:00 -08:00
class.c
core.c Core device tree changes for Linux v3.4 2012-03-21 10:30:03 -07:00
cpu.c Merge 3.3-rc6 into driver-core-next 2012-03-09 12:35:53 -08:00
dd.c drivercore: Fix ordering between deferred_probe and exiting initcalls 2013-02-28 06:59:01 -08:00
devres.c
devtmpfs.c
dma-buf.c dma-buf: add support for kernel cpu access 2012-03-26 11:33:02 +05:30
dma-coherent.c
dma-mapping.c
driver.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2012-03-21 18:55:10 -07:00
firmware.c
firmware_class.c firmware_class: Move request_firmware_nowait() to workqueues 2012-03-28 23:31:00 +02:00
hypervisor.c
init.c
isa.c
Kconfig
Makefile
map.c
memory.c Linux 3.3-rc7 2012-03-14 07:44:11 +01:00
module.c
node.c
platform.c
soc.c drivers/base: fix compiler warning in SoC export driver - idr should be ida 2012-04-09 14:54:22 -07:00
syscore.c
topology.c
transport_class.c