22 May, 2009

3 commits


21 May, 2009

4 commits

  • The address range size calculation inside local_flush_tlb_kernel_range()
    is being truncated by a too small size variable holder on 64-bit systems.
    The truncated size can result in an erroneous tlbsize check that means we
    sit spinning inside a loop trying to flush a hige number of TLB entries.
    This is for all intents and purposes a system hang. Fix by using an
    appropriately sized valiable to hold the size.

    [Ralf: Greg's original patch submission identified the issue and fixed one
    instance in tlb-r4k.c but there there were several more. For consistency
    I also modified tlb-r3k.c even though that file is only used on 32-bit.]

    Signed-off-by: Greg Ungerer
    Signed-off-by: Ralf Baechle

    Greg Ungerer
     
  • Richard Sandiford's new code for inserting the cache-barriers, for GCC
    4.3 and above and already incorporated in the current GCC-release, uses
    a slightly different option-syntax.

    Signed-off-by: peter fuerst
    Signed-off-by: Ralf Baechle

    peter fuerst
     
  • The hang was caused by the use of disable_irq() from the interrupt handler
    itself. Fixed by the use of disable_irq_nosync(). The issue was
    triggered by:

    commit 3aa551c9b4c40018f0e261a178e3d25478dc04a9
    Author: Thomas Gleixner
    Date: Mon Mar 23 18:28:15 2009 +0100

    genirq: add threaded interrupt handler support

    Signed-off-by: Ralf Baechle

    Ralf Baechle
     
  • The hang was caused by the use of disable_irq() from the interrupt handler
    itself. Fixed by the use of disable_irq_nosync(). The issue was
    triggered by:

    commit 3aa551c9b4c40018f0e261a178e3d25478dc04a9
    Author: Thomas Gleixner
    Date: Mon Mar 23 18:28:15 2009 +0100

    genirq: add threaded interrupt handler support

    Signed-off-by: Ralf Baechle

    Andrew Randrianasulu
     

14 May, 2009

33 commits