02 Sep, 2016

2 commits

  • Some versions of gcc don't like tests for the value of an undefined
    preprocessor symbol, even in the #else branch of an #ifndef:

    lib/test_hash.c:224:7: warning: "HAVE_ARCH__HASH_32" is not defined [-Wundef]
    #elif HAVE_ARCH__HASH_32 != 1
    ^
    lib/test_hash.c:229:7: warning: "HAVE_ARCH_HASH_32" is not defined [-Wundef]
    #elif HAVE_ARCH_HASH_32 != 1
    ^
    lib/test_hash.c:234:7: warning: "HAVE_ARCH_HASH_64" is not defined [-Wundef]
    #elif HAVE_ARCH_HASH_64 != 1
    ^

    Seen with gcc 4.9, not seen with 4.1.2.

    Change the logic to only check the value inside an #ifdef to fix this.

    Fixes: 468a9428521e7d00 (": Add support for architecture-specific functions")
    Link: http://lkml.kernel.org/r/20160829214952.1334674-4-arnd@arndb.de
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Arnd Bergmann
    Acked-by: George Spelvin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     
  • lib/test_hash.c: In function 'test_hash_init':
    lib/test_hash.c:146:2: warning: missing braces around initializer [-Wmissing-braces]

    Fixes: 468a9428521e7d00 (": Add support for architecture-specific functions")
    Link: http://lkml.kernel.org/r/20160829214952.1334674-3-arnd@arndb.de
    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Arnd Bergmann
    Acked-by: George Spelvin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     

11 Jun, 2016

1 commit

  • We always mixed in the parent pointer into the dentry name hash, but we
    did it late at lookup time. It turns out that we can simplify that
    lookup-time action by salting the hash with the parent pointer early
    instead of late.

    A few other users of our string hashes also wanted to mix in their own
    pointers into the hash, and those are updated to use the same mechanism.

    Hash users that don't have any particular initial salt can just use the
    NULL pointer as a no-salt.

    Cc: Vegard Nossum
    Cc: George Spelvin
    Cc: Al Viro
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

29 May, 2016

1 commit

  • This is just the infrastructure; there are no users yet.

    This is modelled on CONFIG_ARCH_RANDOM; a CONFIG_ symbol declares
    the existence of .

    That file may define its own versions of various functions, and define
    HAVE_* symbols (no CONFIG_ prefix!) to suppress the generic ones.

    Included is a self-test (in lib/test_hash.c) that verifies the basics.
    It is NOT in general required that the arch-specific functions compute
    the same thing as the generic, but if a HAVE_* symbol is defined with
    the value 1, then equality is tested.

    Signed-off-by: George Spelvin
    Cc: Geert Uytterhoeven
    Cc: Greg Ungerer
    Cc: Andreas Schwab
    Cc: Philippe De Muyter
    Cc: linux-m68k@lists.linux-m68k.org
    Cc: Alistair Francis
    Cc: Michal Simek
    Cc: Yoshinori Sato
    Cc: uclinux-h8-devel@lists.sourceforge.jp

    George Spelvin