1. 21 10月, 2009 1 次提交
  2. 16 10月, 2009 4 次提交
    • R
      x86, UV: Fix and clean up bau code to use uv_gpa_to_pnode() · 1d21e6e3
      Robin Holt 提交于
      Create an inline function to extract the pnode from a global
      physical address and then convert the broadcast assist unit to
      use the newly created uv_gpa_to_pnode function.
      
      The open-coded code was wrong as well - it might explain a
      few of our unexplained bau hangs.
      Signed-off-by: NRobin Holt <holt@sgi.com>
      Acked-by: NCliff Whickman <cpw@sgi.com>
      Cc: linux-mm@kvack.org
      Cc: Jack Steiner <steiner@sgi.com>
      LKML-Reference: <20091016112920.GZ8903@sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      1d21e6e3
    • R
      x86: Don't print number of MCE banks for every CPU · 93ae5012
      Roland Dreier 提交于
      The MCE initialization code explicitly says it doesn't handle
      asymmetric configurations where different CPUs support different
      numbers of MCE banks, and it prints a big warning in that case.
      
      Therefore, printing the "mce: CPU supports <x> MCE banks"
      message into the kernel log for every CPU is pure redundancy
      that clutters the log significantly for systems with lots of
      CPUs.
      Signed-off-by: NRoland Dreier <rolandd@cisco.com>
      LKML-Reference: <adaeip473qt.fsf@cisco.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      93ae5012
    • R
      x86, UV: Fix information in __uv_hub_info structure · 036ed8ba
      Robin Holt 提交于
      A few parts of the uv_hub_info structure are initialized
      incorrectly.
      
       - n_val is being loaded with m_val.
       - gpa_mask is initialized with a bytes instead of an unsigned long.
       - Handle the case where none of the alias registers are used.
      
      Lastly I converted the bau over to using the uv_hub_info->m_val
      which is the correct value.
      
      Without this patch, booting a large configuration hits a
      problem where the upper bits of the gnode affect the pnode
      and the bau will not operate.
      Signed-off-by: NRobin Holt <holt@sgi.com>
      Acked-by: NJack Steiner <steiner@sgi.com>
      Cc: Cliff Whickman <cpw@sgi.com>
      Cc: stable@kernel.org
      LKML-Reference: <20091015224946.396355000@alcatraz.americas.sgi.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      036ed8ba
    • I
      x86: Document linker script ASSERT() quirk · a5912f6b
      Ingo Molnar 提交于
      Older binutils breaks if ASSERT() is used without a sink
      for the output.
      
      For example 2.14.90.0.6 is known to be broken, the link
      fails with:
      
        LD      .tmp_vmlinux1
        ld:arch/x86/kernel/vmlinux.lds:678: parse error
      
      Document this quirk in all three files that use it.
      
        See:    http://marc.info/?l=linux-kbuild&m=124930110427870&w=2
        See[2]: d2ba8b21 ("x86: Fix assert syntax in vmlinux.lds.S")
      
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Roland McGrath <roland@redhat.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      LKML-Reference: <4AD6523D.5030909@zytor.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      a5912f6b
  3. 15 10月, 2009 9 次提交
  4. 14 10月, 2009 18 次提交
  5. 13 10月, 2009 8 次提交
    • D
      sparc64: Set IRQF_DISABLED on LDC channel IRQs. · c58543c8
      David S. Miller 提交于
      With lots of virtual devices it's easy to generate a lot of
      events and chew up the kernel IRQ stack.
      Reported-by: Nhyl <heyongli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c58543c8
    • J
      x86/paravirt: Use normal calling sequences for irq enable/disable · 71999d98
      Jeremy Fitzhardinge 提交于
      Bastian Blank reported a boot crash with stackprotector enabled,
      and debugged it back to edx register corruption.
      
      For historical reasons irq enable/disable/save/restore had special
      calling sequences to make them more efficient.  With the more
      recent introduction of higher-level and more general optimisations
      this is no longer necessary so we can just use the normal PVOP_
      macros.
      
      This fixes some residual bugs in the old implementations which left
      edx liable to inadvertent clobbering. Also, fix some bugs in
      __PVOP_VCALLEESAVE which were revealed by actual use.
      Reported-by: NBastian Blank <bastian@waldi.eu.org>
      Signed-off-by: NJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
      Cc: Stable Kernel <stable@kernel.org>
      Cc: Xen-devel <xen-devel@lists.xensource.com>
      LKML-Reference: <4AD3BC9B.7040501@goop.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      71999d98
    • P
      sh: ftrace: Fix up syscall tracepoint support. · 99222622
      Paul Mundt 提交于
      Sync up with latest core changes in the syscalls tracing area:
      
      - tracing: Map syscall name to number (syscall_name_to_nr())
      - tracing: Call arch_init_ftrace_syscalls at boot
      - tracing: add support tracepoint ids (set_syscall_{enter,exit}_id())
      
      Taken from the s390 change.
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      99222622
    • P
      sh: force dcache flush if dcache_dirty bit set. · 964f7e5a
      Paul Mundt 提交于
      This too follows the ARM change, given that the issue at hand applies to
      all platforms that implement lazy D-cache writeback.
      
      This fixes up the case when a page mapping disappears between the
      flush_dcache_page() call (when PG_dcache_dirty is set for the page) and
      the update_mmu_cache() call -- such as in the case of swap cache being
      freed early. This kills off the mapping test in update_mmu_cache() and
      switches to simply testing for PG_dcache_dirty.
      Reported-by: NNitin Gupta <ngupta@vflare.org>
      Reported-by: NHugh Dickins <hugh.dickins@tiscali.co.uk>
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      964f7e5a
    • P
      sh: update die() output. · af67c3a9
      Paul Mundt 提交于
      This follows the ARM change, as SH had all of the same issues:
      
      Make die() better match x86:
      - add printing of the last accessed sysfs file
      - ensure console_verbose() is called under the lock
      - ensure we panic outside of oops_exit()
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      af67c3a9
    • H
      x86: fix kernel panic on 32 bits when profiling · d1705c55
      H. Peter Anvin 提交于
      Latest kernel has a kernel panic in booting on i386 machine when
      profile=2 setting in cmdline.  It is due to 'sp' being incorrect in
      profile_pc().
      
      BUG: unable to handle kernel NULL pointer dereference at 00000246
      IP: [<c01288b6>] profile_pc+0x2a/0x48
      *pde = 00000000
      Oops: 0000 [#1] SMP
      
      This differs from the original version by Alex Shi in that we use the
      kernel_stack_pointer() inline already defined in <asm/ptrace.h> for
      this purpose, instead of #ifdef.
      Originally-by: NAlex Shi <alex.shi@intel.com>
      Cc: "Chen, Tim C" <tim.c.chen@intel.com>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NH. Peter Anvin <hpa@zytor.com>
      d1705c55
    • N
      ARM: force dcache flush if dcache_dirty bit set · 787b2faa
      Nitin Gupta 提交于
      On ARM, update_mmu_cache() does dcache flush for a page only if
      it has a kernel mapping (page_mapping(page) != NULL). The correct
      behavior would be to force the flush based on dcache_dirty bit only.
      
      One of the cases where present logic would be a problem is when
      a RAM based block device[1] is used as a swap disk. In this case,
      we would have in-memory data corruption as shown in steps below:
      
      do_swap_page()
      {
          - Allocate a new page (if not already in swap cache)
          - Issue read from swap disk
              - Block driver issues flush_dcache_page()
              - flush_dcache_page() simply sets PG_dcache_dirty bit and does not
                actually issue a flush since this page has no user space mapping yet.
          - Now, if swap disk is almost full, this newly read page is removed
            from swap cache and corrsponding swap slot is freed.
          - Map this page anonymously in user space.
          - update_mmu_cache()
              - Since this page does not have kernel mapping (its not in page/swap
                cache and is mapped anonymously), it does not issue dcache flush
                even if dcache_dirty bit is set by flush_dcache_page() above.
      
          <user now gets stale data since dcache was never flushed>
      }
      
      Same problem exists on mips too.
      
      [1] example:
       - brd (RAM based block device)
       - ramzswap (RAM based compressed swap device)
      Signed-off-by: NNitin Gupta <ngupta@vflare.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      787b2faa
    • J
      x86: Fix Suspend to RAM freeze on Acer Aspire 1511Lmi laptop · 7a4b7e5e
      Jan Beulich 提交于
      Move the trampoline and accessors back out of .cpuinit.* for the
      case of 64-bits+ACPI_SLEEP.
      
      This solves s2ram hangs reported in:
      
        http://bugzilla.kernel.org/show_bug.cgi?id=14279Reported-and-bisected-by: NChristian Casteyde <casteyde.christian@free.fr>
      Signed-off-by: NJan Beulich <jbeulich@novell.com>
      Cc: <bugzilla-daemon@bugzilla.kernel.org>
      Cc: "Andrew Morton" <akpm@linux-foundation.org>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      7a4b7e5e