1. 04 May, 2007 5 commits
    • Jennifer Hunt's avatar
      [AF_IUCV]: Implementation of a skb backlog queue · 561e0360
      Jennifer Hunt authored
      With the inital implementation we missed to implement a skb backlog
      queue . The result is that socket receive processing tossed packets.
      Since AF_IUCV connections are working synchronously it leads to
      connection hangs. Problems with read, close and select also occured.
      
      Using a skb backlog queue is fixing all of these problems .
      Signed-off-by: default avatarJennifer Hunt <jenhunt@us.ibm.com>
      Signed-off-by: default avatarFrank Pavlic <fpavlic@de.ibm.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      561e0360
    • Patrick McHardy's avatar
      [NETLINK]: Remove bogus BUG_ON · 9e71efcd
      Patrick McHardy authored
      Remove bogus BUG_ON(mutex_is_locked(nlk_sk(sk)->cb_mutex)), when the
      netlink_kernel_create caller specifies an external mutex it might
      validly be locked.
      Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9e71efcd
    • Eric Dumazet's avatar
      [IPV6]: Some cleanups in include/net/ipv6.h · db3459d1
      Eric Dumazet authored
      1) struct ip6_flowlabel : moves 'users' field to avoid two 32bits
         holes for 64bit arches. Shrinks by 8 bytes sizeof(struct
         ip6_flowlabel)
      
      2) ipv6_addr_cmp() and ipv6_addr_copy() dont need (void *) casts :
         Compiler might take into account natural alignement of in6_addr
         structs to emit better code for memcpy()/memcmp() Casts to (void *)
         force byte accesses.
      
      3) ipv6_addr_prefix() optimization :
      
      Better to clear whole struct, as compiler can emit better code for
      memset(addr, 0, 16) (2 stores on x86_64), and avoid some conditional
      branches.
      
      # size vmlinux.after vmlinux.before
         text    data     bss     dec     hex filename
      5262262  647612  557432 6467306  62aeea vmlinux.after
      5262550  647612  557432 6467594  62b00a vmlinux.before
      
      thats 288 bytes saved.
      Signed-off-by: default avatarEric Dumazet <dada1@cosmosbay.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      db3459d1
    • Srinivas Aji's avatar
      [TCP]: zero out rx_opt in tcp_disconnect() · b40b4f79
      Srinivas Aji authored
      When the server drops its connection, NFS client reconnects using the
      same socket after disconnecting. If the new connection's SYN,ACK
      doesn't contain the TCP timestamp option and the old connection's did,
      tp->tcp_header_len is recomputed assuming no timestamp header but
      tp->rx_opt.tstamp_ok remains set. Then tcp_build_and_update_options()
      adds in a timestamp option past the end of the allocated TCP header,
      overwriting TCP data, or when the data is in skb_shinfo(skb)->frags[],
      overwriting skb_shinfo(skb) causing a crash soon after. (The issue was
      debugged from such a crash.)
      
      Similarly, wscale_ok and sack_ok also get set based on the SYN,ACK
      packet but not reset on disconnect, since they are zeroed out at
      initialization. The patch zeroes out the entire tp->rx_opt struct in
      tcp_disconnect() to avoid this sort of problem.
      Signed-off-by: default avatarSrinivas Aji <Aji_Srinivas@emc.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b40b4f79
    • Michael Chan's avatar
      [BNX2]: Fix TSO problem with small MSS. · fde82055
      Michael Chan authored
      Remove the check for skb->len greater than MTU when doing TSO.  When
      the destination has a smaller MSS than the source, a TSO packet may
      be smaller than the MTU at the source and we still need to process it
      as a TSO packet.
      
      Thanks to Brian Ristuccia <bristuccia@starentnetworks.com> for
      reporting the problem.
      Signed-off-by: default avatarMichael Chan <mchan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fde82055
  2. 03 May, 2007 35 commits