From f7d2b06f8a13f72b227bdd52c4488676a8e6c9d7 Mon Sep 17 00:00:00 2001 From: Saravana Kannan Date: Fri, 10 Jan 2020 21:21:25 -0800 Subject: [PATCH] clocksource/drivers/timer-probe: Avoid creating dead devices Timer initialization is done during early boot way before the driver core starts processing devices and drivers. Timers initialized during this early boot period don't really need or use a struct device. However, for timers represented as device tree nodes, the struct devices are still created and sit around unused and wasting memory. This change avoid this by marking the device tree nodes as "populated" if the corresponding timer is successfully initialized. Signed-off-by: Saravana Kannan Signed-off-by: Daniel Lezcano Link: https://lore.kernel.org/r/20200111052125.238212-1-saravanak@google.com --- drivers/clocksource/timer-probe.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/clocksource/timer-probe.c b/drivers/clocksource/timer-probe.c index ee9574da53c05..a10f28d750a97 100644 --- a/drivers/clocksource/timer-probe.c +++ b/drivers/clocksource/timer-probe.c @@ -27,8 +27,10 @@ void __init timer_probe(void) init_func_ret = match->data; + of_node_set_flag(np, OF_POPULATED); ret = init_func_ret(np); if (ret) { + of_node_clear_flag(np, OF_POPULATED); if (ret != -EPROBE_DEFER) pr_err("Failed to initialize '%pOF': %d\n", np, ret); -- 2.39.5