Commit Graph

37 Commits

Author SHA1 Message Date
Michal Simek
6a4770e335 Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into next 2012-03-30 12:10:03 +02:00
Michal Simek
ac64a9caa5 microblaze: Fix stack usage in PAGE_SIZE copy_tofrom_user
If access to user space failed we need to reconstruct
stack pointer and restore all register.

This patch fixed problem introduces by:
"microblaze: Add loop unrolling for PAGE in copy_tofrom_user"
(sha1: ebe211254b)

Signed-off-by: Michal Simek <monstr@monstr.eu>
2012-03-30 11:37:13 +02:00
David Howells
c40d04df15 Disintegrate asm/system.h for Microblaze
Disintegrate asm/system.h for Microblaze.  Not compiled.

Signed-off-by: David Howells <dhowells@redhat.com>
cc: microblaze-uclinux@itee.uq.edu.au
2012-03-28 18:30:02 +01:00
Michal Simek
eecb20720f microblaze: Add __cmpdi2
Some new kernel configurations require __cmpdi2 function.

Signed-off-by: Michal Simek <monstr@monstr.eu>
2012-01-05 08:22:01 +01:00
Michal Simek
cb5edfe3e5 microblaze: Use delay slot in __strnlen_user, __strncpy_user
Use delay slot to speedup if maxlen is zero.

Signed-off-by: Michal Simek <monstr@monstr.eu>
2011-10-14 12:24:34 +02:00
Michal Simek
c8ae8a8208 microblaze: Add __ucmpdi2() helper function
Add missing __ucmpdi2 helper function.

Error log:
kernel/built-in.o: In function `print_graph_duration':
: undefined reference to `__ucmpdi2'
kernel/built-in.o: In function `print_graph_duration':
: undefined reference to `__ucmpdi2'

Based on MIPS code.

Signed-off-by: Michal Simek <monstr@monstr.eu>
2011-10-14 12:24:32 +02:00
Michal Simek
ebe211254b microblaze: Add loop unrolling for PAGE in copy_tofrom_user
Increase performance by loop unrolling.

Signed-off-by: Michal Simek <monstr@monstr.eu>
2011-10-14 12:24:26 +02:00
Michal Simek
782d491fc2 microblaze: Simplify logic for unaligned byte copying
Save jump instruction for unaligned byte copying.

Signed-off-by: Michal Simek <monstr@monstr.eu>
2011-10-14 12:24:25 +02:00
Michal Simek
c83858b3e6 microblaze: Change label names - copy_tofrom_user
Change label name to be prepared for loop unrolling.

Signed-off-by: Michal Simek <monstr@monstr.eu>
2011-10-14 12:24:22 +02:00
Michal Simek
eedac7914d microblaze: Separate fixup section definition
Move fixups below appropriate code.

Signed-off-by: Michal Simek <monstr@monstr.eu>
2011-10-14 12:24:22 +02:00
Michal Simek
9b133f8d87 microblaze: Change label name in copy_tofrom_user
Use label 0: for zero length copying and fixups.

Signed-off-by: Michal Simek <monstr@monstr.eu>
2011-10-14 12:24:21 +02:00
Linus Torvalds
42933bac11 Merge branch 'for-linus2' of git://git.profusion.mobi/users/lucas/linux-2.6
* 'for-linus2' of git://git.profusion.mobi/users/lucas/linux-2.6:
  Fix common misspellings
2011-04-07 11:14:49 -07:00
Michal Simek
9e1491de51 microblaze: Fix ftrace
- Do not trace idle loop which takes a lot time
- Fix cache handling in generic ftrace code
- Do not trace lib functions ashldi3, ashrdi3, lshrdi3
  Functions are called from generic ftrace code which
  can't be traced

Signed-off-by: Michal Simek <monstr@monstr.eu>
2011-04-01 09:34:51 +02:00
Lucas De Marchi
25985edced Fix common misspellings
Fixes generated by 'codespell' and manually reviewed.

Signed-off-by: Lucas De Marchi <lucas.demarchi@profusion.mobi>
2011-03-31 11:26:23 -03:00
Michal Simek
d50c3036fa microblaze: Add missing export symbols for lib functions
Adding missing export symbols for loadable modules.

Signed-off-by: Michal Simek <monstr@monstr.eu>
2011-03-09 08:09:59 +01:00
Michal Simek
de93c3c119 microblaze: Fix ASM optimized code for LE
Microblaze little-endian doesn't support ASM optimized library
functions(memcpy/memmove). Kconfig doens't contain
any information about endian that's why it is necessary to
check it in the source code.
The code is used with barrel shifter is used.

Signed-off-by: Michal Simek <monstr@monstr.eu>
2011-01-28 14:05:13 +01:00
Michal Simek
3370d82f3b microblaze: Fix __muldi3 function for little-endian.
__muldi3 was written for big endian platforms.
Code contained half word read/write instructions which
are not compatible with little endian cpu.
Asm __muldi3 implementation is replaced by C version.

Signed-off-by: Michal Simek <monstr@monstr.eu>
2011-01-03 10:30:31 +01:00
Joe Perches
473ff6609c arch/microblaze: Remove unnecessary semicolons
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Michal Simek <monstr@monstr.eu>
2010-11-15 07:37:01 +01:00
Michal Simek
1180b28ca8 microblaze: Support C optimized lib functions for little-endian
Optimized C library functions can rapidly speedup the kernel.
memset doesn't need to be optimized because there is no difference
in behavior on little/big endian cpu.

Signed-off-by: Michal Simek <monstr@monstr.eu>
2010-10-21 15:52:02 +10:00
Michal Simek
93e2e85139 microblaze: Separate library optimized functions
memcpy/memmove/memset

Signed-off-by: Michal Simek <monstr@monstr.eu>
2010-10-21 15:52:01 +10:00
Michal Simek
4e07dba7cb microblaze: Add libgcc function directly to kernel
Replaced libgcc functions with asm optimized implementation.

Signed-off-by: Michal Simek <monstr@monstr.eu>
2010-10-21 15:51:42 +10:00
Michal Simek
ca3865bae5 microblaze: Support word copying in copy_tofrom_user
Word copying is used only for aligned addresses.
Here is space for improving to use any better copying technique.
Look at memcpy implementation.

Signed-off-by: Michal Simek <monstr@monstr.eu>
2010-04-01 08:38:25 +02:00
Michal Simek
78ebfa884b microblaze: Adding likely macros
On the base on GCOV analytics is helpful to add likely/unlikely
macros.

Signed-off-by: Michal Simek <monstr@monstr.eu>
2010-04-01 08:38:24 +02:00
Michal Simek
13851966da microblaze: Add .type and .size to ASM functions
Cachegrind analysis need this fix to be able to log asm functions.

Signed-off-by: Michal Simek <monstr@monstr.eu>
2010-04-01 08:38:24 +02:00
Michal Simek
94804a9b3d microblaze: uaccess: Unify __copy_tofrom_user
Move to generic location.

Signed-off-by: Michal Simek <monstr@monstr.eu>
2010-04-01 08:38:22 +02:00
Michal Simek
cca79120c2 microblaze: uaccess: Move functions to generic location
noMMU and MMU use them.

Signed-off-by: Michal Simek <monstr@monstr.eu>
2010-04-01 08:38:22 +02:00
John Williams
95dfbbe470 microblaze: Simple __copy_tofrom_user for noMMU
This is first patch which clear part of uaccess.h.
uaccess.h will be clear later.

Signed-off-by: John Williams <john.williams@petalogix.com>
Signed-off-by: Michal Simek <monstr@monstr.eu>
2009-12-14 08:45:03 +01:00
André Goddard Rosa
af901ca181 tree-wide: fix assorted typos all over the place
That is "success", "unknown", "through", "performance", "[re|un]mapping"
, "access", "default", "reasonable", "[con]currently", "temperature"
, "channel", "[un]used", "application", "example","hierarchy", "therefore"
, "[over|under]flow", "contiguous", "threshold", "enough" and others.

Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2009-12-04 15:39:55 +01:00
Remis Lima Baima
14f8738976 microblaze: use the generic lib/checksum.c
The microblaze checksum code is mostly identical to
the asm-generic+lib version, so use that instead.

Signed-off-by: Remis Lima Baima <remis.developer@googlemail.com>
Signed-off-by: Michal Simek <monstr@monstr.eu>
2009-07-06 10:26:52 +02:00
Michal Simek
4b2368ffd6 microblaze_mmu_v2: Makefiles
Signed-off-by: Michal Simek <monstr@monstr.eu>
2009-05-26 16:45:24 +02:00
Michal Simek
0d6de95326 microblaze_mmu_v2: uaccess MMU update
Signed-off-by: Michal Simek <monstr@monstr.eu>
2009-05-26 16:45:20 +02:00
Arnd Bergmann
732703af9c microblaze: clean up checksum.c
This changes the function prototypes in the checksum code
to have the usual prototypes, typically by turning int
arguments into __wsum.

Also change csum_partial_copy_from_user() to operate
on the right address space and export ip_fast_csum,
which is used in modular networking code.

The new version is now sparse-clean including endianess
checks.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Michal Simek <monstr@monstr.eu>
2009-05-21 15:56:07 +02:00
Arnd Bergmann
122eec2f02 microblaze: remove cacheable_memcpy
This function is neither declared nor used anywhere
outside of ppc32, so remove it from microblaze.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Michal Simek <monstr@monstr.eu>
2009-05-21 15:56:05 +02:00
Michal Simek
5f8ffb5f66 microblaze_v8: Makefiles for Microblaze cpu
Reviewed-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Randy Dunlap <randy.dunlap@oracle.com>
Acked-by: John Linn <john.linn@xilinx.com>
Acked-by: Stephen Neuendorffer <stephen.neuendorffer@xilinx.com>
Acked-by: John Williams <john.williams@petalogix.com>
Signed-off-by: Michal Simek <monstr@monstr.eu>
2009-03-27 14:25:51 +01:00
Michal Simek
2660663ff2 microblaze_v8: uaccess files
Reviewed-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Stephen Neuendorffer <stephen.neuendorffer@xilinx.com>
Acked-by: John Linn <john.linn@xilinx.com>
Acked-by: John Williams <john.williams@petalogix.com>
Signed-off-by: Michal Simek <monstr@monstr.eu>
2009-03-27 14:25:23 +01:00
Michal Simek
f11e044b44 microblaze_v8: checksum support
Reviewed-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Stephen Neuendorffer <stephen.neuendorffer@xilinx.com>
Acked-by: John Linn <john.linn@xilinx.com>
Acked-by: John Williams <john.williams@petalogix.com>
Signed-off-by: Michal Simek <monstr@monstr.eu>
2009-03-27 14:25:22 +01:00
Michal Simek
322ae8eb91 microblaze_v8: supported function for memory - kernel/lib
Reviewed-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Stephen Neuendorffer <stephen.neuendorffer@xilinx.com>
Acked-by: John Linn <john.linn@xilinx.com>
Acked-by: John Williams <john.williams@petalogix.com>
Signed-off-by: Michal Simek <monstr@monstr.eu>
2009-03-27 14:25:21 +01:00