1. 05 4月, 2008 19 次提交
  2. 04 4月, 2008 12 次提交
  3. 03 4月, 2008 9 次提交
    • R
      [POWERPC] Fix MPC5200 (not B!) device tree so FEC ethernet works · 8d813941
      René Bürgel 提交于
      This gets the FEC ethernet driver working again on the lite5200
      platform.
      
      The FEC driver is also compatible with the MPC5200, not only with the
      MPC5200B, so this adds a suitable entry to the driver's match list.
      Furthermore this adds the settings for the PHY in the dts file for the
      Lite5200.  Note, that this is not exactly the same as in the
      Lite5200B, because the PHY is located at f0003000:01 for the 5200, and
      at :00 for the 5200B.  This was tested on a Lite5200 and a Lite5200B,
      both booted a kernel via tftp and mounted the root via nfs
      successfully.
      Signed-off-by: NRené Bürgel <r.buergel@unicontrol.de>
      Acked-by: NGrant Likely <grant.likely@secretlab.ca>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      8d813941
    • B
      [POWERPC] mpc5200: Amalgamated DTS fixes and updates · 115e1adc
      Bartlomiej Sieka 提交于
      DTS updates that fix booting problems on mpc5200-based boards:
      - change to ethernet reg property
      - addition of mdio and phy nodes
      - removal of pci node (Motion-Pro board)
      
      Other DTS updates:
      - update i2c device tree nodes
      - add lpb bus node and flash device (without partitions defined)
      - add rtc i2c nodes
      Signed-off-by: NMarian Balakowicz <m8@semihalf.com>
      Acked-by: NGrant Likely <grant.likely@secretlab.ca>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      115e1adc
    • M
      [POWERPC] Fix rtas_flash procfs interface · 74848398
      Maxim Shchetynin 提交于
      Handling of the proc_dir_entry->count was changed in 2.6.24-rc5.
      After this change, the default value for pde->count is 1 and not 0 as
      before.  Therefore, if we want to check whether our procfs file is
      already opened (already in use), we have to check if pde->count is
      greater than 2 rather than 1.
      Signed-off-by: NMaxim Shchetynin <maxim@de.ibm.com>
      Signed-off-by: NJens Osterkamp <jens@de.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      74848398
    • B
      [POWERPC] Fix deadlock with mmu_hash_lock in hash_page_sync · b991f05f
      Benjamin Herrenschmidt 提交于
      hash_page_sync() takes and releases the low level mmu hash
      lock in order to sync with other processors disposing of page
      tables.  Because that lock can be needed to service hash misses
      triggered by interrupt handlers, taking it must be done with
      interrupts off.  However, hash_page_sync() appears to be called
      with interrupts enabled, thus causing occasional deadlocks.
      
      We fix it by making sure hash_page_sync() masks interrupts while
      holding the lock.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      b991f05f
    • B
      [POWERPC] Fix iSeries hard irq enabling regression · ff3da2e0
      Benjamin Herrenschmidt 提交于
      A subtle bug sneaked into iSeries recently.  On this platform, we must
      not normally clear MSR:EE (the hardware external interrupt enable)
      except for short periods of time.  Taking an interrupt while
      soft-disabled doesn't cause us to clear it for example.
      
      The iSeries kernel expects to mostly run with MSR:EE enabled at all
      times except in a few exception entry/exit code paths.  Thus
      local_irq_enable() doesn't check if it needs to hard-enable as it
      expects this to be unnecessary on iSeries.
      
      However, hard_irq_disable() _does_ cause MSR:EE to be cleared,
      including on iSeries.  A call to it was recently added to the
      context switch code, thus causing interrupts to become disabled
      for a long periods of time, causing the iSeries watchdog to kick
      in under some circumstances and other nasty things.
      
      This patch fixes it by making local_irq_enable() properly re-enable
      MSR:EE on iSeries.  It basically removes a return statement here
      to make iSeries use the same code path as everybody else.  That does
      mean that we might occasionally get spurious decrementer interrupts
      but I don't think that matters.
      
      Another option would have been to make hard_irq_disable() a nop
      on iSeries but I didn't like it much, in case we have good reasons
      to hard-disable.
      
      Part of the patch is fixes to make sure the hard_enabled PACA field
      is properly set on iSeries as it used not to be before, since it
      was mostly unused.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      ff3da2e0
    • L
      [POWERPC] Fix CPM2 SCC1 clock initialization. · 025306f3
      Laurent Pinchart 提交于
      A missing break statement in a switch caused cpm2_clk_setup() to initialize
      SCC2 instead of SCC1.
      Signed-off-by: NLaurent Pinchart <laurentp@cse-semaphore.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      025306f3
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6 · 9597362d
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6:
        USB: ohci: fix 2 timers to fire at jiffies + 1s
        USB: Allow initialization of broken keyspan serial adapters.
        USB: fix bug in sg initialization in usbtest
        USB: serial: fix regression in Visor/Palm OS module for kernels >= 2.6.24
        USB: cp2101: Add identifiers for the Telegesys ETRX2USB
        USB: serial: ti_usb_3410_5052: Correct TUSB3410 endpoint requirements.
        USB: another ehci_iaa_watchdog fix
      9597362d
    • A
      alpha: get_current(): don't add zero to current_thread_info()->task · 06f11f37
      Andrew Morton 提交于
      A nasty compile error:
      
      In file included from security/keys/internal.h:16,
                       from security/keys/sysctl.c:14:
      include/linux/key-ui.h: In function 'key_permission':
      include/linux/key-ui.h:51: error: invalid use of undefined type 'struct task_struct'
      
      apparently the compiler has decided that it needs to know sizeof(task_struct)
      so that it can add zero to a task_struct* (which is rather dumb of it).
      
      Getting task_struct in scope in these deeply-nested headers is scary-looking,
      so let's just remove the "+ 0".
      
      Cc: David Howells <dhowells@redhat.com>
      Cc: Richard Henderson <rth@twiddle.net>
      Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      06f11f37
    • M
      markers: use synchronize_sched() · 6496968e
      Mathieu Desnoyers 提交于
      Markers do not mix well with CONFIG_PREEMPT_RCU because it uses
      preempt_disable/enable() and not rcu_read_lock/unlock for minimal
      intrusiveness.  We would need call_sched and sched_barrier primitives.
      
      Currently, the modification (connection and disconnection) of probes
      from markers requires changes to the data structure done in RCU-style :
      a new data structure is created, the pointer is changed atomically, a
      quiescent state is reached and then the old data structure is freed.
      
      The quiescent state is reached once all the currently running
      preempt_disable regions are done running.  We use the call_rcu mechanism
      to execute kfree() after such quiescent state has been reached.
      However, the new CONFIG_PREEMPT_RCU version of call_rcu and rcu_barrier
      does not guarantee that all preempt_disable code regions have finished,
      hence the race.
      
      The "proper" way to do this is to use rcu_read_lock/unlock, but we don't
      want to use it to minimize intrusiveness on the traced system.  (we do
      not want the marker code to call into much of the OS code, because it
      would quickly restrict what can and cannot be instrumented, such as the
      scheduler).
      
      The temporary fix, until we get call_rcu_sched and rcu_barrier_sched in
      mainline, is to use synchronize_sched before each call_rcu calls, so we
      wait for the quiescent state in the system call code path.  It will slow
      down batch marker enable/disable, but will make sure the race is gone.
      Signed-off-by: NMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
      Acked-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      6496968e