1. 20 Mar, 2006 30 commits
  2. 19 Mar, 2006 2 commits
    • Michael Chan's avatar
      [TG3]: 40-bit DMA workaround part 2 · 4a29cc2e
      Michael Chan authored
      
      The 40-bit DMA workaround recently implemented for 5714, 5715, and
      5780 needs to be expanded because there may be other tg3 devices
      behind the EPB Express to PCIX bridge in the 5780 class device.
      
      For example, some 4-port card or mother board designs have 5704 behind
      the 5714.
      
      All devices behind the EPB require the 40-bit DMA workaround.
      
      Thanks to Chris Elmquist again for reporting the problem and testing
      the patch.
      Signed-off-by: default avatarMichael Chan <mchan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4a29cc2e
    • Ralf Baechle DL5RB's avatar
      [AX.25]: Fix potencial memory hole. · c7c694d1
      Ralf Baechle DL5RB authored
      
      If the AX.25 dialect chosen by the sysadmin is set to DAMA master / 3
      (or DAMA slave / 2, if CONFIG_AX25_DAMA_SLAVE=n) ax25_kick() will fall
      through the switch statement without calling ax25_send_iframe() or any
      other function that would eventually free skbn thus leaking the packet.
      
      Fix by restricting the sysctl inferface to allow only actually supported
      AX.25 dialects.
      
      The system administration mistake needed for this to happen is rather
      unlikely, so this is an uncritical hole.
      
      Coverity #651.
      Signed-off-by: default avatarRalf Baechle DL5RB <ralf@linux-mips.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c7c694d1
  3. 18 Mar, 2006 5 commits
    • Ralf Baechle's avatar
      [MIPS] Sibyte: Fix race in sb1250_gettimeoffset(). · a904f747
      Ralf Baechle authored
          
      From Dave Johnson <djohnson+linuxmips@sw.starentnetworks.com>:
          
      sb1250_gettimeoffset() simply reads the current cpu 0 timer remaining
      value, however once this counter reaches 0 and the interrupt is raised,
      it immediately resets and begins to count down again.
          
      If sb1250_gettimeoffset() is called on cpu 1 via do_gettimeofday() after
      the timer has reset but prior to cpu 0 processing the interrupt and
      taking write_seqlock() in timer_interrupt() it will return a full value
      (or close to it) causing time to jump backwards 1ms. Once cpu 0 handles
      the interrupt and timer_interrupt() gets far enough along it will jump
      forward 1ms.
          
      Fix this problem by implementing mips_hpt_*() on sb1250 using a spare
      timer unrelated to the existing periodic interrupt timers. It runs at
      1Mhz with a full 23bit counter.  This eliminated the custom
      do_gettimeoffset() for sb1250 and allowed use of the generic
      fixed_rate_gettimeoffset() using mips_hpt_*() and timerhi/timerlo.
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      a904f747
    • Ralf Baechle's avatar
      [MIPS] Sibyte: Fix M_SCD_TIMER_INIT and M_SCD_TIMER_CNT wrong field width. · a77f1242
      Ralf Baechle authored
          
      From Dave Johnson <djohnson+linuxmips@sw.starentnetworks.com>:
          
      Field width should be 23 bits not 20 bits.
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      a77f1242
    • Ralf Baechle's avatar
      [MIPS] Work around bad code generation for <asm/io.h>. · 966f4406
      Ralf Baechle authored
          
      If a call to set_io_port_base() was being followed by usage of
      mips_io_port_base in the same function gcc was possibly using the old
      value due to some clever abuse of const.  Adding a barrier will keep
      the optimization and result in correct code with latest gcc.
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      966f4406
    • Atsushi Nemoto's avatar
      [MIPS] local_r4k_flush_cache_page fix · de62893b
      Atsushi Nemoto authored
          
      If dcache_size != icache_size or dcache_size != scache_size, or
      set-associative cache, icache/scache does not flushed properly.  Make
      blast_?cache_page_indexed() masks its index value correctly.  Also,
      use physical address for physically indexed pcache/scache.
      Signed-off-by: default avatarAtsushi Nemoto <anemo@mba.ocn.ne.jp>
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      de62893b
    • Ralf Baechle's avatar
      [MIPS] SB1: Fix interrupt disable hazard. · a3c4946d
      Ralf Baechle authored
          
      The SB1 core has a three cycle interrupt disable hazard but we were
      wrongly treating it as fully interlocked.
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      a3c4946d
  4. 17 Mar, 2006 1 commit
  5. 16 Mar, 2006 1 commit
  6. 15 Mar, 2006 1 commit