aboutsummaryrefslogtreecommitdiff
path: root/drivers/base
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2010-05-13 17:56:56 +0900
committerPaul Mundt <lethal@linux-sh.org>2010-05-13 17:56:56 +0900
commit06fe53beb636294587d8e94ef83c06cef07c21fd (patch)
treee8dda24a7c3b270ca11940dbedf8ac76fe595e47 /drivers/base
parentbd05086bbe3f241cd552068f9ceba9e19c6ce427 (diff)
driver core: Early dev_name() depends on slab_is_available().
The early dev_name() setup needs to do an allocation which can only be satisfied under slab_is_available() conditions. Some of the early platform drivers may be initialized before this point, and those still need to contend themselves with an empty dev_name. This fixes up a regression with the SH earlyprintk which was bailing out prior to hitting the early probe path due to not being able to satisfy the early allocation. Other early platform drivers (such as the early timers) that need to match the dev name are sufficiently late that allocations are already possible. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'drivers/base')
-rw-r--r--drivers/base/platform.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index f2377f3d95e..ef51b008384 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -1244,7 +1244,7 @@ static int __init early_platform_driver_probe_id(char *class_str,
* dev_name() and others to be used before the
* rest of the driver core is initialized.
*/
- if (!match->dev.init_name) {
+ if (!match->dev.init_name && slab_is_available()) {
if (match->id != -1)
match->dev.init_name =
kasprintf(GFP_KERNEL, "%s.%d",