__clksrc_of_table и "clocksource_probe: не найдено подходящих источников синхронизации" - PullRequest
0 голосов
/ 23 апреля 2019

Я работаю с ядром 4.9.51 LTSI на специальной плате с AM3352.Кажется, что система работает нормально, но при загрузке я получаю следующее сообщение:

clocksource_probe: no matching clocksources found

Я немного слежу за этим, и это сообщение печатается clocksource_probe(), которое вызывается во время time_init().Это код функции:

void __init clocksource_probe(void)
{
   struct device_node *np;
   const struct of_device_id *match;
   of_init_fn_1_ret init_func_ret;
   unsigned clocksources = 0;
   int ret;

   for_each_matching_node_and_match(np, __clksrc_of_table, &match) {
      if (!of_device_is_available(np))
         continue;

      init_func_ret = match->data;

      ret = init_func_ret(np);
      if (ret) {
         pr_err("Failed to initialize '%s': %d",
                of_node_full_name(np), ret);
         continue;
      }

      clocksources++;
   }

   clocksources += acpi_probe_device_table(clksrc);

   if (!clocksources)
      pr_crit("%s: no matching clocksources found\n", __func__);
}

Из кода видно, что сообщение было напечатано, потому что clocksources == 0.Это означает, что в дереве устройств не было совпадающих узлов, и что acpi_probe_device_table вернул 0 (это правильно, учитывая, что ядро ​​не поддерживает ACPI).

Это оставляет меня с двумя вопросами: 1 - Этосообщение индикатор проблемы?Я предполагаю, что это так, потому что он напечатан с pr_crit ... 2 - Почему for_each_matching_node_and_match не получает совпадений?Я не нашел, где __clksrc_of_table инициализируется, так что, может быть, это потому, что __clksrc_of_table пуст?

...