linux/arch/alpha/kernel
Michael Cree f2db633d30 alpha: Use new generic strncpy_from_user() and strnlen_user()
Similar to x86/sparc/powerpc implementations except:
1) we implement an extremely efficient has_zero()/find_zero()
   sequence with both prep_zero_mask() and create_zero_mask()
   no-operations.
2) Our output from prep_zero_mask() differs in that only the
   lowest eight bits are used to represent the zero bytes
   nevertheless it can be safely ORed with other similar masks
   from prep_zero_mask() and forms input to create_zero_mask(),
   the two fundamental properties prep_zero_mask() must satisfy.

Tests on EV67 and EV68 CPUs revealed that the generic code is
essentially as fast (to within 0.5% of CPU cycles) of the old
Alpha specific code for large quadword-aligned strings, despite
the 30% extra CPU instructions executed.  In contrast, the
generic code for unaligned strings is substantially slower (by
more than a factor of 3) than the old Alpha specific code.

Signed-off-by: Michael Cree <mcree@orcon.net.nz>
Acked-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-08-19 08:41:18 -07:00
..
.gitignore alpha: .gitignore vmlinux.lds 2009-01-15 16:39:40 -08:00
alpha_ksyms.c alpha: Use new generic strncpy_from_user() and strnlen_user() 2012-08-19 08:41:18 -07:00
asm-offsets.c CRED: Separate task security context from task_struct 2008-11-14 10:39:16 +11:00
binfmt_loader.c __register_binfmt() made void 2012-03-20 21:29:46 -04:00
console.c ALPHA: support graphics on non-zero PCI domains 2007-06-01 08:18:29 -07:00
core_apecs.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
core_cia.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
core_irongate.c alpha: Add export.h for THIS_MODULE/EXPORT_SYMBOL 2011-10-31 19:31:03 -04:00
core_lca.c Fix common misspellings 2011-03-31 11:26:23 -03:00
core_marvel.c arch/alpha/kernel: Add kmalloc NULL tests 2009-11-30 15:38:19 -05:00
core_mcpcia.c alpha: Remove set but unused variables. 2011-04-17 14:41:30 -07:00
core_polaris.c [PATCH] alpha pt_regs cleanups: machine_check() 2006-10-08 12:32:36 -07:00
core_t2.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
core_titan.c arch/alpha/kernel: Add kmalloc NULL tests 2009-11-30 15:38:19 -05:00
core_tsunami.c alpha: include module.h to fix modpost on Tsunami 2012-05-02 15:54:06 -04:00
core_wildfire.c [PATCH] alpha pt_regs cleanups: machine_check() 2006-10-08 12:32:36 -07:00
entry.S alpha: switch osf_sigprocmask() to use of sigprocmask() 2010-09-27 12:19:53 -07:00
err_common.c PCI: Cleanup the includes of <linux/pci.h> 2007-05-02 19:02:35 -07:00
err_ev6.c alpha: Use static const char * const where possible 2010-09-18 23:06:17 -04:00
err_ev7.c alpha: titan and marvel build fixes 2009-05-02 15:36:10 -07:00
err_impl.h Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
err_marvel.c Fix common misspellings 2011-03-31 11:26:23 -03:00
err_titan.c alpha: Remove set but unused variables. 2011-04-17 14:41:30 -07:00
es1888.c
gct.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
head.S Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
io.c
irq_alpha.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
irq_i8259.c alpha: Convert to new irq function names 2011-03-29 14:47:58 +02:00
irq_impl.h alpha: i8259, alcor, jensen wildfire: Convert irq_chip 2011-03-02 14:57:55 -05:00
irq_pyxis.c alpha: Convert to new irq function names 2011-03-29 14:47:58 +02:00
irq_srm.c alpha: Convert to new irq function names 2011-03-29 14:47:58 +02:00
irq.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
machvec_impl.h alpha: use single HAE window on T2 core logic (gamma, sable) 2010-10-26 16:52:12 -07:00
Makefile alpha: Use generic init_task 2012-05-05 13:00:21 +02:00
module.c modules: make arch's use default loader hooks 2011-07-24 22:06:04 +09:30
osf_sys.c alpha: implement various OSF/1 stat syscalls 2012-05-24 14:27:57 -04:00
pc873xx.c alpha: Detect Super IO chip, no IDE on Avanti, enable EPP19 2010-06-15 14:19:08 -04:00
pc873xx.h alpha: Detect Super IO chip, no IDE on Avanti, enable EPP19 2010-06-15 14:19:08 -04:00
pci_impl.h alpha/PCI: replace pci_probe_only with pci_flags 2012-02-23 20:18:56 -07:00
pci_iommu.c Merge branch 'master' into for-next 2012-04-08 21:48:52 +02:00
pci-noop.c Alpha: adapt for dma_map_ops changes 2012-03-28 16:36:36 +02:00
pci-sysfs.c alpha: fix implicit stat.h usage in pci-sysfs.c 2011-10-31 19:31:02 -04:00
pci.c Merge branch 'pci/myron-pcibios_setup' into next 2012-07-05 15:31:05 -06:00
perf_event.c perf: Pass last sampling period to perf_sample_data_init() 2012-05-09 15:23:12 +02:00
process.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
proto.h Fix call to replaced SuperIO functions 2010-08-31 22:45:31 -04:00
ptrace.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
setup.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
signal.c new helper: signal_delivered() 2012-06-01 12:58:52 -04:00
smc37c93x.c alpha: Remove set but unused variables. 2011-04-17 14:41:30 -07:00
smc37c669.c alpha: remove mysterious if zero-ed out includes 2012-07-30 17:25:11 -07:00
smp.c alpha: Use generic idle thread allocation 2012-04-26 12:06:12 +02:00
srm_env.c doc: fix broken references 2011-09-27 18:08:04 +02:00
srmcons.c TTY: srmcons, convert to use tty_port 2012-03-08 11:42:21 -08:00
sys_alcor.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
sys_cabriolet.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
sys_dp264.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
sys_eb64p.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
sys_eiger.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
sys_jensen.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
sys_marvel.c alpha: silence 'const' warning in sys_marvel.c 2012-05-02 15:54:06 -04:00
sys_miata.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
sys_mikasa.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
sys_nautilus.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
sys_noritake.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
sys_rawhide.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
sys_ruffian.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
sys_rx164.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
sys_sable.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
sys_sio.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
sys_sx164.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
sys_takara.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
sys_titan.c Disintegrate and delete asm/system.h 2012-03-28 15:58:21 -07:00
sys_wildfire.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
systbls.S alpha: Wire up cross memory attach syscalls 2012-08-19 08:41:18 -07:00
time.c Merge branch 'timers-cleanup-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2011-07-22 16:51:56 -07:00
traps.c Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00
vmlinux.lds.S Disintegrate asm/system.h for Alpha 2012-03-28 18:11:12 +01:00