1. 28 Sep, 2010 8 commits
  2. 27 Sep, 2010 17 commits
  3. 26 Sep, 2010 2 commits
    • Ondrej Zary's avatar
      de2104x: fix TP link detection · ca9a7835
      Ondrej Zary authored
      Compex FreedomLine 32 PnP-PCI2 cards have only TP and BNC connectors but the
      SROM contains AUI port too. When TP loses link, the driver switches to
      non-existing AUI port (which reports that carrier is always present).
      
      Connecting TP back generates LinkPass interrupt but de_media_interrupt() is
      broken - it only updates the link state of currently connected media, ignoring
      the fact that LinkPass and LinkFail bits of MacStatus register belong to the
      TP port only (the chip documentation says that).
      
      This patch changes de_media_interrupt() to switch media to TP when link goes
      up (and media type is not locked) and also to update the link state only when
      the TP port is used.
      
      Also the NonselPortActive (and also SelPortActive) bits of SIAStatus register
      need to be cleared (by writing 1) after reading or they're useless.
      Signed-off-by: default avatarOndrej Zary <linux@rainbow-software.org>
      Acked-by: default avatarJeff Garzik <jgarzik@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ca9a7835
    • Ondrej Zary's avatar
      de2104x: fix power management · b0255a02
      Ondrej Zary authored
      At least my 21041 cards come out of suspend with bus mastering disabled so
      they did not work after resume(no data transferred).
      After adding pci_set_master(), the driver oopsed immediately on resume -
      because de_clean_rings() is called on suspend but de_init_rings() call
      was missing in resume.
      
      Also disable link (reset SIA) before sleep (de4x5 does this too).
      Signed-off-by: default avatarOndrej Zary <linux@rainbow-software.org>
      Acked-by: default avatarJeff Garzik <jgarzik@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b0255a02
  4. 25 Sep, 2010 5 commits
  5. 24 Sep, 2010 1 commit
    • Eric Dumazet's avatar
      ip: take care of last fragment in ip_append_data · 59104f06
      Eric Dumazet authored
      While investigating a bit, I found ip_fragment() slow path was taken
      because ip_append_data() provides following layout for a send(MTU +
      N*(MTU - 20)) syscall :
      
      - one skb with 1500 (mtu) bytes
      - N fragments of 1480 (mtu-20) bytes (before adding IP header)
      last fragment gets 17 bytes of trail data because of following bit:
      
      	if (datalen == length + fraggap)
      		alloclen += rt->dst.trailer_len;
      
      Then esp4 adds 16 bytes of data (while trailer_len is 17... hmm...
      another bug ?)
      
      In ip_fragment(), we notice last fragment is too big (1496 + 20) > mtu,
      so we take slow path, building another skb chain.
      
      In order to avoid taking slow path, we should correct ip_append_data()
      to make sure last fragment has real trail space, under mtu...
      Signed-off-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      59104f06
  6. 23 Sep, 2010 7 commits