1. 11 Mar, 2006 1 commit
    • Sam Ravnborg's avatar
      [PATCH] cpufreq: fix section mismatch warnings · bb1a813d
      Sam Ravnborg authored
      cpufreq are the only remaining bit to be solved for me to have a modpost
      clean build for sparc64 - so I took one more look at it.
      changelog entry:
      
      Fix section mismatch warnings in cpufreq:
      WARNING: drivers/cpufreq/cpufreq_stats.o - Section mismatch: reference to .init.text: from .data between 'cpufreq_stat_cpu_notifier' (at offset 0xa8) and 'notifier_policy_block'
      WARNING: drivers/cpufreq/cpufreq_stats.o - Section mismatch: reference to .init.text: from .exit.text after 'cleanup_module' (at offset 0x30)
      
      The culprint is the function: cpufreq_stat_cpu_callback
      It is marked __cpuinit which get's redefined to __init in case
      HOTPLUG_CPU is not enabled as per. init.h:
      
      #ifdef CONFIG_HOTPLUG_CPU
      #define __cpuinit
      #else
      #define __cpuinit       __init
      #endif
      
      $> grep HOTPLUG .config
      CONFIG_HOTPLUG=y
      
      But cpufreq_stat_cpu_callback() is used in:
      __exit cpufreq_stats_exit()
      static struct notifier_block cpufreq_stat_cpu_notifier
      
      cpufreq_stat_cpu_notifier is again used in:
      __init cpufreq_stats_init()
      __exit cpufreq_stats_exit()
      
      So in both cases used from both __init and __exit context.
      Only solution seems to drop __cpuinit tag.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarDave Jones <davej@redhat.com>
      bb1a813d
  2. 10 Mar, 2006 1 commit
  3. 05 Mar, 2006 2 commits
  4. 28 Feb, 2006 7 commits
  5. 27 Feb, 2006 26 commits
  6. 26 Feb, 2006 3 commits
    • Andi Kleen's avatar
      [PATCH] x86_64: Fix ioctl compat code for /dev/rtc · fc5870f6
      Andi Kleen authored
      RTC_IRQP_SET/RTC_EPOCH_SET don't take a pointer to an argument, but the
      argument itself.  This actually simplifies the code and makes it work.
      Signed-off-by: default avatarAndi Kleen <ak@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      fc5870f6
    • Andi Kleen's avatar
      [PATCH] x86_64: Better ATI timer fix · ab9b32ee
      Andi Kleen authored
      The previous experiment for using apicmaintimer on ATI systems didn't
      work out very well.  In particular laptops with C2/C3 support often
      don't let it tick during idle, which makes it useless.  There were also
      some other bugs that made the apicmaintimer often not used at all.
      
      I tried some other experiments - running timer over RTC and some other
      things but they didn't really work well neither.
      
      I rechecked the specs now and it turns out this simple change is
      actually enough to avoid the double ticks on the ATI systems.  We just
      turn off IRQ 0 in the 8254 and only route it directly using the IO-APIC.
      
      I tested it on a few ATI systems and it worked there.  In fact it worked
      on all chipsets (NVidia, Intel, AMD, ATI) I tried it on.
      
      According to the ACPI spec routing should always work through the
      IO-APIC so I think it's the correct thing to do anyways (and most of the
      old gunk in check_timer should be thrown away for x86-64).
      
      But for 2.6.16 it's best to do a fairly minimal change:
       - Use the known to be working everywhere-but-ATI IRQ0 both over 8254
         and IO-APIC setup everywhere
       - Except on ATI disable IRQ0 in the 8254
       - Remove the code to select apicmaintimer on ATI chipsets
       - Add some boot options to allow to override this (just paranoia)
      
      In 2.6.17 I hope to switch the default over to this for everybody.
      Signed-off-by: default avatarAndi Kleen <ak@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      ab9b32ee
    • Andi Kleen's avatar
      [PATCH] x86_64: Move the SMP time selection earlier · e8b91777
      Andi Kleen authored
      SMP time selection originally ran after all CPUs were brought up because
      it needed to know the number of CPUs to decide if it needs an MP safe
      timer or not.
      
      This is not needed anymore because we know present CPUs early.
      
      This fixes a couple of problems:
       - apicmaintimer didn't always work because it relied on state that was
         set up time_init_gtod too late.
       - The output for the used timer in early kernel log was misleading
         because time_init_gtod could actually change it later.  Now always
         print the final timer choice
      Signed-off-by: default avatarAndi Kleen <ak@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      e8b91777