Merge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
authorLinus Torvalds <torvalds@linux-foundation.org>
Fri, 5 Feb 2010 00:07:41 +0000 (16:07 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 5 Feb 2010 00:07:41 +0000 (16:07 -0800)
* 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  futex: Handle futex value corruption gracefully
  futex: Handle user space corruption gracefully
  futex_lock_pi() key refcnt fix
  softlockup: Add sched_clock_tick() to avoid kernel warning on kgdb resume

1  2 
include/linux/sched.h
kernel/kgdb.c

diff --combined include/linux/sched.h
index abdfacc58653e976b58af1cbe2b5d60821f0b931,89232151a9d03a6d7a4c628860143fb224792015..78efe7c485ac9630f3866764e2eb8e54500f789c
@@@ -310,6 -310,7 +310,7 @@@ extern void sched_show_task(struct task
  #ifdef CONFIG_DETECT_SOFTLOCKUP
  extern void softlockup_tick(void);
  extern void touch_softlockup_watchdog(void);
+ extern void touch_softlockup_watchdog_sync(void);
  extern void touch_all_softlockup_watchdogs(void);
  extern int proc_dosoftlockup_thresh(struct ctl_table *table, int write,
                                    void __user *buffer,
@@@ -323,6 -324,9 +324,9 @@@ static inline void softlockup_tick(void
  static inline void touch_softlockup_watchdog(void)
  {
  }
+ static inline void touch_softlockup_watchdog_sync(void)
+ {
+ }
  static inline void touch_all_softlockup_watchdogs(void)
  {
  }
@@@ -1369,7 -1373,7 +1373,7 @@@ struct task_struct 
        char comm[TASK_COMM_LEN]; /* executable name excluding path
                                     - access with [gs]et_task_comm (which lock
                                       it with task_lock())
 -                                   - initialized normally by flush_old_exec */
 +                                   - initialized normally by setup_new_exec */
  /* file system info */
        int link_count, total_link_count;
  #ifdef CONFIG_SYSVIPC
diff --combined kernel/kgdb.c
index c7ade62e4ef0e510f9636194af8d6f55844a7ffb,87f2cc557553c80e4eea5eb707b984a5deb36b57..761fdd2b3034ae87272578fe1314680af5c0d71f
@@@ -583,9 -583,6 +583,9 @@@ static void kgdb_wait(struct pt_regs *r
        smp_wmb();
        atomic_set(&cpu_in_kgdb[cpu], 1);
  
 +      /* Disable any cpu specific hw breakpoints */
 +      kgdb_disable_hw_debug(regs);
 +
        /* Wait till primary CPU is done with debugging */
        while (atomic_read(&passive_cpu_wait[cpu]))
                cpu_relax();
  
        /* Signal the primary CPU that we are done: */
        atomic_set(&cpu_in_kgdb[cpu], 0);
-       touch_softlockup_watchdog();
+       touch_softlockup_watchdog_sync();
        clocksource_touch_watchdog();
        local_irq_restore(flags);
  }
@@@ -1453,7 -1450,7 +1453,7 @@@ acquirelock
            (kgdb_info[cpu].task &&
             kgdb_info[cpu].task->pid != kgdb_sstep_pid) && --sstep_tries) {
                atomic_set(&kgdb_active, -1);
-               touch_softlockup_watchdog();
+               touch_softlockup_watchdog_sync();
                clocksource_touch_watchdog();
                local_irq_restore(flags);
  
@@@ -1553,7 -1550,7 +1553,7 @@@ kgdb_restore
        }
        /* Free kgdb_active */
        atomic_set(&kgdb_active, -1);
-       touch_softlockup_watchdog();
+       touch_softlockup_watchdog_sync();
        clocksource_touch_watchdog();
        local_irq_restore(flags);