ARC: ======= Importing ARC Linux 2.6.26 into Upstream 2.6.30 =======

-arc specific code copied from arc_linux_2.6.26 revision 80343
-include/asm-arc is copied at arch/arc/include/asm

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: Preliminary Changes to make 2.6.30 run on ARC

-not everything working yet

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: Supporting ARCAngel4 PCI Bridge

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: defconfig: Clean Up !

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: miscll fixes: nfs-root, caches-disabled, print-exception-info

-1. NFS root - still needs to be tested with 2.5.30
-2. Issue printing exception information
-3. Running with caches not present in the HW.

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: sync up #1 from arc_linux_2.6.26 into arc_linux_2.6.30

-r80344-82510

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: Lot more work still needed in 2.6.30

-Additional System calls in 2.6.30
-Fix for double interrupts in IDE Work around for the latency in IDE
-Fix for event logs regression.

-contributed by Rajeshwar Ranga

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: .gnu.linkonce.arcextmap.* ramblings

-Don't discard them from linker script, needed by debugger to display
 extension insns
-Modified modpost.c to suppress the warning on these sections.
-Also group the individual .gnu.linkonce sections into .arcextmap
 section for the debugger to display proper opcodes

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: Support for non exec stack

-contributed by Simon Spooner

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: miscll fixes: early-printk, restart-verbose

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: defconfig: Enabled Early-printk, non-exec-stack

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: miscll fixes: pgu-build-breakage, vfb-color-bit-len

-Build breakage in PGU
-virtual framebuffer driver to make sure that the color bit length
 is correctly passed back through the ioctl.

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: Bug 97842: Building 2.6.30 with IDE DMA switched off fails.

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: defconfig: Image sz reduction using LZMA for initramfs

-LZMA gives the best compression for kernel image
-Only 1 compression method needed: (GZ/BZIP2) removed

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: Metaware debugger specific hostlink driver (from 2.6.26)

-In conjunction with the Metware Debugger allows host access even with
 absolutely NO peripherals whatsoever

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: sync up #2 from arc_linux_2.6.26: Huge Optimisations Merge

Main Optimizations:
-------------------
-TLB Miss Handlers rewritten with 4 regs: 40/125 insn apiece (vs. 131/449)
 use of conditional insn, short insn where possible...
-Compile time support for ARC700 MMU v2 (vs. runtime for both v1/v2)
 [MMU v2 solves the TLB Thrashing in 2 way assoc TLB]
 The heuristics in TLB handler to mitigrate v1 centric thrashing can
 now be avoided - speeding the handlers further.
-uClibc assisted userland sigreturn stub (vs. kernel synthesized)
 avoid cache/TLB flush - LMB lat_sig catch 50usec to 38 usec @80 Mhz)
-Block copy_(to|from)_user in signal handling frame setup/teardown
 saves ~2k of code in just 2 functions. improves lat_sig further
-htonl optimised for ARC700 pipeline (5 insn vs 9 from generic "C" code)

Other Optimizations:
-------------------
-Atomic API no longer call spin_lock as we are still uni-processor
-Non Atomix API no longer disables interrupts
-ARC specific sections (.text|.data).arcfp to put in CCM
-Mutexes atomic exchange based (vs. generic Atomic Dec based) to use the
 ARC700 "ex" insn
-pgd_offset_fast() gets cached PGD in MMU scratch reg (current task
 only) as opposed to task->mm->pgd
-printk_init() to move certain strings to .init.rodata (vs. .rodata)
-xchg() optimised by tweaked reg constraint "+r"
-kernel_execve() inline asm tweaked to not generate useless reg
 shuffling (6 insn vs 16)
-I cache flush to use per-line-sz callback to avoid checks inside the
 per-line-loop (for VIPT aliasing)

Features:
---------
-CONFIG_STACKTRACE for ARC => /proc/<pid>/stack
-use /proc/sys/kernel/print-fatal-signals (removed CONFIG_ARC_USER_FAULTS_DBG)
-use <asm-generic/errno.h>
-non inline versions of copy_(to|from)_user when optim for size
-core context switch macro in "C" inline asm to get dwarf2 unwind info
-thread_saved_pc() et al for schedular

Cleanups
---------
-READ_BCR macro for cleaner aux reg reads (bitfield encoded)
-split update_mmu_cache() into TLB update and cache flush

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: Bug 98113: gprof lib bug craps out kernel #1: Fixing diagnostics

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: Bug 98113: gprof lib bug craps out kernel #2: Fixed

-In case of Priv-V Faults, fake rtie must be done before handing off
 control to Linux code

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: Debuggability: tucked initramfs in a .init sub-section

- so that objdump of kernel image ignores it

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
ARC: TIF_RESTORE_SIGMASK support for ARC

(1) Invokes do_signal() when TIF_RESTORE_SIGMASK is set.
(2) Makes do_signal() support TIF_RESTORE_SIGMASK, using the signal mask
    saved in current->saved_sigmask.
(3) Discards sys_rt_sigsuspend() from the arch, using the generic one
    instead.
(4) Makes sys_sigsuspend() save the signal mask and set TIF_RESTORE_SIGMASK
    rather than attempting to fudge the return registers.
(5) Makes sys_sigsuspend() return -ERESTARTNOHAND rather than looping.
(6) Discards the old sigmask argument to do_signal() as it's no longer
    necessary.
(7) No need to have wrappers for sys_{,rt_}sigsuspend() which pass
    pt_regs, given that they no-longer call do_signal( ) which needed
    pt_regs in first place.

Signed-off-by: Vineet Gupta <vgupta@synopsys.com>