1. 19 Oct, 2007 6 commits
    • Ingo Molnar's avatar
      x86: fix CONFIG_NUMA and nosmp | maxcpus=0/1 crash · 54ffaa45
      Ingo Molnar authored
      x86 NUMA kernels crash in the scheduler setup code if "nosmp" or
      "maxcpus=0" is passed on the boot command line:
      
      | Brought up 1 CPUs
      | BUG: unable to handle kernel NULL pointer dereference at virtual address 00000000
      | printing eip: c011f0b5 *pde = 00000000
      | Oops: 0000 [#1] SMP
      |
      | Pid: 1, comm: swapper Not tainted (2.6.23 #67)
      | EIP: 0060:[<c011f0b5>] EFLAGS: 00010246 CPU: 0
      | EIP is at sd_degenerate+0x35/0x40
      
      the reason is sloppy spaghetti code in smpboot_32.c that resulted in a
      missing map_cpu_to_logical_apicid() call - which also had the side-effect
      of setting up the cpu_2_node[] entry for the lone CPU. That resulted in
      node_to_cpumask(0) resulting in 00000000 - confusing the sched-domains
      setup code.
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      54ffaa45
    • Sam Ravnborg's avatar
      x86: use relative symlink for bzImage · 3ceba781
      Sam Ravnborg authored
      Use relative symlinks so we can refer bzImage from different tree
      structures aka via NFS.
      
      Moved the creation of directory + symlink after a successful build of
      the boot parts.
      Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      3ceba781
    • Siddha, Suresh B's avatar
      x86, vsyscall: fix the oops crash with __pa_vsymbol() · 957ff882
      Siddha, Suresh B authored
      Appended patch fixes an oops while changing the vsyscall sysctl.
      I am sure no one tested this code before integrating into mainline :(
      
      BTW, using ioremap() in vsyscall_sysctl_change() to get the virtual
      address of a kernel symbol sounds like an over kill.. I wonder if we
      can define a simple __va_vsymbol() which will return directly the
      kernel direct mapping. comments in the code which says gcc has trouble
      with __va(__pa()) sounds bogus to me. __pa() on a vsyscall address will
      not work anyhow :(
      
      And also, the whole nop out syscall in vsyscall page infrastructure
      (vsyscall_sysctl_change()) is added to make some attacks difficult,
      and yet I don't see this nop out being done by default. This area
      requires more cleanups?
      
      Fix an oops with __pa_vsymbol(). VSYSCALL_FIRST_PAGE is a fixmap index.
      We want the starting virtual address of the vsyscall page and not the index.
      
      [ mingo: arch/x86 adaptation ]
      Reported-by: default avatarYanmin Zhang <yanmin.zhang@intel.com>
      Signed-off-by: default avatarSuresh Siddha <suresh.b.siddha@intel.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      957ff882
    • Thomas Gleixner's avatar
      x86: update .gitignore entries · f322727b
      Thomas Gleixner authored
      vdso / vsycall create .so.dbg files now.
      Add *.so.dbg to the main .ignore file
      
      Exclude the compile time created boot directory in arch/x86_64 as well
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      f322727b
    • Ingo Molnar's avatar
      x86: fix global_flush_tlb() bug · 9a24d04a
      Ingo Molnar authored
      While we were reviewing pageattr_32/64.c for unification,
      Thomas Gleixner noticed the following serious SMP bug in
      global_flush_tlb():
      
      	down_read(&init_mm.mmap_sem);
      	list_replace_init(&deferred_pages, &l);
      	up_read(&init_mm.mmap_sem);
      
      this is SMP-unsafe because list_replace_init() done on two CPUs in
      parallel can corrupt the list.
      
      This bug has been introduced about a year ago in the 64-bit tree:
      
             commit ea7322de
             Author: Andi Kleen <ak@suse.de>
             Date:   Thu Dec 7 02:14:05 2006 +0100
      
             [PATCH] x86-64: Speed and clean up cache flushing in change_page_attr
      
                      down_read(&init_mm.mmap_sem);
              -       dpage = xchg(&deferred_pages, NULL);
              +       list_replace_init(&deferred_pages, &l);
                      up_read(&init_mm.mmap_sem);
      
      the xchg() based version was SMP-safe, but list_replace_init() is not.
      So this "cleanup" introduced a nasty bug.
      
      why this bug never become prominent is a mystery - it can probably be
      explained with the (still) relative obscurity of the x86_64 architecture.
      
      the safe fix for now is to write-lock init_mm.mmap_sem.
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      9a24d04a
    • Linus Torvalds's avatar
      Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 · 4fa4d23f
      Linus Torvalds authored
      * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6:
        pcnet32: remove private net_device_stats structure
        vortex_up should initialize "err"
        pcnet32: remove compile warnings in non-napi mode
        pcnet32: fix non-napi packet reception
        fix EMAC driver for proper napi_synchronize API
        sky2: shutdown cleanup
        napi_synchronize: waiting for NAPI
        forcedeth msi bugfix
        gianfar: fix obviously wrong #ifdef CONFIG_GFAR_NAPI placement
        fs_enet: Update for API changes
        gianfar: remove orphan struct.
        forcedeth: fix rx-work condition in nv_rx_process_optimized() too
      4fa4d23f
  2. 18 Oct, 2007 34 commits