1. 13 7月, 2007 3 次提交
  2. 12 7月, 2007 1 次提交
  3. 27 6月, 2007 2 次提交
    • S
      x86_64 irq: use mask/unmask and proper locking in fixup_irqs() · 48d8d7ee
      Siddha, Suresh B 提交于
      Force irq migration path during cpu offline, is not using proper locks and
      irq_chip mask/unmask routines.  This will result in some races(especially
      the device generating the interrupt can see some inconsistent state,
      resulting in issues like stuck irq,..).
      
      Appended patch fixes the issue by taking proper lock and encapsulating
      irq_chip set_affinity() with a mask() before and an unmask() after.
      
      This fixes a MSI irq stuck issue reported by Darrick Wong.
      
      There are several more general bugs in this area(irq migration in the
      process context). For example,
      
       1. Possibility of missing edge triggered irq.
       2. Reliable method of migrating level triggered irq in the process context.
      
      We plan to look and close these in the near future.
      
      Eric says:
      	In addition even with the fix from Suresh there is still at least one
      	nasty hardware race in fixup_irqs().   However we exercise that code
      	path rarely enough that we are unlikely to hit it in the real world,
      	and that race seems to have existed since the code was merged.  And a
      	fix for that is not coming soon as it is an open investigation area
      	if we can fix irq migration to work outside of irq context or if
      	we have to rework the requirements imposed by the generic cpu hotplug
      	and layer on fixup_irqs().  So this may come up again.
      Signed-off-by: NSuresh Siddha <suresh.b.siddha@intel.com>
      Cc: Eric W. Biederman <ebiederm@xmission.com>
      Reported-and-tested-by: NDarrick Wong <djwong@us.ibm.com>
      Cc: Andi Kleen <ak@suse.de>
      Acked-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      48d8d7ee
    • S
      x86_64: set the irq_chip name for lapic · c47e285d
      Suresh Siddha 提交于
      set the irq_chip name for lapic.
      Signed-off-by: NSuresh Siddha <suresh.b.siddha@intel.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c47e285d
  4. 24 6月, 2007 1 次提交
    • J
      x86_64: fix misplaced `continue' in mce.c · 4f84e4be
      Joshua Wise 提交于
      Background:
        When a userspace application wants to know about machine check events, it
        opens /dev/mcelog and does a read(). Usually, we found that this interface
        works well, but in some cases, when the system was taking large numbers of
        machine check exceptions, the read() would hang. The system would output a
        soft-lockup warning, and the daemon reading from /dev/mcelog would suck up
        as much of a single CPU as it could spinning in system space.
      
      Description:
        This patch fixes this bug. In particular, there was a "continue" inside a
        timeout loop that presumably was intended to break out of the outer loop,
        but instead caused the inner loop to continue. This patch also makes the
        condition for the break-out a little more evident by changing a
        !time_before to a time_after_eq.
      
      Result:
        The read() no longer hangs in this test case.
      
      Testing:
        On my system, I could replicate the bug with the following command:
          # for i in `seq 15000`; do ./inject_sbe.sh; done
        where inject_sbe.sh contains commands to inject a single-bit error into the
        next memory write transaction.
      
      Patch:
        This patch is against git f1518a08.
      Signed-off-by: NJoshua Wise <jwise@google.com>
      Signed-off-by: NTim Hockin <thockin@google.com>
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4f84e4be
  5. 23 6月, 2007 1 次提交
  6. 21 6月, 2007 1 次提交
  7. 09 6月, 2007 1 次提交
    • A
      x86_64: oops_begin() fix · b39b7036
      Andrew Morton 提交于
      We don't want to see this:
      
      >  BUG: using smp_processor_id() in preemptible [00000001] code: bash/3857
      >  caller is oops_begin+0xb/0x6f
      >
      >  Call Trace:
      >  [<ffffffff8020ab4d>] show_trace+0x34/0x4f
      >  [<ffffffff8020ab7a>] dump_stack+0x12/0x17
      >  [<ffffffff8030d92d>] debug_smp_processor_id+0xad/0xbc
      >  [<ffffffff8042388f>] oops_begin+0xb/0x6f
      >  [<ffffffff8042520b>] do_page_fault+0x66a/0x7c0
      >  [<ffffffff804234bd>] error_exit+0x0/0x84
      >
      
      coming out when the kernel is trying to oops.
      
      Cc: Andi Kleen <ak@suse.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      b39b7036
  8. 24 5月, 2007 1 次提交
  9. 22 5月, 2007 3 次提交
    • J
      x86_64: vsyscall time() fix · d0aff6e6
      john stultz 提交于
      The vsyscall time() function basically returns the second portion of
      xtime directly.  This however means that there is about a ticks worth of
      time each second where time() will return a second value less then what
      gettimeofday() does.
      
      Additionally, this window where vtime() is behind vgettimeofday() grows
      when dynticks is enabled, so its probably good to get this in before
      dynticks lands.
      
      Big thanks to Sripathi for noticing this issue and creating a test case
      to work with!
      
      This patch changes the vtime() implemenation to call vgettimeofday(),
      much as syscall time() implementation calls gettimeofday().
      
      2.6.21 stable candidate too
      Signed-off-by: NJohn Stultz <johnstul@us.ibm.com>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d0aff6e6
    • Y
      x86_64: early_print kernel console should send CRLF not LFCR · d8902bfc
      Yinghai Lu 提交于
      In
      	commit d358788f
      	Author: Russell King <rmk@dyn-67.arm.linux.org.uk>
      	Date:   Mon Mar 20 20:00:09 2006 +0000
      
      Glen Turner reported that writing LFCR rather than the more
      traditional CRLF causes issues with some terminals.
      
      Since this afflicts many serial drivers, extract the common code to a
      library function (uart_console_write) and arrange for each driver to
      supply a "putchar" function.
      
      but early_printk is left out.
      Signed-off-by: NYinghai Lu <yinghai.lu@sun.com>
      Cc: Russell King <rmk@arm.linux.org.uk>
      Signed-off-by: NAndi Kleen <ak@suse.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      d8902bfc
    • A
      Detach sched.h from mm.h · e8edc6e0
      Alexey Dobriyan 提交于
      First thing mm.h does is including sched.h solely for can_do_mlock() inline
      function which has "current" dereference inside. By dealing with can_do_mlock()
      mm.h can be detached from sched.h which is good. See below, why.
      
      This patch
      a) removes unconditional inclusion of sched.h from mm.h
      b) makes can_do_mlock() normal function in mm/mlock.c
      c) exports can_do_mlock() to not break compilation
      d) adds sched.h inclusions back to files that were getting it indirectly.
      e) adds less bloated headers to some files (asm/signal.h, jiffies.h) that were
         getting them indirectly
      
      Net result is:
      a) mm.h users would get less code to open, read, preprocess, parse, ... if
         they don't need sched.h
      b) sched.h stops being dependency for significant number of files:
         on x86_64 allmodconfig touching sched.h results in recompile of 4083 files,
         after patch it's only 3744 (-8.3%).
      
      Cross-compile tested on
      
      	all arm defconfigs, all mips defconfigs, all powerpc defconfigs,
      	alpha alpha-up
      	arm
      	i386 i386-up i386-defconfig i386-allnoconfig
      	ia64 ia64-up
      	m68k
      	mips
      	parisc parisc-up
      	powerpc powerpc-up
      	s390 s390-up
      	sparc sparc-up
      	sparc64 sparc64-up
      	um-x86_64
      	x86_64 x86_64-up x86_64-defconfig x86_64-allnoconfig
      
      as well as my two usual configs.
      Signed-off-by: NAlexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e8edc6e0
  10. 19 5月, 2007 2 次提交
  11. 15 5月, 2007 1 次提交
    • L
      Revert "ipmi: add new IPMI nmi watchdog handling" · faa8b6c3
      Linus Torvalds 提交于
      This reverts commit f64da958.
      
      Andi Kleen is unhappy with the changes, and they really do not seem
      worth it.  IPMI could use DIE_NMI_IPI instead of the new callback, even
      though that ends up having its own set of problems too, mainly because
      the IPMI code cannot really know the NMI was from IPMI or not.
      
      Manually fix up conflicts in arch/x86_64/kernel/traps.c and
      drivers/char/ipmi/ipmi_watchdog.c.
      
      Cc: Andi Kleen <ak@suse.de>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      Cc: Corey Minyard <minyard@acm.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      faa8b6c3
  12. 13 5月, 2007 1 次提交
  13. 12 5月, 2007 2 次提交
  14. 11 5月, 2007 4 次提交
  15. 10 5月, 2007 2 次提交
  16. 09 5月, 2007 11 次提交
  17. 08 5月, 2007 2 次提交
  18. 07 5月, 2007 1 次提交
    • L
      Revert "[PATCH] x86: __pa and __pa_symbol address space separation" · e3ebadd9
      Linus Torvalds 提交于
      This was broken.  It adds complexity, for no good reason.  Rather than
      separate __pa() and __pa_symbol(), we should deprecate __pa_symbol(),
      and preferably __pa() too - and just use "virt_to_phys()" instead, which
      is more readable and has nicer semantics.
      
      However, right now, just undo the separation, and make __pa_symbol() be
      the exact same as __pa().  That fixes the bugs this patch introduced,
      and we can do the fairly obvious cleanups later.
      
      Do the new __phys_addr() function (which is now the actual workhorse for
      the unified __pa()/__pa_symbol()) as a real external function, that way
      all the potential issues with compile/link-time optimizations of
      constant symbol addresses go away, and we can also, if we choose to, add
      more sanity-checking of the argument.
      
      Cc: Eric W. Biederman <ebiederm@xmission.com>
      Cc: Vivek Goyal <vgoyal@in.ibm.com>
      Cc: Andi Kleen <ak@suse.de>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e3ebadd9