1. 15 6月, 2010 2 次提交
    • L
      netfilter: xtables: idletimer target implementation · 0902b469
      Luciano Coelho 提交于
      This patch implements an idletimer Xtables target that can be used to
      identify when interfaces have been idle for a certain period of time.
      
      Timers are identified by labels and are created when a rule is set with a new
      label.  The rules also take a timeout value (in seconds) as an option.  If
      more than one rule uses the same timer label, the timer will be restarted
      whenever any of the rules get a hit.
      
      One entry for each timer is created in sysfs.  This attribute contains the
      timer remaining for the timer to expire.  The attributes are located under
      the xt_idletimer class:
      
      /sys/class/xt_idletimer/timers/<label>
      
      When the timer expires, the target module sends a sysfs notification to the
      userspace, which can then decide what to do (eg. disconnect to save power).
      
      Cc: Timo Teras <timo.teras@iki.fi>
      Signed-off-by: NLuciano Coelho <luciano.coelho@nokia.com>
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      0902b469
    • E
      netfilter: CLUSTERIP: RCU conversion · d73f33b1
      Eric Dumazet 提交于
      - clusterip_lock becomes a spinlock
      - lockless lookups
      - kfree() deferred after RCU grace period
      - rcu_barrier_bh() inserted in clusterip_tg_exit()
      
      v2)
      - As Patrick pointed out, we use atomic_inc_not_zero() in
      clusterip_config_find_get().
      - list_add_rcu() and list_del_rcu() variants are used.
      - atomic_dec_and_lock() used in clusterip_config_entry_put()
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      d73f33b1
  2. 14 6月, 2010 4 次提交
  3. 10 6月, 2010 2 次提交
  4. 09 6月, 2010 4 次提交
  5. 08 6月, 2010 1 次提交
    • E
      netfilter: nf_conntrack: IPS_UNTRACKED bit · 5bfddbd4
      Eric Dumazet 提交于
      NOTRACK makes all cpus share a cache line on nf_conntrack_untracked
      twice per packet. This is bad for performance.
      __read_mostly annotation is also a bad choice.
      
      This patch introduces IPS_UNTRACKED bit so that we can use later a
      per_cpu untrack structure more easily.
      
      A new helper, nf_ct_untracked_get() returns a pointer to
      nf_conntrack_untracked.
      
      Another one, nf_ct_untracked_status_or() is used by nf_nat_init() to add
      IPS_NAT_DONE_MASK bits to untracked status.
      
      nf_ct_is_untracked() prototype is changed to work on a nf_conn pointer.
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: NPatrick McHardy <kaber@trash.net>
      5bfddbd4
  6. 04 6月, 2010 1 次提交
  7. 01 6月, 2010 2 次提交
  8. 31 5月, 2010 8 次提交
  9. 29 5月, 2010 7 次提交
  10. 28 5月, 2010 6 次提交
  11. 27 5月, 2010 2 次提交
    • E
      net: fix lock_sock_bh/unlock_sock_bh · 8a74ad60
      Eric Dumazet 提交于
      This new sock lock primitive was introduced to speedup some user context
      socket manipulation. But it is unsafe to protect two threads, one using
      regular lock_sock/release_sock, one using lock_sock_bh/unlock_sock_bh
      
      This patch changes lock_sock_bh to be careful against 'owned' state.
      If owned is found to be set, we must take the slow path.
      lock_sock_bh() now returns a boolean to say if the slow path was taken,
      and this boolean is used at unlock_sock_bh time to call the appropriate
      unlock function.
      
      After this change, BH are either disabled or enabled during the
      lock_sock_bh/unlock_sock_bh protected section. This might be misleading,
      so we rename these functions to lock_sock_fast()/unlock_sock_fast().
      Reported-by: NAnton Blanchard <anton@samba.org>
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      Tested-by: NAnton Blanchard <anton@samba.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8a74ad60
    • J
      net/iucv: Add missing spin_unlock · a56635a5
      Julia Lawall 提交于
      Add a spin_unlock missing on the error path.  There seems like no reason
      why the lock should continue to be held if the kzalloc fail.
      
      The semantic match that finds this problem is as follows:
      (http://coccinelle.lip6.fr/)
      
      // <smpl>
      @@
      expression E1;
      @@
      
      * spin_lock(E1,...);
        <+... when != E1
        if (...) {
          ... when != E1
      *   return ...;
        }
        ...+>
      * spin_unlock(E1,...);
      // </smpl>
      Signed-off-by: NJulia Lawall <julia@diku.dk>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a56635a5
  12. 26 5月, 2010 1 次提交