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