1. 11 3月, 2009 25 次提交
  2. 10 3月, 2009 9 次提交
  3. 09 3月, 2009 6 次提交
    • T
      powerpc: add fsl,fifo-depth property to Freescale SSI device nodes · 0bcd783c
      Timur Tabi 提交于
      The Freescale Serial Synchronous Interface (SSI) is an audio device present on
      some Freescale SOCs.  Various implementations of the SSI have a different
      transmit and receive FIFO depth, but are otherwise identical.  To support
      these variations, add a new property fsl,fifo-depth to the SSI node that
      specifies the depth of the FIFOs.
      
      Also update the MPC8610 HPCD device tree with this property.
      Signed-off-by: NTimur Tabi <timur@freescale.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      0bcd783c
    • C
      Btrfs: fix spinlock assertions on UP systems · b9447ef8
      Chris Mason 提交于
      btrfs_tree_locked was being used to make sure a given extent_buffer was
      properly locked in a few places.  But, it wasn't correct for UP compiled
      kernels.
      
      This switches it to using assert_spin_locked instead, and renames it to
      btrfs_assert_tree_locked to better reflect how it was really being used.
      Signed-off-by: NChris Mason <chris.mason@oracle.com>
      b9447ef8
    • H
      Fix fixpoint divide exception in acct_update_integrals · 6d5b5acc
      Heiko Carstens 提交于
      Frans Pop reported the crash below when running an s390 kernel under Hercules:
      
        Kernel BUG at 000738b4  verbose debug info unavailable!
        fixpoint divide exception: 0009  #1! SMP
        Modules linked in: nfs lockd nfs_acl sunrpc ctcm fsm tape_34xx
           cu3088 tape ccwgroup tape_class ext3 jbd mbcache dm_mirror dm_log dm_snapshot
           dm_mod dasd_eckd_mod dasd_mod
        CPU: 0 Not tainted 2.6.27.19 #13
        Process awk (pid: 2069, task: 0f9ed9b8, ksp: 0f4f7d18)
        Krnl PSW : 070c1000 800738b4 (acct_update_integrals+0x4c/0x118)
                   R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:0 CC:1 PM:0
        Krnl GPRS: 00000000 000007d0 7fffffff fffff830
                   00000000 ffffffff 00000002 0f9ed9b8
                   00000000 00008ca0 00000000 0f9ed9b8
                   0f9edda4 8007386e 0f4f7ec8 0f4f7e98
        Krnl Code: 800738aa: a71807d0         lhi     %r1,2000
                   800738ae: 8c200001         srdl    %r2,1
                   800738b2: 1d21             dr      %r2,%r1
                  >800738b4: 5810d10e         l       %r1,270(%r13)
                   800738b8: 1823             lr      %r2,%r3
                   800738ba: 4130f060         la      %r3,96(%r15)
                   800738be: 0de1             basr    %r14,%r1
                   800738c0: 5800f060         l       %r0,96(%r15)
        Call Trace:
        ( <000000000004fdea>! blocking_notifier_call_chain+0x1e/0x2c)
          <0000000000038502>! do_exit+0x106/0x7c0
          <0000000000038c36>! do_group_exit+0x7a/0xb4
          <0000000000038c8e>! SyS_exit_group+0x1e/0x30
          <0000000000021c28>! sysc_do_restart+0x12/0x16
          <0000000077e7e924>! 0x77e7e924
      
      Reason for this is that cpu time accounting usually only happens from
      interrupt context, but acct_update_integrals gets also called from
      process context with interrupts enabled.
      
      So in acct_update_integrals we may end up with the following scenario:
      
      Between reading tsk->stime/tsk->utime and tsk->acct_timexpd an interrupt
      happens which updates accouting values.  This causes acct_timexpd to be
      greater than the former stime + utime.  The subsequent calculation of
      
      	dtime = cputime_sub(time, tsk->acct_timexpd);
      
      will be negative and the division performed by
      
      	cputime_to_jiffies(dtime)
      
      will generate an exception since the result won't fit into a 32 bit
      register.
      
      In order to fix this just always disable interrupts while accessing any
      of the accounting values.
      
      Reported by: Frans Pop <elendil@planet.nl>
      Tested by: Frans Pop <elendil@planet.nl>
      Cc: stable@kernel.org
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Signed-off-by: NHeiko Carstens <heiko.carstens@de.ibm.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6d5b5acc
    • K
      powerpc/fsl-booke: Add support for tlbilx instructions · c3071951
      Kumar Gala 提交于
      The e500mc core supports the new tlbilx instructions that do core
      local invalidates and also provide us the ability to take down
      all TLB entries matching a given PID.
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      c3071951
    • A
      powerpc/83xx: Do not configure or probe disabled FSL DR USB controllers · c026c987
      Anton Vorontsov 提交于
      On MPC837X CPUs Dual-Role USB isn't always available (for example DR
      USB pins can be muxed away to eSDHC).
      
      U-Boot adds status = "disabled" property into the DR USB nodes to
      indicate that we must not try to configure or probe Dual-Role USB,
      otherwise we'll break eSDHC support on targets with MPC837X CPUs.
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      c026c987
    • D
      powerpc/83xx: Fix the interrupt loss problem on ipic · 30c40469
      dayu@datangmobile.cn 提交于
      The interrupt pending register is write 1 clear.  If there are more than
      one external interrupts pending at the same time, acking the first
      interrupt by reading pending register then OR the corresponding bit and
      write back to pending register will also clear other interrupt pending
      bits.  That will cause loss of interrupt.
      Signed-off-by: NDa Yu <dayu@datangmobile.cn>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      30c40469