Skip to content
  1. Mar 11, 2010
    • Paul E. McKenney's avatar
      x86/mce: Fix RCU lockdep splats · f56e8a07
      Paul E. McKenney authored
      
      
      Create an rcu_dereference_check_mce() that checks for RCU-sched
      read side and mce_read_mutex being held on update side.  Replace
      uses of rcu_dereference() in arch/x86/kernel/cpu/mcheck/mce.c
      with this new macro.
      
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: x86@kernel.org
      Cc: laijs@cn.fujitsu.com
      Cc: dipankar@in.ibm.com
      Cc: mathieu.desnoyers@polymtl.ca
      Cc: josh@joshtriplett.org
      Cc: dvhltc@us.ibm.com
      Cc: niv@us.ibm.com
      Cc: peterz@infradead.org
      Cc: rostedt@goodmis.org
      Cc: Valdis.Kletnieks@vt.edu
      Cc: dhowells@redhat.com
      LKML-Reference: <1267830207-9474-3-git-send-email-paulmck@linux.vnet.ibm.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      f56e8a07
    • Paul E. McKenney's avatar
      rcu: Increase RCU CPU stall timeouts if PROVE_RCU · 007b0924
      Paul E. McKenney authored
      
      
      CONFIG_PROVE_RCU imposes additional overhead on the kernel, so
      increase the RCU CPU stall timeouts in an attempt to allow for
      this effect.
      
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: laijs@cn.fujitsu.com
      Cc: dipankar@in.ibm.com
      Cc: mathieu.desnoyers@polymtl.ca
      Cc: josh@joshtriplett.org
      Cc: dvhltc@us.ibm.com
      Cc: niv@us.ibm.com
      Cc: peterz@infradead.org
      Cc: rostedt@goodmis.org
      Cc: Valdis.Kletnieks@vt.edu
      Cc: dhowells@redhat.com
      LKML-Reference: <1267830207-9474-2-git-send-email-paulmck@linux.vnet.ibm.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      007b0924
    • Paul E. McKenney's avatar
      ftrace: Replace read_barrier_depends() with rcu_dereference_raw() · 3f379b03
      Paul E. McKenney authored
      
      
      Replace the calls to read_barrier_depends() in
      ftrace_list_func() with rcu_dereference_raw() to improve
      readability.  The reason that we use rcu_dereference_raw() here
      is that removed entries are never freed, instead they are simply
      leaked.  This is one of a very few cases where use of
      rcu_dereference_raw() is the long-term right answer.  And I
      don't yet know of any others.  ;-)
      
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Acked-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: laijs@cn.fujitsu.com
      Cc: dipankar@in.ibm.com
      Cc: mathieu.desnoyers@polymtl.ca
      Cc: josh@joshtriplett.org
      Cc: dvhltc@us.ibm.com
      Cc: niv@us.ibm.com
      Cc: peterz@infradead.org
      Cc: Valdis.Kletnieks@vt.edu
      Cc: dhowells@redhat.com
      LKML-Reference: <1267830207-9474-1-git-send-email-paulmck@linux.vnet.ibm.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      3f379b03
  2. Mar 04, 2010
    • Paul E. McKenney's avatar
      rcu: Suppress RCU lockdep warnings during early boot · 54dbf96c
      Paul E. McKenney authored
      
      
      RCU is used during very early boot, before RCU and lockdep have
      been initialized.  So make the underlying primitives
      (rcu_read_lock_held(), rcu_read_lock_bh_held(),
      rcu_read_lock_sched_held(), and rcu_dereference_check()) check
      for early boot via the rcu_scheduler_active flag.  This will
      suppress false positives.
      
      Also introduce a debug_lockdep_rcu_enabled() static inline
      helper function, which tags the CONTINUE_PROVE_RCU case as
      likely(), as suggested by Ingo Molnar.
      
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: laijs@cn.fujitsu.com
      Cc: dipankar@in.ibm.com
      Cc: mathieu.desnoyers@polymtl.ca
      Cc: josh@joshtriplett.org
      Cc: dvhltc@us.ibm.com
      Cc: niv@us.ibm.com
      Cc: peterz@infradead.org
      Cc: rostedt@goodmis.org
      Cc: Valdis.Kletnieks@vt.edu
      Cc: dhowells@redhat.com
      LKML-Reference: <1267631219-8713-2-git-send-email-paulmck@linux.vnet.ibm.com>
      [ v2: removed incomplete debug_lockdep_rcu_update() bits ]
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      54dbf96c
    • Paul E. McKenney's avatar
      rcu, ftrace: Fix RCU lockdep splat in ftrace_perf_buf_prepare() · 8d53dd54
      Paul E. McKenney authored
      
      
      Change the pair of rcu_dereference() calls in
      ftrace_perf_buf_prepare() to rcu_dereference_sched().
      
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Acked-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: laijs@cn.fujitsu.com
      Cc: dipankar@in.ibm.com
      Cc: mathieu.desnoyers@polymtl.ca
      Cc: josh@joshtriplett.org
      Cc: dvhltc@us.ibm.com
      Cc: niv@us.ibm.com
      Cc: peterz@infradead.org
      Cc: Valdis.Kletnieks@vt.edu
      Cc: dhowells@redhat.com
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <1267667418-32233-3-git-send-email-paulmck@linux.vnet.ibm.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      8d53dd54
    • Paul E. McKenney's avatar
      rcu: Suppress __mpol_dup() false positive from RCU lockdep · 99ee4ca7
      Paul E. McKenney authored
      
      
      Common code is used during task creation and after the task has
      started running.  RCU protection is not needed during task
      creation because no other CPU has access to the
      under-construction task.  Provide the RCU protection anyway to
      suppress the false positive, as there does not appear to be a
      good way for the common code to recognize that the task is only
      accessible to the CPU creating it.
      
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Paul Menage <menage@google.com>
      Cc: laijs@cn.fujitsu.com
      Cc: dipankar@in.ibm.com
      Cc: mathieu.desnoyers@polymtl.ca
      Cc: josh@joshtriplett.org
      Cc: dvhltc@us.ibm.com
      Cc: niv@us.ibm.com
      Cc: peterz@infradead.org
      Cc: rostedt@goodmis.org
      Cc: Valdis.Kletnieks@vt.edu
      Cc: dhowells@redhat.com
      LKML-Reference: <1267667418-32233-2-git-send-email-paulmck@linux.vnet.ibm.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      99ee4ca7
    • Paul E. McKenney's avatar
      rcu: Make rcu_read_lock_sched_held() handle !PREEMPT · e6033e3b
      Paul E. McKenney authored
      
      
      The rcu_read_lock_sched_held() needs to unconditionally return
      the value "1" in a !PREEMPT kernel, because under !PREEMPT,
      -all- kernel code is implicitly preempt-disabled.  This patch
      makes this happen.
      
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: laijs@cn.fujitsu.com
      Cc: dipankar@in.ibm.com
      Cc: mathieu.desnoyers@polymtl.ca
      Cc: josh@joshtriplett.org
      Cc: dvhltc@us.ibm.com
      Cc: niv@us.ibm.com
      Cc: peterz@infradead.org
      Cc: rostedt@goodmis.org
      Cc: Valdis.Kletnieks@vt.edu
      Cc: dhowells@redhat.com
      LKML-Reference: <1267667418-32233-1-git-send-email-paulmck@linux.vnet.ibm.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      e6033e3b
    • Paul E. McKenney's avatar
      rcu: Add control variables to lockdep_rcu_dereference() diagnostics · cc5b83a9
      Paul E. McKenney authored
      
      
      Add the values of rcu_scheduler_active() and debug_locks() to
      the lockdep_rcu_dereference() output to help diagnose RCU
      lockdep splats that occur shortly after the scheduler starts.
      
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: laijs@cn.fujitsu.com
      Cc: dipankar@in.ibm.com
      Cc: mathieu.desnoyers@polymtl.ca
      Cc: josh@joshtriplett.org
      Cc: dvhltc@us.ibm.com
      Cc: niv@us.ibm.com
      Cc: peterz@infradead.org
      Cc: rostedt@goodmis.org
      Cc: Valdis.Kletnieks@vt.edu
      Cc: dhowells@redhat.com
      LKML-Reference: <1267631219-8713-4-git-send-email-paulmck@linux.vnet.ibm.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      cc5b83a9
    • Paul E. McKenney's avatar
      rcu, cgroup: Relax the check in task_subsys_state() as early boot is now handled by lockdep-RCU · 5ed42b81
      Paul E. McKenney authored
      
      
      This patch removes the check for !rcu_scheduler_active because
      this check has been incorporated into rcu_dereference_check().
      
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: laijs@cn.fujitsu.com
      Cc: dipankar@in.ibm.com
      Cc: mathieu.desnoyers@polymtl.ca
      Cc: josh@joshtriplett.org
      Cc: dvhltc@us.ibm.com
      Cc: niv@us.ibm.com
      Cc: peterz@infradead.org
      Cc: rostedt@goodmis.org
      Cc: Valdis.Kletnieks@vt.edu
      Cc: dhowells@redhat.com
      LKML-Reference: <1267631219-8713-3-git-send-email-paulmck@linux.vnet.ibm.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      5ed42b81
    • Paul E. McKenney's avatar
      rcu: Use wrapper function instead of exporting tasklist_lock · db1466b3
      Paul E. McKenney authored
      
      
      Lockdep-RCU commit d11c563d exported tasklist_lock, which is not
      a good thing.  This patch instead exports a function that uses
      lockdep to check whether tasklist_lock is held.
      
      Suggested-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: laijs@cn.fujitsu.com
      Cc: dipankar@in.ibm.com
      Cc: mathieu.desnoyers@polymtl.ca
      Cc: josh@joshtriplett.org
      Cc: dvhltc@us.ibm.com
      Cc: niv@us.ibm.com
      Cc: peterz@infradead.org
      Cc: rostedt@goodmis.org
      Cc: Valdis.Kletnieks@vt.edu
      Cc: dhowells@redhat.com
      Cc: Christoph Hellwig <hch@lst.de>
      LKML-Reference: <1267631219-8713-1-git-send-email-paulmck@linux.vnet.ibm.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      db1466b3
    • Ingo Molnar's avatar
      Merge branches 'core/futexes' and 'core/iommu' into core/urgent · 0e064caf
      Ingo Molnar authored
      
      
      Merge reason: Switch from topical split to the stabilization track
      
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      0e064caf
  3. Mar 01, 2010
  4. Feb 28, 2010
    • Paul E. McKenney's avatar
      rcu: Make task_subsys_state() RCU-lockdep checks handle boot-time use · 1883c79a
      Paul E. McKenney authored
      
      
      It is apparently legal to invoke task_subsys_state() without RCU
      protection during early boot time.  After all, there are no
      concurrent tasks, so there can be no grace periods completing
      concurrently.
      
      But this does need an Acked-by from the cgroups folks.
      
      Located-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: laijs@cn.fujitsu.com
      Cc: dipankar@in.ibm.com
      Cc: mathieu.desnoyers@polymtl.ca
      Cc: josh@joshtriplett.org
      Cc: dvhltc@us.ibm.com
      Cc: niv@us.ibm.com
      Cc: peterz@infradead.org
      Cc: rostedt@goodmis.org
      Cc: Valdis.Kletnieks@vt.edu
      Cc: dhowells@redhat.com
      LKML-Reference: <1267311188-16603-2-git-send-email-paulmck@linux.vnet.ibm.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      1883c79a
    • Paul E. McKenney's avatar
      rcu: Fix holdoff for accelerated GPs for last non-dynticked CPU · 622ea685
      Paul E. McKenney authored
      
      
      Make the holdoff only happen when the full number of attempts
      have been made.
      
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: laijs@cn.fujitsu.com
      Cc: dipankar@in.ibm.com
      Cc: mathieu.desnoyers@polymtl.ca
      Cc: josh@joshtriplett.org
      Cc: dvhltc@us.ibm.com
      Cc: niv@us.ibm.com
      Cc: peterz@infradead.org
      Cc: rostedt@goodmis.org
      Cc: Valdis.Kletnieks@vt.edu
      Cc: dhowells@redhat.com
      LKML-Reference: <1267311188-16603-1-git-send-email-paulmck@linux.vnet.ibm.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      622ea685
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · 847f9c60
      Linus Torvalds authored
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k: (24 commits)
        m68k: Define sigcontext ABI of ColdFire
        m68knommu: NPTL support for uClinux
        m68k: Add NPTL support
        m68k: Eliminate unused variable in page_to_phys()
        m68k: Switch to generic siginfo layout
        macfb: fix 24-bit visual and stuff
        macfb: cleanup
        fbdev: add some missing mac modes
        mac68k: start CUDA early
        valkyriefb: various fixes
        fbdev: mac_var_to_mode() fix
        mac68k: move macsonic and macmace platform devices
        mac68k: move mac_esp platform device
        mac68k: replace mac68k SCC code with platform device
        pmac-zilog: add platform driver
        pmac-zilog: cleanup
        mac68k: rework SWIM platform device
        mac68k: cleanup
        ataflop: Killl warning about unused variable flags
        m68k: Use DIV_ROUND_CLOSEST
        ...
      847f9c60
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6 · 79811647
      Linus Torvalds authored
      * 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6: (35 commits)
        [S390] time: remove unused code
        [S390] zcore: Add prefix registers to dump header
        [S390] correct vdso version string
        [S390] add support for compressed kernels
        [S390] Define new s390 ELF note sections in elf.h
        [S390] codepage conversion of kernel parameter line
        [S390] seq_file: convert drivers/s390/
        [S390] add z9-ec/z10 instruction to kernel disassembler
        [S390] dasd: correct offline processing
        [S390] dasd: fix refcounting.
        [S390] dasd: fix online/offline race
        [S390] use kprobes_built_in() in mm/fault code
        [S390] bug: use relative pointers in bug table entries
        [S390] Cleanup struct _lowcore usage and defines.
        [S390] free_initmem: reduce code duplication
        [S390] Replace ENOTSUPP usage with EOPNOTSUPP
        [S390] spinlock: check virtual cpu running status
        [S390] sysinfo: fix SYSIB 3,2,2 structure
        [S390] add MACHINE_IS_LPAR flag
        [S390] qdio: optimize cache line usage of struct qdio_irq
        ...
      79811647
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus · f1dd6ad5
      Linus Torvalds authored
      * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: (141 commits)
        MIPS: Alchemy: defconfig updates
        MIPS: Alchemy: Fix Au1100 ethernet build failure
        MIPS: Alchemy: Repair db1500/bosporus builds
        MIPS: ARC: Cleanup unused definitions from sgialib.h
        MIPS: Cobalt: convert legacy port addresses to GT-64111 bus addresses
        MIPS: Alchemy: use 36bit addresses for PCMCIA resources.
        MIPS: Cobalt: Fix theoretical port aliasing issue
        MIPS: Use ALIGN(x, bytes) instead of __ALIGN_MASK(x, bytes - 1)
        MIPS: Crazy spinlock speed test.
        MIPS: Optimize spinlocks.
        MIPS: Alchemy: devboard PM needs to save CPLD registers.
        MIPS: PowerTV: Eliminate duplicate opcode definition macros
        MIPS: Lemote 2F: Move printks out of port_access_lock.
        MIPS: PNX833x: Convert IRQ controller locks to raw spinlocks.
        MIPS: Octeon: Replace spinlock with raw_spinlocks in dma-octeon.c.
        MIPS: Octeon: Replace rwlocks in irq_chip handlers with raw_spinlocks.
        MIPS: Octeon: Convert octeon_irq_msi_lock to raw spinlock.
        MIPS: Loongson: Remove pointless sample_lock from oprofile code.
        MIPS: SNI: Convert sni_rm200_i8259A_lock to raw spinlock.
        MIPS: i8259: Convert IRQ controller lock to raw spinlock.
        ...
      f1dd6ad5
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6 · 8d37a371
      Linus Torvalds authored
      * git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6: (49 commits)
        pcmcia: validate late-added resources
        pcmcia: allow for extension of resource interval
        pcmcia: remove useless msleep in ds.c
        pcmcia: use read_cis_mem return value
        pcmcia: handle error in serial_cs config calls
        pcmcia: add locking to pcmcia_{read,write}_cis_mem
        pcmcia: avoid prod_id memleak
        pcmcia: avoid sysfs-related lockup for cardbus
        pcmcia: use state machine for extended requery
        pcmcia: delay re-scanning and re-querying of PCMCIA bus
        pcmcia: use pccardd to handle eject, insert, suspend and resume requests
        pcmcia: use ops_mutex for rsrc_{mgr,nonstatic} locking
        pcmcia: use mutex for dynid lock
        pcmcia: assert locking to struct pcmcia_device
        pcmcia: add locking documentation
        pcmcia: simplify locking
        pcmcia: add locking to struct pcmcia_socket->pcmcia_state()
        pcmcia: protect s->device_count
        pcmcia: properly lock skt->irq, skt->irq_mask
        pcmcia: lock ops->set_socket
        ...
      8d37a371
    • Linus Torvalds's avatar
      Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc · ef1a8de8
      Linus Torvalds authored
      * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (88 commits)
        powerpc: Fix lwsync feature fixup vs. modules on 64-bit
        powerpc: Convert pmc_owner_lock to raw_spinlock
        powerpc: Convert die.lock to raw_spinlock
        powerpc: Convert tlbivax_lock to raw_spinlock
        powerpc: Convert mpic locks to raw_spinlock
        powerpc: Convert pmac_pic_lock to raw_spinlock
        powerpc: Convert big_irq_lock to raw_spinlock
        powerpc: Convert feature_lock to raw_spinlock
        powerpc: Convert i8259_lock to raw_spinlock
        powerpc: Convert beat_htab_lock to raw_spinlock
        powerpc: Convert confirm_error_lock to raw_spinlock
        powerpc: Convert ipic_lock to raw_spinlock
        powerpc: Convert native_tlbie_lock to raw_spinlock
        powerpc: Convert beatic_irq_mask_lock to raw_spinlock
        powerpc: Convert nv_lock to raw_spinlock
        powerpc: Convert context_lock to raw_spinlock
        powerpc/85xx: Add NOR, LEDs and PIB support for MPC8568E-MDS boards
        powerpc/86xx: Enable VME driver on the GE SBC610
        powerpc/86xx: Enable VME driver on the GE PPC9A
        powerpc/86xx: Add MSI section to GE PPC9A DTS
        ...
      ef1a8de8
    • Maxim Kuvyrkov's avatar
      m68k: Define sigcontext ABI of ColdFire · 00ebfe58
      Maxim Kuvyrkov authored
      
      
      The following patch defines sigcontext ABI of ColdFire.  Due to ISA
      restrictions ColdFire needs different rt_sigreturn trampoline.
      
      And due to ColdFire FP registers being 8-bytes instead of 12-bytes on
      m68k, sigcontext and fpregset structures should be updated.
      
      Regarding the sc_fpstate[16+6*8] field, it would've been enough 16
      bytes to store ColdFire's FP state.  To accomodate GLIBC's libSegFault
      it would'be been enough 6*8 bytes (room for the 6 non-call-clobbered
      FP registers).  I set it to 16+6*8 to provide some extra space for any
      future changes in the ColdFire FPU.
      
      Signed-off-by: default avatarMaxim Kuvyrkov <maxim@codesourcery.com>
      Signed-off-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      00ebfe58