Device Tree support for x86_64 kernel? Unresolved symbol apic_force_enable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Background:

I'm working on a project that needs device tree like capability. Using
the device tree OF driver works well and I don't want to create something
that closely duplicates that functionality.  

When building a 32bit kernel, all works fine. However when building a
64bit kernel, the linking stage fails with an unresolved symbol: 
  apic_force_enable

This symbol is getting called from arch/x86/kernel/devicetree.c and is
defined in arch/x86/kernel/apic/apic.c but only when !CONFIG_X86_64

I see two possible fixes but as I'm unfamiliar with this area of the
kernel I don't know which would be a better choice.

1) in arch/x86/kernel/apic/apic.c, define the apic_force_enable() 
   function in the X86_64 bit path and have it return 0.  Something like:

   
   int __init apic_force_enable(unsigned long addr)
   {
      return 0;
   }

2) wrap the call to apic_force_enable with a #ifndef CONFIG_X86_64 in
   devicetree.c. Something like :

   #ifndef CONFIG_X86_64
         if (apic_force_enable(r.start))
            return;
   #else
         return;
   #endif

I've been using #1 successfully in my development and it seems like it
would be the best choice long term.  I'm looking for some validation
that this makes sense and if so, I'll submit a patch to lkm with the
fix.

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies




[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux