OpenCloudOS-Kernel/arch/microblaze/include/asm
Linus Torvalds 7e0fb73c52 Merge branch 'hash' of git://ftp.sciencehorizons.net/linux
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 689de1d6ca ("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 0fed3ac866 ("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>
2016-05-28 16:15:25 -07:00
..
Kbuild Merge branch 'strscpy' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile 2015-10-04 16:31:13 +01:00
asm-compat.h microblaze: Copy ppc asm-compat.h for clean handling of constants in asm and C 2009-09-22 10:10:06 +02:00
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
atomic.h atomic: implement generic atomic_dec_if_positive() 2012-10-09 16:22:46 +09:00
bitops.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
bug.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
bugs.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
cache.h microblaze: Define correct L1_CACHE_SHIFT value 2010-05-06 11:21:59 +02:00
cacheflush.h microblaze: Use static inline functions in cacheflush.h 2013-06-03 11:33:23 +02:00
checksum.h ipv4: Update parameters for csum_tcpudp_magic to their original types 2016-03-13 23:55:13 -04:00
cmpxchg.h microblaze: Add missing headers caused by disintegration asm/system.h 2012-03-30 12:11:46 +02:00
cpuinfo.h microblaze: Add support for CCF 2014-01-27 11:24:55 +01:00
cputable.h microblaze: Fix problem with removing zero length files 2009-04-14 10:37:09 +02:00
current.h microblaze_mmu_v2: Add CURRENT_TASK for entry.S 2009-05-26 16:45:19 +02:00
delay.h microblaze: Change extern inline to static inline 2015-01-05 12:36:44 +01:00
div64.h microblaze_v8: headers simple files - empty or redirect to asm-generic 2009-03-27 14:25:41 +01:00
dma-mapping.h dma-mapping: always provide the dma_map_ops based implementation 2016-01-20 17:09:18 -08:00
dma.h microblaze: Add isa_dma_bridge_buggy to dma.h 2010-05-06 11:21:58 +02:00
elf.h UAPI: (Scripted) Disintegrate arch/microblaze/include/asm 2012-12-13 14:38:55 +01:00
emergency-restart.h microblaze_v8: headers simple files - empty or redirect to asm-generic 2009-03-27 14:25:41 +01:00
entry.h arch/microblaze/include/asm/entry.h: Include "linux/linkage.h" to avoid compiling issue 2014-09-09 13:10:20 +02:00
exceptions.h microblaze: Fix sparse warning - fault.c 2011-03-09 08:09:59 +01:00
fb.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
fixmap.h microblaze: use generic fixmap.h 2014-01-23 16:36:54 -08:00
flat.h microblaze: remove unused flat_stack_align() definition 2009-06-02 07:54:36 +02:00
ftrace.h ftrace: Format MCOUNT_ADDR address as type unsigned long 2015-07-20 22:30:53 -04:00
futex.h microblaze: Reversed logic in futex cmpxchg 2013-05-27 12:29:35 +02:00
hardirq.h irq_domain/microblaze: Convert microblaze to use irq_domains 2012-02-16 06:11:24 -07:00
hash.h microblaze: Add <asm/hash.h> 2016-05-28 15:48:58 -04:00
highmem.h kmap_atomic_to_page() has no users, remove it 2015-11-09 15:11:24 -08:00
hw_irq.h microblaze: Fix problem with removing zero length files 2009-04-14 10:37:09 +02:00
io.h video/fbdev, asm/io.h: Remove ioremap_writethrough() 2015-06-07 15:28:57 +02:00
irq.h irq_domain/microblaze: Convert microblaze to use irq_domains 2012-02-16 06:11:24 -07:00
irq_regs.h microblaze_v8: headers for irq 2009-03-27 14:25:35 +01:00
irqflags.h microblaze/irqs: Do not trace arch_local_{*,irq_*} functions 2011-07-25 09:07:45 +02:00
kdebug.h microblaze_v8: headers simple files - empty or redirect to asm-generic 2009-03-27 14:25:41 +01:00
kgdb.h microblaze: Declare microblaze_kgdb_break in header 2015-01-05 12:36:42 +01:00
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
linkage.h microblaze: Use empty asm-generic/linkage.h 2015-01-05 12:36:39 +01:00
local.h microblaze_v8: headers simple files - empty or redirect to asm-generic 2009-03-27 14:25:41 +01:00
local64.h arch: Implement local64_t 2010-06-09 11:12:36 +02:00
mmu.h microblaze: Handle TLB skip size dynamically 2012-03-23 09:28:19 +01:00
mmu_context.h UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers 2012-10-02 18:01:25 +01:00
mmu_context_mm.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
module.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
mutex.h microblaze_v8: headers simple files - empty or redirect to asm-generic 2009-03-27 14:25:41 +01:00
page.h mm/microblaze: clean up unused VALID_PAGE() 2013-07-03 16:07:40 -07:00
parport.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
pci-bridge.h microblaze/PCI: remove unused pci_flags 2012-02-23 20:18:57 -07:00
pci.h PCI: Move pci_dma_* helpers to common code 2016-03-07 10:40:02 -06:00
percpu.h microblaze_v8: headers simple files - empty or redirect to asm-generic 2009-03-27 14:25:41 +01:00
pgalloc.h microblaze: Change extern inline to static inline 2015-01-05 12:36:44 +01:00
pgtable.h mm: make FIRST_USER_ADDRESS unsigned long on all archs 2015-02-11 17:06:03 -08:00
processor.h exit_thread: remove empty bodies 2016-05-20 17:58:30 -07:00
prom.h of: remove HAVE_ARCH_DEVTREE_FIXUPS 2013-10-09 20:04:08 -05:00
ptrace.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal 2012-12-20 18:05:28 -08:00
pvr.h microblaze: Unprivileged stream instruction awareness 2011-07-25 09:13:42 +02:00
registers.h microblaze_mmu_v2: Update process creation for MMU 2009-05-26 16:45:18 +02:00
seccomp.h microblaze: use asm-generic for seccomp.h 2015-04-17 09:04:10 -04:00
sections.h microblaze: Remove duplicate declarations of _stext[] and _etext[] 2014-01-21 08:28:19 +01:00
serial.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
setup.h microblaze: Drop architecture-specific declaration of early_printk 2014-03-12 10:10:07 +01:00
shmparam.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
string.h microblaze: Guard __HAVE_ARCH macros with __KERNEL__ in string.h 2009-05-21 15:56:08 +02:00
switch_to.h Disintegrate asm/system.h for Microblaze 2012-03-28 18:30:02 +01:00
syscall.h microblaze: Use unsigned return type in do_syscall_trace_enter 2015-01-05 12:36:43 +01:00
thread_info.h microblaze: Remove signal translation and exec_domain 2015-04-12 20:58:25 +02:00
timex.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
tlb.h mmu_gather: move minimal range calculations into generic code 2014-11-17 10:12:42 +00:00
tlbflush.h microblaze: Fix TLB macros 2010-04-01 08:38:24 +02:00
topology.h of: Provide default of_node_to_nid() implementation. 2010-07-30 00:03:58 -06:00
uaccess.h mm/uaccess, mm/fault: Clarify that uaccess may only sleep if pagefaults are enabled 2015-05-19 08:39:14 +02:00
ucontext.h microblaze: fall back on generic header files for the ABI 2009-07-06 10:26:50 +02:00
unaligned.h microblaze: Fix unaligned.h for endians 2011-03-09 08:09:53 +01:00
unistd.h microblaze: Wire up userfaultfd, membarrier, mlock2 syscalls 2016-05-16 09:18:01 +02:00
unwind.h microblaze: Add stack unwinder 2010-08-04 10:22:35 +02:00
user.h microblaze: Fix problem with removing zero length files 2009-04-14 10:37:09 +02:00
vga.h microblaze: convert all simple headers to use asm-generic 2009-07-06 10:26:55 +02:00
xor.h microblaze_v8: headers simple files - empty or redirect to asm-generic 2009-03-27 14:25:41 +01:00