x86: update to account for feedback

This updates the x86 init tables to account for some initial
feedback after the v2 series. In particular, some highlights:

o removed run time sorting: this is not needed yet
o since we now have only 2 declarers:

DECLARE_LINKTABLE() -- const
DECLARE_LINKTABLE_DATA() - non const

We use use DECLARE_LINKTABLE_DATA() for the table, and the definition
actually pegs it to the right section.

o we drop x86_init_fn_setup_arch() and x86_init_fn_late_init()
  as this is better evolved with time with upstream. The point
  is made and I think its understood what the goal is here.

o we drop the char *name from the struct x86_init_fn given to
  match the upstream kernel use. The kernel can get the name
  using %pF, but we can't since libc stdio printf does not support
  this. Maybe we can port this somehow in... but I can't see how.
  For now just comment out %pF uses and deal with it by cluttering
  our init calls so we know what triggered where.

  For instance the kernel can use but we'll comment this sort of
  stuff out:

  pr_err("Init sequence fails to declares any supported subarchs: %pF\n", fn->early_init);

o The X86_INIT_EARLY_*() macros are simplified to only provide what we
  need, we also use lower case, so x86_init_early_pc(), etc.

o The xen macro x86_init_early_xen() is added but won't be part of the
  v3 upstream submission. That will later be used but we have
  to re-consider a different level order for it, perhaps a hypervisor
  order level. That can only happen *iff* we can get load_idt() issue
  addressed. As it stands we can't use the subarch on x86_64_start_kernel()
  prior to load_idt(), our userspace demo here uses it as that's the
  goal but in practice this doesn't work yet on x86 kernels.. we can
  only access the subarch after load_idt(), so upstream v3 submission
  will use the x86_init_fn_early_init() on x86_64_start_reservations().

Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
14 files changed