1. 23 Mar, 2006 1 commit
  2. 14 Mar, 2006 1 commit
    • Maneesh Soni's avatar
      [PATCH] Plug kdump shutdown race window · 67963132
      Maneesh Soni authored
      
      
      lapic_shutdown() re-enables interrupts which is un-desirable for panic
      case, so use local_irq_save() and local_irq_restore() to keep the irqs
      disabled for kexec on panic case, and close a possible race window while
      kdump shutdown as shown in this stack trace
      
         -- BUG: spinlock lockup on CPU#1, bash/4396, c52781a0
         [<c01c1870>] _raw_spin_lock+0xb7/0xd2
         [<c029e148>] _spin_lock+0x6/0x8
         [<c011b33f>] scheduler_tick+0xe7/0x328
         [<c0128a7c>] update_process_times+0x51/0x5d
         [<c0114592>] smp_apic_timer_interrupt+0x4f/0x58
         [<c01141ff>] lapic_shutdown+0x76/0x7e
         [<c0104d7c>] apic_timer_interrupt+0x1c/0x30
         [<c01141ff>] lapic_shutdown+0x76/0x7e
         [<c0116659>] machine_crash_shutdown+0x83/0xaa
         [<c013cc36>] crash_kexec+0xc1/0xe3
         [<c029e148>] _spin_lock+0x6/0x8
         [<c013cc22>] crash_kexec+0xad/0xe3
         [<c0215280>] __handle_sysrq+0x84/0xfd
         [<c018d937>] write_sysrq_trigger+0x2c/0x35
         [<c015e47b>] vfs_write+0xa2/0x13b
         [<c015ea73>] sys_write+0x3b/0x64
         [<c0103c69>] syscall_call+0x7/0xb
      Signed-off-by: default avatarManeesh Soni <maneesh@in.ibm.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      67963132
  3. 07 Feb, 2006 1 commit
    • Andi Kleen's avatar
      [PATCH] Fix bad apic fix on i386 · e1a8e6c9
      Andi Kleen authored
      
      
      Fix wrong '!' in bad apic fix
      
      I forgot to remove the ! when moving the code from x86-64 to i386 x86-64
      tested !disable_apic, but of course for cpu_has_apic it shouldn't be
      negated.
      
      Credit goes to Jan Beulich for spotting it with eagle eyes.
      
      Cc: Jan Beulich <jbeulich@novell.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarAndi Kleen <ak@suse.de>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      e1a8e6c9
  4. 04 Feb, 2006 1 commit
  5. 11 Jan, 2006 2 commits
  6. 06 Jan, 2006 1 commit
  7. 07 Nov, 2005 1 commit
    • Zwane Mwaikambo's avatar
      [PATCH] i386: LVT entries remaining unmasked on reboot · 77f72b19
      Zwane Mwaikambo authored
      Excerpt from bugzilla entry
      
      http://bugzilla.kernel.org/show_bug.cgi?id=5518
      
      
      
      "i386 version of Reboot-through-BIOS is unsafe: it forgets to mask APIC LVT
      interrupts before jumping to a BIOS entry point.  As a result, BIOS ends up
      bombarded with interrupts early on boot.  The BIOS does not expect it since
      following a "normal" hardware cpu reset, all APIC LVT registers have the
      Mask bit (16) set and can't generate interrupts.
      
      For example, the version of Phoenix BIOS used by VMware enables interrupts
      for the first time before masking/clearing APIC LVT.  The APIC Timer LVT
      register is still set up for a timer interrupt delivery with a high vector
      from the previous Linux incarnation (0xef in our case).  The BIOS has not
      fully initialized its IDT at this point and the real mode gate for 0xef
      remains all zeros.  Vector 0xef dispatches BIOS to address 0:0, BIOS takes
      a #GP and eventually hangs.
      
      machine_shutdown() does attempt to shut down APIC before jumping to BIOS,
      but it is ineffective"
      Signed-off-by: default avatarZwane Mwaikambo <zwane@arm.linux.org.uk>
      Cc: "Seth, Rohit" <rohit.seth@intel.com>
      Cc: Zachary Amsden <zach@vmware.com>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      77f72b19
  8. 31 Oct, 2005 1 commit
  9. 30 Oct, 2005 2 commits
    • Vivek Goyal's avatar
      [PATCH] kdump/i386: apic verification failure fix · 009b29d9
      Vivek Goyal authored
      
      
      o Removes the unnecessary call to local_irq_disable().
      
      o Kdump was failing while second kernel was coming up. Check for presence
        of boot cpu apic id was failing in (apic_id_registered), hence hitting
        BUG().
      
      o This should not have failed because before calling setup_local_APIC(), it is
        ensured that even if BIOS has not reported boot cpu, then hard set the
        prence of it. Problem happens because of usage of hard_smp_processor_id()
        which is hardcoded to zero in case of non SMP kernel. In kdump case second
        kernel can boot on a cpu whose boot cpu id is not zero.
      
      o Using boot_cpu_physical_apicid instead to hard set the presence of boot cpu.
      Signed-off-by: default avatarVivek Goyal <vgoyal@in.ibm.com>
      Cc: "Eric W. Biederman" <ebiederm@xmission.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      009b29d9
    • Eric W. Biederman's avatar
      [PATCH] i386: move apic init in init_IRQs · f2b36db6
      Eric W. Biederman authored
      
      
      All kinds of ugliness exists because we don't initialize
      the apics during init_IRQs.
      - We calibrate jiffies in non apic mode even when we are using apics.
      - We have to have special code to initialize the apics when non-smp.
      - The legacy i8259 must exist and be setup correctly, even
        when we won't use it past initialization.
      - The kexec on panic code must restore the state of the io_apics.
      - init/main.c needs a special case for !smp smp_init on x86
      
      In addition to pure code movement I needed a couple
      of non-obvious changes:
      - Move setup_boot_APIC_clock into APIC_late_time_init for
        simplicity.
      - Use cpu_khz to generate a better approximation of loops_per_jiffies
        so I can verify the timer interrupt is working.
      - Call setup_apic_nmi_watchdog again after cpu_khz is initialized on
        the boot cpu.
      Signed-off-by: default avatarEric W. Biederman <ebiederm@xmission.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      f2b36db6
  10. 26 Sep, 2005 1 commit
  11. 18 Aug, 2005 1 commit
  12. 30 Jun, 2005 1 commit
  13. 25 Jun, 2005 4 commits
    • Eric W. Biederman's avatar
      [PATCH] kexec: x86: resture apic virtual wire mode on shutdown · 650927ef
      Eric W. Biederman authored
      
      
      When coming out of apic mode attempt to set the appropriate
      apic back into virtual wire mode.  This improves on previous versions
      of this patch by by never setting bot the local apic and the ioapic
      into veritual wire mode.
      
      This code looks at data from the mptable to see if an ioapic has
      an ExtInt input to make this decision.  A future improvement
      is to figure out which apic or ioapic was in virtual wire mode
      at boot time and to remember it.  That is potentially a more accurate
      method, of selecting which apic to place in virutal wire mode.
      Signed-off-by: default avatarEric Biederman <ebiederm@xmission.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      650927ef
    • Eric W. Biederman's avatar
      [PATCH] kexec: x86: local apic fix · 9635b47d
      Eric W. Biederman authored
      
      
      From: "Maciej W. Rozycki" <macro@linux-mips.org>
      
      Fix a kexec problem whcih causes local APIC detection failure.
      
      The problem is detect_init_APIC() is called early, before the command line
      have been processed.  Therefore "lapic" (and "nolapic") have not been seen,
      yet.
      Signed-off-by: default avatarMaciej W. Rozycki <macro@linux-mips.org>
      Signed-off-by: default avatarEric Biederman <ebiederm@xmission.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      9635b47d
    • Li Shaohua's avatar
      [PATCH] init call cleanup · 0bb3184d
      Li Shaohua authored
      
      
      Trival patch for CPU hotplug.  In CPU identify part, only did cleaup for intel
      CPUs.  Need do for other CPUs if they support S3 SMP.
      
      Signed-off-by: Li Shaohua<shaohua.li@intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      0bb3184d
    • Zwane Mwaikambo's avatar
      [PATCH] i386 CPU hotplug · f3705136
      Zwane Mwaikambo authored
      
      
      (The i386 CPU hotplug patch provides infrastructure for some work which Pavel
      is doing as well as for ACPI S3 (suspend-to-RAM) work which Li Shaohua
      <shaohua.li@intel.com> is doing)
      
      The following provides i386 architecture support for safely unregistering and
      registering processors during runtime, updated for the current -mm tree.  In
      order to avoid dumping cpu hotplug code into kernel/irq/* i dropped the
      cpu_online check in do_IRQ() by modifying fixup_irqs().  The difference being
      that on cpu offline, fixup_irqs() is called before we clear the cpu from
      cpu_online_map and a long delay in order to ensure that we never have any
      queued external interrupts on the APICs.  There are additional changes to s390
      and ppc64 to account for this change.
      
      1) Add CONFIG_HOTPLUG_CPU
      2) disable local APIC timer on dead cpus.
      3) Disable preempt around irq balancing to prevent CPUs going down.
      4) Print irq stats for all possible cpus.
      5) Debugging check for interrupts on offline cpus.
      6) Hacky fixup_irqs() to redirect irqs when cpus go off/online.
      7) play_dead() for offline cpus to spin inside.
      8) Handle offline cpus set in flush_tlb_others().
      9) Grab lock earlier in smp_call_function() to prevent CPUs going down.
      10) Implement __cpu_disable() and __cpu_die().
      11) Enable local interrupts in cpu_enable() after fixup_irqs()
      12) Don't fiddle with NMI on dead cpu, but leave intact on other cpus.
      13) Program IRQ affinity whilst cpu is still in cpu_online_map on offline.
      Signed-off-by: default avatarZwane Mwaikambo <zwane@linuxpower.ca>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      f3705136
  14. 23 Jun, 2005 1 commit
  15. 01 May, 2005 1 commit
    • Jack F Vogel's avatar
      [PATCH] check nmi watchdog is broken · 67701ae9
      Jack F Vogel authored
      
      
      A bug against an xSeries system showed up recently noting that the
      check_nmi_watchdog() test was failing.
      
      I have been investigating it and discovered in both i386 and x86_64 the
      recent change to the routine to use the cpu_callin_map has uncovered a
      problem.  Prior to that change, on an SMP box, the test was trivally
      passing because all cpu's were found to not yet be online, but now with the
      callin_map they are discovered, it goes on to test the counter and they
      have not yet begun to increment, so it announces a CPU is stuck and bails
      out.
      
      On all the systems I have access to test, the announcement of failure is
      also bougs...  by the time you can login and check /proc/interrupts, the
      NMI count is happily incrementing on all CPUs.  Its just that the test is
      being done too early.
      
      I have tried moving the call to the test around a bit, and it was always
      too early.  I finally hit on this proposed solution, it delays the routine
      via a late_initcall(), seems like the right solution to me.
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      Cc: Andi Kleen <ak@muc.de>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      67701ae9
  16. 16 Apr, 2005 2 commits
    • Pavel Machek's avatar
      [PATCH] pm_message_t: more fixes in common and i386 · 438510f6
      Pavel Machek authored
      
      
      I thought I'm done with fixing u32 vs.  pm_message_t ...  unfortunately
      that turned out not to be the case as Russel King pointed out.  Here are
      fixes for Documentation and common code (mainly system devices).
      Signed-off-by: default avatarPavel Machek <pavel@suse.cz>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      438510f6
    • Linus Torvalds's avatar
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds authored
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4