1. 24 8月, 2006 2 次提交
  2. 22 8月, 2006 1 次提交
    • T
      [PATCH] ata_piix: fix ghost device probing by honoring PCS present bits · f1a58eca
      Tejun Heo 提交于
      Move out PCS handling from piix_sata_prereset() into
      piix_sata_present_mask() and use it from newly implemented
      piix_sata_softreset().  Class codes for devices which are indicated to
      be absent by PCS are cleared to ATA_DEV_NONE.  This fixes ghost device
      problem reported on ICH6 and 7.
      
      This patch moves PCS handling from prereset to softreset, which makes
      two behavior changes.
      
      * perform softreset even when PCS indicates no device
      * PCS handling is repeated before retrying softresets due to reset
        failures.
      
      Both behavior changes are intended and more consistent with how other
      drivers behave.
      Signed-off-by: NTejun Heo <htejun@gmail.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      f1a58eca
  3. 20 8月, 2006 1 次提交
  4. 18 8月, 2006 3 次提交
    • P
      [PPP]: handle kmalloc failures and convert to using kzalloc · d4274b51
      Panagiotis Issaris 提交于
      The PPP code contains two kmalloc()s followed by memset()s without
      handling a possible memory allocation failure.  (Suggested by Joe
      Perches).
      
      And furthermore, conversions from kmalloc+memset to kzalloc.
      
      [akpm@osdl.org: fix error-path leak]
      [akpm@osdl.org: cleanups]
      [paulus@samba.org: don't add useless printk and cardmap_destroy calls]
      Signed-off-by: NPanagiotis Issaris <takis@issaris.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d4274b51
    • M
      [BNX2]: Convert to netdev_alloc_skb() · 932f3772
      Michael Chan 提交于
      Convert dev_alloc_skb() to netdev_alloc_skb() and increase default
      rx ring size to 255. The old ring size of 100 was too small.
      
      Update version to 1.4.44.
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      932f3772
    • M
      [BNX2]: Fix tx race condition. · 2f8af120
      Michael Chan 提交于
      Fix a subtle race condition between bnx2_start_xmit() and bnx2_tx_int()
      similar to the one in tg3 discovered by Herbert Xu:
      
      CPU0					CPU1
      bnx2_start_xmit()
      	if (tx_ring_full) {
      		tx_lock
      					bnx2_tx()
      						if (!netif_queue_stopped)
      		netif_stop_queue()
      		if (!tx_ring_full)
      						update_tx_ring
      			netif_wake_queue()
      		tx_unlock
      	}
      
      Even though tx_ring is updated before the if statement in bnx2_tx_int() in
      program order, it can be re-ordered by the CPU as shown above.  This
      scenario can cause the tx queue to be stopped forever if bnx2_tx_int() has
      just freed up the entire tx_ring.  The possibility of this happening
      should be very rare though.
      
      The following changes are made, very much identical to the tg3 fix:
      
      1. Add memory barrier to fix the above race condition.
      
      2. Eliminate the private tx_lock altogether and rely solely on
      netif_tx_lock.  This eliminates one spinlock in bnx2_start_xmit()
      when the ring is full.
      
      3. Because of 2, use netif_tx_lock in bnx2_tx_int() before calling
      netif_wake_queue().
      
      4. Add memory barrier to bnx2_tx_avail().
      
      5. Add bp->tx_wake_thresh which is set to half the tx ring size.
      
      6. Check for the full wake queue condition before getting
      netif_tx_lock in tg3_tx().  This reduces the number of unnecessary
      spinlocks when the tx ring is full in a steady-state condition.
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2f8af120
  5. 16 8月, 2006 2 次提交
  6. 15 8月, 2006 8 次提交
  7. 12 8月, 2006 8 次提交
  8. 10 8月, 2006 15 次提交