17 Dec, 2011

1 commit


04 Dec, 2011

1 commit

  • While parsing through IPv6 extension headers, fragment headers are
    skipped making them invisible to the caller. This reports the
    fragment offset of the last header in order to make it possible to
    determine whether the packet is fragmented and, if so whether it is
    a first or last fragment.

    Signed-off-by: Jesse Gross

    Jesse Gross
     

01 Nov, 2011

1 commit


20 Aug, 2010

1 commit


12 May, 2010

3 commits


20 Apr, 2010

1 commit


01 Apr, 2010

1 commit

  • xt_hashlimit uses a central lock per hash table and suffers from
    contention on some workloads. (Multiqueue NIC or if RPS is enabled)

    After RCU conversion, central lock is only used when a writer wants to
    add or delete an entry.

    For 'readers', updating an existing entry, they use an individual lock
    per entry.

    Signed-off-by: Eric Dumazet
    Signed-off-by: Patrick McHardy

    Eric Dumazet
     

26 Mar, 2010

2 commits


25 Mar, 2010

4 commits


18 Mar, 2010

3 commits


17 Mar, 2010

1 commit


08 Mar, 2010

1 commit


18 Feb, 2010

1 commit

  • Commit 2eff25c18c3d332d3c4dd98f2ac9b7114e9771b0
    (netfilter: xt_hashlimit: fix race condition and simplify locking)
    added a mutex deadlock :
    htable_create() is called with hashlimit_mutex already locked

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     

15 Feb, 2010

1 commit


09 Feb, 2010

1 commit

  • In particular, several occurances of funny versions of 'success',
    'unknown', 'therefore', 'acknowledge', 'argument', 'achieve', 'address',
    'beginning', 'desirable', 'separate' and 'necessary' are fixed.

    Signed-off-by: Daniel Mack
    Cc: Joe Perches
    Cc: Junio C Hamano
    Signed-off-by: Jiri Kosina

    Daniel Mack
     

03 Feb, 2010

1 commit

  • As noticed by Shin Hong , there is a race between
    htable_find_get() and htable_put():

    htable_put(): htable_find_get():

    spin_lock_bh(&hashlimit_lock);

    atomic_dec_and_test(&hinfo->use)
    atomic_inc(&hinfo->use)
    spin_unlock_bh(&hashlimit_lock)
    return hinfo;
    spin_lock_bh(&hashlimit_lock);
    hlist_del(&hinfo->node);
    spin_unlock_bh(&hashlimit_lock);
    htable_destroy(hinfo);

    The entire locking concept is overly complicated, tables are only
    created/referenced and released in process context, so a single
    mutex works just fine. Remove the hashinfo_spinlock and atomic
    reference count and use the mutex to protect table lookups/creation
    and reference count changes.

    Signed-off-by: Patrick McHardy

    Patrick McHardy
     

18 Jan, 2010

2 commits


04 Jan, 2010

1 commit


22 Sep, 2009

1 commit

  • Sizing of memory allocations shouldn't depend on the number of physical
    pages found in a system, as that generally includes (perhaps a huge amount
    of) non-RAM pages. The amount of what actually is usable as storage
    should instead be used as a basis here.

    Some of the calculations (i.e. those not intending to use high memory)
    should likely even use (totalram_pages - totalhigh_pages).

    Signed-off-by: Jan Beulich
    Acked-by: Rusty Russell
    Acked-by: Ingo Molnar
    Cc: Dave Airlie
    Cc: Kyle McMartin
    Cc: Jeremy Fitzhardinge
    Cc: Pekka Enberg
    Cc: Hugh Dickins
    Cc: "David S. Miller"
    Cc: Patrick McHardy
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jan Beulich
     

27 May, 2009

1 commit


24 Feb, 2009

1 commit

  • Commit 784544739a25c30637397ace5489eeb6e15d7d49
    (netfilter: iptables: lock free counters) broke xt_hashlimit netfilter module :

    This module was storing a pointer inside its xt_hashlimit_info, and this pointer
    is not relocated when we temporarly switch tables (iptables -L).

    This hack is not not needed at all (probably a leftover from
    ancient time), as each cpu should and can access to its own copy.

    Signed-off-by: Eric Dumazet
    Signed-off-by: Patrick McHardy

    Eric Dumazet
     

20 Feb, 2009

1 commit


31 Oct, 2008

1 commit


30 Oct, 2008

1 commit


29 Oct, 2008

1 commit


08 Oct, 2008

5 commits


31 Jul, 2008

1 commit

  • Deleting a timer with del_timer doesn't guarantee, that the
    timer function is not running at the moment of deletion. Thus
    in the xt_hashlimit case we can get into a ticklish situation
    when the htable_gc rearms the timer back and we'll actually
    delete an entry with a pending timer.

    Fix it with using del_timer_sync().

    AFAIK del_timer_sync checks for the timer to be pending by
    itself, so I remove the check.

    Signed-off-by: Pavel Emelyanov
    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Pavel Emelyanov