1. 28 9月, 2010 2 次提交
    • Y
      tcp: fix TSO FACK loss marking in tcp_mark_head_lost · b3de7559
      Yuchung Cheng 提交于
      When TCP uses FACK algorithm to mark lost packets in
      tcp_mark_head_lost(), if the number of packets in the (TSO) skb is
      greater than the number of packets that should be marked lost, TCP
      incorrectly exits the loop and marks no packets lost in the skb. This
      underestimates tp->lost_out and affects the recovery/retransmission.
      This patch fargments the skb and marks the correct amount of packets
      lost.
      Signed-off-by: NYuchung Cheng <ycheng@google.com>
      Acked-by: NIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b3de7559
    • J
      3c59x: fix regression from patch "Add ethtool WOL support" · 3fd6c88e
      Jan Beulich 提交于
      This patch (commit 690a1f20) added a
      new call site for acpi_set_WOL() without checking that the function is
      actually suitable to be called via
      
       vortex_set_wol+0xcd/0xe0 [3c59x]
       dev_ethtool+0xa5a/0xb70
       dev_ioctl+0x2e0/0x4b0
       T.961+0x49/0x50
       sock_ioctl+0x47/0x290
       do_vfs_ioctl+0x7f/0x340
       sys_ioctl+0x80/0xa0
       system_call_fastpath+0x16/0x1b
      
      i.e. outside of code paths run when the device is not yet enabled or
      already disabled. In particular, putting the device into D3hot is a
      pretty bad idea when it was already brought up.
      
      Furthermore, all prior callers of the function made sure they're
      actually dealing with a PCI device, while the newly added one didn't.
      
      In the same spirit, the .get_wol handler shouldn't indicate support
      for WOL for non-PCI devices.
      Signed-off-by: NJan Beulich <jbeulich@novell.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3fd6c88e
  2. 27 9月, 2010 10 次提交
  3. 25 9月, 2010 2 次提交
    • O
      de2104x: disable autonegotiation on broken hardware · e0f9c4f3
      Ondrej Zary 提交于
      At least on older 21041-AA chips (mine is rev. 11), TP duplex autonegotiation
      causes the card not to work at all (link is up but no packets are transmitted).
      
      de4x5 disables autonegotiation completely. But it seems to work on newer
      (21041-PA rev. 21) so disable it only on rev<20 chips.
      Signed-off-by: NOndrej Zary <linux@rainbow-software.org>
      Acked-by: NJeff Garzik <jgarzik@redhat.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e0f9c4f3
    • E
      net: fix a lockdep splat · f064af1e
      Eric Dumazet 提交于
      We have for each socket :
      
      One spinlock (sk_slock.slock)
      One rwlock (sk_callback_lock)
      
      Possible scenarios are :
      
      (A) (this is used in net/sunrpc/xprtsock.c)
      read_lock(&sk->sk_callback_lock) (without blocking BH)
      <BH>
      spin_lock(&sk->sk_slock.slock);
      ...
      read_lock(&sk->sk_callback_lock);
      ...
      
      (B)
      write_lock_bh(&sk->sk_callback_lock)
      stuff
      write_unlock_bh(&sk->sk_callback_lock)
      
      (C)
      spin_lock_bh(&sk->sk_slock)
      ...
      write_lock_bh(&sk->sk_callback_lock)
      stuff
      write_unlock_bh(&sk->sk_callback_lock)
      spin_unlock_bh(&sk->sk_slock)
      
      This (C) case conflicts with (A) :
      
      CPU1 [A]                         CPU2 [C]
      read_lock(callback_lock)
      <BH>                             spin_lock_bh(slock)
      <wait to spin_lock(slock)>
                                       <wait to write_lock_bh(callback_lock)>
      
      We have one problematic (C) use case in inet_csk_listen_stop() :
      
      local_bh_disable();
      bh_lock_sock(child); // spin_lock_bh(&sk->sk_slock)
      WARN_ON(sock_owned_by_user(child));
      ...
      sock_orphan(child); // write_lock_bh(&sk->sk_callback_lock)
      
      lockdep is not happy with this, as reported by Tetsuo Handa
      
      It seems only way to deal with this is to use read_lock_bh(callbacklock)
      everywhere.
      
      Thanks to Jarek for pointing a bug in my first attempt and suggesting
      this solution.
      Reported-by: NTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Tested-by: NTetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      CC: Jarek Poplawski <jarkao2@gmail.com>
      Tested-by: NEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f064af1e
  4. 23 9月, 2010 16 次提交
  5. 22 9月, 2010 4 次提交
  6. 21 9月, 2010 6 次提交