All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6 net-next] rhashtable fixes
@ 2015-01-30  0:20 Thomas Graf
  2015-01-30  0:20 ` [PATCH 1/6] rhashtable: key_hashfn() must return full hash value Thomas Graf
                   ` (6 more replies)
  0 siblings, 7 replies; 17+ messages in thread
From: Thomas Graf @ 2015-01-30  0:20 UTC (permalink / raw)
  To: davem; +Cc: netdev, ying.xue

This is a series of fixes which have accumulated while tracking
down the race condition reoprted by Ying Xue. The original
DEBUG_PAGEALLOC splat is resolved.

However, there is still a race (harder to trigger) remaining in
which certain entries are unfindable when removing them from the
table via netlink_remove() and thus they cause a use after free
later on.

Regardless, these fixes can go in now.

Thomas Graf (6):
  rhashtable: key_hashfn() must return full hash value
  rhashtable: Use a single bucket lock for sibling buckets
  rhashtable: Wait for RCU readers after final unzip work
  rhashtable: Dump bucket tables on locking violation under
    PROVE_LOCKING
  rhashtable: Add more lock verification
  rhashtable: Avoid bucket cross reference after removal

 lib/rhashtable.c | 301 ++++++++++++++++++++++++++++++-------------------------
 1 file changed, 166 insertions(+), 135 deletions(-)

-- 
1.9.3

^ permalink raw reply	[flat|nested] 17+ messages in thread
* [PATCH 0/6 v2 net-next] rhashtable fixes
@ 2015-02-05  1:03 Thomas Graf
  2015-02-05  1:03 ` [PATCH 5/6] rhashtable: Add more lock verification Thomas Graf
  0 siblings, 1 reply; 17+ messages in thread
From: Thomas Graf @ 2015-02-05  1:03 UTC (permalink / raw)
  To: davem; +Cc: netdev, herbert, ying.xue

This series fixes all remaining known issues with rhashtable that
have been reported. In particular the race condition reported by
Ying Xue.

---
Dave/Herbert: I'm posting this now as it fixes real issues. I'm
fine with taking Herbert's rehash patches instead if they resolve
all the reported issues as well.

v2:
 - Rebased on top of Herbert Xu's iterator code
 - Fixed last remaining race that remained. Special thanks
   to Daniel Borkmann for assistance while debugging.

Thomas Graf (6):
  rhashtable: key_hashfn() must return full hash value
  rhashtable: Use a single bucket lock for sibling buckets
  rhashtable: Wait for RCU readers after final unzip work
  rhashtable: Dump bucket tables on locking violation under
    PROVE_LOCKING
  rhashtable: Add more lock verification
  rhashtable: Avoid bucket cross reference after removal

 lib/rhashtable.c | 305 ++++++++++++++++++++++++++++++-------------------------
 1 file changed, 167 insertions(+), 138 deletions(-)

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2015-02-05  1:03 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-30  0:20 [PATCH 0/6 net-next] rhashtable fixes Thomas Graf
2015-01-30  0:20 ` [PATCH 1/6] rhashtable: key_hashfn() must return full hash value Thomas Graf
2015-01-30  0:20 ` [PATCH 2/6] rhashtable: Use a single bucket lock for sibling buckets Thomas Graf
2015-01-31  4:34   ` Herbert Xu
2015-01-31  8:41     ` Thomas Graf
2015-01-31  9:38       ` Herbert Xu
2015-01-31 12:50         ` Thomas Graf
2015-01-30  0:20 ` [PATCH 3/6] rhashtable: Wait for RCU readers after final unzip work Thomas Graf
2015-01-30  0:20 ` [PATCH 4/6] rhashtable: Dump bucket tables on locking violation under PROVE_LOCKING Thomas Graf
2015-01-30  0:20 ` [PATCH 5/6] rhashtable: Add more lock verification Thomas Graf
2015-01-30  0:20 ` [PATCH 6/6] rhashtable: Avoid bucket cross reference after removal Thomas Graf
2015-01-30  9:10 ` [PATCH 0/6 net-next] rhashtable fixes Ying Xue
2015-01-30  9:29   ` Thomas Graf
2015-01-30  9:56     ` Ying Xue
2015-02-03 17:21       ` Thomas Graf
2015-02-04  2:32         ` Ying Xue
2015-02-05  1:03 [PATCH 0/6 v2 " Thomas Graf
2015-02-05  1:03 ` [PATCH 5/6] rhashtable: Add more lock verification Thomas Graf

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.