linux/arch/arm
Will Deacon 8c56cc8be5 ARM: 7449/1: use generic strnlen_user and strncpy_from_user functions
This patch implements the word-at-a-time interface for ARM using the
same algorithm as x86. We use the fls macro from ARMv5 onwards, where
we have a clz instruction available which saves us a mov instruction
when targetting Thumb-2. For older CPUs, we use the magic 0x0ff0001
constant. Big-endian configurations make use of the implementation from
asm-generic.

With this implemented, we can replace our byte-at-a-time strnlen_user
and strncpy_from_user functions with the optimised generic versions.

Reviewed-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-07-09 17:41:11 +01:00
..
boot ARM: 7437/1: zImage: Allow DTB command line concatenation with ATAG_CMDLINE 2012-07-09 17:39:39 +01:00
common Merge branch 'for-linus' of git://git.linaro.org/people/mszyprowski/linux-dma-mapping 2012-05-25 09:18:59 -07:00
configs ARM: ux500: Provide regulator support for SMSC911x via Device Tree 2012-06-01 02:04:46 +02:00
include/asm ARM: 7449/1: use generic strnlen_user and strncpy_from_user functions 2012-07-09 17:41:11 +01:00
kernel ARM: 7449/1: use generic strnlen_user and strncpy_from_user functions 2012-07-09 17:41:11 +01:00
lib ARM: 7449/1: use generic strnlen_user and strncpy_from_user functions 2012-07-09 17:41:11 +01:00
mach-at91 Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2012-05-25 09:31:59 -07:00
mach-bcmring
mach-clps711x ARM: clps711x: Cleanup IRQ handling 2012-05-15 21:20:59 +02:00
mach-cns3xxx ARM: PCI: provide a default bus scan implementation 2012-05-13 17:12:17 +01:00
mach-davinci arm-soc: sweeping late_initcall cleanup 2012-05-26 13:14:01 -07:00
mach-dove arm-soc: clock driver changes 2012-05-26 12:42:29 -07:00
mach-ebsa110
mach-ep93xx - More robust parsing especially of xattr data in JFFS2 2012-06-01 16:55:42 -07:00
mach-exynos fbdev updates for 3.5 2012-06-01 16:57:51 -07:00
mach-footbridge ARM: PCI: provide a default bus scan implementation 2012-05-13 17:12:17 +01:00
mach-gemini
mach-h720x
mach-highbank
mach-imx - More robust parsing especially of xattr data in JFFS2 2012-06-01 16:55:42 -07:00
mach-integrator Merge branches 'amba', 'devel-stable', 'fixes', 'mach-types', 'mmci', 'pci' and 'versatile' into for-linus 2012-05-21 15:15:10 +01:00
mach-iop13xx ARM: PCI: get rid of pci_std_swizzle() 2012-05-13 17:12:16 +01:00
mach-iop32x ARM: PCI: provide a default bus scan implementation 2012-05-13 17:12:17 +01:00
mach-iop33x ARM: PCI: provide a default bus scan implementation 2012-05-13 17:12:17 +01:00
mach-ixp4xx - More robust parsing especially of xattr data in JFFS2 2012-06-01 16:55:42 -07:00
mach-kirkwood arm-soc: clock driver changes 2012-05-26 12:42:29 -07:00
mach-ks8695 ARM: PCI: provide a default bus scan implementation 2012-05-13 17:12:17 +01:00
mach-l7200/include/mach
mach-lpc32xx GPIO driver changes for v3.5 merge window 2012-05-24 14:01:46 -07:00
mach-mmp arm-soc: board specific changes 2012-05-22 13:32:53 -07:00
mach-msm ARM: MSM: use SGI0 to wake secondary CPUs 2012-07-09 17:39:36 +01:00
mach-mv78xx0 arm-soc: clock driver changes 2012-05-26 12:42:29 -07:00
mach-mxs arm-soc: device tree conversions, part 2 2012-05-26 12:57:47 -07:00
mach-netx
mach-nomadik - More robust parsing especially of xattr data in JFFS2 2012-06-01 16:55:42 -07:00
mach-omap1 - More robust parsing especially of xattr data in JFFS2 2012-06-01 16:55:42 -07:00
mach-omap2 ARM: OMAP: use SGI0 to wake secondary CPUs 2012-07-09 17:39:36 +01:00
mach-orion5x - More robust parsing especially of xattr data in JFFS2 2012-06-01 16:55:42 -07:00
mach-picoxcell
mach-pnx4008 arm-soc: sweeping late_initcall cleanup 2012-05-26 13:14:01 -07:00
mach-prima2 arm-soc: sweeping late_initcall cleanup 2012-05-26 13:14:01 -07:00
mach-pxa ARM: sa11x0/pxa: convert OS timer registers to IOMEM 2012-07-09 17:37:35 +01:00
mach-realview
mach-rpc
mach-s3c24xx fbdev updates for 3.5 2012-06-01 16:57:51 -07:00
mach-s3c64xx fbdev updates for 3.5 2012-06-01 16:57:51 -07:00
mach-s3c2410
mach-s3c2412
mach-s3c2440
mach-s5p64x0 fbdev updates for 3.5 2012-06-01 16:57:51 -07:00
mach-s5pc100 fbdev updates for 3.5 2012-06-01 16:57:51 -07:00
mach-s5pv210 fbdev updates for 3.5 2012-06-01 16:57:51 -07:00
mach-sa1100 ARM: sa11x0/pxa: convert OS timer registers to IOMEM 2012-07-09 17:37:35 +01:00
mach-shark ARM: PCI: provide a default bus scan implementation 2012-05-13 17:12:17 +01:00
mach-shmobile arm-soc: sweeping late_initcall cleanup 2012-05-26 13:14:01 -07:00
mach-spear3xx arm-soc: soc-specific pinctrl changes 2012-05-22 09:39:42 -07:00
mach-spear6xx arm-soc: clock driver changes 2012-05-26 12:42:29 -07:00
mach-spear13xx pinctrl: Add SPEAr13xx pinctrl drivers 2012-05-14 17:34:07 +02:00
mach-tegra arm-soc: sweeping late_initcall cleanup 2012-05-26 13:14:01 -07:00
mach-u300
mach-ux500 ARM: ux500: Allow PRCMU regulator to be probed during a DT enabled boot 2012-06-01 02:04:41 +02:00
mach-versatile Merge branches 'amba', 'devel-stable', 'fixes', 'mach-types', 'mmci', 'pci' and 'versatile' into for-linus 2012-05-21 15:15:10 +01:00
mach-vexpress Merge branch 'late/soc' into devel-late 2012-05-30 16:06:46 -07:00
mach-vt8500
mach-w90x900
mach-zynq
mm ARM: 7445/1: mm: update CONTEXTIDR register to contain PID of current process 2012-07-09 17:41:10 +01:00
net
nwfpe
oprofile ARM: 7448/1: perf: remove arm_perf_pmu_ids global enumeration 2012-07-09 17:41:10 +01:00
plat-iop ARM: PCI: provide a default bus scan implementation 2012-05-13 17:12:17 +01:00
plat-mxc arm-soc: sweeping late_initcall cleanup 2012-05-26 13:14:01 -07:00
plat-nomadik ARM: nomadik: enable PINCTRL_NOMADIK where needed 2012-05-15 14:42:57 +02:00
plat-omap - More robust parsing especially of xattr data in JFFS2 2012-06-01 16:55:42 -07:00
plat-orion arm-soc: clock driver changes 2012-05-26 12:42:29 -07:00
plat-pxa Input: pxa27x_keypad add choice to set direct_key_mask 2012-04-27 16:50:05 +08:00
plat-s3c24xx ARM: S3C24XX: move common clock init into common.c 2012-05-12 16:22:18 +09:00
plat-samsung fbdev updates for 3.5 2012-06-01 16:57:51 -07:00
plat-spear arm-soc: soc-specific pinctrl changes 2012-05-22 09:39:42 -07:00
plat-versatile ARM: Realview: use SGI0 to wake secondary CPUs 2012-07-09 17:39:36 +01:00
tools ARM: Update mach-types 2012-04-26 08:46:02 +01:00
vfp Merge branch 'misc' into for-linus 2012-05-21 15:15:24 +01:00
Kconfig ARM: 7449/1: use generic strnlen_user and strncpy_from_user functions 2012-07-09 17:41:11 +01:00
Kconfig-nommu
Kconfig.debug ARM: 7445/1: mm: update CONTEXTIDR register to contain PID of current process 2012-07-09 17:41:10 +01:00
Makefile ARM: 7420/1: Improve build environment isolation 2012-06-03 23:05:44 +01:00