Skip to content
  1. Aug 18, 2006
  2. Aug 17, 2006
  3. Aug 16, 2006
  4. Aug 15, 2006
  5. Aug 14, 2006
    • Herbert Xu's avatar
      [INET]: Use pskb_trim_unique when trimming paged unique skbs · e9fa4f7b
      Herbert Xu authored
      
      
      The IPv4/IPv6 datagram output path was using skb_trim to trim paged
      packets because they know that the packet has not been cloned yet
      (since the packet hasn't been given to anything else in the system).
      
      This broke because skb_trim no longer allows paged packets to be
      trimmed.  Paged packets must be given to one of the pskb_trim functions
      instead.
      
      This patch adds a new pskb_trim_unique function to cover the IPv4/IPv6
      datagram output path scenario and replaces the corresponding skb_trim
      calls with it.
      
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e9fa4f7b
    • Mark Huang's avatar
      [NETFILTER]: ulog: fix panic on SMP kernels · dcb7cd97
      Mark Huang authored
      
      
      Fix kernel panic on various SMP machines. The culprit is a null
      ub->skb in ulog_send(). If ulog_timer() has already been scheduled on
      one CPU and is spinning on the lock, and ipt_ulog_packet() flushes the
      queue on another CPU by calling ulog_send() right before it exits,
      there will be no skbuff when ulog_timer() acquires the lock and calls
      ulog_send(). Cancelling the timer in ulog_send() doesn't help because
      it has already been scheduled and is running on the first CPU.
      
      Similar problem exists in ebt_ulog.c and nfnetlink_log.c.
      
      Signed-off-by: default avatarMark Huang <mlhuang@cs.princeton.edu>
      Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dcb7cd97
    • Patrick McHardy's avatar
      [NETFILTER]: {arp,ip,ip6}_tables: proper error recovery in init path · 0eff66e6
      Patrick McHardy authored
      
      
      Neither of {arp,ip,ip6}_tables cleans up behind itself when something goes
      wrong during initialization.
      
      Noticed by Rennie deGraaf <degraaf@cpsc.ucalgary.ca>
      
      Signed-off-by: default avatarPatrick McHardy <kaber@trash.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0eff66e6
    • Stephen Hemminger's avatar
      [LLC]: multicast receive device match · 7ee66fcb
      Stephen Hemminger authored
      
      
      Fix from Aji_Srinivas@emc.com, STP packets are incorrectly received on
      all LLC datagram sockets, whichever interface they are bound to.  The
      llc_sap datagram receive logic sends packets with a unicast
      destination MAC to one socket bound to that SAP and MAC, and multicast
      packets to all sockets bound to that SAP. STP packets are multicast,
      and we do need to know on which interface they were received.
      
      Signed-off-by: default avatarStephen Hemminger <shemminger@osdl.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7ee66fcb
    • David S. Miller's avatar
      [IPSEC]: Validate properly in xfrm_dst_check() · d49c73c7
      David S. Miller authored
      
      
      If dst->obsolete is -1, this is a signal from the
      bundle creator that we want the XFRM dst and the
      dsts that it references to be validated on every
      use.
      
      I misunderstood this intention when I changed
      xfrm_dst_check() to always return NULL.
      
      Now, when we purge a dst entry, by running dst_free()
      on it.  This will set the dst->obsolete to a positive
      integer, and we want to return NULL in that case so
      that the socket does a relookup for the route.
      
      Thus, if dst->obsolete<0, let stale_bundle() validate
      the state, else always return NULL.
      
      In general, we need to do things more intelligently
      here because we flush too much state during rule
      changes.  Herbert Xu has some ideas wherein the key
      manager gives us some help in this area.  We can also
      use smarter state management algorithms inside of
      the kernel as well.
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d49c73c7