]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commit - lib/rhashtable.c
rhashtable: Supports for nulls marker
authorThomas Graf <tgraf@suug.ch>
Fri, 2 Jan 2015 22:00:21 +0000 (23:00 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sat, 3 Jan 2015 19:32:57 +0000 (14:32 -0500)
commitf89bd6f87a53ce5a7d60662429591ebac2745c10
tree69dafc1508219d2f3ee44647734db7c046f0b0f7
parent97defe1ecf868b8127f8e62395499d6a06e4c4b1
rhashtable: Supports for nulls marker

In order to allow for wider usage of rhashtable, use a special nulls
marker to terminate each chain. The reason for not using the existing
nulls_list is that the prev pointer usage would not be valid as entries
can be linked in two different buckets at the same time.

The 4 nulls base bits can be set through the rhashtable_params structure
like this:

struct rhashtable_params params = {
        [...]
        .nulls_base = (1U << RHT_BASE_SHIFT),
};

This reduces the hash length from 32 bits to 27 bits.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/list_nulls.h
include/linux/rhashtable.h
lib/rhashtable.c