1. 11 3月, 2009 21 次提交
  2. 10 3月, 2009 9 次提交
  3. 09 3月, 2009 10 次提交
    • 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
    • T
      i2c-mpc: do not allow interruptions when waiting for I2C to complete · 1ab082d7
      Timur Tabi 提交于
      The i2c_wait() function is using wait_event_interruptible_timeout() to wait for
      the I2C controller to signal that it has completed an I2C bus operation.  If
      the process that causes the I2C operation terminated abruptly, the wait will
      be interrupted, returning an error.  It is better to let the I2C operation
      finished before the process exits.
      
      It is safe to use wait_event_timeout() instead, because the timeout will allow
      the process to exit if the I2C bus hangs.  It's also better to allow the
      I2C operation to finish, because unacknowledged I2C operations can cause the
      I2C bus to hang.
      Signed-off-by: NTimur Tabi <timur@freescale.com>
      Acked-by: NBen Dooks <ben-linux@fluff.org>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      1ab082d7
    • R
      lguest: fix for CONFIG_SPARSE_IRQ=y · 6db6a5f3
      Rusty Russell 提交于
      Impact: remove lots of lguest boot WARN_ON() when CONFIG_SPARSE_IRQ=y
      
      We now need to call irq_to_desc_alloc_cpu() before
      set_irq_chip_and_handler_name(), but we can't do that from init_IRQ (no
      kmalloc available).
      
      So do it as we use interrupts instead.  Also means we only alloc for
      irqs we use, which was the intent of CONFIG_SPARSE_IRQ anyway.
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Cc: Ingo Molnar <mingo@redhat.com>
      6db6a5f3
    • R
      lguest: fix crash 'unhandled trap 13 at <native_read_msr_safe>' · cbd88c8e
      Rusty Russell 提交于
      Impact: fix lguest boot crash on modern Intel machines
      
      The code in early_init_intel does:
      
      	if (c->x86 > 6 || (c->x86 == 6 && c->x86_model >= 0xd)) {
      		u64 misc_enable;
      
      		rdmsrl(MSR_IA32_MISC_ENABLE, misc_enable);
      
      And that rdmsr faults (not allowed from non-0 PL).  We can get around
      this by mugging the family ID part of the cpuid.  5 seems like a good
      number.
      
      Of course, this is a hack (how very lguest!).  We could just indicate
      that we don't support MSRs, or implement lguest_rdmst.
      Reported-by: NPatrick McHardy <kaber@trash.net>
      Signed-off-by: NRusty Russell <rusty@rustcorp.com.au>
      Tested-by: NPatrick McHardy <kaber@trash.net>
      cbd88c8e
    • L
      7a203f3b