1. 19 Oct, 2007 4 commits
    • 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 36 commits