1. 30 May, 2016 30 commits
    • Jani Nikula's avatar
      kernel-doc: concatenate contents of colliding sections · 32217761
      Jani Nikula authored
      If there are multiple sections with the same section name, the current
      implementation results in several sections by the same heading, with the
      content duplicated from the last section to all. Even if there's the
      error message, a more graceful approach is to combine all the
      identically named sections into one, with concatenated contents.
      
      With the supported sections already limited to select few, there are
      massively fewer collisions than there used to be, but this is still
      useful for e.g. when function parameters are documented in the middle of
      a documentation comment, with description spread out above and
      below. (This is not a recommended documentation style, but used in the
      kernel nonetheless.)
      
      We can now also demote the error to a warning.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      32217761
    • Jani Nikula's avatar
      kernel-doc: limit the "section header:" detection to a select few · f624adef
      Jani Nikula authored
      kernel-doc currently identifies anything matching "section header:"
      (specifically a string of word characters and spaces followed by a
      colon) as a new section in the documentation comment, and renders the
      section header accordingly.
      
      Unfortunately, this turns all uses of colon into sections, mostly
      unintentionally. Considering the output, erroneously creating sections
      when not intended is always worse than erroneously not creating sections
      when intended. For example, a line with "http://example.com" turns into
      a "http" heading followed by "//example.com" in normal text style, which
      is quite ugly. OTOH, "WARNING: Beware of the Leopard" is just fine even
      if "WARNING" does not turn into a heading.
      
      It is virtually impossible to change all the kernel-doc comments, either
      way. The compromise is to pick the most commonly used and depended on
      section headers (with variants) and accept them as section headers.
      
      The accepted section headers are, case insensitive:
      
       * description:
       * context:
       * return:
       * returns:
      
      Additionally, case sensitive:
      
       * @return:
      
      All of the above are commonly used in the kernel-doc comments, and will
      result in worse output if not identified as section headers. Also,
      kernel-doc already has some special handling for all of them, so there's
      nothing particularly controversial in adding more special treatment for
      them.
      
      While at it, improve the whitespace handling surrounding section
      names. Do not consider the whitespace as part of the name.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      f624adef
    • Jani Nikula's avatar
      kernel-doc/rst: remove fixme comment · cddfe325
      Jani Nikula authored
      Yes, for our purposes the type should contain typedef.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      cddfe325
    • Jani Nikula's avatar
      kernel-doc/rst: use *undescribed* instead of _undescribed_ · d4b08e0c
      Jani Nikula authored
      The latter isn't special to rst.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      d4b08e0c
    • Jani Nikula's avatar
      kernel-doc: strip leading whitespace from continued param descs · b7886de4
      Jani Nikula authored
      If a param description spans multiple lines, check any leading
      whitespace in the first continuation line, and remove same amount of
      whitespace from following lines.
      
      This allows indentation in the multi-line parameter descriptions for
      aesthetical reasons while not causing accidentally significant
      indentation in the rst output.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      b7886de4
    • Jani Nikula's avatar
      kernel-doc: improve handling of whitespace on the first line param description · 0a726301
      Jani Nikula authored
      Handle whitespace on the first line of param text as if it was the empty
      string. There is no need to add the newline in this case. This improves
      the rst output in particular, where blank lines may be problematic in
      parameter lists.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      0a726301
    • Jani Nikula's avatar
      kernel-doc/rst: change the output layout · ecbcfba1
      Jani Nikula authored
      Move away from field lists, and simply use **strong emphasis** for
      section headings on lines of their own. Do not use rst section headings,
      because their nesting depth depends on the surrounding context, which
      kernel-doc has no knowledge of. Also, they do not need to end up in any
      table of contexts or indexes.
      
      There are two related immediate benefits. Field lists are typically
      rendered in two columns, while the new style uses the horizontal width
      better. With no extra indent on the left, there's no need to be as fussy
      about it. Field lists are more susceptible to indentation problems than
      the new style.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      ecbcfba1
    • Jani Nikula's avatar
      kernel-doc: strip leading blank lines from inline doc comments · 6450c895
      Jani Nikula authored
      The inline member markup allows whitespace lines before the actual
      documentation starts. Strip the leading blank lines. This improves the
      rst output.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      6450c895
    • Jani Nikula's avatar
      kernel-doc/rst: blank lines in output are not needed · 830066a7
      Jani Nikula authored
      Current approach leads to two blank lines, while one is enough.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      830066a7
    • Jani Nikula's avatar
      kernel-doc: fix wrong code indentation · a0b96c2d
      Jani Nikula authored
      No functional changes.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      a0b96c2d
    • Jani Nikula's avatar
      kernel-doc: do not regard $, %, or & prefixes as special in section names · 13901ef2
      Jani Nikula authored
      The use of these is confusing in the script, and per this grep, they're
      not used anywhere anyway:
      
      $ git grep " \* [%$&][a-zA-Z0-9_]*:" -- *.[ch] | grep -v "\$\(Id\|Revision\|Date\)"
      
      While at it, throw out the constants array, nothing is ever put there
      again.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      13901ef2
    • Jani Nikula's avatar
      kernel-doc/rst: highlight function/struct/enum purpose lines too · c099ff69
      Jani Nikula authored
      Let the user use @foo, &bar, %baz, etc. in the first kernel-doc purpose
      line too.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      c099ff69
    • Jani Nikula's avatar
      kernel-doc/rst: drop redundant unescape in highlighting · 9c9193c4
      Jani Nikula authored
      This bit is already done by xml_unescape() above.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      9c9193c4
    • Jani Nikula's avatar
      kernel-doc/rst: add support for struct/union/enum member references · f3341dcf
      Jani Nikula authored
      Link "&foo->bar", "&foo->bar()", "&foo.bar", and "&foo.bar()" to the
      struct/union/enum foo definition. The members themselves do not
      currently have anchors to link to, but this is better than nothing, and
      promotes a universal notation.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      f3341dcf
    • Jani Nikula's avatar
      kernel-doc/rst: add support for &union foo and &typedef foo references · 47ae7aed
      Jani Nikula authored
      Let the user use "&union foo" and "&typedef foo" to reference foo. The
      difference to using "union &foo", "typedef &foo", or just "&foo" (which
      are valid too) is that "union" and "typedef" become part of the link
      text.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      47ae7aed
    • Jani Nikula's avatar
      kernel-doc/rst: &foo references are more universal than structs · a7291e7e
      Jani Nikula authored
      It's possible to use &foo to reference structs, enums, typedefs, etc. in
      the Sphinx C domain. Thus do not prefix the links with "struct".
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      a7291e7e
    • Jani Nikula's avatar
      kernel-doc/rst: reference functions according to C domain spec · a19bce64
      Jani Nikula authored
      The Sphinx C domain spec says function references should include the
      parens ().
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      a19bce64
    • Jani Nikula's avatar
      kernel-doc/rst: do not output DOC: section titles for requested ones · 9e72184b
      Jani Nikula authored
      If the user requests a specific DOC: section by name, do not output its
      section title. In these cases, the surrounding context already has a
      heading, and the DOC: section title is only used as an identifier and a
      heading for clarity in the source file.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      9e72184b
    • Jani Nikula's avatar
      kernel-doc: add names for output selection · b6c3f456
      Jani Nikula authored
      Make the output selection a bit more readable by adding constants for
      the various types of output selection. While at it, actually call the
      variable for choosing what to output $output_selection.
      
      No functional changes.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      b6c3f456
    • Jani Nikula's avatar
      kernel-doc: add names for states and substates · 48af606a
      Jani Nikula authored
      Make the state machine a bit more readable by adding constants for
      parser states and inline member documentation parser substates. While at
      it, rename the "split" documentation to "inline" documentation.
      
      No functional changes.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      48af606a
    • Jani Nikula's avatar
      Documentation/sphinx: nicer referencing of struct in docbook->rst conversion · 30ca7aaf
      Jani Nikula authored
      Add "struct" in the label of the reference.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      30ca7aaf
    • Jani Nikula's avatar
      sphinx: update docbook->rst conversion script match C domain spec · 2e83ecb8
      Jani Nikula authored
      Function references should include the parens (), struct references
      should not include "struct".
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      2e83ecb8
    • Jonathan Corbet's avatar
      sphinx: cheesy script to convert .tmpl files · 89a66d76
      Jonathan Corbet authored
      This script uses pandoc to convert existing DocBook template files to RST
      templates.  A couple of sed scripts are need to massage things both before
      and after the conversion, but the result is then usable with no hand
      editing.
      
      [Jani: Change usage to tmplcvt <in> <out>. Fix escaping for docproc
      directives. Add support the new kernel-doc extension.]
      Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      89a66d76
    • Jani Nikula's avatar
      Documentation/sphinx: set version and release properly · c13ce448
      Jani Nikula authored
      Read the version and release from the top level Makefile (for use when
      Sphinx is invoked directly, by e.g. Read the Docs), but override them
      via Sphinx command line arguments in a normal documentation build.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      c13ce448
    • Jani Nikula's avatar
      Documentation/sphinx: configure the kernel-doc extension · 24dcdeb2
      Jani Nikula authored
      Tell Sphinx where to find the extension, and pass on the kernel src tree
      and kernel-doc paths to the extension.
      
      With this, any .rst files under Documentation may contain the kernel-doc
      rst directive to include kernel-doc documentation from any source file.
      
      While building, it may be handy to pass kernel-doc extension
      configuration on the command line. For example, 'make SPHINXOPTS="-D
      kerneldoc_verbosity=0" htmldocs' silences all stderr output from
      kernel-doc when the kernel-doc exit code is 0. (The stderr will be
      logged unconditionally when the exit code is non-zero.)
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      24dcdeb2
    • Jani Nikula's avatar
      Documentation/sphinx: add Sphinx kernel-doc directive extension · c56de1db
      Jani Nikula authored
      Add an extension to handle kernel-doc directives, to call kernel-doc
      according to the arguments and parameters given to the reStructuredText
      directive.
      
      The syntax for the kernel-doc directive is:
      
      .. kernel-doc:: FILENAME
         :export:
         :internal:
         :functions: FUNCTION [FUNCTION ...]
         :doc: SECTION TITLE
      
      Of the directive options export, internal, functions, and doc, currently
      only one option may be given at a time.
      
      The FILENAME is relative from the kernel source tree root.
      
      The extension notifies Sphinx about the document dependency on FILENAME,
      causing the document to be rebuilt when the file has been changed.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      c56de1db
    • Jani Nikula's avatar
      Documentation: add .gitignore · 81cd3181
      Jani Nikula authored
      The Sphinx output directory is generated.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      81cd3181
    • Jani Nikula's avatar
      Documentation/sphinx: add basic working Sphinx configuration and build · 22cba31b
      Jani Nikula authored
      Add basic configuration and makefile to build documentation from any
      .rst files under Documentation using Sphinx. For starters, there's just
      the placeholder index.rst.
      
      At the top level Makefile, hook Sphinx documentation targets alongside
      (but independent of) the DocBook toolchain, having both be run on the
      various 'make *docs' targets.
      
      All Sphinx processing is placed into Documentation/Makefile.sphinx. Both
      that and the Documentation/DocBook/Makefile are now expected to handle
      all the documentation targets, explicitly ignoring them if they're not
      relevant for that particular toolchain. The changes to the existing
      DocBook Makefile are kept minimal.
      
      There is graceful handling of missing Sphinx and rst2pdf (which is
      needed for pdf output) by checking for the tool and python module,
      respectively, with informative messages to the user.
      
      If the Read the Docs theme (sphinx_rtd_theme) is available, use it, but
      otherwise gracefully fall back to the Sphinx default theme, with an
      informative message to the user, and slightly less pretty HTML output.
      
      Sphinx can now handle htmldocs, pdfdocs (if rst2pdf is available),
      epubdocs and xmldocs targets. The output documents are written into per
      output type subdirectories under Documentation/output.
      
      Finally, you can pass options to sphinx-build using the SPHINXBUILD make
      variable. For example, 'make SPHINXOPTS=-v htmldocs' for more verbose
      output from Sphinx.
      
      This is based on the original work by Jonathan Corbet, but he probably
      wouldn't recognize this as his own anymore.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      22cba31b
    • Jani Nikula's avatar
      kernel-doc: support printing exported and non-exported symbols · 86ae2e38
      Jani Nikula authored
      Currently we use docproc to figure out which symbols are exported, and
      then docproc calls kernel-doc on specific functions, to get
      documentation on exported functions. According to git blame and docproc
      comments, this is due to historical reasons, as functions and their
      corresponding EXPORT_SYMBOL* may have been in different files. However
      for more than ten years the recommendation in CodingStyle has been to
      place the EXPORT_SYMBOL* immediately after the closing function brace
      line.
      
      Additionally, the kernel-doc comments for functions are generally placed
      above the function definition in the .c files (i.e. where the
      EXPORT_SYMBOL* is) rather than above the declaration in the .h
      files. There are some exceptions to this, but AFAICT none of these are
      included in DocBook documentation using the "!E" docproc directive.
      
      Therefore, assuming the EXPORT_SYMBOL* and kernel-doc are with the
      function definition, kernel-doc can extract the exported vs. not
      information by making two passes on the input file. Add support for that
      via the new -export and -internal parameters.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      86ae2e38
    • Jani Nikula's avatar
      kernel-doc/rst: fix use of uninitialized value · 5e64fa9c
      Jani Nikula authored
      I'm not quite sure why the errors below are happening, but this fixes
      them.
      
      Use of uninitialized value in string ne at ./scripts/kernel-doc line 1819, <IN> line 6494.
      Use of uninitialized value $_[0] in join or string at ./scripts/kernel-doc line 1759, <IN> line 6494.
      Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
      5e64fa9c
  2. 29 May, 2016 3 commits
  3. 28 May, 2016 7 commits
    • Mikulas Patocka's avatar
      hpfs: implement the show_options method · 037369b8
      Mikulas Patocka authored
      The HPFS filesystem used generic_show_options to produce string that is
      displayed in /proc/mounts.  However, there is a problem that the options
      may disappear after remount.  If we mount the filesystem with option1
      and then remount it with option2, /proc/mounts should show both option1
      and option2, however it only shows option2 because the whole option
      string is replaced with replace_mount_options in hpfs_remount_fs.
      
      To fix this bug, implement the hpfs_show_options function that prints
      options that are currently selected.
      Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      037369b8
    • Mikulas Patocka's avatar
      affs: fix remount failure when there are no options changed · 01d6e087
      Mikulas Patocka authored
      Commit c8f33d0b ("affs: kstrdup() memory handling") checks if the
      kstrdup function returns NULL due to out-of-memory condition.
      
      However, if we are remounting a filesystem with no change to
      filesystem-specific options, the parameter data is NULL.  In this case,
      kstrdup returns NULL (because it was passed NULL parameter), although no
      out of memory condition exists.  The mount syscall then fails with
      ENOMEM.
      
      This patch fixes the bug.  We fail with ENOMEM only if data is non-NULL.
      
      The patch also changes the call to replace_mount_options - if we didn't
      pass any filesystem-specific options, we don't call
      replace_mount_options (thus we don't erase existing reported options).
      
      Fixes: c8f33d0b ("affs: kstrdup() memory handling")
      Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
      Cc: stable@vger.kernel.org	# v4.1+
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      01d6e087
    • Mikulas Patocka's avatar
      hpfs: fix remount failure when there are no options changed · 44d51706
      Mikulas Patocka authored
      Commit ce657611 ("hpfs: kstrdup() out of memory handling") checks if
      the kstrdup function returns NULL due to out-of-memory condition.
      
      However, if we are remounting a filesystem with no change to
      filesystem-specific options, the parameter data is NULL.  In this case,
      kstrdup returns NULL (because it was passed NULL parameter), although no
      out of memory condition exists.  The mount syscall then fails with
      ENOMEM.
      
      This patch fixes the bug.  We fail with ENOMEM only if data is non-NULL.
      
      The patch also changes the call to replace_mount_options - if we didn't
      pass any filesystem-specific options, we don't call
      replace_mount_options (thus we don't erase existing reported options).
      
      Fixes: ce657611 ("hpfs: kstrdup() out of memory handling")
      Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      44d51706
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · 4029632c
      Linus Torvalds authored
      Pull more MIPS updates from Ralf Baechle:
       "This is the secondnd batch of MIPS patches for 4.7. Summary:
      
        CPS:
         - Copy EVA configuration when starting secondary VPs.
      
        EIC:
         - Clear Status IPL.
      
        Lasat:
         - Fix a few off by one bugs.
      
        lib:
         - Mark intrinsics notrace.  Not only are the intrinsics
           uninteresting, it would cause infinite recursion.
      
        MAINTAINERS:
         - Add file patterns for MIPS BRCM device tree bindings.
         - Add file patterns for mips device tree bindings.
      
        MT7628:
         - Fix MT7628 pinmux typos.
         - wled_an pinmux gpio.
         - EPHY LEDs pinmux support.
      
        Pistachio:
         - Enable KASLR
      
        VDSO:
         - Build microMIPS VDSO for microMIPS kernels.
         - Fix aliasing warning by building with `-fno-strict-aliasing' for
           debugging but also tracing them might result in recursion.
      
        Misc:
         - Add missing FROZEN hotplug notifier transitions.
         - Fix clk binding example for varioius PIC32 devices.
         - Fix cpu interrupt controller node-names in the DT files.
         - Fix XPA CPU feature separation.
         - Fix write_gc0_* macros when writing zero.
         - Add inline asm encoding helpers.
         - Add missing VZ accessor microMIPS encodings.
         - Fix little endian microMIPS MSA encodings.
         - Add 64-bit HTW fields and fix its configuration.
         - Fix sigreturn via VDSO on microMIPS kernel.
         - Lots of typo fixes.
         - Add definitions of SegCtl registers and use them"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (49 commits)
        MIPS: Add missing FROZEN hotplug notifier transitions
        MIPS: Build microMIPS VDSO for microMIPS kernels
        MIPS: Fix sigreturn via VDSO on microMIPS kernel
        MIPS: devicetree: fix cpu interrupt controller node-names
        MIPS: VDSO: Build with `-fno-strict-aliasing'
        MIPS: Pistachio: Enable KASLR
        MIPS: lib: Mark intrinsics notrace
        MIPS: Fix 64-bit HTW configuration
        MIPS: Add 64-bit HTW fields
        MAINTAINERS: Add file patterns for mips device tree bindings
        MAINTAINERS: Add file patterns for mips brcm device tree bindings
        MIPS: Simplify DSP instruction encoding macros
        MIPS: Add missing tlbinvf/XPA microMIPS encodings
        MIPS: Fix little endian microMIPS MSA encodings
        MIPS: Add missing VZ accessor microMIPS encodings
        MIPS: Add inline asm encoding helpers
        MIPS: Spelling fix lets -> let's
        MIPS: VR41xx: Fix typo
        MIPS: oprofile: Fix typo
        MIPS: math-emu: Fix typo
        ...
      4029632c
    • Guenter Roeck's avatar
      fs: fix binfmt_aout.c build error · d66492bc
      Guenter Roeck authored
      Various builds (such as i386:allmodconfig) fail with
      
        fs/binfmt_aout.c:133:2: error: expected identifier or '(' before 'return'
        fs/binfmt_aout.c:134:1: error: expected identifier or '(' before '}' token
      
      [ Oops. My bad, I had stupidly thought that "allmodconfig" covered this
        on x86-64 too, but it obviously doesn't.  Egg on my face.  - Linus ]
      
      Fixes: 5d22fc25 ("mm: remove more IS_ERR_VALUE abuses")
      Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d66492bc
    • Linus Torvalds's avatar
      Merge branch 'hash' of git://ftp.sciencehorizons.net/linux · 7e0fb73c
      Linus Torvalds authored
      Pull string hash improvements from George Spelvin:
       "This series does several related things:
      
         - Makes the dcache hash (fs/namei.c) useful for general kernel use.
      
           (Thanks to Bruce for noticing the zero-length corner case)
      
         - Converts the string hashes in <linux/sunrpc/svcauth.h> to use the
           above.
      
         - Avoids 64-bit multiplies in hash_64() on 32-bit platforms.  Two
           32-bit multiplies will do well enough.
      
         - Rids the world of the bad hash multipliers in hash_32.
      
           This finishes the job started in commit 689de1d6 ("Minimal
           fix-up of bad hashing behavior of hash_64()")
      
           The vast majority of Linux architectures have hardware support for
           32x32-bit multiply and so derive no benefit from "simplified"
           multipliers.
      
           The few processors that do not (68000, h8/300 and some models of
           Microblaze) have arch-specific implementations added.  Those
           patches are last in the series.
      
         - Overhauls the dcache hash mixing.
      
           The patch in commit 0fed3ac8 ("namei: Improve hash mixing if
           CONFIG_DCACHE_WORD_ACCESS") was an off-the-cuff suggestion.
           Replaced with a much more careful design that's simultaneously
           faster and better.  (My own invention, as there was noting suitable
           in the literature I could find.  Comments welcome!)
      
         - Modify the hash_name() loop to skip the initial HASH_MIX().  This
           would let us salt the hash if we ever wanted to.
      
         - Sort out partial_name_hash().
      
           The hash function is declared as using a long state, even though
           it's truncated to 32 bits at the end and the extra internal state
           contributes nothing to the result.  And some callers do odd things:
      
            - fs/hfs/string.c only allocates 32 bits of state
            - fs/hfsplus/unicode.c uses it to hash 16-bit unicode symbols not bytes
      
         - Modify bytemask_from_count to handle inputs of 1..sizeof(long)
           rather than 0..sizeof(long)-1.  This would simplify users other
           than full_name_hash"
      
        Special thanks to Bruce Fields for testing and finding bugs in v1.  (I
        learned some humbling lessons about "obviously correct" code.)
      
        On the arch-specific front, the m68k assembly has been tested in a
        standalone test harness, I've been in contact with the Microblaze
        maintainers who mostly don't care, as the hardware multiplier is never
        omitted in real-world applications, and I haven't heard anything from
        the H8/300 world"
      
      * 'hash' of git://ftp.sciencehorizons.net/linux:
        h8300: Add <asm/hash.h>
        microblaze: Add <asm/hash.h>
        m68k: Add <asm/hash.h>
        <linux/hash.h>: Add support for architecture-specific functions
        fs/namei.c: Improve dcache hash function
        Eliminate bad hash multipliers from hash_32() and  hash_64()
        Change hash_64() return value to 32 bits
        <linux/sunrpc/svcauth.h>: Define hash_str() in terms of hashlen_string()
        fs/namei.c: Add hashlen_string() function
        Pull out string hash to <linux/stringhash.h>
      7e0fb73c
    • George Spelvin's avatar
      h8300: Add <asm/hash.h> · 4684fe95
      George Spelvin authored
      This will improve the performance of hash_32() and hash_64(), but due
      to complete lack of multi-bit shift instructions on H8, performance will
      still be bad in surrounding code.
      
      Designing H8-specific hash algorithms to work around that is a separate
      project.  (But if the maintainers would like to get in touch...)
      Signed-off-by: default avatarGeorge Spelvin <linux@sciencehorizons.net>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Cc: uclinux-h8-devel@lists.sourceforge.jp
      4684fe95