diff --git a/[refs] b/[refs]
index 62693d38a75e..0340530c539d 100644
--- a/[refs]
+++ b/[refs]
@@ -1,2 +1,2 @@
---
-refs/heads/master: ffb208479bd62ab26c29a242faeb1de1c6d5fcdc
+refs/heads/master: e63e03273b89f7248baa56cf242474f661e776e1
diff --git a/trunk/Documentation/00-INDEX b/trunk/Documentation/00-INDEX
index 6de71308a906..5b5aba404aac 100644
--- a/trunk/Documentation/00-INDEX
+++ b/trunk/Documentation/00-INDEX
@@ -89,8 +89,6 @@ cciss.txt
- info, major/minor #'s for Compaq's SMART Array Controllers.
cdrom/
- directory with information on the CD-ROM drivers that Linux has.
-cli-sti-removal.txt
- - cli()/sti() removal guide.
computone.txt
- info on Computone Intelliport II/Plus Multiport Serial Driver.
connector/
diff --git a/trunk/Documentation/DocBook/Makefile b/trunk/Documentation/DocBook/Makefile
index 0eb0d027eb32..1d1b34500b69 100644
--- a/trunk/Documentation/DocBook/Makefile
+++ b/trunk/Documentation/DocBook/Makefile
@@ -12,7 +12,7 @@ DOCBOOKS := wanbook.xml z8530book.xml mcabook.xml videobook.xml \
kernel-api.xml filesystems.xml lsm.xml usb.xml kgdb.xml \
gadget.xml libata.xml mtdnand.xml librs.xml rapidio.xml \
genericirq.xml s390-drivers.xml uio-howto.xml scsi.xml \
- mac80211.xml debugobjects.xml
+ mac80211.xml debugobjects.xml sh.xml
###
# The build process is as follows (targets):
diff --git a/trunk/Documentation/DocBook/s390-drivers.tmpl b/trunk/Documentation/DocBook/s390-drivers.tmpl
index 4acc73240a6d..95bfc12e5439 100644
--- a/trunk/Documentation/DocBook/s390-drivers.tmpl
+++ b/trunk/Documentation/DocBook/s390-drivers.tmpl
@@ -100,7 +100,7 @@
the hardware structures represented here, please consult the Principles
of Operation.
-!Iinclude/asm-s390/cio.h
+!Iarch/s390/include/asm/cio.h
ccw devices
@@ -114,7 +114,7 @@
ccw device structure. Device drivers must not bypass those functions
or strange side effects may happen.
-!Iinclude/asm-s390/ccwdev.h
+!Iarch/s390/include/asm/ccwdev.h
!Edrivers/s390/cio/device.c
!Edrivers/s390/cio/device_ops.c
@@ -125,7 +125,7 @@
measurement data which is made available by the channel subsystem
for each channel attached device.
-!Iinclude/asm-s390/cmb.h
+!Iarch/s390/include/asm/cmb.h
!Edrivers/s390/cio/cmf.c
@@ -142,7 +142,7 @@
ccw group devices
-!Iinclude/asm-s390/ccwgroup.h
+!Iarch/s390/include/asm/ccwgroup.h
!Edrivers/s390/cio/ccwgroup.c
diff --git a/trunk/Documentation/DocBook/sh.tmpl b/trunk/Documentation/DocBook/sh.tmpl
new file mode 100644
index 000000000000..0c3dc4c69dd1
--- /dev/null
+++ b/trunk/Documentation/DocBook/sh.tmpl
@@ -0,0 +1,105 @@
+
+
+
+
+
+ SuperH Interfaces Guide
+
+
+
+ Paul
+ Mundt
+
+
+ lethal@linux-sh.org
+
+
+
+
+
+
+ 2008
+ Paul Mundt
+
+
+ 2008
+ Renesas Technology Corp.
+
+
+
+
+ This documentation is free software; you can redistribute
+ it and/or modify it under the terms of the GNU General Public
+ License version 2 as published by the Free Software Foundation.
+
+
+
+ This program is distributed in the hope that it will be
+ useful, but WITHOUT ANY WARRANTY; without even the implied
+ warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU General Public License for more details.
+
+
+
+ You should have received a copy of the GNU General Public
+ License along with this program; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ MA 02111-1307 USA
+
+
+
+ For more details see the file COPYING in the source
+ distribution of Linux.
+
+
+
+
+
+
+
+ Memory Management
+
+ SH-4
+
+ Store Queue API
+!Earch/sh/kernel/cpu/sh4/sq.c
+
+
+
+ SH-5
+
+ TLB Interfaces
+!Iarch/sh/mm/tlb-sh5.c
+!Iarch/sh/include/asm/tlb_64.h
+
+
+
+
+ Clock Framework Extensions
+!Iarch/sh/include/asm/clock.h
+
+
+ Machine Specific Interfaces
+
+ mach-dreamcast
+!Iarch/sh/boards/mach-dreamcast/rtc.c
+
+
+ mach-x3proto
+!Earch/sh/boards/mach-x3proto/ilsel.c
+
+
+
+ Busses
+
+ SuperHyway
+!Edrivers/sh/superhyway/superhyway.c
+
+
+
+ Maple
+!Edrivers/sh/maple/maple.c
+
+
+
diff --git a/trunk/Documentation/cli-sti-removal.txt b/trunk/Documentation/cli-sti-removal.txt
deleted file mode 100644
index 60932b02fcb3..000000000000
--- a/trunk/Documentation/cli-sti-removal.txt
+++ /dev/null
@@ -1,133 +0,0 @@
-
-#### cli()/sti() removal guide, started by Ingo Molnar
-
-
-as of 2.5.28, five popular macros have been removed on SMP, and
-are being phased out on UP:
-
- cli(), sti(), save_flags(flags), save_flags_cli(flags), restore_flags(flags)
-
-until now it was possible to protect driver code against interrupt
-handlers via a cli(), but from now on other, more lightweight methods
-have to be used for synchronization, such as spinlocks or semaphores.
-
-for example, driver code that used to do something like:
-
- struct driver_data;
-
- irq_handler (...)
- {
- ....
- driver_data.finish = 1;
- driver_data.new_work = 0;
- ....
- }
-
- ...
-
- ioctl_func (...)
- {
- ...
- cli();
- ...
- driver_data.finish = 0;
- driver_data.new_work = 2;
- ...
- sti();
- ...
- }
-
-was SMP-correct because the cli() function ensured that no
-interrupt handler (amongst them the above irq_handler()) function
-would execute while the cli()-ed section is executing.
-
-but from now on a more direct method of locking has to be used:
-
- DEFINE_SPINLOCK(driver_lock);
- struct driver_data;
-
- irq_handler (...)
- {
- unsigned long flags;
- ....
- spin_lock_irqsave(&driver_lock, flags);
- ....
- driver_data.finish = 1;
- driver_data.new_work = 0;
- ....
- spin_unlock_irqrestore(&driver_lock, flags);
- ....
- }
-
- ...
-
- ioctl_func (...)
- {
- ...
- spin_lock_irq(&driver_lock);
- ...
- driver_data.finish = 0;
- driver_data.new_work = 2;
- ...
- spin_unlock_irq(&driver_lock);
- ...
- }
-
-the above code has a number of advantages:
-
-- the locking relation is easier to understand - actual lock usage
- pinpoints the critical sections. cli() usage is too opaque.
- Easier to understand means it's easier to debug.
-
-- it's faster, because spinlocks are faster to acquire than the
- potentially heavily-used IRQ lock. Furthermore, your driver does
- not have to wait eg. for a big heavy SCSI interrupt to finish,
- because the driver_lock spinlock is only used by your driver.
- cli() on the other hand was used by many drivers, and extended
- the critical section to the whole IRQ handler function - creating
- serious lock contention.
-
-
-to make the transition easier, we've still kept the cli(), sti(),
-save_flags(), save_flags_cli() and restore_flags() macros defined
-on UP systems - but their usage will be phased out until 2.6 is
-released.
-
-drivers that want to disable local interrupts (interrupts on the
-current CPU), can use the following five macros:
-
- local_irq_disable(), local_irq_enable(), local_save_flags(flags),
- local_irq_save(flags), local_irq_restore(flags)
-
-but beware, their meaning and semantics are much simpler, far from
-that of the old cli(), sti(), save_flags(flags) and restore_flags(flags)
-SMP meaning:
-
- local_irq_disable() => turn local IRQs off
-
- local_irq_enable() => turn local IRQs on
-
- local_save_flags(flags) => save the current IRQ state into flags. The
- state can be on or off. (on some
- architectures there's even more bits in it.)
-
- local_irq_save(flags) => save the current IRQ state into flags and
- disable interrupts.
-
- local_irq_restore(flags) => restore the IRQ state from flags.
-
-(local_irq_save can save both irqs on and irqs off state, and
-local_irq_restore can restore into both irqs on and irqs off state.)
-
-another related change is that synchronize_irq() now takes a parameter:
-synchronize_irq(irq). This change too has the purpose of making SMP
-synchronization more lightweight - this way you can wait for your own
-interrupt handler to finish, no need to wait for other IRQ sources.
-
-
-why were these changes done? The main reason was the architectural burden
-of maintaining the cli()/sti() interface - it became a real problem. The
-new interrupt system is much more streamlined, easier to understand, debug,
-and it's also a bit faster - the same happened to it that will happen to
-cli()/sti() using drivers once they convert to spinlocks :-)
-
diff --git a/trunk/Documentation/power/pm_qos_interface.txt b/trunk/Documentation/power/pm_qos_interface.txt
index 49adb1a33514..c40866e8b957 100644
--- a/trunk/Documentation/power/pm_qos_interface.txt
+++ b/trunk/Documentation/power/pm_qos_interface.txt
@@ -1,4 +1,4 @@
-PM quality of Service interface.
+PM Quality Of Service Interface.
This interface provides a kernel and user mode interface for registering
performance expectations by drivers, subsystems and user space applications on
@@ -7,6 +7,11 @@ one of the parameters.
Currently we have {cpu_dma_latency, network_latency, network_throughput} as the
initial set of pm_qos parameters.
+Each parameters have defined units:
+ * latency: usec
+ * timeout: usec
+ * throughput: kbs (kilo bit / sec)
+
The infrastructure exposes multiple misc device nodes one per implemented
parameter. The set of parameters implement is defined by pm_qos_power_init()
and pm_qos_params.h. This is done because having the available parameters
diff --git a/trunk/Documentation/powerpc/booting-without-of.txt b/trunk/Documentation/powerpc/booting-without-of.txt
index 928a79ceb7aa..de4063cb4fdc 100644
--- a/trunk/Documentation/powerpc/booting-without-of.txt
+++ b/trunk/Documentation/powerpc/booting-without-of.txt
@@ -278,7 +278,7 @@ it with special cases.
a 64-bit platform.
d) request and get assigned a platform number (see PLATFORM_*
- constants in include/asm-powerpc/processor.h
+ constants in arch/powerpc/include/asm/processor.h
32-bit embedded kernels:
@@ -340,7 +340,7 @@ the block to RAM before passing it to the kernel.
---------
The kernel is entered with r3 pointing to an area of memory that is
- roughly described in include/asm-powerpc/prom.h by the structure
+ roughly described in arch/powerpc/include/asm/prom.h by the structure
boot_param_header:
struct boot_param_header {
diff --git a/trunk/Documentation/powerpc/eeh-pci-error-recovery.txt b/trunk/Documentation/powerpc/eeh-pci-error-recovery.txt
index df7afe43d462..9d4e33df624c 100644
--- a/trunk/Documentation/powerpc/eeh-pci-error-recovery.txt
+++ b/trunk/Documentation/powerpc/eeh-pci-error-recovery.txt
@@ -133,7 +133,7 @@ error. Given an arbitrary address, the routine
pci_get_device_by_addr() will find the pci device associated
with that address (if any).
-The default include/asm-powerpc/io.h macros readb(), inb(), insb(),
+The default arch/powerpc/include/asm/io.h macros readb(), inb(), insb(),
etc. include a check to see if the i/o read returned all-0xff's.
If so, these make a call to eeh_dn_check_failure(), which in turn
asks the firmware if the all-ff's value is the sign of a true EEH
diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS
index 5e6d6ab82433..8223a521d7c3 100644
--- a/trunk/MAINTAINERS
+++ b/trunk/MAINTAINERS
@@ -502,6 +502,12 @@ L: openezx-devel@lists.openezx.org (subscribers-only)
W: http://www.openezx.org/
S: Maintained
+ARM/FREESCALE IMX / MXC ARM ARCHITECTURE
+P: Sascha Hauer
+M: kernel@pengutronix.de
+L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
+S: Maintained
+
ARM/GLOMATION GESBC9312SX MACHINE SUPPORT
P: Lennert Buytenhek
M: kernel@wantstofly.org
diff --git a/trunk/arch/arm/boot/compressed/Makefile b/trunk/arch/arm/boot/compressed/Makefile
index 95baac4939e0..94462a097f86 100644
--- a/trunk/arch/arm/boot/compressed/Makefile
+++ b/trunk/arch/arm/boot/compressed/Makefile
@@ -112,6 +112,3 @@ $(obj)/font.c: $(FONTC)
$(obj)/vmlinux.lds: $(obj)/vmlinux.lds.in arch/arm/boot/Makefile .config
@sed "$(SEDFLAGS)" < $< > $@
-
-$(obj)/misc.o: $(obj)/misc.c include/asm/arch/uncompress.h lib/inflate.c
-
diff --git a/trunk/include/asm-arm/Kbuild b/trunk/arch/arm/include/asm/Kbuild
similarity index 100%
rename from trunk/include/asm-arm/Kbuild
rename to trunk/arch/arm/include/asm/Kbuild
diff --git a/trunk/include/asm-arm/a.out-core.h b/trunk/arch/arm/include/asm/a.out-core.h
similarity index 100%
rename from trunk/include/asm-arm/a.out-core.h
rename to trunk/arch/arm/include/asm/a.out-core.h
diff --git a/trunk/include/asm-arm/a.out.h b/trunk/arch/arm/include/asm/a.out.h
similarity index 100%
rename from trunk/include/asm-arm/a.out.h
rename to trunk/arch/arm/include/asm/a.out.h
diff --git a/trunk/include/asm-arm/assembler.h b/trunk/arch/arm/include/asm/assembler.h
similarity index 98%
rename from trunk/include/asm-arm/assembler.h
rename to trunk/arch/arm/include/asm/assembler.h
index 911393b2c6f0..6116e4893c0a 100644
--- a/trunk/include/asm-arm/assembler.h
+++ b/trunk/arch/arm/include/asm/assembler.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/assembler.h
+ * arch/arm/include/asm/assembler.h
*
* Copyright (C) 1996-2000 Russell King
*
diff --git a/trunk/include/asm-arm/atomic.h b/trunk/arch/arm/include/asm/atomic.h
similarity index 99%
rename from trunk/include/asm-arm/atomic.h
rename to trunk/arch/arm/include/asm/atomic.h
index 3b59f94b5a3d..325f881ccb50 100644
--- a/trunk/include/asm-arm/atomic.h
+++ b/trunk/arch/arm/include/asm/atomic.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/atomic.h
+ * arch/arm/include/asm/atomic.h
*
* Copyright (C) 1996 Russell King.
* Copyright (C) 2002 Deep Blue Solutions Ltd.
diff --git a/trunk/include/asm-arm/auxvec.h b/trunk/arch/arm/include/asm/auxvec.h
similarity index 100%
rename from trunk/include/asm-arm/auxvec.h
rename to trunk/arch/arm/include/asm/auxvec.h
diff --git a/trunk/include/asm-arm/bitops.h b/trunk/arch/arm/include/asm/bitops.h
similarity index 100%
rename from trunk/include/asm-arm/bitops.h
rename to trunk/arch/arm/include/asm/bitops.h
diff --git a/trunk/include/asm-arm/bug.h b/trunk/arch/arm/include/asm/bug.h
similarity index 100%
rename from trunk/include/asm-arm/bug.h
rename to trunk/arch/arm/include/asm/bug.h
diff --git a/trunk/include/asm-arm/bugs.h b/trunk/arch/arm/include/asm/bugs.h
similarity index 93%
rename from trunk/include/asm-arm/bugs.h
rename to trunk/arch/arm/include/asm/bugs.h
index ca54eb0f12d7..a97f1ea708d1 100644
--- a/trunk/include/asm-arm/bugs.h
+++ b/trunk/arch/arm/include/asm/bugs.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/bugs.h
+ * arch/arm/include/asm/bugs.h
*
* Copyright (C) 1995-2003 Russell King
*
diff --git a/trunk/include/asm-arm/byteorder.h b/trunk/arch/arm/include/asm/byteorder.h
similarity index 97%
rename from trunk/include/asm-arm/byteorder.h
rename to trunk/arch/arm/include/asm/byteorder.h
index e6f7fcdc73b0..4fbfb22f65a0 100644
--- a/trunk/include/asm-arm/byteorder.h
+++ b/trunk/arch/arm/include/asm/byteorder.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/byteorder.h
+ * arch/arm/include/asm/byteorder.h
*
* ARM Endian-ness. In little endian mode, the data bus is connected such
* that byte accesses appear as:
diff --git a/trunk/include/asm-arm/cache.h b/trunk/arch/arm/include/asm/cache.h
similarity index 80%
rename from trunk/include/asm-arm/cache.h
rename to trunk/arch/arm/include/asm/cache.h
index 31332c8ac04e..cb7a9e97fd7e 100644
--- a/trunk/include/asm-arm/cache.h
+++ b/trunk/arch/arm/include/asm/cache.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/cache.h
+ * arch/arm/include/asm/cache.h
*/
#ifndef __ASMARM_CACHE_H
#define __ASMARM_CACHE_H
diff --git a/trunk/include/asm-arm/cacheflush.h b/trunk/arch/arm/include/asm/cacheflush.h
similarity index 99%
rename from trunk/include/asm-arm/cacheflush.h
rename to trunk/arch/arm/include/asm/cacheflush.h
index e68a1cbcc852..9073d9c6567e 100644
--- a/trunk/include/asm-arm/cacheflush.h
+++ b/trunk/arch/arm/include/asm/cacheflush.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/cacheflush.h
+ * arch/arm/include/asm/cacheflush.h
*
* Copyright (C) 1999-2002 Russell King
*
diff --git a/trunk/include/asm-arm/checksum.h b/trunk/arch/arm/include/asm/checksum.h
similarity index 98%
rename from trunk/include/asm-arm/checksum.h
rename to trunk/arch/arm/include/asm/checksum.h
index eaa0efd8d0d4..6dcc16430868 100644
--- a/trunk/include/asm-arm/checksum.h
+++ b/trunk/arch/arm/include/asm/checksum.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/checksum.h
+ * arch/arm/include/asm/checksum.h
*
* IP checksum routines
*
diff --git a/trunk/include/asm-arm/cnt32_to_63.h b/trunk/arch/arm/include/asm/cnt32_to_63.h
similarity index 100%
rename from trunk/include/asm-arm/cnt32_to_63.h
rename to trunk/arch/arm/include/asm/cnt32_to_63.h
diff --git a/trunk/include/asm-arm/cpu-multi32.h b/trunk/arch/arm/include/asm/cpu-multi32.h
similarity index 97%
rename from trunk/include/asm-arm/cpu-multi32.h
rename to trunk/arch/arm/include/asm/cpu-multi32.h
index 3479de9266e5..e2b5b0b2116a 100644
--- a/trunk/include/asm-arm/cpu-multi32.h
+++ b/trunk/arch/arm/include/asm/cpu-multi32.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/cpu-multi32.h
+ * arch/arm/include/asm/cpu-multi32.h
*
* Copyright (C) 2000 Russell King
*
diff --git a/trunk/include/asm-arm/cpu-single.h b/trunk/arch/arm/include/asm/cpu-single.h
similarity index 97%
rename from trunk/include/asm-arm/cpu-single.h
rename to trunk/arch/arm/include/asm/cpu-single.h
index 0b120ee36091..f073a6d2a406 100644
--- a/trunk/include/asm-arm/cpu-single.h
+++ b/trunk/arch/arm/include/asm/cpu-single.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/cpu-single.h
+ * arch/arm/include/asm/cpu-single.h
*
* Copyright (C) 2000 Russell King
*
diff --git a/trunk/include/asm-arm/cpu.h b/trunk/arch/arm/include/asm/cpu.h
similarity index 93%
rename from trunk/include/asm-arm/cpu.h
rename to trunk/arch/arm/include/asm/cpu.h
index 715426b9b08e..634b2d7c612a 100644
--- a/trunk/include/asm-arm/cpu.h
+++ b/trunk/arch/arm/include/asm/cpu.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/cpu.h
+ * arch/arm/include/asm/cpu.h
*
* Copyright (C) 2004-2005 ARM Ltd.
*
diff --git a/trunk/include/asm-arm/cputime.h b/trunk/arch/arm/include/asm/cputime.h
similarity index 100%
rename from trunk/include/asm-arm/cputime.h
rename to trunk/arch/arm/include/asm/cputime.h
diff --git a/trunk/include/asm-arm/current.h b/trunk/arch/arm/include/asm/current.h
similarity index 100%
rename from trunk/include/asm-arm/current.h
rename to trunk/arch/arm/include/asm/current.h
diff --git a/trunk/include/asm-arm/delay.h b/trunk/arch/arm/include/asm/delay.h
similarity index 100%
rename from trunk/include/asm-arm/delay.h
rename to trunk/arch/arm/include/asm/delay.h
diff --git a/trunk/include/asm-arm/device.h b/trunk/arch/arm/include/asm/device.h
similarity index 100%
rename from trunk/include/asm-arm/device.h
rename to trunk/arch/arm/include/asm/device.h
diff --git a/trunk/include/asm-arm/div64.h b/trunk/arch/arm/include/asm/div64.h
similarity index 100%
rename from trunk/include/asm-arm/div64.h
rename to trunk/arch/arm/include/asm/div64.h
diff --git a/trunk/include/asm-arm/dma-mapping.h b/trunk/arch/arm/include/asm/dma-mapping.h
similarity index 100%
rename from trunk/include/asm-arm/dma-mapping.h
rename to trunk/arch/arm/include/asm/dma-mapping.h
diff --git a/trunk/include/asm-arm/dma.h b/trunk/arch/arm/include/asm/dma.h
similarity index 100%
rename from trunk/include/asm-arm/dma.h
rename to trunk/arch/arm/include/asm/dma.h
diff --git a/trunk/include/asm-arm/domain.h b/trunk/arch/arm/include/asm/domain.h
similarity index 98%
rename from trunk/include/asm-arm/domain.h
rename to trunk/arch/arm/include/asm/domain.h
index 3c12a7625304..cc7ef4080711 100644
--- a/trunk/include/asm-arm/domain.h
+++ b/trunk/arch/arm/include/asm/domain.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/domain.h
+ * arch/arm/include/asm/domain.h
*
* Copyright (C) 1999 Russell King.
*
diff --git a/trunk/include/asm-arm/ecard.h b/trunk/arch/arm/include/asm/ecard.h
similarity index 99%
rename from trunk/include/asm-arm/ecard.h
rename to trunk/arch/arm/include/asm/ecard.h
index 5e22881a630d..29f2610efc70 100644
--- a/trunk/include/asm-arm/ecard.h
+++ b/trunk/arch/arm/include/asm/ecard.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/ecard.h
+ * arch/arm/include/asm/ecard.h
*
* definitions for expansion cards
*
diff --git a/trunk/include/asm-arm/elf.h b/trunk/arch/arm/include/asm/elf.h
similarity index 100%
rename from trunk/include/asm-arm/elf.h
rename to trunk/arch/arm/include/asm/elf.h
diff --git a/trunk/include/asm-arm/emergency-restart.h b/trunk/arch/arm/include/asm/emergency-restart.h
similarity index 100%
rename from trunk/include/asm-arm/emergency-restart.h
rename to trunk/arch/arm/include/asm/emergency-restart.h
diff --git a/trunk/include/asm-arm/errno.h b/trunk/arch/arm/include/asm/errno.h
similarity index 100%
rename from trunk/include/asm-arm/errno.h
rename to trunk/arch/arm/include/asm/errno.h
diff --git a/trunk/include/asm-arm/fb.h b/trunk/arch/arm/include/asm/fb.h
similarity index 100%
rename from trunk/include/asm-arm/fb.h
rename to trunk/arch/arm/include/asm/fb.h
diff --git a/trunk/include/asm-arm/fcntl.h b/trunk/arch/arm/include/asm/fcntl.h
similarity index 100%
rename from trunk/include/asm-arm/fcntl.h
rename to trunk/arch/arm/include/asm/fcntl.h
diff --git a/trunk/include/asm-arm/fiq.h b/trunk/arch/arm/include/asm/fiq.h
similarity index 96%
rename from trunk/include/asm-arm/fiq.h
rename to trunk/arch/arm/include/asm/fiq.h
index a3bad09e825c..2242ce22ec6c 100644
--- a/trunk/include/asm-arm/fiq.h
+++ b/trunk/arch/arm/include/asm/fiq.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/fiq.h
+ * arch/arm/include/asm/fiq.h
*
* Support for FIQ on ARM architectures.
* Written by Philip Blundell , 1998
diff --git a/trunk/include/asm-arm/flat.h b/trunk/arch/arm/include/asm/flat.h
similarity index 90%
rename from trunk/include/asm-arm/flat.h
rename to trunk/arch/arm/include/asm/flat.h
index 9918aa46d9e5..1d77e51907f6 100644
--- a/trunk/include/asm-arm/flat.h
+++ b/trunk/arch/arm/include/asm/flat.h
@@ -1,5 +1,5 @@
/*
- * include/asm-arm/flat.h -- uClinux flat-format executables
+ * arch/arm/include/asm/flat.h -- uClinux flat-format executables
*/
#ifndef __ARM_FLAT_H__
diff --git a/trunk/include/asm-arm/floppy.h b/trunk/arch/arm/include/asm/floppy.h
similarity index 99%
rename from trunk/include/asm-arm/floppy.h
rename to trunk/arch/arm/include/asm/floppy.h
index 41a5e9d6bb69..dce20c25ab10 100644
--- a/trunk/include/asm-arm/floppy.h
+++ b/trunk/arch/arm/include/asm/floppy.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/floppy.h
+ * arch/arm/include/asm/floppy.h
*
* Copyright (C) 1996-2000 Russell King
*
diff --git a/trunk/include/asm-arm/fpstate.h b/trunk/arch/arm/include/asm/fpstate.h
similarity index 97%
rename from trunk/include/asm-arm/fpstate.h
rename to trunk/arch/arm/include/asm/fpstate.h
index 392eb5332323..ee5e03efc1bb 100644
--- a/trunk/include/asm-arm/fpstate.h
+++ b/trunk/arch/arm/include/asm/fpstate.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/fpstate.h
+ * arch/arm/include/asm/fpstate.h
*
* Copyright (C) 1995 Russell King
*
diff --git a/trunk/include/asm-arm/ftrace.h b/trunk/arch/arm/include/asm/ftrace.h
similarity index 100%
rename from trunk/include/asm-arm/ftrace.h
rename to trunk/arch/arm/include/asm/ftrace.h
diff --git a/trunk/include/asm-arm/futex.h b/trunk/arch/arm/include/asm/futex.h
similarity index 100%
rename from trunk/include/asm-arm/futex.h
rename to trunk/arch/arm/include/asm/futex.h
diff --git a/trunk/include/asm-arm/glue.h b/trunk/arch/arm/include/asm/glue.h
similarity index 99%
rename from trunk/include/asm-arm/glue.h
rename to trunk/arch/arm/include/asm/glue.h
index a97a182ba287..a0e39d5d00c9 100644
--- a/trunk/include/asm-arm/glue.h
+++ b/trunk/arch/arm/include/asm/glue.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/glue.h
+ * arch/arm/include/asm/glue.h
*
* Copyright (C) 1997-1999 Russell King
* Copyright (C) 2000-2002 Deep Blue Solutions Ltd.
diff --git a/trunk/include/asm-arm/gpio.h b/trunk/arch/arm/include/asm/gpio.h
similarity index 100%
rename from trunk/include/asm-arm/gpio.h
rename to trunk/arch/arm/include/asm/gpio.h
diff --git a/trunk/include/asm-arm/hardirq.h b/trunk/arch/arm/include/asm/hardirq.h
similarity index 100%
rename from trunk/include/asm-arm/hardirq.h
rename to trunk/arch/arm/include/asm/hardirq.h
diff --git a/trunk/include/asm-arm/hardware.h b/trunk/arch/arm/include/asm/hardware.h
similarity index 90%
rename from trunk/include/asm-arm/hardware.h
rename to trunk/arch/arm/include/asm/hardware.h
index 1fd1a5b6504b..eb3b3abb7db7 100644
--- a/trunk/include/asm-arm/hardware.h
+++ b/trunk/arch/arm/include/asm/hardware.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/hardware.h
+ * arch/arm/include/asm/hardware.h
*
* Copyright (C) 1996 Russell King
*
diff --git a/trunk/include/asm-arm/hardware/arm_timer.h b/trunk/arch/arm/include/asm/hardware/arm_timer.h
similarity index 100%
rename from trunk/include/asm-arm/hardware/arm_timer.h
rename to trunk/arch/arm/include/asm/hardware/arm_timer.h
diff --git a/trunk/include/asm-arm/hardware/arm_twd.h b/trunk/arch/arm/include/asm/hardware/arm_twd.h
similarity index 100%
rename from trunk/include/asm-arm/hardware/arm_twd.h
rename to trunk/arch/arm/include/asm/hardware/arm_twd.h
diff --git a/trunk/include/asm-arm/hardware/cache-l2x0.h b/trunk/arch/arm/include/asm/hardware/cache-l2x0.h
similarity index 97%
rename from trunk/include/asm-arm/hardware/cache-l2x0.h
rename to trunk/arch/arm/include/asm/hardware/cache-l2x0.h
index 54029a740396..64f2252a25cd 100644
--- a/trunk/include/asm-arm/hardware/cache-l2x0.h
+++ b/trunk/arch/arm/include/asm/hardware/cache-l2x0.h
@@ -1,5 +1,5 @@
/*
- * include/asm-arm/hardware/cache-l2x0.h
+ * arch/arm/include/asm/hardware/cache-l2x0.h
*
* Copyright (C) 2007 ARM Limited
*
diff --git a/trunk/include/asm-arm/hardware/clps7111.h b/trunk/arch/arm/include/asm/hardware/clps7111.h
similarity index 99%
rename from trunk/include/asm-arm/hardware/clps7111.h
rename to trunk/arch/arm/include/asm/hardware/clps7111.h
index 8d3228dc1778..44477225aed6 100644
--- a/trunk/include/asm-arm/hardware/clps7111.h
+++ b/trunk/arch/arm/include/asm/hardware/clps7111.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/hardware/clps7111.h
+ * arch/arm/include/asm/hardware/clps7111.h
*
* This file contains the hardware definitions of the CLPS7111 internal
* registers.
diff --git a/trunk/include/asm-arm/hardware/cs89712.h b/trunk/arch/arm/include/asm/hardware/cs89712.h
similarity index 97%
rename from trunk/include/asm-arm/hardware/cs89712.h
rename to trunk/arch/arm/include/asm/hardware/cs89712.h
index ad99a3e1b802..f75626933e94 100644
--- a/trunk/include/asm-arm/hardware/cs89712.h
+++ b/trunk/arch/arm/include/asm/hardware/cs89712.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/hardware/cs89712.h
+ * arch/arm/include/asm/hardware/cs89712.h
*
* This file contains the hardware definitions of the CS89712
* additional internal registers.
diff --git a/trunk/include/asm-arm/hardware/debug-8250.S b/trunk/arch/arm/include/asm/hardware/debug-8250.S
similarity index 93%
rename from trunk/include/asm-arm/hardware/debug-8250.S
rename to trunk/arch/arm/include/asm/hardware/debug-8250.S
index 07c97fb233fc..22c689255e6e 100644
--- a/trunk/include/asm-arm/hardware/debug-8250.S
+++ b/trunk/arch/arm/include/asm/hardware/debug-8250.S
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/hardware/debug-8250.S
+ * arch/arm/include/asm/hardware/debug-8250.S
*
* Copyright (C) 1994-1999 Russell King
*
diff --git a/trunk/include/asm-arm/hardware/debug-pl01x.S b/trunk/arch/arm/include/asm/hardware/debug-pl01x.S
similarity index 93%
rename from trunk/include/asm-arm/hardware/debug-pl01x.S
rename to trunk/arch/arm/include/asm/hardware/debug-pl01x.S
index 23c541a9e89a..f9fd083eff63 100644
--- a/trunk/include/asm-arm/hardware/debug-pl01x.S
+++ b/trunk/arch/arm/include/asm/hardware/debug-pl01x.S
@@ -1,4 +1,4 @@
-/* linux/include/asm-arm/hardware/debug-pl01x.S
+/* arch/arm/include/asm/hardware/debug-pl01x.S
*
* Debugging macro include header
*
diff --git a/trunk/include/asm-arm/hardware/dec21285.h b/trunk/arch/arm/include/asm/hardware/dec21285.h
similarity index 99%
rename from trunk/include/asm-arm/hardware/dec21285.h
rename to trunk/arch/arm/include/asm/hardware/dec21285.h
index 546f7077be9c..7068a1c1e4e4 100644
--- a/trunk/include/asm-arm/hardware/dec21285.h
+++ b/trunk/arch/arm/include/asm/hardware/dec21285.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/hardware/dec21285.h
+ * arch/arm/include/asm/hardware/dec21285.h
*
* Copyright (C) 1998 Russell King
*
diff --git a/trunk/include/asm-arm/hardware/entry-macro-iomd.S b/trunk/arch/arm/include/asm/hardware/entry-macro-iomd.S
similarity index 99%
rename from trunk/include/asm-arm/hardware/entry-macro-iomd.S
rename to trunk/arch/arm/include/asm/hardware/entry-macro-iomd.S
index 9bb580a5b15e..e0af4983723f 100644
--- a/trunk/include/asm-arm/hardware/entry-macro-iomd.S
+++ b/trunk/arch/arm/include/asm/hardware/entry-macro-iomd.S
@@ -1,5 +1,5 @@
/*
- * include/asm-arm/hardware/entry-macro-iomd.S
+ * arch/arm/include/asm/hardware/entry-macro-iomd.S
*
* Low-level IRQ helper macros for IOC/IOMD based platforms
*
diff --git a/trunk/include/asm-arm/hardware/ep7211.h b/trunk/arch/arm/include/asm/hardware/ep7211.h
similarity index 96%
rename from trunk/include/asm-arm/hardware/ep7211.h
rename to trunk/arch/arm/include/asm/hardware/ep7211.h
index 017aa68f612d..654d5f625c49 100644
--- a/trunk/include/asm-arm/hardware/ep7211.h
+++ b/trunk/arch/arm/include/asm/hardware/ep7211.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/hardware/ep7211.h
+ * arch/arm/include/asm/hardware/ep7211.h
*
* This file contains the hardware definitions of the EP7211 internal
* registers.
diff --git a/trunk/include/asm-arm/hardware/ep7212.h b/trunk/arch/arm/include/asm/hardware/ep7212.h
similarity index 98%
rename from trunk/include/asm-arm/hardware/ep7212.h
rename to trunk/arch/arm/include/asm/hardware/ep7212.h
index 0e952e747073..3b43bbeaf1db 100644
--- a/trunk/include/asm-arm/hardware/ep7212.h
+++ b/trunk/arch/arm/include/asm/hardware/ep7212.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/hardware/ep7212.h
+ * arch/arm/include/asm/hardware/ep7212.h
*
* This file contains the hardware definitions of the EP7212 internal
* registers.
diff --git a/trunk/include/asm-arm/hardware/gic.h b/trunk/arch/arm/include/asm/hardware/gic.h
similarity index 96%
rename from trunk/include/asm-arm/hardware/gic.h
rename to trunk/arch/arm/include/asm/hardware/gic.h
index 966e428ad32c..4924914af188 100644
--- a/trunk/include/asm-arm/hardware/gic.h
+++ b/trunk/arch/arm/include/asm/hardware/gic.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/hardware/gic.h
+ * arch/arm/include/asm/hardware/gic.h
*
* Copyright (C) 2002 ARM Limited, All Rights Reserved.
*
diff --git a/trunk/include/asm-arm/hardware/icst307.h b/trunk/arch/arm/include/asm/hardware/icst307.h
similarity index 96%
rename from trunk/include/asm-arm/hardware/icst307.h
rename to trunk/arch/arm/include/asm/hardware/icst307.h
index ff8618a441c0..554f128a1046 100644
--- a/trunk/include/asm-arm/hardware/icst307.h
+++ b/trunk/arch/arm/include/asm/hardware/icst307.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/hardware/icst307.h
+ * arch/arm/include/asm/hardware/icst307.h
*
* Copyright (C) 2003 Deep Blue Solutions, Ltd, All Rights Reserved.
*
diff --git a/trunk/include/asm-arm/hardware/icst525.h b/trunk/arch/arm/include/asm/hardware/icst525.h
similarity index 96%
rename from trunk/include/asm-arm/hardware/icst525.h
rename to trunk/arch/arm/include/asm/hardware/icst525.h
index edd5a5704406..58f0dc43e2ed 100644
--- a/trunk/include/asm-arm/hardware/icst525.h
+++ b/trunk/arch/arm/include/asm/hardware/icst525.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/hardware/icst525.h
+ * arch/arm/include/asm/hardware/icst525.h
*
* Copyright (C) 2003 Deep Blue Solutions, Ltd, All Rights Reserved.
*
diff --git a/trunk/include/asm-arm/hardware/ioc.h b/trunk/arch/arm/include/asm/hardware/ioc.h
similarity index 97%
rename from trunk/include/asm-arm/hardware/ioc.h
rename to trunk/arch/arm/include/asm/hardware/ioc.h
index b3b46ef65943..1f6b8013becb 100644
--- a/trunk/include/asm-arm/hardware/ioc.h
+++ b/trunk/arch/arm/include/asm/hardware/ioc.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/hardware/ioc.h
+ * arch/arm/include/asm/hardware/ioc.h
*
* Copyright (C) Russell King
*
diff --git a/trunk/include/asm-arm/hardware/iomd.h b/trunk/arch/arm/include/asm/hardware/iomd.h
similarity index 99%
rename from trunk/include/asm-arm/hardware/iomd.h
rename to trunk/arch/arm/include/asm/hardware/iomd.h
index 396e55ad06c6..9c5afbd71a69 100644
--- a/trunk/include/asm-arm/hardware/iomd.h
+++ b/trunk/arch/arm/include/asm/hardware/iomd.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/hardware/iomd.h
+ * arch/arm/include/asm/hardware/iomd.h
*
* Copyright (C) 1999 Russell King
*
diff --git a/trunk/include/asm-arm/hardware/iop3xx-adma.h b/trunk/arch/arm/include/asm/hardware/iop3xx-adma.h
similarity index 100%
rename from trunk/include/asm-arm/hardware/iop3xx-adma.h
rename to trunk/arch/arm/include/asm/hardware/iop3xx-adma.h
diff --git a/trunk/include/asm-arm/hardware/iop3xx-gpio.h b/trunk/arch/arm/include/asm/hardware/iop3xx-gpio.h
similarity index 97%
rename from trunk/include/asm-arm/hardware/iop3xx-gpio.h
rename to trunk/arch/arm/include/asm/hardware/iop3xx-gpio.h
index 0c9331f9ac24..222e74b7c463 100644
--- a/trunk/include/asm-arm/hardware/iop3xx-gpio.h
+++ b/trunk/arch/arm/include/asm/hardware/iop3xx-gpio.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/hardware/iop3xx-gpio.h
+ * arch/arm/include/asm/hardware/iop3xx-gpio.h
*
* IOP3xx GPIO wrappers
*
diff --git a/trunk/include/asm-arm/hardware/iop3xx.h b/trunk/arch/arm/include/asm/hardware/iop3xx.h
similarity index 99%
rename from trunk/include/asm-arm/hardware/iop3xx.h
rename to trunk/arch/arm/include/asm/hardware/iop3xx.h
index 18f6937f5010..4b8e7f559929 100644
--- a/trunk/include/asm-arm/hardware/iop3xx.h
+++ b/trunk/arch/arm/include/asm/hardware/iop3xx.h
@@ -1,5 +1,5 @@
/*
- * include/asm-arm/hardware/iop3xx.h
+ * arch/arm/include/asm/hardware/iop3xx.h
*
* Intel IOP32X and IOP33X register definitions
*
diff --git a/trunk/include/asm-arm/hardware/iop_adma.h b/trunk/arch/arm/include/asm/hardware/iop_adma.h
similarity index 100%
rename from trunk/include/asm-arm/hardware/iop_adma.h
rename to trunk/arch/arm/include/asm/hardware/iop_adma.h
diff --git a/trunk/include/asm-arm/hardware/it8152.h b/trunk/arch/arm/include/asm/hardware/it8152.h
similarity index 100%
rename from trunk/include/asm-arm/hardware/it8152.h
rename to trunk/arch/arm/include/asm/hardware/it8152.h
diff --git a/trunk/include/asm-arm/hardware/linkup-l1110.h b/trunk/arch/arm/include/asm/hardware/linkup-l1110.h
similarity index 100%
rename from trunk/include/asm-arm/hardware/linkup-l1110.h
rename to trunk/arch/arm/include/asm/hardware/linkup-l1110.h
diff --git a/trunk/include/asm-arm/hardware/locomo.h b/trunk/arch/arm/include/asm/hardware/locomo.h
similarity index 99%
rename from trunk/include/asm-arm/hardware/locomo.h
rename to trunk/arch/arm/include/asm/hardware/locomo.h
index fb0645de6f31..954b1be991b4 100644
--- a/trunk/include/asm-arm/hardware/locomo.h
+++ b/trunk/arch/arm/include/asm/hardware/locomo.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/hardware/locomo.h
+ * arch/arm/include/asm/hardware/locomo.h
*
* This file contains the definitions for the LoCoMo G/A Chip
*
diff --git a/trunk/include/asm-arm/hardware/memc.h b/trunk/arch/arm/include/asm/hardware/memc.h
similarity index 93%
rename from trunk/include/asm-arm/hardware/memc.h
rename to trunk/arch/arm/include/asm/hardware/memc.h
index 8aef5aa0e01b..42ba7c167d1f 100644
--- a/trunk/include/asm-arm/hardware/memc.h
+++ b/trunk/arch/arm/include/asm/hardware/memc.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/hardware/memc.h
+ * arch/arm/include/asm/hardware/memc.h
*
* Copyright (C) Russell King.
*
diff --git a/trunk/include/asm-arm/hardware/pci_v3.h b/trunk/arch/arm/include/asm/hardware/pci_v3.h
similarity index 99%
rename from trunk/include/asm-arm/hardware/pci_v3.h
rename to trunk/arch/arm/include/asm/hardware/pci_v3.h
index 4d497bdb9a97..2811c7e2cfdf 100644
--- a/trunk/include/asm-arm/hardware/pci_v3.h
+++ b/trunk/arch/arm/include/asm/hardware/pci_v3.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/hardware/pci_v3.h
+ * arch/arm/include/asm/hardware/pci_v3.h
*
* Internal header file PCI V3 chip
*
diff --git a/trunk/include/asm-arm/hardware/sa1111.h b/trunk/arch/arm/include/asm/hardware/sa1111.h
similarity index 99%
rename from trunk/include/asm-arm/hardware/sa1111.h
rename to trunk/arch/arm/include/asm/hardware/sa1111.h
index 61b1d05c7df7..6cf98d4f7dc3 100644
--- a/trunk/include/asm-arm/hardware/sa1111.h
+++ b/trunk/arch/arm/include/asm/hardware/sa1111.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/hardware/sa1111.h
+ * arch/arm/include/asm/hardware/sa1111.h
*
* Copyright (C) 2000 John G Dorsey
*
diff --git a/trunk/include/asm-arm/hardware/scoop.h b/trunk/arch/arm/include/asm/hardware/scoop.h
similarity index 100%
rename from trunk/include/asm-arm/hardware/scoop.h
rename to trunk/arch/arm/include/asm/hardware/scoop.h
diff --git a/trunk/include/asm-arm/hardware/sharpsl_pm.h b/trunk/arch/arm/include/asm/hardware/sharpsl_pm.h
similarity index 100%
rename from trunk/include/asm-arm/hardware/sharpsl_pm.h
rename to trunk/arch/arm/include/asm/hardware/sharpsl_pm.h
diff --git a/trunk/include/asm-arm/hardware/ssp.h b/trunk/arch/arm/include/asm/hardware/ssp.h
similarity index 100%
rename from trunk/include/asm-arm/hardware/ssp.h
rename to trunk/arch/arm/include/asm/hardware/ssp.h
diff --git a/trunk/include/asm-arm/hardware/uengine.h b/trunk/arch/arm/include/asm/hardware/uengine.h
similarity index 100%
rename from trunk/include/asm-arm/hardware/uengine.h
rename to trunk/arch/arm/include/asm/hardware/uengine.h
diff --git a/trunk/include/asm-arm/hardware/vic.h b/trunk/arch/arm/include/asm/hardware/vic.h
similarity index 97%
rename from trunk/include/asm-arm/hardware/vic.h
rename to trunk/arch/arm/include/asm/hardware/vic.h
index ed9ca3736a0b..263f2c362a30 100644
--- a/trunk/include/asm-arm/hardware/vic.h
+++ b/trunk/arch/arm/include/asm/hardware/vic.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/hardware/vic.h
+ * arch/arm/include/asm/hardware/vic.h
*
* Copyright (c) ARM Limited 2003. All rights reserved.
*
diff --git a/trunk/include/asm-arm/hw_irq.h b/trunk/arch/arm/include/asm/hw_irq.h
similarity index 100%
rename from trunk/include/asm-arm/hw_irq.h
rename to trunk/arch/arm/include/asm/hw_irq.h
diff --git a/trunk/include/asm-arm/hwcap.h b/trunk/arch/arm/include/asm/hwcap.h
similarity index 100%
rename from trunk/include/asm-arm/hwcap.h
rename to trunk/arch/arm/include/asm/hwcap.h
diff --git a/trunk/include/asm-arm/ide.h b/trunk/arch/arm/include/asm/ide.h
similarity index 93%
rename from trunk/include/asm-arm/ide.h
rename to trunk/arch/arm/include/asm/ide.h
index a48019f99d08..b507ce8e5019 100644
--- a/trunk/include/asm-arm/ide.h
+++ b/trunk/arch/arm/include/asm/ide.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/ide.h
+ * arch/arm/include/asm/ide.h
*
* Copyright (C) 1994-1996 Linus Torvalds & authors
*/
diff --git a/trunk/include/asm-arm/io.h b/trunk/arch/arm/include/asm/io.h
similarity index 99%
rename from trunk/include/asm-arm/io.h
rename to trunk/arch/arm/include/asm/io.h
index eebe56e74d6d..ffe07c0f46d8 100644
--- a/trunk/include/asm-arm/io.h
+++ b/trunk/arch/arm/include/asm/io.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/io.h
+ * arch/arm/include/asm/io.h
*
* Copyright (C) 1996-2000 Russell King
*
diff --git a/trunk/include/asm-arm/ioctl.h b/trunk/arch/arm/include/asm/ioctl.h
similarity index 100%
rename from trunk/include/asm-arm/ioctl.h
rename to trunk/arch/arm/include/asm/ioctl.h
diff --git a/trunk/include/asm-arm/ioctls.h b/trunk/arch/arm/include/asm/ioctls.h
similarity index 100%
rename from trunk/include/asm-arm/ioctls.h
rename to trunk/arch/arm/include/asm/ioctls.h
diff --git a/trunk/include/asm-arm/ipcbuf.h b/trunk/arch/arm/include/asm/ipcbuf.h
similarity index 100%
rename from trunk/include/asm-arm/ipcbuf.h
rename to trunk/arch/arm/include/asm/ipcbuf.h
diff --git a/trunk/include/asm-arm/irq.h b/trunk/arch/arm/include/asm/irq.h
similarity index 100%
rename from trunk/include/asm-arm/irq.h
rename to trunk/arch/arm/include/asm/irq.h
diff --git a/trunk/include/asm-arm/irq_regs.h b/trunk/arch/arm/include/asm/irq_regs.h
similarity index 100%
rename from trunk/include/asm-arm/irq_regs.h
rename to trunk/arch/arm/include/asm/irq_regs.h
diff --git a/trunk/include/asm-arm/irqflags.h b/trunk/arch/arm/include/asm/irqflags.h
similarity index 100%
rename from trunk/include/asm-arm/irqflags.h
rename to trunk/arch/arm/include/asm/irqflags.h
diff --git a/trunk/include/asm-arm/kdebug.h b/trunk/arch/arm/include/asm/kdebug.h
similarity index 100%
rename from trunk/include/asm-arm/kdebug.h
rename to trunk/arch/arm/include/asm/kdebug.h
diff --git a/trunk/include/asm-arm/kexec.h b/trunk/arch/arm/include/asm/kexec.h
similarity index 100%
rename from trunk/include/asm-arm/kexec.h
rename to trunk/arch/arm/include/asm/kexec.h
diff --git a/trunk/include/asm-arm/kgdb.h b/trunk/arch/arm/include/asm/kgdb.h
similarity index 100%
rename from trunk/include/asm-arm/kgdb.h
rename to trunk/arch/arm/include/asm/kgdb.h
diff --git a/trunk/include/asm-arm/kmap_types.h b/trunk/arch/arm/include/asm/kmap_types.h
similarity index 100%
rename from trunk/include/asm-arm/kmap_types.h
rename to trunk/arch/arm/include/asm/kmap_types.h
diff --git a/trunk/include/asm-arm/kprobes.h b/trunk/arch/arm/include/asm/kprobes.h
similarity index 98%
rename from trunk/include/asm-arm/kprobes.h
rename to trunk/arch/arm/include/asm/kprobes.h
index b1a37876942d..a5d0d99ad387 100644
--- a/trunk/include/asm-arm/kprobes.h
+++ b/trunk/arch/arm/include/asm/kprobes.h
@@ -1,5 +1,5 @@
/*
- * include/asm-arm/kprobes.h
+ * arch/arm/include/asm/kprobes.h
*
* Copyright (C) 2006, 2007 Motorola Inc.
*
diff --git a/trunk/include/asm-arm/leds.h b/trunk/arch/arm/include/asm/leds.h
similarity index 96%
rename from trunk/include/asm-arm/leds.h
rename to trunk/arch/arm/include/asm/leds.h
index 12290ea55801..c545739f39b7 100644
--- a/trunk/include/asm-arm/leds.h
+++ b/trunk/arch/arm/include/asm/leds.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/leds.h
+ * arch/arm/include/asm/leds.h
*
* Copyright (C) 1998 Russell King
*
diff --git a/trunk/include/asm-arm/limits.h b/trunk/arch/arm/include/asm/limits.h
similarity index 100%
rename from trunk/include/asm-arm/limits.h
rename to trunk/arch/arm/include/asm/limits.h
diff --git a/trunk/include/asm-arm/linkage.h b/trunk/arch/arm/include/asm/linkage.h
similarity index 100%
rename from trunk/include/asm-arm/linkage.h
rename to trunk/arch/arm/include/asm/linkage.h
diff --git a/trunk/include/asm-arm/local.h b/trunk/arch/arm/include/asm/local.h
similarity index 100%
rename from trunk/include/asm-arm/local.h
rename to trunk/arch/arm/include/asm/local.h
diff --git a/trunk/include/asm-arm/locks.h b/trunk/arch/arm/include/asm/locks.h
similarity index 99%
rename from trunk/include/asm-arm/locks.h
rename to trunk/arch/arm/include/asm/locks.h
index 852220eecdbc..ef4c897772d1 100644
--- a/trunk/include/asm-arm/locks.h
+++ b/trunk/arch/arm/include/asm/locks.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/locks.h
+ * arch/arm/include/asm/locks.h
*
* Copyright (C) 2000 Russell King
*
diff --git a/trunk/include/asm-arm/mach/arch.h b/trunk/arch/arm/include/asm/mach/arch.h
similarity index 97%
rename from trunk/include/asm-arm/mach/arch.h
rename to trunk/arch/arm/include/asm/mach/arch.h
index bcc8aed7c9a9..c59842dc7cb8 100644
--- a/trunk/include/asm-arm/mach/arch.h
+++ b/trunk/arch/arm/include/asm/mach/arch.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/mach/arch.h
+ * arch/arm/include/asm/mach/arch.h
*
* Copyright (C) 2000 Russell King
*
diff --git a/trunk/include/asm-arm/mach/dma.h b/trunk/arch/arm/include/asm/mach/dma.h
similarity index 97%
rename from trunk/include/asm-arm/mach/dma.h
rename to trunk/arch/arm/include/asm/mach/dma.h
index e7c4a20aad53..fc7278ea7146 100644
--- a/trunk/include/asm-arm/mach/dma.h
+++ b/trunk/arch/arm/include/asm/mach/dma.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/mach/dma.h
+ * arch/arm/include/asm/mach/dma.h
*
* Copyright (C) 1998-2000 Russell King
*
diff --git a/trunk/include/asm-arm/mach/flash.h b/trunk/arch/arm/include/asm/mach/flash.h
similarity index 96%
rename from trunk/include/asm-arm/mach/flash.h
rename to trunk/arch/arm/include/asm/mach/flash.h
index 05b029ef6371..4ca69fe2c850 100644
--- a/trunk/include/asm-arm/mach/flash.h
+++ b/trunk/arch/arm/include/asm/mach/flash.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/mach/flash.h
+ * arch/arm/include/asm/mach/flash.h
*
* Copyright (C) 2003 Russell King, All Rights Reserved.
*
diff --git a/trunk/include/asm-arm/mach/irda.h b/trunk/arch/arm/include/asm/mach/irda.h
similarity index 93%
rename from trunk/include/asm-arm/mach/irda.h
rename to trunk/arch/arm/include/asm/mach/irda.h
index 58984d9c0b0b..38f77b5e56cf 100644
--- a/trunk/include/asm-arm/mach/irda.h
+++ b/trunk/arch/arm/include/asm/mach/irda.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/mach/irda.h
+ * arch/arm/include/asm/mach/irda.h
*
* Copyright (C) 2004 Russell King.
*
diff --git a/trunk/include/asm-arm/mach/irq.h b/trunk/arch/arm/include/asm/mach/irq.h
similarity index 96%
rename from trunk/include/asm-arm/mach/irq.h
rename to trunk/arch/arm/include/asm/mach/irq.h
index eb0bfba6570d..c57b52ce574a 100644
--- a/trunk/include/asm-arm/mach/irq.h
+++ b/trunk/arch/arm/include/asm/mach/irq.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/mach/irq.h
+ * arch/arm/include/asm/mach/irq.h
*
* Copyright (C) 1995-2000 Russell King.
*
diff --git a/trunk/include/asm-arm/mach/map.h b/trunk/arch/arm/include/asm/mach/map.h
similarity index 96%
rename from trunk/include/asm-arm/mach/map.h
rename to trunk/arch/arm/include/asm/mach/map.h
index 7ef3c8390180..06f583b13999 100644
--- a/trunk/include/asm-arm/mach/map.h
+++ b/trunk/arch/arm/include/asm/mach/map.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/map.h
+ * arch/arm/include/asm/map.h
*
* Copyright (C) 1999-2000 Russell King
*
diff --git a/trunk/include/asm-arm/mach/mmc.h b/trunk/arch/arm/include/asm/mach/mmc.h
similarity index 88%
rename from trunk/include/asm-arm/mach/mmc.h
rename to trunk/arch/arm/include/asm/mach/mmc.h
index eb91145c00c4..4da332b03144 100644
--- a/trunk/include/asm-arm/mach/mmc.h
+++ b/trunk/arch/arm/include/asm/mach/mmc.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/mach/mmc.h
+ * arch/arm/include/asm/mach/mmc.h
*/
#ifndef ASMARM_MACH_MMC_H
#define ASMARM_MACH_MMC_H
diff --git a/trunk/include/asm-arm/mach/pci.h b/trunk/arch/arm/include/asm/mach/pci.h
similarity index 98%
rename from trunk/include/asm-arm/mach/pci.h
rename to trunk/arch/arm/include/asm/mach/pci.h
index 9d4f6b5ea419..32da1ae17e06 100644
--- a/trunk/include/asm-arm/mach/pci.h
+++ b/trunk/arch/arm/include/asm/mach/pci.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/mach/pci.h
+ * arch/arm/include/asm/mach/pci.h
*
* Copyright (C) 2000 Russell King
*
diff --git a/trunk/include/asm-arm/mach/serial_at91.h b/trunk/arch/arm/include/asm/mach/serial_at91.h
similarity index 94%
rename from trunk/include/asm-arm/mach/serial_at91.h
rename to trunk/arch/arm/include/asm/mach/serial_at91.h
index 55b317a89061..ea6d063923b8 100644
--- a/trunk/include/asm-arm/mach/serial_at91.h
+++ b/trunk/arch/arm/include/asm/mach/serial_at91.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/mach/serial_at91.h
+ * arch/arm/include/asm/mach/serial_at91.h
*
* Based on serial_sa1100.h by Nicolas Pitre
*
diff --git a/trunk/include/asm-arm/mach/serial_sa1100.h b/trunk/arch/arm/include/asm/mach/serial_sa1100.h
similarity index 86%
rename from trunk/include/asm-arm/mach/serial_sa1100.h
rename to trunk/arch/arm/include/asm/mach/serial_sa1100.h
index 20c22bb218d9..d09064bf95a0 100644
--- a/trunk/include/asm-arm/mach/serial_sa1100.h
+++ b/trunk/arch/arm/include/asm/mach/serial_sa1100.h
@@ -1,9 +1,9 @@
/*
- * linux/include/asm-arm/mach/serial_sa1100.h
+ * arch/arm/include/asm/mach/serial_sa1100.h
*
* Author: Nicolas Pitre
*
- * Moved to include/asm-arm/mach and changed lots, Russell King
+ * Moved and changed lots, Russell King
*
* Low level machine dependent UART functions.
*/
diff --git a/trunk/include/asm-arm/mach/sharpsl_param.h b/trunk/arch/arm/include/asm/mach/sharpsl_param.h
similarity index 100%
rename from trunk/include/asm-arm/mach/sharpsl_param.h
rename to trunk/arch/arm/include/asm/mach/sharpsl_param.h
diff --git a/trunk/include/asm-arm/mach/time.h b/trunk/arch/arm/include/asm/mach/time.h
similarity index 97%
rename from trunk/include/asm-arm/mach/time.h
rename to trunk/arch/arm/include/asm/mach/time.h
index 2fd36ea0130d..b2cc1fcd0400 100644
--- a/trunk/include/asm-arm/mach/time.h
+++ b/trunk/arch/arm/include/asm/mach/time.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/mach/time.h
+ * arch/arm/include/asm/mach/time.h
*
* Copyright (C) 2004 MontaVista Software, Inc.
*
diff --git a/trunk/include/asm-arm/mach/udc_pxa2xx.h b/trunk/arch/arm/include/asm/mach/udc_pxa2xx.h
similarity index 95%
rename from trunk/include/asm-arm/mach/udc_pxa2xx.h
rename to trunk/arch/arm/include/asm/mach/udc_pxa2xx.h
index 9e5ed7c0f27f..270902c353fd 100644
--- a/trunk/include/asm-arm/mach/udc_pxa2xx.h
+++ b/trunk/arch/arm/include/asm/mach/udc_pxa2xx.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/mach/udc_pxa2xx.h
+ * arch/arm/include/asm/mach/udc_pxa2xx.h
*
* This supports machine-specific differences in how the PXA2xx
* USB Device Controller (UDC) is wired.
diff --git a/trunk/include/asm-arm/mc146818rtc.h b/trunk/arch/arm/include/asm/mc146818rtc.h
similarity index 100%
rename from trunk/include/asm-arm/mc146818rtc.h
rename to trunk/arch/arm/include/asm/mc146818rtc.h
diff --git a/trunk/include/asm-arm/memory.h b/trunk/arch/arm/include/asm/memory.h
similarity index 99%
rename from trunk/include/asm-arm/memory.h
rename to trunk/arch/arm/include/asm/memory.h
index 9ba4d7136e6b..92069221dca9 100644
--- a/trunk/include/asm-arm/memory.h
+++ b/trunk/arch/arm/include/asm/memory.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/memory.h
+ * arch/arm/include/asm/memory.h
*
* Copyright (C) 2000-2002 Russell King
* modification for nommu, Hyok S. Choi, 2004
diff --git a/trunk/include/asm-arm/mman.h b/trunk/arch/arm/include/asm/mman.h
similarity index 100%
rename from trunk/include/asm-arm/mman.h
rename to trunk/arch/arm/include/asm/mman.h
diff --git a/trunk/include/asm-arm/mmu.h b/trunk/arch/arm/include/asm/mmu.h
similarity index 100%
rename from trunk/include/asm-arm/mmu.h
rename to trunk/arch/arm/include/asm/mmu.h
diff --git a/trunk/include/asm-arm/mmu_context.h b/trunk/arch/arm/include/asm/mmu_context.h
similarity index 98%
rename from trunk/include/asm-arm/mmu_context.h
rename to trunk/arch/arm/include/asm/mmu_context.h
index 91b9dfdfed52..a301e446007f 100644
--- a/trunk/include/asm-arm/mmu_context.h
+++ b/trunk/arch/arm/include/asm/mmu_context.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/mmu_context.h
+ * arch/arm/include/asm/mmu_context.h
*
* Copyright (C) 1996 Russell King.
*
diff --git a/trunk/include/asm-arm/mmzone.h b/trunk/arch/arm/include/asm/mmzone.h
similarity index 94%
rename from trunk/include/asm-arm/mmzone.h
rename to trunk/arch/arm/include/asm/mmzone.h
index b87de151f0a4..f2fbb5084901 100644
--- a/trunk/include/asm-arm/mmzone.h
+++ b/trunk/arch/arm/include/asm/mmzone.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/mmzone.h
+ * arch/arm/include/asm/mmzone.h
*
* 1999-12-29 Nicolas Pitre Created
*
diff --git a/trunk/include/asm-arm/module.h b/trunk/arch/arm/include/asm/module.h
similarity index 100%
rename from trunk/include/asm-arm/module.h
rename to trunk/arch/arm/include/asm/module.h
diff --git a/trunk/include/asm-arm/msgbuf.h b/trunk/arch/arm/include/asm/msgbuf.h
similarity index 100%
rename from trunk/include/asm-arm/msgbuf.h
rename to trunk/arch/arm/include/asm/msgbuf.h
diff --git a/trunk/include/asm-arm/mtd-xip.h b/trunk/arch/arm/include/asm/mtd-xip.h
similarity index 100%
rename from trunk/include/asm-arm/mtd-xip.h
rename to trunk/arch/arm/include/asm/mtd-xip.h
diff --git a/trunk/include/asm-arm/mutex.h b/trunk/arch/arm/include/asm/mutex.h
similarity index 98%
rename from trunk/include/asm-arm/mutex.h
rename to trunk/arch/arm/include/asm/mutex.h
index 020bd98710a1..93226cf23ae0 100644
--- a/trunk/include/asm-arm/mutex.h
+++ b/trunk/arch/arm/include/asm/mutex.h
@@ -1,5 +1,5 @@
/*
- * include/asm-arm/mutex.h
+ * arch/arm/include/asm/mutex.h
*
* ARM optimized mutex locking primitives
*
diff --git a/trunk/include/asm-arm/nwflash.h b/trunk/arch/arm/include/asm/nwflash.h
similarity index 100%
rename from trunk/include/asm-arm/nwflash.h
rename to trunk/arch/arm/include/asm/nwflash.h
diff --git a/trunk/include/asm-arm/page-nommu.h b/trunk/arch/arm/include/asm/page-nommu.h
similarity index 96%
rename from trunk/include/asm-arm/page-nommu.h
rename to trunk/arch/arm/include/asm/page-nommu.h
index ea1cde84f500..3574c0deb37f 100644
--- a/trunk/include/asm-arm/page-nommu.h
+++ b/trunk/arch/arm/include/asm/page-nommu.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/page-nommu.h
+ * arch/arm/include/asm/page-nommu.h
*
* Copyright (C) 2004 Hyok S. Choi
*
diff --git a/trunk/include/asm-arm/page.h b/trunk/arch/arm/include/asm/page.h
similarity index 99%
rename from trunk/include/asm-arm/page.h
rename to trunk/arch/arm/include/asm/page.h
index 7c5fc5582e5d..cf2e2680daaa 100644
--- a/trunk/include/asm-arm/page.h
+++ b/trunk/arch/arm/include/asm/page.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/page.h
+ * arch/arm/include/asm/page.h
*
* Copyright (C) 1995-2003 Russell King
*
diff --git a/trunk/include/asm-arm/param.h b/trunk/arch/arm/include/asm/param.h
similarity index 95%
rename from trunk/include/asm-arm/param.h
rename to trunk/arch/arm/include/asm/param.h
index 15806468ba72..8b24bf94c06b 100644
--- a/trunk/include/asm-arm/param.h
+++ b/trunk/arch/arm/include/asm/param.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/param.h
+ * arch/arm/include/asm/param.h
*
* Copyright (C) 1995-1999 Russell King
*
diff --git a/trunk/include/asm-arm/parport.h b/trunk/arch/arm/include/asm/parport.h
similarity index 86%
rename from trunk/include/asm-arm/parport.h
rename to trunk/arch/arm/include/asm/parport.h
index f2f90c76ddd1..26e94b09035a 100644
--- a/trunk/include/asm-arm/parport.h
+++ b/trunk/arch/arm/include/asm/parport.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/parport.h: ARM-specific parport initialisation
+ * arch/arm/include/asm/parport.h: ARM-specific parport initialisation
*
* Copyright (C) 1999, 2000 Tim Waugh
*
diff --git a/trunk/include/asm-arm/pci.h b/trunk/arch/arm/include/asm/pci.h
similarity index 100%
rename from trunk/include/asm-arm/pci.h
rename to trunk/arch/arm/include/asm/pci.h
diff --git a/trunk/include/asm-arm/percpu.h b/trunk/arch/arm/include/asm/percpu.h
similarity index 100%
rename from trunk/include/asm-arm/percpu.h
rename to trunk/arch/arm/include/asm/percpu.h
diff --git a/trunk/include/asm-arm/pgalloc.h b/trunk/arch/arm/include/asm/pgalloc.h
similarity index 98%
rename from trunk/include/asm-arm/pgalloc.h
rename to trunk/arch/arm/include/asm/pgalloc.h
index 163b0305dd76..3dcd64bf1824 100644
--- a/trunk/include/asm-arm/pgalloc.h
+++ b/trunk/arch/arm/include/asm/pgalloc.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/pgalloc.h
+ * arch/arm/include/asm/pgalloc.h
*
* Copyright (C) 2000-2001 Russell King
*
diff --git a/trunk/include/asm-arm/pgtable-hwdef.h b/trunk/arch/arm/include/asm/pgtable-hwdef.h
similarity index 98%
rename from trunk/include/asm-arm/pgtable-hwdef.h
rename to trunk/arch/arm/include/asm/pgtable-hwdef.h
index f3b5120c99fe..fd1521d5cb9d 100644
--- a/trunk/include/asm-arm/pgtable-hwdef.h
+++ b/trunk/arch/arm/include/asm/pgtable-hwdef.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/pgtable-hwdef.h
+ * arch/arm/include/asm/pgtable-hwdef.h
*
* Copyright (C) 1995-2002 Russell King
*
diff --git a/trunk/include/asm-arm/pgtable-nommu.h b/trunk/arch/arm/include/asm/pgtable-nommu.h
similarity index 98%
rename from trunk/include/asm-arm/pgtable-nommu.h
rename to trunk/arch/arm/include/asm/pgtable-nommu.h
index 386fcc10a973..b011f2e939aa 100644
--- a/trunk/include/asm-arm/pgtable-nommu.h
+++ b/trunk/arch/arm/include/asm/pgtable-nommu.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/pgtable-nommu.h
+ * arch/arm/include/asm/pgtable-nommu.h
*
* Copyright (C) 1995-2002 Russell King
* Copyright (C) 2004 Hyok S. Choi
diff --git a/trunk/include/asm-arm/pgtable.h b/trunk/arch/arm/include/asm/pgtable.h
similarity index 99%
rename from trunk/include/asm-arm/pgtable.h
rename to trunk/arch/arm/include/asm/pgtable.h
index 5571c13c3f3b..8ab060a53ab0 100644
--- a/trunk/include/asm-arm/pgtable.h
+++ b/trunk/arch/arm/include/asm/pgtable.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/pgtable.h
+ * arch/arm/include/asm/pgtable.h
*
* Copyright (C) 1995-2002 Russell King
*
diff --git a/trunk/include/asm-arm/poll.h b/trunk/arch/arm/include/asm/poll.h
similarity index 100%
rename from trunk/include/asm-arm/poll.h
rename to trunk/arch/arm/include/asm/poll.h
diff --git a/trunk/include/asm-arm/posix_types.h b/trunk/arch/arm/include/asm/posix_types.h
similarity index 98%
rename from trunk/include/asm-arm/posix_types.h
rename to trunk/arch/arm/include/asm/posix_types.h
index c37379dadcb2..2446d23bfdbf 100644
--- a/trunk/include/asm-arm/posix_types.h
+++ b/trunk/arch/arm/include/asm/posix_types.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/posix_types.h
+ * arch/arm/include/asm/posix_types.h
*
* Copyright (C) 1996-1998 Russell King.
*
diff --git a/trunk/include/asm-arm/proc-fns.h b/trunk/arch/arm/include/asm/proc-fns.h
similarity index 99%
rename from trunk/include/asm-arm/proc-fns.h
rename to trunk/arch/arm/include/asm/proc-fns.h
index 75ec760f4c74..db80203b68e0 100644
--- a/trunk/include/asm-arm/proc-fns.h
+++ b/trunk/arch/arm/include/asm/proc-fns.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/proc-fns.h
+ * arch/arm/include/asm/proc-fns.h
*
* Copyright (C) 1997-1999 Russell King
* Copyright (C) 2000 Deep Blue Solutions Ltd
diff --git a/trunk/include/asm-arm/processor.h b/trunk/arch/arm/include/asm/processor.h
similarity index 98%
rename from trunk/include/asm-arm/processor.h
rename to trunk/arch/arm/include/asm/processor.h
index bd8029e8dc67..b01d5e7e3d5a 100644
--- a/trunk/include/asm-arm/processor.h
+++ b/trunk/arch/arm/include/asm/processor.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/processor.h
+ * arch/arm/include/asm/processor.h
*
* Copyright (C) 1995-1999 Russell King
*
diff --git a/trunk/include/asm-arm/procinfo.h b/trunk/arch/arm/include/asm/procinfo.h
similarity index 97%
rename from trunk/include/asm-arm/procinfo.h
rename to trunk/arch/arm/include/asm/procinfo.h
index 4d3c685075e0..ca52e584ef74 100644
--- a/trunk/include/asm-arm/procinfo.h
+++ b/trunk/arch/arm/include/asm/procinfo.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/procinfo.h
+ * arch/arm/include/asm/procinfo.h
*
* Copyright (C) 1996-1999 Russell King
*
diff --git a/trunk/include/asm-arm/ptrace.h b/trunk/arch/arm/include/asm/ptrace.h
similarity index 99%
rename from trunk/include/asm-arm/ptrace.h
rename to trunk/arch/arm/include/asm/ptrace.h
index 8382b7510f94..b415c0e85458 100644
--- a/trunk/include/asm-arm/ptrace.h
+++ b/trunk/arch/arm/include/asm/ptrace.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/ptrace.h
+ * arch/arm/include/asm/ptrace.h
*
* Copyright (C) 1996-2003 Russell King
*
diff --git a/trunk/include/asm-arm/resource.h b/trunk/arch/arm/include/asm/resource.h
similarity index 100%
rename from trunk/include/asm-arm/resource.h
rename to trunk/arch/arm/include/asm/resource.h
diff --git a/trunk/include/asm-arm/scatterlist.h b/trunk/arch/arm/include/asm/scatterlist.h
similarity index 100%
rename from trunk/include/asm-arm/scatterlist.h
rename to trunk/arch/arm/include/asm/scatterlist.h
diff --git a/trunk/include/asm-arm/sections.h b/trunk/arch/arm/include/asm/sections.h
similarity index 100%
rename from trunk/include/asm-arm/sections.h
rename to trunk/arch/arm/include/asm/sections.h
diff --git a/trunk/include/asm-arm/segment.h b/trunk/arch/arm/include/asm/segment.h
similarity index 100%
rename from trunk/include/asm-arm/segment.h
rename to trunk/arch/arm/include/asm/segment.h
diff --git a/trunk/include/asm-arm/sembuf.h b/trunk/arch/arm/include/asm/sembuf.h
similarity index 100%
rename from trunk/include/asm-arm/sembuf.h
rename to trunk/arch/arm/include/asm/sembuf.h
diff --git a/trunk/include/asm-arm/serial.h b/trunk/arch/arm/include/asm/serial.h
similarity index 91%
rename from trunk/include/asm-arm/serial.h
rename to trunk/arch/arm/include/asm/serial.h
index 015b262dc145..ebb049091e26 100644
--- a/trunk/include/asm-arm/serial.h
+++ b/trunk/arch/arm/include/asm/serial.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/serial.h
+ * arch/arm/include/asm/serial.h
*
* Copyright (C) 1996 Russell King.
*
diff --git a/trunk/include/asm-arm/setup.h b/trunk/arch/arm/include/asm/setup.h
similarity index 100%
rename from trunk/include/asm-arm/setup.h
rename to trunk/arch/arm/include/asm/setup.h
diff --git a/trunk/include/asm-arm/shmbuf.h b/trunk/arch/arm/include/asm/shmbuf.h
similarity index 100%
rename from trunk/include/asm-arm/shmbuf.h
rename to trunk/arch/arm/include/asm/shmbuf.h
diff --git a/trunk/include/asm-arm/shmparam.h b/trunk/arch/arm/include/asm/shmparam.h
similarity index 100%
rename from trunk/include/asm-arm/shmparam.h
rename to trunk/arch/arm/include/asm/shmparam.h
diff --git a/trunk/include/asm-arm/sigcontext.h b/trunk/arch/arm/include/asm/sigcontext.h
similarity index 100%
rename from trunk/include/asm-arm/sigcontext.h
rename to trunk/arch/arm/include/asm/sigcontext.h
diff --git a/trunk/include/asm-arm/siginfo.h b/trunk/arch/arm/include/asm/siginfo.h
similarity index 100%
rename from trunk/include/asm-arm/siginfo.h
rename to trunk/arch/arm/include/asm/siginfo.h
diff --git a/trunk/include/asm-arm/signal.h b/trunk/arch/arm/include/asm/signal.h
similarity index 100%
rename from trunk/include/asm-arm/signal.h
rename to trunk/arch/arm/include/asm/signal.h
diff --git a/trunk/include/asm-arm/sizes.h b/trunk/arch/arm/include/asm/sizes.h
similarity index 100%
rename from trunk/include/asm-arm/sizes.h
rename to trunk/arch/arm/include/asm/sizes.h
diff --git a/trunk/include/asm-arm/smp.h b/trunk/arch/arm/include/asm/smp.h
similarity index 97%
rename from trunk/include/asm-arm/smp.h
rename to trunk/arch/arm/include/asm/smp.h
index 7fffa2404b8e..cc12a525a06a 100644
--- a/trunk/include/asm-arm/smp.h
+++ b/trunk/arch/arm/include/asm/smp.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/smp.h
+ * arch/arm/include/asm/smp.h
*
* Copyright (C) 2004-2005 ARM Ltd.
*
@@ -17,7 +17,7 @@
#include
#ifndef CONFIG_SMP
-# error " included in non-SMP build"
+# error " included in non-SMP build"
#endif
#define raw_smp_processor_id() (current_thread_info()->cpu)
diff --git a/trunk/include/asm-arm/socket.h b/trunk/arch/arm/include/asm/socket.h
similarity index 100%
rename from trunk/include/asm-arm/socket.h
rename to trunk/arch/arm/include/asm/socket.h
diff --git a/trunk/include/asm-arm/sockios.h b/trunk/arch/arm/include/asm/sockios.h
similarity index 100%
rename from trunk/include/asm-arm/sockios.h
rename to trunk/arch/arm/include/asm/sockios.h
diff --git a/trunk/include/asm-arm/sparsemem.h b/trunk/arch/arm/include/asm/sparsemem.h
similarity index 100%
rename from trunk/include/asm-arm/sparsemem.h
rename to trunk/arch/arm/include/asm/sparsemem.h
diff --git a/trunk/include/asm-arm/spinlock.h b/trunk/arch/arm/include/asm/spinlock.h
similarity index 100%
rename from trunk/include/asm-arm/spinlock.h
rename to trunk/arch/arm/include/asm/spinlock.h
diff --git a/trunk/include/asm-arm/spinlock_types.h b/trunk/arch/arm/include/asm/spinlock_types.h
similarity index 100%
rename from trunk/include/asm-arm/spinlock_types.h
rename to trunk/arch/arm/include/asm/spinlock_types.h
diff --git a/trunk/include/asm-arm/stat.h b/trunk/arch/arm/include/asm/stat.h
similarity index 100%
rename from trunk/include/asm-arm/stat.h
rename to trunk/arch/arm/include/asm/stat.h
diff --git a/trunk/include/asm-arm/statfs.h b/trunk/arch/arm/include/asm/statfs.h
similarity index 100%
rename from trunk/include/asm-arm/statfs.h
rename to trunk/arch/arm/include/asm/statfs.h
diff --git a/trunk/include/asm-arm/string.h b/trunk/arch/arm/include/asm/string.h
similarity index 100%
rename from trunk/include/asm-arm/string.h
rename to trunk/arch/arm/include/asm/string.h
diff --git a/trunk/include/asm-arm/suspend.h b/trunk/arch/arm/include/asm/suspend.h
similarity index 100%
rename from trunk/include/asm-arm/suspend.h
rename to trunk/arch/arm/include/asm/suspend.h
diff --git a/trunk/include/asm-arm/system.h b/trunk/arch/arm/include/asm/system.h
similarity index 100%
rename from trunk/include/asm-arm/system.h
rename to trunk/arch/arm/include/asm/system.h
diff --git a/trunk/include/asm-arm/termbits.h b/trunk/arch/arm/include/asm/termbits.h
similarity index 100%
rename from trunk/include/asm-arm/termbits.h
rename to trunk/arch/arm/include/asm/termbits.h
diff --git a/trunk/include/asm-arm/termios.h b/trunk/arch/arm/include/asm/termios.h
similarity index 100%
rename from trunk/include/asm-arm/termios.h
rename to trunk/arch/arm/include/asm/termios.h
diff --git a/trunk/include/asm-arm/therm.h b/trunk/arch/arm/include/asm/therm.h
similarity index 88%
rename from trunk/include/asm-arm/therm.h
rename to trunk/arch/arm/include/asm/therm.h
index e51c923ecdf3..f002f0197d78 100644
--- a/trunk/include/asm-arm/therm.h
+++ b/trunk/arch/arm/include/asm/therm.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/therm.h: Definitions for Dallas Semiconductor
+ * arch/arm/include/asm/therm.h: Definitions for Dallas Semiconductor
* DS1620 thermometer driver (as used in the Rebel.com NetWinder)
*/
#ifndef __ASM_THERM_H
diff --git a/trunk/include/asm-arm/thread_info.h b/trunk/arch/arm/include/asm/thread_info.h
similarity index 97%
rename from trunk/include/asm-arm/thread_info.h
rename to trunk/arch/arm/include/asm/thread_info.h
index d4be2d646160..e56fa48e4ae7 100644
--- a/trunk/include/asm-arm/thread_info.h
+++ b/trunk/arch/arm/include/asm/thread_info.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/thread_info.h
+ * arch/arm/include/asm/thread_info.h
*
* Copyright (C) 2002 Russell King.
*
@@ -117,7 +117,7 @@ extern void iwmmxt_task_switch(struct thread_info *);
/*
* We use bit 30 of the preempt_count to indicate that kernel
- * preemption is occurring. See include/asm-arm/hardirq.h.
+ * preemption is occurring. See .
*/
#define PREEMPT_ACTIVE 0x40000000
diff --git a/trunk/include/asm-arm/thread_notify.h b/trunk/arch/arm/include/asm/thread_notify.h
similarity index 96%
rename from trunk/include/asm-arm/thread_notify.h
rename to trunk/arch/arm/include/asm/thread_notify.h
index 8866e5216840..f27379d7f72a 100644
--- a/trunk/include/asm-arm/thread_notify.h
+++ b/trunk/arch/arm/include/asm/thread_notify.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/thread_notify.h
+ * arch/arm/include/asm/thread_notify.h
*
* Copyright (C) 2006 Russell King.
*
diff --git a/trunk/include/asm-arm/timex.h b/trunk/arch/arm/include/asm/timex.h
similarity index 93%
rename from trunk/include/asm-arm/timex.h
rename to trunk/arch/arm/include/asm/timex.h
index 7b8d4cb24be0..e50e2926cd6e 100644
--- a/trunk/include/asm-arm/timex.h
+++ b/trunk/arch/arm/include/asm/timex.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/timex.h
+ * arch/arm/include/asm/timex.h
*
* Copyright (C) 1997,1998 Russell King
*
diff --git a/trunk/include/asm-arm/tlb.h b/trunk/arch/arm/include/asm/tlb.h
similarity index 98%
rename from trunk/include/asm-arm/tlb.h
rename to trunk/arch/arm/include/asm/tlb.h
index 36bd402a21cb..857f1dfac794 100644
--- a/trunk/include/asm-arm/tlb.h
+++ b/trunk/arch/arm/include/asm/tlb.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/tlb.h
+ * arch/arm/include/asm/tlb.h
*
* Copyright (C) 2002 Russell King
*
diff --git a/trunk/include/asm-arm/tlbflush.h b/trunk/arch/arm/include/asm/tlbflush.h
similarity index 99%
rename from trunk/include/asm-arm/tlbflush.h
rename to trunk/arch/arm/include/asm/tlbflush.h
index 909656c747ef..0d0d40f1b599 100644
--- a/trunk/include/asm-arm/tlbflush.h
+++ b/trunk/arch/arm/include/asm/tlbflush.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/tlbflush.h
+ * arch/arm/include/asm/tlbflush.h
*
* Copyright (C) 1999-2003 Russell King
*
diff --git a/trunk/include/asm-arm/topology.h b/trunk/arch/arm/include/asm/topology.h
similarity index 100%
rename from trunk/include/asm-arm/topology.h
rename to trunk/arch/arm/include/asm/topology.h
diff --git a/trunk/include/asm-arm/traps.h b/trunk/arch/arm/include/asm/traps.h
similarity index 100%
rename from trunk/include/asm-arm/traps.h
rename to trunk/arch/arm/include/asm/traps.h
diff --git a/trunk/include/asm-arm/types.h b/trunk/arch/arm/include/asm/types.h
similarity index 100%
rename from trunk/include/asm-arm/types.h
rename to trunk/arch/arm/include/asm/types.h
diff --git a/trunk/include/asm-arm/uaccess.h b/trunk/arch/arm/include/asm/uaccess.h
similarity index 99%
rename from trunk/include/asm-arm/uaccess.h
rename to trunk/arch/arm/include/asm/uaccess.h
index 4c1a3fa9f259..d0f51ff900b5 100644
--- a/trunk/include/asm-arm/uaccess.h
+++ b/trunk/arch/arm/include/asm/uaccess.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/uaccess.h
+ * arch/arm/include/asm/uaccess.h
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
diff --git a/trunk/include/asm-arm/ucontext.h b/trunk/arch/arm/include/asm/ucontext.h
similarity index 100%
rename from trunk/include/asm-arm/ucontext.h
rename to trunk/arch/arm/include/asm/ucontext.h
diff --git a/trunk/include/asm-arm/unaligned.h b/trunk/arch/arm/include/asm/unaligned.h
similarity index 100%
rename from trunk/include/asm-arm/unaligned.h
rename to trunk/arch/arm/include/asm/unaligned.h
diff --git a/trunk/include/asm-arm/unistd.h b/trunk/arch/arm/include/asm/unistd.h
similarity index 99%
rename from trunk/include/asm-arm/unistd.h
rename to trunk/arch/arm/include/asm/unistd.h
index 7c570082b1e0..f95fbb2fcb5f 100644
--- a/trunk/include/asm-arm/unistd.h
+++ b/trunk/arch/arm/include/asm/unistd.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/unistd.h
+ * arch/arm/include/asm/unistd.h
*
* Copyright (C) 2001-2005 Russell King
*
diff --git a/trunk/include/asm-arm/user.h b/trunk/arch/arm/include/asm/user.h
similarity index 100%
rename from trunk/include/asm-arm/user.h
rename to trunk/arch/arm/include/asm/user.h
diff --git a/trunk/include/asm-arm/vfp.h b/trunk/arch/arm/include/asm/vfp.h
similarity index 98%
rename from trunk/include/asm-arm/vfp.h
rename to trunk/arch/arm/include/asm/vfp.h
index 5f9a2cb3d452..f4ab34fd4f72 100644
--- a/trunk/include/asm-arm/vfp.h
+++ b/trunk/arch/arm/include/asm/vfp.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/vfp.h
+ * arch/arm/include/asm/vfp.h
*
* VFP register definitions.
* First, the standard VFP set.
diff --git a/trunk/include/asm-arm/vfpmacros.h b/trunk/arch/arm/include/asm/vfpmacros.h
similarity index 97%
rename from trunk/include/asm-arm/vfpmacros.h
rename to trunk/arch/arm/include/asm/vfpmacros.h
index cccb3892e73c..422f3cc204a2 100644
--- a/trunk/include/asm-arm/vfpmacros.h
+++ b/trunk/arch/arm/include/asm/vfpmacros.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/vfpmacros.h
+ * arch/arm/include/asm/vfpmacros.h
*
* Assembler-only file containing VFP macros and register definitions.
*/
diff --git a/trunk/include/asm-arm/vga.h b/trunk/arch/arm/include/asm/vga.h
similarity index 100%
rename from trunk/include/asm-arm/vga.h
rename to trunk/arch/arm/include/asm/vga.h
diff --git a/trunk/include/asm-arm/xor.h b/trunk/arch/arm/include/asm/xor.h
similarity index 99%
rename from trunk/include/asm-arm/xor.h
rename to trunk/arch/arm/include/asm/xor.h
index e7c4cf58bed1..7604673dc427 100644
--- a/trunk/include/asm-arm/xor.h
+++ b/trunk/arch/arm/include/asm/xor.h
@@ -1,5 +1,5 @@
/*
- * linux/include/asm-arm/xor.h
+ * arch/arm/include/asm/xor.h
*
* Copyright (C) 2001 Russell King
*
diff --git a/trunk/arch/arm/kernel/head-common.S b/trunk/arch/arm/kernel/head-common.S
index 7e9c00a8a412..1c3c6ea5f9e7 100644
--- a/trunk/arch/arm/kernel/head-common.S
+++ b/trunk/arch/arm/kernel/head-common.S
@@ -181,7 +181,7 @@ ENTRY(lookup_processor_type)
ldmfd sp!, {r4 - r7, r9, pc}
/*
- * Look in include/asm-arm/procinfo.h and arch/arm/kernel/arch.[ch] for
+ * Look in and arch/arm/kernel/arch.[ch] for
* more information about the __proc_info and __arch_info structures.
*/
.long __proc_info_begin
diff --git a/trunk/arch/arm/lib/getuser.S b/trunk/arch/arm/lib/getuser.S
index 1dd8ea4f9a9c..2034d4dbe6ad 100644
--- a/trunk/arch/arm/lib/getuser.S
+++ b/trunk/arch/arm/lib/getuser.S
@@ -20,7 +20,7 @@
* r2, r3 contains the zero-extended value
* lr corrupted
*
- * No other registers must be altered. (see include/asm-arm/uaccess.h
+ * No other registers must be altered. (see
* for specific ASM register usage).
*
* Note that ADDR_LIMIT is either 0 or 0xc0000000.
diff --git a/trunk/arch/arm/lib/putuser.S b/trunk/arch/arm/lib/putuser.S
index 8620afe54f72..08ec7dffa52e 100644
--- a/trunk/arch/arm/lib/putuser.S
+++ b/trunk/arch/arm/lib/putuser.S
@@ -20,7 +20,7 @@
* Outputs: r0 is the error code
* lr corrupted
*
- * No other registers must be altered. (see include/asm-arm/uaccess.h
+ * No other registers must be altered. (see
* for specific ASM register usage).
*
* Note that ADDR_LIMIT is either 0 or 0xc0000000
diff --git a/trunk/arch/arm/mach-imx/clock.c b/trunk/arch/arm/mach-imx/clock.c
index 6a90fe5578df..8915a5fc63cd 100644
--- a/trunk/arch/arm/mach-imx/clock.c
+++ b/trunk/arch/arm/mach-imx/clock.c
@@ -172,24 +172,29 @@ struct clk *clk_get(struct device *dev, const char *id)
return clk;
}
+EXPORT_SYMBOL(clk_get);
void clk_put(struct clk *clk)
{
}
+EXPORT_SYMBOL(clk_put);
int clk_enable(struct clk *clk)
{
return 0;
}
+EXPORT_SYMBOL(clk_enable);
void clk_disable(struct clk *clk)
{
}
+EXPORT_SYMBOL(clk_disable);
unsigned long clk_get_rate(struct clk *clk)
{
return clk->get_rate();
}
+EXPORT_SYMBOL(clk_get_rate);
int imx_clocks_init(void)
{
diff --git a/trunk/arch/arm/mach-imx/generic.c b/trunk/arch/arm/mach-imx/generic.c
index 98ddd8a6d05f..c40650dcddf5 100644
--- a/trunk/arch/arm/mach-imx/generic.c
+++ b/trunk/arch/arm/mach-imx/generic.c
@@ -251,7 +251,6 @@ void __init set_imx_fb_info(struct imxfb_mach_info *hard_imx_fb_info)
{
memcpy(&imx_fb_info,hard_imx_fb_info,sizeof(struct imxfb_mach_info));
}
-EXPORT_SYMBOL(set_imx_fb_info);
static struct resource imxfb_resources[] = {
[0] = {
diff --git a/trunk/arch/arm/mach-imx/mx1ads.c b/trunk/arch/arm/mach-imx/mx1ads.c
index 9635d5812bcd..baeff24ff02d 100644
--- a/trunk/arch/arm/mach-imx/mx1ads.c
+++ b/trunk/arch/arm/mach-imx/mx1ads.c
@@ -125,7 +125,7 @@ static struct platform_device *devices[] __initdata = {
&imx_uart2_device,
};
-#ifdef CONFIG_MMC_IMX
+#if defined(CONFIG_MMC_IMX) || defined(CONFIG_MMC_IMX_MODULE)
static int mx1ads_mmc_card_present(struct device *dev)
{
/* MMC/SD Card Detect is PB 20 on MX1ADS V1.0.7 */
@@ -143,7 +143,7 @@ mx1ads_init(void)
#ifdef CONFIG_LEDS
imx_gpio_mode(GPIO_PORTA | GPIO_OUT | 2);
#endif
-#ifdef CONFIG_MMC_IMX
+#if defined(CONFIG_MMC_IMX) || defined(CONFIG_MMC_IMX_MODULE)
/* SD/MMC card detect */
imx_gpio_mode(GPIO_PORTB | GPIO_GIUS | GPIO_IN | 20);
imx_set_mmc_info(&mx1ads_mmc_info);
diff --git a/trunk/arch/arm/mach-ns9xxx/board-a9m9750dev.c b/trunk/arch/arm/mach-ns9xxx/board-a9m9750dev.c
index a494b71c0195..46b4f5a2e7f4 100644
--- a/trunk/arch/arm/mach-ns9xxx/board-a9m9750dev.c
+++ b/trunk/arch/arm/mach-ns9xxx/board-a9m9750dev.c
@@ -13,12 +13,12 @@
#include
#include
-#include
-#include
-#include
-#include
-#include
-#include
+#include
+#include
+#include
+#include
+#include
+#include
#include "board-a9m9750dev.h"
diff --git a/trunk/arch/arm/mach-ns9xxx/gpio-ns9360.c b/trunk/arch/arm/mach-ns9xxx/gpio-ns9360.c
index cabfb879dda9..7bc05a4b45b8 100644
--- a/trunk/arch/arm/mach-ns9xxx/gpio-ns9360.c
+++ b/trunk/arch/arm/mach-ns9xxx/gpio-ns9360.c
@@ -14,8 +14,8 @@
#include
#include
-#include
-#include
+#include
+#include
#include "gpio-ns9360.h"
diff --git a/trunk/arch/arm/mach-ns9xxx/gpio.c b/trunk/arch/arm/mach-ns9xxx/gpio.c
index b3c963b0c8f5..ed4c83389d4a 100644
--- a/trunk/arch/arm/mach-ns9xxx/gpio.c
+++ b/trunk/arch/arm/mach-ns9xxx/gpio.c
@@ -13,9 +13,9 @@
#include
#include
-#include
-#include
-#include
+#include
+#include
+#include
#include
#include
#include
diff --git a/trunk/arch/arm/mach-ns9xxx/irq.c b/trunk/arch/arm/mach-ns9xxx/irq.c
index ca85d24cf39f..d2964257797e 100644
--- a/trunk/arch/arm/mach-ns9xxx/irq.c
+++ b/trunk/arch/arm/mach-ns9xxx/irq.c
@@ -13,9 +13,9 @@
#include
#include
#include
-#include
-#include
-#include
+#include
+#include
+#include
#include "generic.h"
diff --git a/trunk/arch/arm/mach-ns9xxx/mach-cc9p9360dev.c b/trunk/arch/arm/mach-ns9xxx/mach-cc9p9360dev.c
index 9623fff6b3bc..7714233fb004 100644
--- a/trunk/arch/arm/mach-ns9xxx/mach-cc9p9360dev.c
+++ b/trunk/arch/arm/mach-ns9xxx/mach-cc9p9360dev.c
@@ -11,7 +11,7 @@
#include
#include
-#include
+#include
#include "board-a9m9750dev.h"
#include "generic.h"
diff --git a/trunk/arch/arm/mach-ns9xxx/mach-cc9p9360js.c b/trunk/arch/arm/mach-ns9xxx/mach-cc9p9360js.c
index fcc815bdd291..bdbd0bb1a0b3 100644
--- a/trunk/arch/arm/mach-ns9xxx/mach-cc9p9360js.c
+++ b/trunk/arch/arm/mach-ns9xxx/mach-cc9p9360js.c
@@ -11,7 +11,7 @@
#include
#include
-#include
+#include
#include "board-jscc9p9360.h"
#include "generic.h"
diff --git a/trunk/arch/arm/mach-ns9xxx/plat-serial8250.c b/trunk/arch/arm/mach-ns9xxx/plat-serial8250.c
index 5aa5d9baf8c8..c9cce9b4e6c9 100644
--- a/trunk/arch/arm/mach-ns9xxx/plat-serial8250.c
+++ b/trunk/arch/arm/mach-ns9xxx/plat-serial8250.c
@@ -11,8 +11,8 @@
#include
#include
-#include
-#include
+#include
+#include
#define DRIVER_NAME "serial8250"
diff --git a/trunk/arch/arm/mach-ns9xxx/processor-ns9360.c b/trunk/arch/arm/mach-ns9xxx/processor-ns9360.c
index 2bee0b7fccbb..8ee81b59b35d 100644
--- a/trunk/arch/arm/mach-ns9xxx/processor-ns9360.c
+++ b/trunk/arch/arm/mach-ns9xxx/processor-ns9360.c
@@ -14,8 +14,8 @@
#include
#include
-#include
-#include
+#include
+#include
void ns9360_reset(char mode)
{
diff --git a/trunk/arch/arm/mach-ns9xxx/time-ns9360.c b/trunk/arch/arm/mach-ns9xxx/time-ns9360.c
index 4d573c9793ed..66bd58262974 100644
--- a/trunk/arch/arm/mach-ns9xxx/time-ns9360.c
+++ b/trunk/arch/arm/mach-ns9xxx/time-ns9360.c
@@ -15,9 +15,9 @@
#include
#include
-#include
-#include
-#include
+#include
+#include
+#include
#include
#include "generic.h"
diff --git a/trunk/arch/arm/mach-pxa/pcm990-baseboard.c b/trunk/arch/arm/mach-pxa/pcm990-baseboard.c
index 30023b00e476..90056d56b210 100644
--- a/trunk/arch/arm/mach-pxa/pcm990-baseboard.c
+++ b/trunk/arch/arm/mach-pxa/pcm990-baseboard.c
@@ -22,7 +22,6 @@
#include
#include
-#include
#include
#include
diff --git a/trunk/arch/arm/mm/Kconfig b/trunk/arch/arm/mm/Kconfig
index 3a6c8ec34cd9..ed15f876c725 100644
--- a/trunk/arch/arm/mm/Kconfig
+++ b/trunk/arch/arm/mm/Kconfig
@@ -187,7 +187,7 @@ config CPU_ARM926T
ARCH_AT91SAM9260 || ARCH_AT91SAM9261 || \
ARCH_AT91SAM9263 || ARCH_AT91SAM9RL || \
ARCH_AT91SAM9G20 || ARCH_AT91CAP9 || \
- ARCH_NS9XXX || ARCH_DAVINCI
+ ARCH_NS9XXX || ARCH_DAVINCI || ARCH_MX2
default y if ARCH_VERSATILE_PB || MACH_VERSATILE_AB || \
ARCH_OMAP730 || ARCH_OMAP16XX || \
ARCH_PNX4008 || ARCH_NETX || CPU_S3C2412 || \
@@ -742,3 +742,11 @@ config CACHE_L2X0
select OUTER_CACHE
help
This option enables the L2x0 PrimeCell.
+
+config CACHE_XSC3L2
+ bool "Enable the L2 cache on XScale3"
+ depends on CPU_XSC3
+ default y
+ select OUTER_CACHE
+ help
+ This option enables the L2 cache on XScale3.
diff --git a/trunk/arch/arm/mm/cache-xsc3l2.c b/trunk/arch/arm/mm/cache-xsc3l2.c
new file mode 100644
index 000000000000..158bd96763d3
--- /dev/null
+++ b/trunk/arch/arm/mm/cache-xsc3l2.c
@@ -0,0 +1,182 @@
+/*
+ * arch/arm/mm/cache-xsc3l2.c - XScale3 L2 cache controller support
+ *
+ * Copyright (C) 2007 ARM Limited
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+#include
+#include
+
+#include
+#include
+#include
+
+#define CR_L2 (1 << 26)
+
+#define CACHE_LINE_SIZE 32
+#define CACHE_LINE_SHIFT 5
+#define CACHE_WAY_PER_SET 8
+
+#define CACHE_WAY_SIZE(l2ctype) (8192 << (((l2ctype) >> 8) & 0xf))
+#define CACHE_SET_SIZE(l2ctype) (CACHE_WAY_SIZE(l2ctype) >> CACHE_LINE_SHIFT)
+
+static inline int xsc3_l2_present(void)
+{
+ unsigned long l2ctype;
+
+ __asm__("mrc p15, 1, %0, c0, c0, 1" : "=r" (l2ctype));
+
+ return !!(l2ctype & 0xf8);
+}
+
+static inline void xsc3_l2_clean_mva(unsigned long addr)
+{
+ __asm__("mcr p15, 1, %0, c7, c11, 1" : : "r" (addr));
+}
+
+static inline void xsc3_l2_clean_pa(unsigned long addr)
+{
+ xsc3_l2_clean_mva(__phys_to_virt(addr));
+}
+
+static inline void xsc3_l2_inv_mva(unsigned long addr)
+{
+ __asm__("mcr p15, 1, %0, c7, c7, 1" : : "r" (addr));
+}
+
+static inline void xsc3_l2_inv_pa(unsigned long addr)
+{
+ xsc3_l2_inv_mva(__phys_to_virt(addr));
+}
+
+static inline void xsc3_l2_inv_all(void)
+{
+ unsigned long l2ctype, set_way;
+ int set, way;
+
+ __asm__("mrc p15, 1, %0, c0, c0, 1" : "=r" (l2ctype));
+
+ for (set = 0; set < CACHE_SET_SIZE(l2ctype); set++) {
+ for (way = 0; way < CACHE_WAY_PER_SET; way++) {
+ set_way = (way << 29) | (set << 5);
+ __asm__("mcr p15, 1, %0, c7, c11, 2" : : "r"(set_way));
+ }
+ }
+
+ dsb();
+}
+
+static void xsc3_l2_inv_range(unsigned long start, unsigned long end)
+{
+ if (start == 0 && end == -1ul) {
+ xsc3_l2_inv_all();
+ return;
+ }
+
+ /*
+ * Clean and invalidate partial first cache line.
+ */
+ if (start & (CACHE_LINE_SIZE - 1)) {
+ xsc3_l2_clean_pa(start & ~(CACHE_LINE_SIZE - 1));
+ xsc3_l2_inv_pa(start & ~(CACHE_LINE_SIZE - 1));
+ start = (start | (CACHE_LINE_SIZE - 1)) + 1;
+ }
+
+ /*
+ * Clean and invalidate partial last cache line.
+ */
+ if (end & (CACHE_LINE_SIZE - 1)) {
+ xsc3_l2_clean_pa(end & ~(CACHE_LINE_SIZE - 1));
+ xsc3_l2_inv_pa(end & ~(CACHE_LINE_SIZE - 1));
+ end &= ~(CACHE_LINE_SIZE - 1);
+ }
+
+ /*
+ * Invalidate all full cache lines between 'start' and 'end'.
+ */
+ while (start != end) {
+ xsc3_l2_inv_pa(start);
+ start += CACHE_LINE_SIZE;
+ }
+
+ dsb();
+}
+
+static void xsc3_l2_clean_range(unsigned long start, unsigned long end)
+{
+ start &= ~(CACHE_LINE_SIZE - 1);
+ while (start < end) {
+ xsc3_l2_clean_pa(start);
+ start += CACHE_LINE_SIZE;
+ }
+
+ dsb();
+}
+
+/*
+ * optimize L2 flush all operation by set/way format
+ */
+static inline void xsc3_l2_flush_all(void)
+{
+ unsigned long l2ctype, set_way;
+ int set, way;
+
+ __asm__("mrc p15, 1, %0, c0, c0, 1" : "=r" (l2ctype));
+
+ for (set = 0; set < CACHE_SET_SIZE(l2ctype); set++) {
+ for (way = 0; way < CACHE_WAY_PER_SET; way++) {
+ set_way = (way << 29) | (set << 5);
+ __asm__("mcr p15, 1, %0, c7, c15, 2" : : "r"(set_way));
+ }
+ }
+
+ dsb();
+}
+
+static void xsc3_l2_flush_range(unsigned long start, unsigned long end)
+{
+ if (start == 0 && end == -1ul) {
+ xsc3_l2_flush_all();
+ return;
+ }
+
+ start &= ~(CACHE_LINE_SIZE - 1);
+ while (start < end) {
+ xsc3_l2_clean_pa(start);
+ xsc3_l2_inv_pa(start);
+ start += CACHE_LINE_SIZE;
+ }
+
+ dsb();
+}
+
+static int __init xsc3_l2_init(void)
+{
+ if (!cpu_is_xsc3() || !xsc3_l2_present())
+ return 0;
+
+ if (!(get_cr() & CR_L2)) {
+ pr_info("XScale3 L2 cache enabled.\n");
+ adjust_cr(CR_L2, CR_L2);
+ xsc3_l2_inv_all();
+ }
+
+ outer_cache.inv_range = xsc3_l2_inv_range;
+ outer_cache.clean_range = xsc3_l2_clean_range;
+ outer_cache.flush_range = xsc3_l2_flush_range;
+
+ return 0;
+}
+core_initcall(xsc3_l2_init);
diff --git a/trunk/arch/arm/mm/init.c b/trunk/arch/arm/mm/init.c
index e6352946dde0..30a69d67d673 100644
--- a/trunk/arch/arm/mm/init.c
+++ b/trunk/arch/arm/mm/init.c
@@ -156,9 +156,9 @@ static int __init check_initrd(struct meminfo *mi)
}
if (initrd_node == -1) {
- printk(KERN_ERR "initrd (0x%08lx - 0x%08lx) extends beyond "
+ printk(KERN_ERR "INITRD: 0x%08lx+0x%08lx extends beyond "
"physical memory - disabling initrd\n",
- phys_initrd_start, end);
+ phys_initrd_start, phys_initrd_size);
phys_initrd_start = phys_initrd_size = 0;
}
#endif
@@ -239,24 +239,32 @@ bootmem_init_node(int node, int initrd_node, struct meminfo *mi)
reserve_bootmem_node(pgdat, boot_pfn << PAGE_SHIFT,
boot_pages << PAGE_SHIFT, BOOTMEM_DEFAULT);
+ /*
+ * Reserve any special node zero regions.
+ */
+ if (node == 0)
+ reserve_node_zero(pgdat);
+
#ifdef CONFIG_BLK_DEV_INITRD
/*
* If the initrd is in this node, reserve its memory.
*/
if (node == initrd_node) {
- reserve_bootmem_node(pgdat, phys_initrd_start,
- phys_initrd_size, BOOTMEM_DEFAULT);
- initrd_start = __phys_to_virt(phys_initrd_start);
- initrd_end = initrd_start + phys_initrd_size;
+ int res = reserve_bootmem_node(pgdat, phys_initrd_start,
+ phys_initrd_size, BOOTMEM_EXCLUSIVE);
+
+ if (res == 0) {
+ initrd_start = __phys_to_virt(phys_initrd_start);
+ initrd_end = initrd_start + phys_initrd_size;
+ } else {
+ printk(KERN_ERR
+ "INITRD: 0x%08lx+0x%08lx overlaps in-use "
+ "memory region - disabling initrd\n",
+ phys_initrd_start, phys_initrd_size);
+ }
}
#endif
- /*
- * Finally, reserve any node zero regions.
- */
- if (node == 0)
- reserve_node_zero(pgdat);
-
/*
* initialise the zones within this node.
*/
diff --git a/trunk/arch/arm/mm/ioremap.c b/trunk/arch/arm/mm/ioremap.c
index 303a7ff6bfd2..b81dbf9ffb77 100644
--- a/trunk/arch/arm/mm/ioremap.c
+++ b/trunk/arch/arm/mm/ioremap.c
@@ -259,7 +259,7 @@ remap_area_supersections(unsigned long virt, unsigned long pfn,
* caller shouldn't need to know that small detail.
*
* 'flags' are the extra L_PTE_ flags that you want to specify for this
- * mapping. See include/asm-arm/proc-armv/pgtable.h for more information.
+ * mapping. See for more information.
*/
void __iomem *
__arm_ioremap_pfn(unsigned long pfn, unsigned long offset, size_t size,
diff --git a/trunk/arch/arm/mm/proc-arm720.S b/trunk/arch/arm/mm/proc-arm720.S
index d64f8e6f75ab..eda733d30455 100644
--- a/trunk/arch/arm/mm/proc-arm720.S
+++ b/trunk/arch/arm/mm/proc-arm720.S
@@ -231,7 +231,7 @@ cpu_arm720_name:
.align
/*
- * See linux/include/asm-arm/procinfo.h for a definition of this structure.
+ * See for a definition of this structure.
*/
.section ".proc.info.init", #alloc, #execinstr
diff --git a/trunk/arch/arm/mm/proc-xsc3.S b/trunk/arch/arm/mm/proc-xsc3.S
index 3533741a76f6..6ff53c24510f 100644
--- a/trunk/arch/arm/mm/proc-xsc3.S
+++ b/trunk/arch/arm/mm/proc-xsc3.S
@@ -51,11 +51,6 @@
*/
#define CACHESIZE 32768
-/*
- * Run with L2 enabled.
- */
-#define L2_CACHE_ENABLE 1
-
/*
* This macro is used to wait for a CP15 write and is needed when we
* have to ensure that the last operation to the coprocessor was
@@ -265,12 +260,9 @@ ENTRY(xsc3_dma_inv_range)
tst r0, #CACHELINESIZE - 1
bic r0, r0, #CACHELINESIZE - 1
mcrne p15, 0, r0, c7, c10, 1 @ clean L1 D line
- mcrne p15, 1, r0, c7, c11, 1 @ clean L2 line
tst r1, #CACHELINESIZE - 1
mcrne p15, 0, r1, c7, c10, 1 @ clean L1 D line
- mcrne p15, 1, r1, c7, c11, 1 @ clean L2 line
1: mcr p15, 0, r0, c7, c6, 1 @ invalidate L1 D line
- mcr p15, 1, r0, c7, c7, 1 @ invalidate L2 line
add r0, r0, #CACHELINESIZE
cmp r0, r1
blo 1b
@@ -288,7 +280,6 @@ ENTRY(xsc3_dma_inv_range)
ENTRY(xsc3_dma_clean_range)
bic r0, r0, #CACHELINESIZE - 1
1: mcr p15, 0, r0, c7, c10, 1 @ clean L1 D line
- mcr p15, 1, r0, c7, c11, 1 @ clean L2 line
add r0, r0, #CACHELINESIZE
cmp r0, r1
blo 1b
@@ -306,8 +297,6 @@ ENTRY(xsc3_dma_clean_range)
ENTRY(xsc3_dma_flush_range)
bic r0, r0, #CACHELINESIZE - 1
1: mcr p15, 0, r0, c7, c14, 1 @ clean/invalidate L1 D line
- mcr p15, 1, r0, c7, c11, 1 @ clean L2 line
- mcr p15, 1, r0, c7, c7, 1 @ invalidate L2 line
add r0, r0, #CACHELINESIZE
cmp r0, r1
blo 1b
@@ -347,9 +336,7 @@ ENTRY(cpu_xsc3_switch_mm)
mcr p15, 0, ip, c7, c5, 0 @ invalidate L1 I cache and BTB
mcr p15, 0, ip, c7, c10, 4 @ data write barrier
mcr p15, 0, ip, c7, c5, 4 @ prefetch flush
-#ifdef L2_CACHE_ENABLE
orr r0, r0, #0x18 @ cache the page table in L2
-#endif
mcr p15, 0, r0, c2, c0, 0 @ load page table pointer
mcr p15, 0, ip, c8, c7, 0 @ invalidate I and D TLBs
cpwait_ret lr, ip
@@ -378,12 +365,10 @@ ENTRY(cpu_xsc3_set_pte_ext)
orreq r2, r2, #PTE_EXT_AP_UNO_SRW @ yes -> user n/a, system r/w
@ combined with user -> user r/w
-#if L2_CACHE_ENABLE
@ If it's cacheable, it needs to be in L2 also.
eor ip, r1, #L_PTE_CACHEABLE
tst ip, #L_PTE_CACHEABLE
orreq r2, r2, #PTE_EXT_TEX(0x5)
-#endif
tst r3, #L_PTE_PRESENT | L_PTE_YOUNG @ present and young?
movne r2, #0 @ no -> fault
@@ -408,9 +393,7 @@ __xsc3_setup:
mcr p15, 0, ip, c7, c10, 4 @ data write barrier
mcr p15, 0, ip, c7, c5, 4 @ prefetch flush
mcr p15, 0, ip, c8, c7, 0 @ invalidate I and D TLBs
-#if L2_CACHE_ENABLE
orr r4, r4, #0x18 @ cache the page table in L2
-#endif
mcr p15, 0, r4, c2, c0, 0 @ load page table pointer
mov r0, #0 @ don't allow CP access
@@ -418,9 +401,7 @@ __xsc3_setup:
mrc p15, 0, r0, c1, c0, 1 @ get auxiliary control reg
and r0, r0, #2 @ preserve bit P bit setting
-#if L2_CACHE_ENABLE
orr r0, r0, #(1 << 10) @ enable L2 for LLR cache
-#endif
mcr p15, 0, r0, c1, c0, 1 @ set auxiliary control reg
adr r5, xsc3_crval
@@ -429,9 +410,6 @@ __xsc3_setup:
bic r0, r0, r5 @ ..V. ..R. .... ..A.
orr r0, r0, r6 @ ..VI Z..S .... .C.M (mmu)
@ ...I Z..S .... .... (uc)
-#if L2_CACHE_ENABLE
- orr r0, r0, #0x04000000 @ L2 enable
-#endif
mov pc, lr
.size __xsc3_setup, . - __xsc3_setup
diff --git a/trunk/arch/arm/nwfpe/fpa11.h b/trunk/arch/arm/nwfpe/fpa11.h
index 4a4d02c09112..386cbd13eaf4 100644
--- a/trunk/arch/arm/nwfpe/fpa11.h
+++ b/trunk/arch/arm/nwfpe/fpa11.h
@@ -69,7 +69,7 @@ typedef union tagFPREG {
* This structure is exported to user space. Do not re-order.
* Only add new stuff to the end, and do not change the size of
* any element. Elements of this structure are used by user
- * space, and must match struct user_fp in include/asm-arm/user.h.
+ * space, and must match struct user_fp in .
* We include the byte offsets below for documentation purposes.
*
* The size of this structure and FPREG are checked by fpmodule.c
diff --git a/trunk/arch/m68k/mac/baboon.c b/trunk/arch/m68k/mac/baboon.c
index dae9c982aa89..c7b25b0aacff 100644
--- a/trunk/arch/m68k/mac/baboon.c
+++ b/trunk/arch/m68k/mac/baboon.c
@@ -11,7 +11,6 @@
#include
#include
#include
-#include
#include
#include
diff --git a/trunk/arch/m68k/mac/via.c b/trunk/arch/m68k/mac/via.c
index f3b27d04a31f..1bdb03c73c0f 100644
--- a/trunk/arch/m68k/mac/via.c
+++ b/trunk/arch/m68k/mac/via.c
@@ -27,7 +27,6 @@
#include
#include
#include
-#include
#include
#include
diff --git a/trunk/arch/mips/emma2rh/markeins/setup.c b/trunk/arch/mips/emma2rh/markeins/setup.c
index a56c4b804b07..822a20e21fa4 100644
--- a/trunk/arch/mips/emma2rh/markeins/setup.c
+++ b/trunk/arch/mips/emma2rh/markeins/setup.c
@@ -27,7 +27,6 @@
#include
#include
#include
-#include
#include
#include /* for HZ */
#include
diff --git a/trunk/arch/mips/jazz/setup.c b/trunk/arch/mips/jazz/setup.c
index f60524e8bc44..b59ba6b93cdd 100644
--- a/trunk/arch/mips/jazz/setup.c
+++ b/trunk/arch/mips/jazz/setup.c
@@ -10,7 +10,6 @@
* Copyright (C) 2007 by Thomas Bogendoerfer
*/
#include
-#include
#include
#include
#include
@@ -18,7 +17,6 @@
#include
#include
#include
-#include
#include
#include
#include
diff --git a/trunk/arch/mn10300/kernel/module.c b/trunk/arch/mn10300/kernel/module.c
index 0e4d2f6fa6e8..8fa36893df7a 100644
--- a/trunk/arch/mn10300/kernel/module.c
+++ b/trunk/arch/mn10300/kernel/module.c
@@ -24,6 +24,7 @@
#include
#include
#include
+#include
#if 0
#define DEBUGP printk
@@ -195,7 +196,7 @@ int module_finalize(const Elf_Ehdr *hdr,
const Elf_Shdr *sechdrs,
struct module *me)
{
- return 0;
+ return module_bug_finalize(hdr, sechdrs, me);
}
/*
@@ -203,4 +204,5 @@ int module_finalize(const Elf_Ehdr *hdr,
*/
void module_arch_cleanup(struct module *mod)
{
+ module_bug_cleanup(mod);
}
diff --git a/trunk/arch/powerpc/Kconfig.debug b/trunk/arch/powerpc/Kconfig.debug
index 8c8aadbe9563..4ebc52a19f0a 100644
--- a/trunk/arch/powerpc/Kconfig.debug
+++ b/trunk/arch/powerpc/Kconfig.debug
@@ -97,7 +97,7 @@ config IRQSTACKS
config VIRQ_DEBUG
bool "Expose hardware/virtual IRQ mapping via debugfs"
- depends on DEBUG_FS && PPC_MERGE
+ depends on DEBUG_FS
help
This option will show the mapping relationship between hardware irq
numbers and virtual irq numbers. The mapping is exposed via debugfs
diff --git a/trunk/arch/powerpc/boot/dts/mpc8610_hpcd.dts b/trunk/arch/powerpc/boot/dts/mpc8610_hpcd.dts
index 666185f59459..3b3a1062cb25 100644
--- a/trunk/arch/powerpc/boot/dts/mpc8610_hpcd.dts
+++ b/trunk/arch/powerpc/boot/dts/mpc8610_hpcd.dts
@@ -202,6 +202,11 @@
fsl,has-rstcr;
};
+ wdt@e4000 {
+ compatible = "fsl,mpc8610-wdt";
+ reg = <0xe4000 0x100>;
+ };
+
i2s@16000 {
compatible = "fsl,mpc8610-ssi";
cell-index = <0>;
diff --git a/trunk/arch/powerpc/boot/io.h b/trunk/arch/powerpc/boot/io.h
index ccaedaec50d5..7c09f4861fe1 100644
--- a/trunk/arch/powerpc/boot/io.h
+++ b/trunk/arch/powerpc/boot/io.h
@@ -6,7 +6,7 @@
/*
* Low-level I/O routines.
*
- * Copied from (which has no copyright)
+ * Copied from (which has no copyright)
*/
static inline int in_8(const volatile unsigned char *addr)
{
diff --git a/trunk/include/asm-powerpc/8253pit.h b/trunk/arch/powerpc/include/asm/8253pit.h
similarity index 100%
rename from trunk/include/asm-powerpc/8253pit.h
rename to trunk/arch/powerpc/include/asm/8253pit.h
diff --git a/trunk/include/asm-powerpc/8xx_immap.h b/trunk/arch/powerpc/include/asm/8xx_immap.h
similarity index 100%
rename from trunk/include/asm-powerpc/8xx_immap.h
rename to trunk/arch/powerpc/include/asm/8xx_immap.h
diff --git a/trunk/include/asm-powerpc/Kbuild b/trunk/arch/powerpc/include/asm/Kbuild
similarity index 100%
rename from trunk/include/asm-powerpc/Kbuild
rename to trunk/arch/powerpc/include/asm/Kbuild
diff --git a/trunk/include/asm-powerpc/a.out.h b/trunk/arch/powerpc/include/asm/a.out.h
similarity index 100%
rename from trunk/include/asm-powerpc/a.out.h
rename to trunk/arch/powerpc/include/asm/a.out.h
diff --git a/trunk/include/asm-powerpc/abs_addr.h b/trunk/arch/powerpc/include/asm/abs_addr.h
similarity index 100%
rename from trunk/include/asm-powerpc/abs_addr.h
rename to trunk/arch/powerpc/include/asm/abs_addr.h
diff --git a/trunk/include/asm-powerpc/agp.h b/trunk/arch/powerpc/include/asm/agp.h
similarity index 100%
rename from trunk/include/asm-powerpc/agp.h
rename to trunk/arch/powerpc/include/asm/agp.h
diff --git a/trunk/include/asm-powerpc/asm-compat.h b/trunk/arch/powerpc/include/asm/asm-compat.h
similarity index 100%
rename from trunk/include/asm-powerpc/asm-compat.h
rename to trunk/arch/powerpc/include/asm/asm-compat.h
diff --git a/trunk/include/asm-powerpc/atomic.h b/trunk/arch/powerpc/include/asm/atomic.h
similarity index 100%
rename from trunk/include/asm-powerpc/atomic.h
rename to trunk/arch/powerpc/include/asm/atomic.h
diff --git a/trunk/include/asm-powerpc/auxvec.h b/trunk/arch/powerpc/include/asm/auxvec.h
similarity index 100%
rename from trunk/include/asm-powerpc/auxvec.h
rename to trunk/arch/powerpc/include/asm/auxvec.h
diff --git a/trunk/include/asm-powerpc/backlight.h b/trunk/arch/powerpc/include/asm/backlight.h
similarity index 100%
rename from trunk/include/asm-powerpc/backlight.h
rename to trunk/arch/powerpc/include/asm/backlight.h
diff --git a/trunk/include/asm-powerpc/bitops.h b/trunk/arch/powerpc/include/asm/bitops.h
similarity index 100%
rename from trunk/include/asm-powerpc/bitops.h
rename to trunk/arch/powerpc/include/asm/bitops.h
diff --git a/trunk/include/asm-powerpc/bootx.h b/trunk/arch/powerpc/include/asm/bootx.h
similarity index 100%
rename from trunk/include/asm-powerpc/bootx.h
rename to trunk/arch/powerpc/include/asm/bootx.h
diff --git a/trunk/include/asm-powerpc/btext.h b/trunk/arch/powerpc/include/asm/btext.h
similarity index 100%
rename from trunk/include/asm-powerpc/btext.h
rename to trunk/arch/powerpc/include/asm/btext.h
diff --git a/trunk/include/asm-powerpc/bug.h b/trunk/arch/powerpc/include/asm/bug.h
similarity index 100%
rename from trunk/include/asm-powerpc/bug.h
rename to trunk/arch/powerpc/include/asm/bug.h
diff --git a/trunk/include/asm-powerpc/bugs.h b/trunk/arch/powerpc/include/asm/bugs.h
similarity index 100%
rename from trunk/include/asm-powerpc/bugs.h
rename to trunk/arch/powerpc/include/asm/bugs.h
diff --git a/trunk/include/asm-powerpc/byteorder.h b/trunk/arch/powerpc/include/asm/byteorder.h
similarity index 100%
rename from trunk/include/asm-powerpc/byteorder.h
rename to trunk/arch/powerpc/include/asm/byteorder.h
diff --git a/trunk/include/asm-powerpc/cache.h b/trunk/arch/powerpc/include/asm/cache.h
similarity index 100%
rename from trunk/include/asm-powerpc/cache.h
rename to trunk/arch/powerpc/include/asm/cache.h
diff --git a/trunk/include/asm-powerpc/cacheflush.h b/trunk/arch/powerpc/include/asm/cacheflush.h
similarity index 100%
rename from trunk/include/asm-powerpc/cacheflush.h
rename to trunk/arch/powerpc/include/asm/cacheflush.h
diff --git a/trunk/include/asm-powerpc/cell-pmu.h b/trunk/arch/powerpc/include/asm/cell-pmu.h
similarity index 100%
rename from trunk/include/asm-powerpc/cell-pmu.h
rename to trunk/arch/powerpc/include/asm/cell-pmu.h
diff --git a/trunk/include/asm-powerpc/cell-regs.h b/trunk/arch/powerpc/include/asm/cell-regs.h
similarity index 100%
rename from trunk/include/asm-powerpc/cell-regs.h
rename to trunk/arch/powerpc/include/asm/cell-regs.h
diff --git a/trunk/include/asm-powerpc/checksum.h b/trunk/arch/powerpc/include/asm/checksum.h
similarity index 100%
rename from trunk/include/asm-powerpc/checksum.h
rename to trunk/arch/powerpc/include/asm/checksum.h
diff --git a/trunk/include/asm-powerpc/clk_interface.h b/trunk/arch/powerpc/include/asm/clk_interface.h
similarity index 100%
rename from trunk/include/asm-powerpc/clk_interface.h
rename to trunk/arch/powerpc/include/asm/clk_interface.h
diff --git a/trunk/include/asm-powerpc/code-patching.h b/trunk/arch/powerpc/include/asm/code-patching.h
similarity index 100%
rename from trunk/include/asm-powerpc/code-patching.h
rename to trunk/arch/powerpc/include/asm/code-patching.h
diff --git a/trunk/include/asm-powerpc/compat.h b/trunk/arch/powerpc/include/asm/compat.h
similarity index 100%
rename from trunk/include/asm-powerpc/compat.h
rename to trunk/arch/powerpc/include/asm/compat.h
diff --git a/trunk/include/asm-powerpc/cpm.h b/trunk/arch/powerpc/include/asm/cpm.h
similarity index 100%
rename from trunk/include/asm-powerpc/cpm.h
rename to trunk/arch/powerpc/include/asm/cpm.h
diff --git a/trunk/include/asm-powerpc/cpm1.h b/trunk/arch/powerpc/include/asm/cpm1.h
similarity index 100%
rename from trunk/include/asm-powerpc/cpm1.h
rename to trunk/arch/powerpc/include/asm/cpm1.h
diff --git a/trunk/include/asm-powerpc/cpm2.h b/trunk/arch/powerpc/include/asm/cpm2.h
similarity index 100%
rename from trunk/include/asm-powerpc/cpm2.h
rename to trunk/arch/powerpc/include/asm/cpm2.h
diff --git a/trunk/include/asm-powerpc/cputable.h b/trunk/arch/powerpc/include/asm/cputable.h
similarity index 100%
rename from trunk/include/asm-powerpc/cputable.h
rename to trunk/arch/powerpc/include/asm/cputable.h
diff --git a/trunk/include/asm-powerpc/cputhreads.h b/trunk/arch/powerpc/include/asm/cputhreads.h
similarity index 100%
rename from trunk/include/asm-powerpc/cputhreads.h
rename to trunk/arch/powerpc/include/asm/cputhreads.h
diff --git a/trunk/include/asm-powerpc/cputime.h b/trunk/arch/powerpc/include/asm/cputime.h
similarity index 100%
rename from trunk/include/asm-powerpc/cputime.h
rename to trunk/arch/powerpc/include/asm/cputime.h
diff --git a/trunk/include/asm-powerpc/current.h b/trunk/arch/powerpc/include/asm/current.h
similarity index 100%
rename from trunk/include/asm-powerpc/current.h
rename to trunk/arch/powerpc/include/asm/current.h
diff --git a/trunk/include/asm-powerpc/dbdma.h b/trunk/arch/powerpc/include/asm/dbdma.h
similarity index 100%
rename from trunk/include/asm-powerpc/dbdma.h
rename to trunk/arch/powerpc/include/asm/dbdma.h
diff --git a/trunk/include/asm-powerpc/dcr-generic.h b/trunk/arch/powerpc/include/asm/dcr-generic.h
similarity index 100%
rename from trunk/include/asm-powerpc/dcr-generic.h
rename to trunk/arch/powerpc/include/asm/dcr-generic.h
diff --git a/trunk/include/asm-powerpc/dcr-mmio.h b/trunk/arch/powerpc/include/asm/dcr-mmio.h
similarity index 100%
rename from trunk/include/asm-powerpc/dcr-mmio.h
rename to trunk/arch/powerpc/include/asm/dcr-mmio.h
diff --git a/trunk/include/asm-powerpc/dcr-native.h b/trunk/arch/powerpc/include/asm/dcr-native.h
similarity index 100%
rename from trunk/include/asm-powerpc/dcr-native.h
rename to trunk/arch/powerpc/include/asm/dcr-native.h
diff --git a/trunk/include/asm-powerpc/dcr-regs.h b/trunk/arch/powerpc/include/asm/dcr-regs.h
similarity index 100%
rename from trunk/include/asm-powerpc/dcr-regs.h
rename to trunk/arch/powerpc/include/asm/dcr-regs.h
diff --git a/trunk/include/asm-powerpc/dcr.h b/trunk/arch/powerpc/include/asm/dcr.h
similarity index 94%
rename from trunk/include/asm-powerpc/dcr.h
rename to trunk/arch/powerpc/include/asm/dcr.h
index 53b283050ab3..d13fb68bb5c0 100644
--- a/trunk/include/asm-powerpc/dcr.h
+++ b/trunk/arch/powerpc/include/asm/dcr.h
@@ -65,17 +65,13 @@ typedef dcr_host_mmio_t dcr_host_t;
#endif /* defined(CONFIG_PPC_DCR_NATIVE) && defined(CONFIG_PPC_DCR_MMIO) */
/*
- * On CONFIG_PPC_MERGE, we have additional helpers to read the DCR
- * base from the device-tree
+ * additional helpers to read the DCR * base from the device-tree
*/
-#ifdef CONFIG_PPC_MERGE
struct device_node;
extern unsigned int dcr_resource_start(struct device_node *np,
unsigned int index);
extern unsigned int dcr_resource_len(struct device_node *np,
unsigned int index);
-#endif /* CONFIG_PPC_MERGE */
-
#endif /* CONFIG_PPC_DCR */
#endif /* __ASSEMBLY__ */
#endif /* __KERNEL__ */
diff --git a/trunk/include/asm-powerpc/delay.h b/trunk/arch/powerpc/include/asm/delay.h
similarity index 100%
rename from trunk/include/asm-powerpc/delay.h
rename to trunk/arch/powerpc/include/asm/delay.h
diff --git a/trunk/include/asm-powerpc/device.h b/trunk/arch/powerpc/include/asm/device.h
similarity index 100%
rename from trunk/include/asm-powerpc/device.h
rename to trunk/arch/powerpc/include/asm/device.h
diff --git a/trunk/include/asm-powerpc/div64.h b/trunk/arch/powerpc/include/asm/div64.h
similarity index 100%
rename from trunk/include/asm-powerpc/div64.h
rename to trunk/arch/powerpc/include/asm/div64.h
diff --git a/trunk/include/asm-powerpc/dma-mapping.h b/trunk/arch/powerpc/include/asm/dma-mapping.h
similarity index 100%
rename from trunk/include/asm-powerpc/dma-mapping.h
rename to trunk/arch/powerpc/include/asm/dma-mapping.h
diff --git a/trunk/include/asm-powerpc/dma.h b/trunk/arch/powerpc/include/asm/dma.h
similarity index 100%
rename from trunk/include/asm-powerpc/dma.h
rename to trunk/arch/powerpc/include/asm/dma.h
diff --git a/trunk/include/asm-powerpc/edac.h b/trunk/arch/powerpc/include/asm/edac.h
similarity index 100%
rename from trunk/include/asm-powerpc/edac.h
rename to trunk/arch/powerpc/include/asm/edac.h
diff --git a/trunk/include/asm-powerpc/eeh.h b/trunk/arch/powerpc/include/asm/eeh.h
similarity index 100%
rename from trunk/include/asm-powerpc/eeh.h
rename to trunk/arch/powerpc/include/asm/eeh.h
diff --git a/trunk/include/asm-powerpc/eeh_event.h b/trunk/arch/powerpc/include/asm/eeh_event.h
similarity index 100%
rename from trunk/include/asm-powerpc/eeh_event.h
rename to trunk/arch/powerpc/include/asm/eeh_event.h
diff --git a/trunk/include/asm-powerpc/elf.h b/trunk/arch/powerpc/include/asm/elf.h
similarity index 100%
rename from trunk/include/asm-powerpc/elf.h
rename to trunk/arch/powerpc/include/asm/elf.h
diff --git a/trunk/include/asm-powerpc/emergency-restart.h b/trunk/arch/powerpc/include/asm/emergency-restart.h
similarity index 100%
rename from trunk/include/asm-powerpc/emergency-restart.h
rename to trunk/arch/powerpc/include/asm/emergency-restart.h
diff --git a/trunk/include/asm-powerpc/errno.h b/trunk/arch/powerpc/include/asm/errno.h
similarity index 100%
rename from trunk/include/asm-powerpc/errno.h
rename to trunk/arch/powerpc/include/asm/errno.h
diff --git a/trunk/include/asm-powerpc/exception.h b/trunk/arch/powerpc/include/asm/exception.h
similarity index 100%
rename from trunk/include/asm-powerpc/exception.h
rename to trunk/arch/powerpc/include/asm/exception.h
diff --git a/trunk/include/asm-powerpc/fb.h b/trunk/arch/powerpc/include/asm/fb.h
similarity index 100%
rename from trunk/include/asm-powerpc/fb.h
rename to trunk/arch/powerpc/include/asm/fb.h
diff --git a/trunk/include/asm-powerpc/fcntl.h b/trunk/arch/powerpc/include/asm/fcntl.h
similarity index 100%
rename from trunk/include/asm-powerpc/fcntl.h
rename to trunk/arch/powerpc/include/asm/fcntl.h
diff --git a/trunk/include/asm-powerpc/feature-fixups.h b/trunk/arch/powerpc/include/asm/feature-fixups.h
similarity index 100%
rename from trunk/include/asm-powerpc/feature-fixups.h
rename to trunk/arch/powerpc/include/asm/feature-fixups.h
diff --git a/trunk/include/asm-powerpc/firmware.h b/trunk/arch/powerpc/include/asm/firmware.h
similarity index 100%
rename from trunk/include/asm-powerpc/firmware.h
rename to trunk/arch/powerpc/include/asm/firmware.h
diff --git a/trunk/include/asm-powerpc/fixmap.h b/trunk/arch/powerpc/include/asm/fixmap.h
similarity index 100%
rename from trunk/include/asm-powerpc/fixmap.h
rename to trunk/arch/powerpc/include/asm/fixmap.h
diff --git a/trunk/include/asm-powerpc/floppy.h b/trunk/arch/powerpc/include/asm/floppy.h
similarity index 100%
rename from trunk/include/asm-powerpc/floppy.h
rename to trunk/arch/powerpc/include/asm/floppy.h
diff --git a/trunk/include/asm-powerpc/fs_pd.h b/trunk/arch/powerpc/include/asm/fs_pd.h
similarity index 100%
rename from trunk/include/asm-powerpc/fs_pd.h
rename to trunk/arch/powerpc/include/asm/fs_pd.h
diff --git a/trunk/include/asm-powerpc/fsl_gtm.h b/trunk/arch/powerpc/include/asm/fsl_gtm.h
similarity index 100%
rename from trunk/include/asm-powerpc/fsl_gtm.h
rename to trunk/arch/powerpc/include/asm/fsl_gtm.h
diff --git a/trunk/include/asm-powerpc/fsl_lbc.h b/trunk/arch/powerpc/include/asm/fsl_lbc.h
similarity index 100%
rename from trunk/include/asm-powerpc/fsl_lbc.h
rename to trunk/arch/powerpc/include/asm/fsl_lbc.h
diff --git a/trunk/include/asm-powerpc/ftrace.h b/trunk/arch/powerpc/include/asm/ftrace.h
similarity index 100%
rename from trunk/include/asm-powerpc/ftrace.h
rename to trunk/arch/powerpc/include/asm/ftrace.h
diff --git a/trunk/include/asm-powerpc/futex.h b/trunk/arch/powerpc/include/asm/futex.h
similarity index 100%
rename from trunk/include/asm-powerpc/futex.h
rename to trunk/arch/powerpc/include/asm/futex.h
diff --git a/trunk/include/asm-powerpc/gpio.h b/trunk/arch/powerpc/include/asm/gpio.h
similarity index 100%
rename from trunk/include/asm-powerpc/gpio.h
rename to trunk/arch/powerpc/include/asm/gpio.h
diff --git a/trunk/include/asm-powerpc/grackle.h b/trunk/arch/powerpc/include/asm/grackle.h
similarity index 100%
rename from trunk/include/asm-powerpc/grackle.h
rename to trunk/arch/powerpc/include/asm/grackle.h
diff --git a/trunk/include/asm-powerpc/hardirq.h b/trunk/arch/powerpc/include/asm/hardirq.h
similarity index 100%
rename from trunk/include/asm-powerpc/hardirq.h
rename to trunk/arch/powerpc/include/asm/hardirq.h
diff --git a/trunk/include/asm-powerpc/heathrow.h b/trunk/arch/powerpc/include/asm/heathrow.h
similarity index 100%
rename from trunk/include/asm-powerpc/heathrow.h
rename to trunk/arch/powerpc/include/asm/heathrow.h
diff --git a/trunk/include/asm-powerpc/highmem.h b/trunk/arch/powerpc/include/asm/highmem.h
similarity index 100%
rename from trunk/include/asm-powerpc/highmem.h
rename to trunk/arch/powerpc/include/asm/highmem.h
diff --git a/trunk/include/asm-powerpc/hugetlb.h b/trunk/arch/powerpc/include/asm/hugetlb.h
similarity index 100%
rename from trunk/include/asm-powerpc/hugetlb.h
rename to trunk/arch/powerpc/include/asm/hugetlb.h
diff --git a/trunk/include/asm-powerpc/hvcall.h b/trunk/arch/powerpc/include/asm/hvcall.h
similarity index 100%
rename from trunk/include/asm-powerpc/hvcall.h
rename to trunk/arch/powerpc/include/asm/hvcall.h
diff --git a/trunk/include/asm-powerpc/hvconsole.h b/trunk/arch/powerpc/include/asm/hvconsole.h
similarity index 100%
rename from trunk/include/asm-powerpc/hvconsole.h
rename to trunk/arch/powerpc/include/asm/hvconsole.h
diff --git a/trunk/include/asm-powerpc/hvcserver.h b/trunk/arch/powerpc/include/asm/hvcserver.h
similarity index 100%
rename from trunk/include/asm-powerpc/hvcserver.h
rename to trunk/arch/powerpc/include/asm/hvcserver.h
diff --git a/trunk/include/asm-powerpc/hw_irq.h b/trunk/arch/powerpc/include/asm/hw_irq.h
similarity index 100%
rename from trunk/include/asm-powerpc/hw_irq.h
rename to trunk/arch/powerpc/include/asm/hw_irq.h
diff --git a/trunk/include/asm-powerpc/hydra.h b/trunk/arch/powerpc/include/asm/hydra.h
similarity index 100%
rename from trunk/include/asm-powerpc/hydra.h
rename to trunk/arch/powerpc/include/asm/hydra.h
diff --git a/trunk/include/asm-powerpc/i8259.h b/trunk/arch/powerpc/include/asm/i8259.h
similarity index 71%
rename from trunk/include/asm-powerpc/i8259.h
rename to trunk/arch/powerpc/include/asm/i8259.h
index db1362f8c603..105ade297aad 100644
--- a/trunk/include/asm-powerpc/i8259.h
+++ b/trunk/arch/powerpc/include/asm/i8259.h
@@ -4,14 +4,9 @@
#include
-#ifdef CONFIG_PPC_MERGE
extern void i8259_init(struct device_node *node, unsigned long intack_addr);
extern unsigned int i8259_irq(void);
extern struct irq_host *i8259_get_host(void);
-#else
-extern void i8259_init(unsigned long intack_addr, int offset);
-extern int i8259_irq(void);
-#endif
#endif /* __KERNEL__ */
#endif /* _ASM_POWERPC_I8259_H */
diff --git a/trunk/include/asm-powerpc/ibmebus.h b/trunk/arch/powerpc/include/asm/ibmebus.h
similarity index 100%
rename from trunk/include/asm-powerpc/ibmebus.h
rename to trunk/arch/powerpc/include/asm/ibmebus.h
diff --git a/trunk/include/asm-powerpc/ide.h b/trunk/arch/powerpc/include/asm/ide.h
similarity index 98%
rename from trunk/include/asm-powerpc/ide.h
rename to trunk/arch/powerpc/include/asm/ide.h
index 1aaf27be8741..048480e340f2 100644
--- a/trunk/include/asm-powerpc/ide.h
+++ b/trunk/arch/powerpc/include/asm/ide.h
@@ -20,7 +20,6 @@
#define __ide_mm_outsl(p, a, c) writesl((void __iomem *)(p), (a), (c))
#ifndef __powerpc64__
-#include
#include
/* FIXME: use ide_platform host driver */
diff --git a/trunk/include/asm-powerpc/immap_86xx.h b/trunk/arch/powerpc/include/asm/immap_86xx.h
similarity index 100%
rename from trunk/include/asm-powerpc/immap_86xx.h
rename to trunk/arch/powerpc/include/asm/immap_86xx.h
diff --git a/trunk/include/asm-powerpc/immap_cpm2.h b/trunk/arch/powerpc/include/asm/immap_cpm2.h
similarity index 100%
rename from trunk/include/asm-powerpc/immap_cpm2.h
rename to trunk/arch/powerpc/include/asm/immap_cpm2.h
diff --git a/trunk/include/asm-powerpc/immap_qe.h b/trunk/arch/powerpc/include/asm/immap_qe.h
similarity index 99%
rename from trunk/include/asm-powerpc/immap_qe.h
rename to trunk/arch/powerpc/include/asm/immap_qe.h
index 7b6f411db3e6..3c2fced3ac22 100644
--- a/trunk/include/asm-powerpc/immap_qe.h
+++ b/trunk/arch/powerpc/include/asm/immap_qe.h
@@ -1,6 +1,4 @@
/*
- * include/asm-powerpc/immap_qe.h
- *
* QUICC Engine (QE) Internal Memory Map.
* The Internal Memory Map for devices with QE on them. This
* is the superset of all QE devices (8360, etc.).
diff --git a/trunk/include/asm-powerpc/io-defs.h b/trunk/arch/powerpc/include/asm/io-defs.h
similarity index 100%
rename from trunk/include/asm-powerpc/io-defs.h
rename to trunk/arch/powerpc/include/asm/io-defs.h
diff --git a/trunk/include/asm-powerpc/io.h b/trunk/arch/powerpc/include/asm/io.h
similarity index 100%
rename from trunk/include/asm-powerpc/io.h
rename to trunk/arch/powerpc/include/asm/io.h
diff --git a/trunk/include/asm-powerpc/ioctl.h b/trunk/arch/powerpc/include/asm/ioctl.h
similarity index 100%
rename from trunk/include/asm-powerpc/ioctl.h
rename to trunk/arch/powerpc/include/asm/ioctl.h
diff --git a/trunk/include/asm-powerpc/ioctls.h b/trunk/arch/powerpc/include/asm/ioctls.h
similarity index 100%
rename from trunk/include/asm-powerpc/ioctls.h
rename to trunk/arch/powerpc/include/asm/ioctls.h
diff --git a/trunk/include/asm-powerpc/iommu.h b/trunk/arch/powerpc/include/asm/iommu.h
similarity index 100%
rename from trunk/include/asm-powerpc/iommu.h
rename to trunk/arch/powerpc/include/asm/iommu.h
diff --git a/trunk/include/asm-powerpc/ipcbuf.h b/trunk/arch/powerpc/include/asm/ipcbuf.h
similarity index 100%
rename from trunk/include/asm-powerpc/ipcbuf.h
rename to trunk/arch/powerpc/include/asm/ipcbuf.h
diff --git a/trunk/include/asm-powerpc/ipic.h b/trunk/arch/powerpc/include/asm/ipic.h
similarity index 93%
rename from trunk/include/asm-powerpc/ipic.h
rename to trunk/arch/powerpc/include/asm/ipic.h
index 8ff08be00146..fb59829983b8 100644
--- a/trunk/include/asm-powerpc/ipic.h
+++ b/trunk/arch/powerpc/include/asm/ipic.h
@@ -1,6 +1,4 @@
/*
- * include/asm-powerpc/ipic.h
- *
* IPIC external definitions and structure.
*
* Maintainer: Kumar Gala
@@ -79,15 +77,8 @@ extern void ipic_disable_mcp(enum ipic_mcp_irq mcp_irq);
extern u32 ipic_get_mcp_status(void);
extern void ipic_clear_mcp_status(u32 mask);
-#ifdef CONFIG_PPC_MERGE
extern struct ipic * ipic_init(struct device_node *node, unsigned int flags);
extern unsigned int ipic_get_irq(void);
-#else
-extern void ipic_init(phys_addr_t phys_addr, unsigned int flags,
- unsigned int irq_offset,
- unsigned char *senses, unsigned int senses_count);
-extern int ipic_get_irq(void);
-#endif
#endif /* __ASM_IPIC_H__ */
#endif /* __KERNEL__ */
diff --git a/trunk/include/asm-powerpc/irq.h b/trunk/arch/powerpc/include/asm/irq.h
similarity index 58%
rename from trunk/include/asm-powerpc/irq.h
rename to trunk/arch/powerpc/include/asm/irq.h
index 1ef8e304e0ea..a372f76836c2 100644
--- a/trunk/include/asm-powerpc/irq.h
+++ b/trunk/arch/powerpc/include/asm/irq.h
@@ -25,8 +25,6 @@
extern atomic_t ppc_n_lost_interrupts;
-#ifdef CONFIG_PPC_MERGE
-
/* This number is used when no interrupt has been assigned */
#define NO_IRQ (0)
@@ -326,292 +324,6 @@ static __inline__ int irq_canonicalize(int irq)
return irq;
}
-
-#else /* CONFIG_PPC_MERGE */
-
-/* This number is used when no interrupt has been assigned */
-#define NO_IRQ (-1)
-#define NO_IRQ_IGNORE (-2)
-
-
-/*
- * These constants are used for passing information about interrupt
- * signal polarity and level/edge sensing to the low-level PIC chip
- * drivers.
- */
-#define IRQ_SENSE_MASK 0x1
-#define IRQ_SENSE_LEVEL 0x1 /* interrupt on active level */
-#define IRQ_SENSE_EDGE 0x0 /* interrupt triggered by edge */
-
-#define IRQ_POLARITY_MASK 0x2
-#define IRQ_POLARITY_POSITIVE 0x2 /* high level or low->high edge */
-#define IRQ_POLARITY_NEGATIVE 0x0 /* low level or high->low edge */
-
-
-#if defined(CONFIG_40x)
-#include
-
-#ifndef NR_BOARD_IRQS
-#define NR_BOARD_IRQS 0
-#endif
-
-#ifndef UIC_WIDTH /* Number of interrupts per device */
-#define UIC_WIDTH 32
-#endif
-
-#ifndef NR_UICS /* number of UIC devices */
-#define NR_UICS 1
-#endif
-
-#if defined (CONFIG_403)
-/*
- * The PowerPC 403 cores' Asynchronous Interrupt Controller (AIC) has
- * 32 possible interrupts, a majority of which are not implemented on
- * all cores. There are six configurable, external interrupt pins and
- * there are eight internal interrupts for the on-chip serial port
- * (SPU), DMA controller, and JTAG controller.
- *
- */
-
-#define NR_AIC_IRQS 32
-#define NR_IRQS (NR_AIC_IRQS + NR_BOARD_IRQS)
-
-#elif !defined (CONFIG_403)
-
-/*
- * The PowerPC 405 cores' Universal Interrupt Controller (UIC) has 32
- * possible interrupts as well. There are seven, configurable external
- * interrupt pins and there are 17 internal interrupts for the on-chip
- * serial port, DMA controller, on-chip Ethernet controller, PCI, etc.
- *
- */
-
-
-#define NR_UIC_IRQS UIC_WIDTH
-#define NR_IRQS ((NR_UIC_IRQS * NR_UICS) + NR_BOARD_IRQS)
-#endif
-
-#elif defined(CONFIG_44x)
-#include
-
-#define NR_UIC_IRQS 32
-#define NR_IRQS ((NR_UIC_IRQS * NR_UICS) + NR_BOARD_IRQS)
-
-#elif defined(CONFIG_8xx)
-
-/* Now include the board configuration specific associations.
-*/
-#include
-
-/* The MPC8xx cores have 16 possible interrupts. There are eight
- * possible level sensitive interrupts assigned and generated internally
- * from such devices as CPM, PCMCIA, RTC, PIT, TimeBase and Decrementer.
- * There are eight external interrupts (IRQs) that can be configured
- * as either level or edge sensitive.
- *
- * On some implementations, there is also the possibility of an 8259
- * through the PCI and PCI-ISA bridges.
- *
- * We are "flattening" the interrupt vectors of the cascaded CPM
- * and 8259 interrupt controllers so that we can uniquely identify
- * any interrupt source with a single integer.
- */
-#define NR_SIU_INTS 16
-#define NR_CPM_INTS 32
-#ifndef NR_8259_INTS
-#define NR_8259_INTS 0
-#endif
-
-#define SIU_IRQ_OFFSET 0
-#define CPM_IRQ_OFFSET (SIU_IRQ_OFFSET + NR_SIU_INTS)
-#define I8259_IRQ_OFFSET (CPM_IRQ_OFFSET + NR_CPM_INTS)
-
-#define NR_IRQS (NR_SIU_INTS + NR_CPM_INTS + NR_8259_INTS)
-
-/* These values must be zero-based and map 1:1 with the SIU configuration.
- * They are used throughout the 8xx I/O subsystem to generate
- * interrupt masks, flags, and other control patterns. This is why the
- * current kernel assumption of the 8259 as the base controller is such
- * a pain in the butt.
- */
-#define SIU_IRQ0 (0) /* Highest priority */
-#define SIU_LEVEL0 (1)
-#define SIU_IRQ1 (2)
-#define SIU_LEVEL1 (3)
-#define SIU_IRQ2 (4)
-#define SIU_LEVEL2 (5)
-#define SIU_IRQ3 (6)
-#define SIU_LEVEL3 (7)
-#define SIU_IRQ4 (8)
-#define SIU_LEVEL4 (9)
-#define SIU_IRQ5 (10)
-#define SIU_LEVEL5 (11)
-#define SIU_IRQ6 (12)
-#define SIU_LEVEL6 (13)
-#define SIU_IRQ7 (14)
-#define SIU_LEVEL7 (15)
-
-#define MPC8xx_INT_FEC1 SIU_LEVEL1
-#define MPC8xx_INT_FEC2 SIU_LEVEL3
-
-#define MPC8xx_INT_SCC1 (CPM_IRQ_OFFSET + CPMVEC_SCC1)
-#define MPC8xx_INT_SCC2 (CPM_IRQ_OFFSET + CPMVEC_SCC2)
-#define MPC8xx_INT_SCC3 (CPM_IRQ_OFFSET + CPMVEC_SCC3)
-#define MPC8xx_INT_SCC4 (CPM_IRQ_OFFSET + CPMVEC_SCC4)
-#define MPC8xx_INT_SMC1 (CPM_IRQ_OFFSET + CPMVEC_SMC1)
-#define MPC8xx_INT_SMC2 (CPM_IRQ_OFFSET + CPMVEC_SMC2)
-
-/* The internal interrupts we can configure as we see fit.
- * My personal preference is CPM at level 2, which puts it above the
- * MBX PCI/ISA/IDE interrupts.
- */
-#ifndef PIT_INTERRUPT
-#define PIT_INTERRUPT SIU_LEVEL0
-#endif
-#ifndef CPM_INTERRUPT
-#define CPM_INTERRUPT SIU_LEVEL2
-#endif
-#ifndef PCMCIA_INTERRUPT
-#define PCMCIA_INTERRUPT SIU_LEVEL6
-#endif
-#ifndef DEC_INTERRUPT
-#define DEC_INTERRUPT SIU_LEVEL7
-#endif
-
-/* Some internal interrupt registers use an 8-bit mask for the interrupt
- * level instead of a number.
- */
-#define mk_int_int_mask(IL) (1 << (7 - (IL/2)))
-
-#else /* CONFIG_40x + CONFIG_8xx */
-/*
- * this is the # irq's for all ppc arch's (pmac/chrp/prep)
- * so it is the max of them all
- */
-#define NR_IRQS 256
-#define __DO_IRQ_CANON 1
-
-#ifndef CONFIG_8260
-
-#define NUM_8259_INTERRUPTS 16
-
-#else /* CONFIG_8260 */
-
-/* The 8260 has an internal interrupt controller with a maximum of
- * 64 IRQs. We will use NR_IRQs from above since it is large enough.
- * Don't be confused by the 8260 documentation where they list an
- * "interrupt number" and "interrupt vector". We are only interested
- * in the interrupt vector. There are "reserved" holes where the
- * vector number increases, but the interrupt number in the table does not.
- * (Document errata updates have fixed this...make sure you have up to
- * date processor documentation -- Dan).
- */
-
-#ifndef CPM_IRQ_OFFSET
-#define CPM_IRQ_OFFSET 0
-#endif
-
-#define NR_CPM_INTS 64
-
-#define SIU_INT_ERROR ((uint)0x00 + CPM_IRQ_OFFSET)
-#define SIU_INT_I2C ((uint)0x01 + CPM_IRQ_OFFSET)
-#define SIU_INT_SPI ((uint)0x02 + CPM_IRQ_OFFSET)
-#define SIU_INT_RISC ((uint)0x03 + CPM_IRQ_OFFSET)
-#define SIU_INT_SMC1 ((uint)0x04 + CPM_IRQ_OFFSET)
-#define SIU_INT_SMC2 ((uint)0x05 + CPM_IRQ_OFFSET)
-#define SIU_INT_IDMA1 ((uint)0x06 + CPM_IRQ_OFFSET)
-#define SIU_INT_IDMA2 ((uint)0x07 + CPM_IRQ_OFFSET)
-#define SIU_INT_IDMA3 ((uint)0x08 + CPM_IRQ_OFFSET)
-#define SIU_INT_IDMA4 ((uint)0x09 + CPM_IRQ_OFFSET)
-#define SIU_INT_SDMA ((uint)0x0a + CPM_IRQ_OFFSET)
-#define SIU_INT_USB ((uint)0x0b + CPM_IRQ_OFFSET)
-#define SIU_INT_TIMER1 ((uint)0x0c + CPM_IRQ_OFFSET)
-#define SIU_INT_TIMER2 ((uint)0x0d + CPM_IRQ_OFFSET)
-#define SIU_INT_TIMER3 ((uint)0x0e + CPM_IRQ_OFFSET)
-#define SIU_INT_TIMER4 ((uint)0x0f + CPM_IRQ_OFFSET)
-#define SIU_INT_TMCNT ((uint)0x10 + CPM_IRQ_OFFSET)
-#define SIU_INT_PIT ((uint)0x11 + CPM_IRQ_OFFSET)
-#define SIU_INT_PCI ((uint)0x12 + CPM_IRQ_OFFSET)
-#define SIU_INT_IRQ1 ((uint)0x13 + CPM_IRQ_OFFSET)
-#define SIU_INT_IRQ2 ((uint)0x14 + CPM_IRQ_OFFSET)
-#define SIU_INT_IRQ3 ((uint)0x15 + CPM_IRQ_OFFSET)
-#define SIU_INT_IRQ4 ((uint)0x16 + CPM_IRQ_OFFSET)
-#define SIU_INT_IRQ5 ((uint)0x17 + CPM_IRQ_OFFSET)
-#define SIU_INT_IRQ6 ((uint)0x18 + CPM_IRQ_OFFSET)
-#define SIU_INT_IRQ7 ((uint)0x19 + CPM_IRQ_OFFSET)
-#define SIU_INT_FCC1 ((uint)0x20 + CPM_IRQ_OFFSET)
-#define SIU_INT_FCC2 ((uint)0x21 + CPM_IRQ_OFFSET)
-#define SIU_INT_FCC3 ((uint)0x22 + CPM_IRQ_OFFSET)
-#define SIU_INT_MCC1 ((uint)0x24 + CPM_IRQ_OFFSET)
-#define SIU_INT_MCC2 ((uint)0x25 + CPM_IRQ_OFFSET)
-#define SIU_INT_SCC1 ((uint)0x28 + CPM_IRQ_OFFSET)
-#define SIU_INT_SCC2 ((uint)0x29 + CPM_IRQ_OFFSET)
-#define SIU_INT_SCC3 ((uint)0x2a + CPM_IRQ_OFFSET)
-#define SIU_INT_SCC4 ((uint)0x2b + CPM_IRQ_OFFSET)
-#define SIU_INT_PC15 ((uint)0x30 + CPM_IRQ_OFFSET)
-#define SIU_INT_PC14 ((uint)0x31 + CPM_IRQ_OFFSET)
-#define SIU_INT_PC13 ((uint)0x32 + CPM_IRQ_OFFSET)
-#define SIU_INT_PC12 ((uint)0x33 + CPM_IRQ_OFFSET)
-#define SIU_INT_PC11 ((uint)0x34 + CPM_IRQ_OFFSET)
-#define SIU_INT_PC10 ((uint)0x35 + CPM_IRQ_OFFSET)
-#define SIU_INT_PC9 ((uint)0x36 + CPM_IRQ_OFFSET)
-#define SIU_INT_PC8 ((uint)0x37 + CPM_IRQ_OFFSET)
-#define SIU_INT_PC7 ((uint)0x38 + CPM_IRQ_OFFSET)
-#define SIU_INT_PC6 ((uint)0x39 + CPM_IRQ_OFFSET)
-#define SIU_INT_PC5 ((uint)0x3a + CPM_IRQ_OFFSET)
-#define SIU_INT_PC4 ((uint)0x3b + CPM_IRQ_OFFSET)
-#define SIU_INT_PC3 ((uint)0x3c + CPM_IRQ_OFFSET)
-#define SIU_INT_PC2 ((uint)0x3d + CPM_IRQ_OFFSET)
-#define SIU_INT_PC1 ((uint)0x3e + CPM_IRQ_OFFSET)
-#define SIU_INT_PC0 ((uint)0x3f + CPM_IRQ_OFFSET)
-
-#endif /* CONFIG_8260 */
-
-#endif /* Whatever way too big #ifdef */
-
-#define NR_MASK_WORDS ((NR_IRQS + 31) / 32)
-/* pedantic: these are long because they are used with set_bit --RR */
-extern unsigned long ppc_cached_irq_mask[NR_MASK_WORDS];
-
-/*
- * Because many systems have two overlapping names spaces for
- * interrupts (ISA and XICS for example), and the ISA interrupts
- * have historically not been easy to renumber, we allow ISA
- * interrupts to take values 0 - 15, and shift up the remaining
- * interrupts by 0x10.
- */
-#define NUM_ISA_INTERRUPTS 0x10
-extern int __irq_offset_value;
-
-static inline int irq_offset_up(int irq)
-{
- return(irq + __irq_offset_value);
-}
-
-static inline int irq_offset_down(int irq)
-{
- return(irq - __irq_offset_value);
-}
-
-static inline int irq_offset_value(void)
-{
- return __irq_offset_value;
-}
-
-#ifdef __DO_IRQ_CANON
-extern int ppc_do_canonicalize_irqs;
-#else
-#define ppc_do_canonicalize_irqs 0
-#endif
-
-static __inline__ int irq_canonicalize(int irq)
-{
- if (ppc_do_canonicalize_irqs && irq == 2)
- irq = 9;
- return irq;
-}
-#endif /* CONFIG_PPC_MERGE */
-
extern int distribute_irqs;
struct irqaction;
diff --git a/trunk/include/asm-powerpc/irq_regs.h b/trunk/arch/powerpc/include/asm/irq_regs.h
similarity index 100%
rename from trunk/include/asm-powerpc/irq_regs.h
rename to trunk/arch/powerpc/include/asm/irq_regs.h
diff --git a/trunk/include/asm-powerpc/irqflags.h b/trunk/arch/powerpc/include/asm/irqflags.h
similarity index 93%
rename from trunk/include/asm-powerpc/irqflags.h
rename to trunk/arch/powerpc/include/asm/irqflags.h
index cc6fdba33660..17ba3a881bfd 100644
--- a/trunk/include/asm-powerpc/irqflags.h
+++ b/trunk/arch/powerpc/include/asm/irqflags.h
@@ -1,6 +1,4 @@
/*
- * include/asm-powerpc/irqflags.h
- *
* IRQ flags handling
*/
#ifndef _ASM_IRQFLAGS_H
@@ -10,7 +8,7 @@
/*
* Get definitions for raw_local_save_flags(x), etc.
*/
-#include
+#include
#else
#ifdef CONFIG_TRACE_IRQFLAGS
diff --git a/trunk/include/asm-powerpc/iseries/alpaca.h b/trunk/arch/powerpc/include/asm/iseries/alpaca.h
similarity index 100%
rename from trunk/include/asm-powerpc/iseries/alpaca.h
rename to trunk/arch/powerpc/include/asm/iseries/alpaca.h
diff --git a/trunk/include/asm-powerpc/iseries/hv_call.h b/trunk/arch/powerpc/include/asm/iseries/hv_call.h
similarity index 100%
rename from trunk/include/asm-powerpc/iseries/hv_call.h
rename to trunk/arch/powerpc/include/asm/iseries/hv_call.h
diff --git a/trunk/include/asm-powerpc/iseries/hv_call_event.h b/trunk/arch/powerpc/include/asm/iseries/hv_call_event.h
similarity index 100%
rename from trunk/include/asm-powerpc/iseries/hv_call_event.h
rename to trunk/arch/powerpc/include/asm/iseries/hv_call_event.h
diff --git a/trunk/include/asm-powerpc/iseries/hv_call_sc.h b/trunk/arch/powerpc/include/asm/iseries/hv_call_sc.h
similarity index 100%
rename from trunk/include/asm-powerpc/iseries/hv_call_sc.h
rename to trunk/arch/powerpc/include/asm/iseries/hv_call_sc.h
diff --git a/trunk/include/asm-powerpc/iseries/hv_call_xm.h b/trunk/arch/powerpc/include/asm/iseries/hv_call_xm.h
similarity index 100%
rename from trunk/include/asm-powerpc/iseries/hv_call_xm.h
rename to trunk/arch/powerpc/include/asm/iseries/hv_call_xm.h
diff --git a/trunk/include/asm-powerpc/iseries/hv_lp_config.h b/trunk/arch/powerpc/include/asm/iseries/hv_lp_config.h
similarity index 100%
rename from trunk/include/asm-powerpc/iseries/hv_lp_config.h
rename to trunk/arch/powerpc/include/asm/iseries/hv_lp_config.h
diff --git a/trunk/include/asm-powerpc/iseries/hv_lp_event.h b/trunk/arch/powerpc/include/asm/iseries/hv_lp_event.h
similarity index 100%
rename from trunk/include/asm-powerpc/iseries/hv_lp_event.h
rename to trunk/arch/powerpc/include/asm/iseries/hv_lp_event.h
diff --git a/trunk/include/asm-powerpc/iseries/hv_types.h b/trunk/arch/powerpc/include/asm/iseries/hv_types.h
similarity index 100%
rename from trunk/include/asm-powerpc/iseries/hv_types.h
rename to trunk/arch/powerpc/include/asm/iseries/hv_types.h
diff --git a/trunk/include/asm-powerpc/iseries/iommu.h b/trunk/arch/powerpc/include/asm/iseries/iommu.h
similarity index 100%
rename from trunk/include/asm-powerpc/iseries/iommu.h
rename to trunk/arch/powerpc/include/asm/iseries/iommu.h
diff --git a/trunk/include/asm-powerpc/iseries/it_lp_queue.h b/trunk/arch/powerpc/include/asm/iseries/it_lp_queue.h
similarity index 100%
rename from trunk/include/asm-powerpc/iseries/it_lp_queue.h
rename to trunk/arch/powerpc/include/asm/iseries/it_lp_queue.h
diff --git a/trunk/include/asm-powerpc/iseries/lpar_map.h b/trunk/arch/powerpc/include/asm/iseries/lpar_map.h
similarity index 100%
rename from trunk/include/asm-powerpc/iseries/lpar_map.h
rename to trunk/arch/powerpc/include/asm/iseries/lpar_map.h
diff --git a/trunk/include/asm-powerpc/iseries/mf.h b/trunk/arch/powerpc/include/asm/iseries/mf.h
similarity index 100%
rename from trunk/include/asm-powerpc/iseries/mf.h
rename to trunk/arch/powerpc/include/asm/iseries/mf.h
diff --git a/trunk/include/asm-powerpc/iseries/vio.h b/trunk/arch/powerpc/include/asm/iseries/vio.h
similarity index 100%
rename from trunk/include/asm-powerpc/iseries/vio.h
rename to trunk/arch/powerpc/include/asm/iseries/vio.h
diff --git a/trunk/include/asm-powerpc/kdebug.h b/trunk/arch/powerpc/include/asm/kdebug.h
similarity index 100%
rename from trunk/include/asm-powerpc/kdebug.h
rename to trunk/arch/powerpc/include/asm/kdebug.h
diff --git a/trunk/include/asm-powerpc/kdump.h b/trunk/arch/powerpc/include/asm/kdump.h
similarity index 100%
rename from trunk/include/asm-powerpc/kdump.h
rename to trunk/arch/powerpc/include/asm/kdump.h
diff --git a/trunk/include/asm-powerpc/kexec.h b/trunk/arch/powerpc/include/asm/kexec.h
similarity index 100%
rename from trunk/include/asm-powerpc/kexec.h
rename to trunk/arch/powerpc/include/asm/kexec.h
diff --git a/trunk/include/asm-powerpc/keylargo.h b/trunk/arch/powerpc/include/asm/keylargo.h
similarity index 100%
rename from trunk/include/asm-powerpc/keylargo.h
rename to trunk/arch/powerpc/include/asm/keylargo.h
diff --git a/trunk/include/asm-powerpc/kgdb.h b/trunk/arch/powerpc/include/asm/kgdb.h
similarity index 98%
rename from trunk/include/asm-powerpc/kgdb.h
rename to trunk/arch/powerpc/include/asm/kgdb.h
index 1399caf719ae..edd217006d27 100644
--- a/trunk/include/asm-powerpc/kgdb.h
+++ b/trunk/arch/powerpc/include/asm/kgdb.h
@@ -1,6 +1,4 @@
/*
- * include/asm-powerpc/kgdb.h
- *
* The PowerPC (32/64) specific defines / externs for KGDB. Based on
* the previous 32bit and 64bit specific files, which had the following
* copyrights:
diff --git a/trunk/include/asm-powerpc/kmap_types.h b/trunk/arch/powerpc/include/asm/kmap_types.h
similarity index 100%
rename from trunk/include/asm-powerpc/kmap_types.h
rename to trunk/arch/powerpc/include/asm/kmap_types.h
diff --git a/trunk/include/asm-powerpc/kprobes.h b/trunk/arch/powerpc/include/asm/kprobes.h
similarity index 100%
rename from trunk/include/asm-powerpc/kprobes.h
rename to trunk/arch/powerpc/include/asm/kprobes.h
diff --git a/trunk/include/asm-powerpc/kvm.h b/trunk/arch/powerpc/include/asm/kvm.h
similarity index 100%
rename from trunk/include/asm-powerpc/kvm.h
rename to trunk/arch/powerpc/include/asm/kvm.h
diff --git a/trunk/include/asm-powerpc/kvm_asm.h b/trunk/arch/powerpc/include/asm/kvm_asm.h
similarity index 100%
rename from trunk/include/asm-powerpc/kvm_asm.h
rename to trunk/arch/powerpc/include/asm/kvm_asm.h
diff --git a/trunk/include/asm-powerpc/kvm_host.h b/trunk/arch/powerpc/include/asm/kvm_host.h
similarity index 100%
rename from trunk/include/asm-powerpc/kvm_host.h
rename to trunk/arch/powerpc/include/asm/kvm_host.h
diff --git a/trunk/include/asm-powerpc/kvm_para.h b/trunk/arch/powerpc/include/asm/kvm_para.h
similarity index 100%
rename from trunk/include/asm-powerpc/kvm_para.h
rename to trunk/arch/powerpc/include/asm/kvm_para.h
diff --git a/trunk/include/asm-powerpc/kvm_ppc.h b/trunk/arch/powerpc/include/asm/kvm_ppc.h
similarity index 100%
rename from trunk/include/asm-powerpc/kvm_ppc.h
rename to trunk/arch/powerpc/include/asm/kvm_ppc.h
diff --git a/trunk/include/asm-powerpc/libata-portmap.h b/trunk/arch/powerpc/include/asm/libata-portmap.h
similarity index 100%
rename from trunk/include/asm-powerpc/libata-portmap.h
rename to trunk/arch/powerpc/include/asm/libata-portmap.h
diff --git a/trunk/include/asm-powerpc/linkage.h b/trunk/arch/powerpc/include/asm/linkage.h
similarity index 100%
rename from trunk/include/asm-powerpc/linkage.h
rename to trunk/arch/powerpc/include/asm/linkage.h
diff --git a/trunk/include/asm-powerpc/lmb.h b/trunk/arch/powerpc/include/asm/lmb.h
similarity index 100%
rename from trunk/include/asm-powerpc/lmb.h
rename to trunk/arch/powerpc/include/asm/lmb.h
diff --git a/trunk/include/asm-powerpc/local.h b/trunk/arch/powerpc/include/asm/local.h
similarity index 100%
rename from trunk/include/asm-powerpc/local.h
rename to trunk/arch/powerpc/include/asm/local.h
diff --git a/trunk/include/asm-powerpc/lppaca.h b/trunk/arch/powerpc/include/asm/lppaca.h
similarity index 100%
rename from trunk/include/asm-powerpc/lppaca.h
rename to trunk/arch/powerpc/include/asm/lppaca.h
diff --git a/trunk/include/asm-powerpc/lv1call.h b/trunk/arch/powerpc/include/asm/lv1call.h
similarity index 100%
rename from trunk/include/asm-powerpc/lv1call.h
rename to trunk/arch/powerpc/include/asm/lv1call.h
diff --git a/trunk/include/asm-powerpc/machdep.h b/trunk/arch/powerpc/include/asm/machdep.h
similarity index 100%
rename from trunk/include/asm-powerpc/machdep.h
rename to trunk/arch/powerpc/include/asm/machdep.h
diff --git a/trunk/include/asm-powerpc/macio.h b/trunk/arch/powerpc/include/asm/macio.h
similarity index 100%
rename from trunk/include/asm-powerpc/macio.h
rename to trunk/arch/powerpc/include/asm/macio.h
diff --git a/trunk/include/asm-powerpc/mc146818rtc.h b/trunk/arch/powerpc/include/asm/mc146818rtc.h
similarity index 100%
rename from trunk/include/asm-powerpc/mc146818rtc.h
rename to trunk/arch/powerpc/include/asm/mc146818rtc.h
diff --git a/trunk/include/asm-powerpc/mediabay.h b/trunk/arch/powerpc/include/asm/mediabay.h
similarity index 100%
rename from trunk/include/asm-powerpc/mediabay.h
rename to trunk/arch/powerpc/include/asm/mediabay.h
diff --git a/trunk/include/asm-powerpc/mman.h b/trunk/arch/powerpc/include/asm/mman.h
similarity index 100%
rename from trunk/include/asm-powerpc/mman.h
rename to trunk/arch/powerpc/include/asm/mman.h
diff --git a/trunk/include/asm-powerpc/mmu-40x.h b/trunk/arch/powerpc/include/asm/mmu-40x.h
similarity index 100%
rename from trunk/include/asm-powerpc/mmu-40x.h
rename to trunk/arch/powerpc/include/asm/mmu-40x.h
diff --git a/trunk/include/asm-powerpc/mmu-44x.h b/trunk/arch/powerpc/include/asm/mmu-44x.h
similarity index 100%
rename from trunk/include/asm-powerpc/mmu-44x.h
rename to trunk/arch/powerpc/include/asm/mmu-44x.h
diff --git a/trunk/include/asm-powerpc/mmu-8xx.h b/trunk/arch/powerpc/include/asm/mmu-8xx.h
similarity index 100%
rename from trunk/include/asm-powerpc/mmu-8xx.h
rename to trunk/arch/powerpc/include/asm/mmu-8xx.h
diff --git a/trunk/include/asm-powerpc/mmu-fsl-booke.h b/trunk/arch/powerpc/include/asm/mmu-fsl-booke.h
similarity index 100%
rename from trunk/include/asm-powerpc/mmu-fsl-booke.h
rename to trunk/arch/powerpc/include/asm/mmu-fsl-booke.h
diff --git a/trunk/include/asm-powerpc/mmu-hash32.h b/trunk/arch/powerpc/include/asm/mmu-hash32.h
similarity index 100%
rename from trunk/include/asm-powerpc/mmu-hash32.h
rename to trunk/arch/powerpc/include/asm/mmu-hash32.h
diff --git a/trunk/include/asm-powerpc/mmu-hash64.h b/trunk/arch/powerpc/include/asm/mmu-hash64.h
similarity index 100%
rename from trunk/include/asm-powerpc/mmu-hash64.h
rename to trunk/arch/powerpc/include/asm/mmu-hash64.h
diff --git a/trunk/include/asm-powerpc/mmu.h b/trunk/arch/powerpc/include/asm/mmu.h
similarity index 100%
rename from trunk/include/asm-powerpc/mmu.h
rename to trunk/arch/powerpc/include/asm/mmu.h
diff --git a/trunk/include/asm-powerpc/mmu_context.h b/trunk/arch/powerpc/include/asm/mmu_context.h
similarity index 100%
rename from trunk/include/asm-powerpc/mmu_context.h
rename to trunk/arch/powerpc/include/asm/mmu_context.h
diff --git a/trunk/include/asm-powerpc/mmzone.h b/trunk/arch/powerpc/include/asm/mmzone.h
similarity index 100%
rename from trunk/include/asm-powerpc/mmzone.h
rename to trunk/arch/powerpc/include/asm/mmzone.h
diff --git a/trunk/include/asm-powerpc/module.h b/trunk/arch/powerpc/include/asm/module.h
similarity index 100%
rename from trunk/include/asm-powerpc/module.h
rename to trunk/arch/powerpc/include/asm/module.h
diff --git a/trunk/include/asm-powerpc/mpc512x.h b/trunk/arch/powerpc/include/asm/mpc512x.h
similarity index 100%
rename from trunk/include/asm-powerpc/mpc512x.h
rename to trunk/arch/powerpc/include/asm/mpc512x.h
diff --git a/trunk/include/asm-powerpc/mpc52xx.h b/trunk/arch/powerpc/include/asm/mpc52xx.h
similarity index 100%
rename from trunk/include/asm-powerpc/mpc52xx.h
rename to trunk/arch/powerpc/include/asm/mpc52xx.h
diff --git a/trunk/include/asm-powerpc/mpc52xx_psc.h b/trunk/arch/powerpc/include/asm/mpc52xx_psc.h
similarity index 100%
rename from trunk/include/asm-powerpc/mpc52xx_psc.h
rename to trunk/arch/powerpc/include/asm/mpc52xx_psc.h
diff --git a/trunk/include/asm-powerpc/mpc6xx.h b/trunk/arch/powerpc/include/asm/mpc6xx.h
similarity index 100%
rename from trunk/include/asm-powerpc/mpc6xx.h
rename to trunk/arch/powerpc/include/asm/mpc6xx.h
diff --git a/trunk/include/asm-powerpc/mpc8260.h b/trunk/arch/powerpc/include/asm/mpc8260.h
similarity index 100%
rename from trunk/include/asm-powerpc/mpc8260.h
rename to trunk/arch/powerpc/include/asm/mpc8260.h
diff --git a/trunk/include/asm-powerpc/mpc86xx.h b/trunk/arch/powerpc/include/asm/mpc86xx.h
similarity index 100%
rename from trunk/include/asm-powerpc/mpc86xx.h
rename to trunk/arch/powerpc/include/asm/mpc86xx.h
diff --git a/trunk/include/asm-powerpc/mpc8xx.h b/trunk/arch/powerpc/include/asm/mpc8xx.h
similarity index 100%
rename from trunk/include/asm-powerpc/mpc8xx.h
rename to trunk/arch/powerpc/include/asm/mpc8xx.h
diff --git a/trunk/include/asm-powerpc/mpic.h b/trunk/arch/powerpc/include/asm/mpic.h
similarity index 100%
rename from trunk/include/asm-powerpc/mpic.h
rename to trunk/arch/powerpc/include/asm/mpic.h
diff --git a/trunk/include/asm-powerpc/msgbuf.h b/trunk/arch/powerpc/include/asm/msgbuf.h
similarity index 100%
rename from trunk/include/asm-powerpc/msgbuf.h
rename to trunk/arch/powerpc/include/asm/msgbuf.h
diff --git a/trunk/include/asm-powerpc/mutex.h b/trunk/arch/powerpc/include/asm/mutex.h
similarity index 100%
rename from trunk/include/asm-powerpc/mutex.h
rename to trunk/arch/powerpc/include/asm/mutex.h
diff --git a/trunk/include/asm-powerpc/nvram.h b/trunk/arch/powerpc/include/asm/nvram.h
similarity index 100%
rename from trunk/include/asm-powerpc/nvram.h
rename to trunk/arch/powerpc/include/asm/nvram.h
diff --git a/trunk/include/asm-powerpc/of_device.h b/trunk/arch/powerpc/include/asm/of_device.h
similarity index 100%
rename from trunk/include/asm-powerpc/of_device.h
rename to trunk/arch/powerpc/include/asm/of_device.h
diff --git a/trunk/include/asm-powerpc/of_platform.h b/trunk/arch/powerpc/include/asm/of_platform.h
similarity index 100%
rename from trunk/include/asm-powerpc/of_platform.h
rename to trunk/arch/powerpc/include/asm/of_platform.h
diff --git a/trunk/include/asm-powerpc/ohare.h b/trunk/arch/powerpc/include/asm/ohare.h
similarity index 100%
rename from trunk/include/asm-powerpc/ohare.h
rename to trunk/arch/powerpc/include/asm/ohare.h
diff --git a/trunk/include/asm-powerpc/oprofile_impl.h b/trunk/arch/powerpc/include/asm/oprofile_impl.h
similarity index 100%
rename from trunk/include/asm-powerpc/oprofile_impl.h
rename to trunk/arch/powerpc/include/asm/oprofile_impl.h
diff --git a/trunk/include/asm-powerpc/pSeries_reconfig.h b/trunk/arch/powerpc/include/asm/pSeries_reconfig.h
similarity index 100%
rename from trunk/include/asm-powerpc/pSeries_reconfig.h
rename to trunk/arch/powerpc/include/asm/pSeries_reconfig.h
diff --git a/trunk/include/asm-powerpc/paca.h b/trunk/arch/powerpc/include/asm/paca.h
similarity index 99%
rename from trunk/include/asm-powerpc/paca.h
rename to trunk/arch/powerpc/include/asm/paca.h
index 7b564444ff61..6493a395508b 100644
--- a/trunk/include/asm-powerpc/paca.h
+++ b/trunk/arch/powerpc/include/asm/paca.h
@@ -1,6 +1,4 @@
/*
- * include/asm-powerpc/paca.h
- *
* This control block defines the PACA which defines the processor
* specific data for each logical processor on the system.
* There are some pointers defined that are utilized by PLIC.
diff --git a/trunk/include/asm-powerpc/page.h b/trunk/arch/powerpc/include/asm/page.h
similarity index 100%
rename from trunk/include/asm-powerpc/page.h
rename to trunk/arch/powerpc/include/asm/page.h
diff --git a/trunk/include/asm-powerpc/page_32.h b/trunk/arch/powerpc/include/asm/page_32.h
similarity index 100%
rename from trunk/include/asm-powerpc/page_32.h
rename to trunk/arch/powerpc/include/asm/page_32.h
diff --git a/trunk/include/asm-powerpc/page_64.h b/trunk/arch/powerpc/include/asm/page_64.h
similarity index 100%
rename from trunk/include/asm-powerpc/page_64.h
rename to trunk/arch/powerpc/include/asm/page_64.h
diff --git a/trunk/include/asm-powerpc/param.h b/trunk/arch/powerpc/include/asm/param.h
similarity index 100%
rename from trunk/include/asm-powerpc/param.h
rename to trunk/arch/powerpc/include/asm/param.h
diff --git a/trunk/include/asm-powerpc/parport.h b/trunk/arch/powerpc/include/asm/parport.h
similarity index 100%
rename from trunk/include/asm-powerpc/parport.h
rename to trunk/arch/powerpc/include/asm/parport.h
diff --git a/trunk/include/asm-powerpc/pasemi_dma.h b/trunk/arch/powerpc/include/asm/pasemi_dma.h
similarity index 100%
rename from trunk/include/asm-powerpc/pasemi_dma.h
rename to trunk/arch/powerpc/include/asm/pasemi_dma.h
diff --git a/trunk/include/asm-powerpc/pci-bridge.h b/trunk/arch/powerpc/include/asm/pci-bridge.h
similarity index 100%
rename from trunk/include/asm-powerpc/pci-bridge.h
rename to trunk/arch/powerpc/include/asm/pci-bridge.h
diff --git a/trunk/include/asm-powerpc/pci.h b/trunk/arch/powerpc/include/asm/pci.h
similarity index 100%
rename from trunk/include/asm-powerpc/pci.h
rename to trunk/arch/powerpc/include/asm/pci.h
diff --git a/trunk/include/asm-powerpc/percpu.h b/trunk/arch/powerpc/include/asm/percpu.h
similarity index 100%
rename from trunk/include/asm-powerpc/percpu.h
rename to trunk/arch/powerpc/include/asm/percpu.h
diff --git a/trunk/include/asm-powerpc/pgalloc-32.h b/trunk/arch/powerpc/include/asm/pgalloc-32.h
similarity index 100%
rename from trunk/include/asm-powerpc/pgalloc-32.h
rename to trunk/arch/powerpc/include/asm/pgalloc-32.h
diff --git a/trunk/include/asm-powerpc/pgalloc-64.h b/trunk/arch/powerpc/include/asm/pgalloc-64.h
similarity index 100%
rename from trunk/include/asm-powerpc/pgalloc-64.h
rename to trunk/arch/powerpc/include/asm/pgalloc-64.h
diff --git a/trunk/include/asm-powerpc/pgalloc.h b/trunk/arch/powerpc/include/asm/pgalloc.h
similarity index 100%
rename from trunk/include/asm-powerpc/pgalloc.h
rename to trunk/arch/powerpc/include/asm/pgalloc.h
diff --git a/trunk/include/asm-powerpc/pgtable-4k.h b/trunk/arch/powerpc/include/asm/pgtable-4k.h
similarity index 100%
rename from trunk/include/asm-powerpc/pgtable-4k.h
rename to trunk/arch/powerpc/include/asm/pgtable-4k.h
diff --git a/trunk/include/asm-powerpc/pgtable-64k.h b/trunk/arch/powerpc/include/asm/pgtable-64k.h
similarity index 100%
rename from trunk/include/asm-powerpc/pgtable-64k.h
rename to trunk/arch/powerpc/include/asm/pgtable-64k.h
diff --git a/trunk/include/asm-powerpc/pgtable-ppc32.h b/trunk/arch/powerpc/include/asm/pgtable-ppc32.h
similarity index 100%
rename from trunk/include/asm-powerpc/pgtable-ppc32.h
rename to trunk/arch/powerpc/include/asm/pgtable-ppc32.h
diff --git a/trunk/include/asm-powerpc/pgtable-ppc64.h b/trunk/arch/powerpc/include/asm/pgtable-ppc64.h
similarity index 99%
rename from trunk/include/asm-powerpc/pgtable-ppc64.h
rename to trunk/arch/powerpc/include/asm/pgtable-ppc64.h
index 74c6f380b805..db0b8f3b8807 100644
--- a/trunk/include/asm-powerpc/pgtable-ppc64.h
+++ b/trunk/arch/powerpc/include/asm/pgtable-ppc64.h
@@ -100,7 +100,7 @@
#define _PAGE_WRENABLE (_PAGE_RW | _PAGE_DIRTY)
-/* __pgprot defined in asm-powerpc/page.h */
+/* __pgprot defined in arch/powerpc/incliude/asm/page.h */
#define PAGE_NONE __pgprot(_PAGE_PRESENT | _PAGE_ACCESSED)
#define PAGE_SHARED __pgprot(_PAGE_BASE | _PAGE_RW | _PAGE_USER)
diff --git a/trunk/include/asm-powerpc/pgtable.h b/trunk/arch/powerpc/include/asm/pgtable.h
similarity index 100%
rename from trunk/include/asm-powerpc/pgtable.h
rename to trunk/arch/powerpc/include/asm/pgtable.h
diff --git a/trunk/include/asm-powerpc/phyp_dump.h b/trunk/arch/powerpc/include/asm/phyp_dump.h
similarity index 100%
rename from trunk/include/asm-powerpc/phyp_dump.h
rename to trunk/arch/powerpc/include/asm/phyp_dump.h
diff --git a/trunk/include/asm-powerpc/pmac_feature.h b/trunk/arch/powerpc/include/asm/pmac_feature.h
similarity index 100%
rename from trunk/include/asm-powerpc/pmac_feature.h
rename to trunk/arch/powerpc/include/asm/pmac_feature.h
diff --git a/trunk/include/asm-powerpc/pmac_low_i2c.h b/trunk/arch/powerpc/include/asm/pmac_low_i2c.h
similarity index 100%
rename from trunk/include/asm-powerpc/pmac_low_i2c.h
rename to trunk/arch/powerpc/include/asm/pmac_low_i2c.h
diff --git a/trunk/include/asm-powerpc/pmac_pfunc.h b/trunk/arch/powerpc/include/asm/pmac_pfunc.h
similarity index 100%
rename from trunk/include/asm-powerpc/pmac_pfunc.h
rename to trunk/arch/powerpc/include/asm/pmac_pfunc.h
diff --git a/trunk/include/asm-powerpc/pmc.h b/trunk/arch/powerpc/include/asm/pmc.h
similarity index 100%
rename from trunk/include/asm-powerpc/pmc.h
rename to trunk/arch/powerpc/include/asm/pmc.h
diff --git a/trunk/include/asm-powerpc/pmi.h b/trunk/arch/powerpc/include/asm/pmi.h
similarity index 100%
rename from trunk/include/asm-powerpc/pmi.h
rename to trunk/arch/powerpc/include/asm/pmi.h
diff --git a/trunk/include/asm-powerpc/poll.h b/trunk/arch/powerpc/include/asm/poll.h
similarity index 100%
rename from trunk/include/asm-powerpc/poll.h
rename to trunk/arch/powerpc/include/asm/poll.h
diff --git a/trunk/include/asm-powerpc/posix_types.h b/trunk/arch/powerpc/include/asm/posix_types.h
similarity index 100%
rename from trunk/include/asm-powerpc/posix_types.h
rename to trunk/arch/powerpc/include/asm/posix_types.h
diff --git a/trunk/include/asm-powerpc/ppc-pci.h b/trunk/arch/powerpc/include/asm/ppc-pci.h
similarity index 100%
rename from trunk/include/asm-powerpc/ppc-pci.h
rename to trunk/arch/powerpc/include/asm/ppc-pci.h
diff --git a/trunk/include/asm-powerpc/ppc4xx.h b/trunk/arch/powerpc/include/asm/ppc4xx.h
similarity index 100%
rename from trunk/include/asm-powerpc/ppc4xx.h
rename to trunk/arch/powerpc/include/asm/ppc4xx.h
diff --git a/trunk/include/asm-powerpc/ppc_asm.h b/trunk/arch/powerpc/include/asm/ppc_asm.h
similarity index 100%
rename from trunk/include/asm-powerpc/ppc_asm.h
rename to trunk/arch/powerpc/include/asm/ppc_asm.h
diff --git a/trunk/include/asm-powerpc/processor.h b/trunk/arch/powerpc/include/asm/processor.h
similarity index 100%
rename from trunk/include/asm-powerpc/processor.h
rename to trunk/arch/powerpc/include/asm/processor.h
diff --git a/trunk/include/asm-powerpc/prom.h b/trunk/arch/powerpc/include/asm/prom.h
similarity index 100%
rename from trunk/include/asm-powerpc/prom.h
rename to trunk/arch/powerpc/include/asm/prom.h
diff --git a/trunk/include/asm-powerpc/ps3.h b/trunk/arch/powerpc/include/asm/ps3.h
similarity index 100%
rename from trunk/include/asm-powerpc/ps3.h
rename to trunk/arch/powerpc/include/asm/ps3.h
diff --git a/trunk/include/asm-powerpc/ps3av.h b/trunk/arch/powerpc/include/asm/ps3av.h
similarity index 100%
rename from trunk/include/asm-powerpc/ps3av.h
rename to trunk/arch/powerpc/include/asm/ps3av.h
diff --git a/trunk/include/asm-powerpc/ps3fb.h b/trunk/arch/powerpc/include/asm/ps3fb.h
similarity index 100%
rename from trunk/include/asm-powerpc/ps3fb.h
rename to trunk/arch/powerpc/include/asm/ps3fb.h
diff --git a/trunk/include/asm-powerpc/ps3stor.h b/trunk/arch/powerpc/include/asm/ps3stor.h
similarity index 100%
rename from trunk/include/asm-powerpc/ps3stor.h
rename to trunk/arch/powerpc/include/asm/ps3stor.h
diff --git a/trunk/include/asm-powerpc/ptrace.h b/trunk/arch/powerpc/include/asm/ptrace.h
similarity index 100%
rename from trunk/include/asm-powerpc/ptrace.h
rename to trunk/arch/powerpc/include/asm/ptrace.h
diff --git a/trunk/include/asm-powerpc/qe.h b/trunk/arch/powerpc/include/asm/qe.h
similarity index 100%
rename from trunk/include/asm-powerpc/qe.h
rename to trunk/arch/powerpc/include/asm/qe.h
diff --git a/trunk/include/asm-powerpc/qe_ic.h b/trunk/arch/powerpc/include/asm/qe_ic.h
similarity index 99%
rename from trunk/include/asm-powerpc/qe_ic.h
rename to trunk/arch/powerpc/include/asm/qe_ic.h
index a779b2c9eaf1..56a7745ca343 100644
--- a/trunk/include/asm-powerpc/qe_ic.h
+++ b/trunk/arch/powerpc/include/asm/qe_ic.h
@@ -1,6 +1,4 @@
/*
- * include/asm-powerpc/qe_ic.h
- *
* Copyright (C) 2006 Freescale Semicondutor, Inc. All rights reserved.
*
* Authors: Shlomi Gridish
diff --git a/trunk/include/asm-powerpc/reg.h b/trunk/arch/powerpc/include/asm/reg.h
similarity index 100%
rename from trunk/include/asm-powerpc/reg.h
rename to trunk/arch/powerpc/include/asm/reg.h
diff --git a/trunk/include/asm-powerpc/reg_8xx.h b/trunk/arch/powerpc/include/asm/reg_8xx.h
similarity index 100%
rename from trunk/include/asm-powerpc/reg_8xx.h
rename to trunk/arch/powerpc/include/asm/reg_8xx.h
diff --git a/trunk/include/asm-powerpc/reg_booke.h b/trunk/arch/powerpc/include/asm/reg_booke.h
similarity index 100%
rename from trunk/include/asm-powerpc/reg_booke.h
rename to trunk/arch/powerpc/include/asm/reg_booke.h
diff --git a/trunk/include/asm-powerpc/reg_fsl_emb.h b/trunk/arch/powerpc/include/asm/reg_fsl_emb.h
similarity index 100%
rename from trunk/include/asm-powerpc/reg_fsl_emb.h
rename to trunk/arch/powerpc/include/asm/reg_fsl_emb.h
diff --git a/trunk/include/asm-powerpc/resource.h b/trunk/arch/powerpc/include/asm/resource.h
similarity index 100%
rename from trunk/include/asm-powerpc/resource.h
rename to trunk/arch/powerpc/include/asm/resource.h
diff --git a/trunk/include/asm-powerpc/rheap.h b/trunk/arch/powerpc/include/asm/rheap.h
similarity index 100%
rename from trunk/include/asm-powerpc/rheap.h
rename to trunk/arch/powerpc/include/asm/rheap.h
diff --git a/trunk/include/asm-powerpc/rio.h b/trunk/arch/powerpc/include/asm/rio.h
similarity index 100%
rename from trunk/include/asm-powerpc/rio.h
rename to trunk/arch/powerpc/include/asm/rio.h
diff --git a/trunk/include/asm-powerpc/rtas.h b/trunk/arch/powerpc/include/asm/rtas.h
similarity index 100%
rename from trunk/include/asm-powerpc/rtas.h
rename to trunk/arch/powerpc/include/asm/rtas.h
diff --git a/trunk/include/asm-powerpc/rtc.h b/trunk/arch/powerpc/include/asm/rtc.h
similarity index 100%
rename from trunk/include/asm-powerpc/rtc.h
rename to trunk/arch/powerpc/include/asm/rtc.h
diff --git a/trunk/include/asm-powerpc/rwsem.h b/trunk/arch/powerpc/include/asm/rwsem.h
similarity index 96%
rename from trunk/include/asm-powerpc/rwsem.h
rename to trunk/arch/powerpc/include/asm/rwsem.h
index a6cc93b78b98..24cd9281ec37 100644
--- a/trunk/include/asm-powerpc/rwsem.h
+++ b/trunk/arch/powerpc/include/asm/rwsem.h
@@ -8,8 +8,8 @@
#ifdef __KERNEL__
/*
- * include/asm-powerpc/rwsem.h: R/W semaphores for PPC using the stuff
- * in lib/rwsem.c. Adapted largely from include/asm-i386/rwsem.h
+ * R/W semaphores for PPC using the stuff in lib/rwsem.c.
+ * Adapted largely from include/asm-i386/rwsem.h
* by Paul Mackerras .
*/
diff --git a/trunk/include/asm-powerpc/scatterlist.h b/trunk/arch/powerpc/include/asm/scatterlist.h
similarity index 100%
rename from trunk/include/asm-powerpc/scatterlist.h
rename to trunk/arch/powerpc/include/asm/scatterlist.h
diff --git a/trunk/include/asm-powerpc/seccomp.h b/trunk/arch/powerpc/include/asm/seccomp.h
similarity index 100%
rename from trunk/include/asm-powerpc/seccomp.h
rename to trunk/arch/powerpc/include/asm/seccomp.h
diff --git a/trunk/include/asm-powerpc/sections.h b/trunk/arch/powerpc/include/asm/sections.h
similarity index 100%
rename from trunk/include/asm-powerpc/sections.h
rename to trunk/arch/powerpc/include/asm/sections.h
diff --git a/trunk/include/asm-powerpc/sembuf.h b/trunk/arch/powerpc/include/asm/sembuf.h
similarity index 100%
rename from trunk/include/asm-powerpc/sembuf.h
rename to trunk/arch/powerpc/include/asm/sembuf.h
diff --git a/trunk/include/asm-powerpc/serial.h b/trunk/arch/powerpc/include/asm/serial.h
similarity index 100%
rename from trunk/include/asm-powerpc/serial.h
rename to trunk/arch/powerpc/include/asm/serial.h
diff --git a/trunk/include/asm-powerpc/setjmp.h b/trunk/arch/powerpc/include/asm/setjmp.h
similarity index 100%
rename from trunk/include/asm-powerpc/setjmp.h
rename to trunk/arch/powerpc/include/asm/setjmp.h
diff --git a/trunk/include/asm-powerpc/setup.h b/trunk/arch/powerpc/include/asm/setup.h
similarity index 100%
rename from trunk/include/asm-powerpc/setup.h
rename to trunk/arch/powerpc/include/asm/setup.h
diff --git a/trunk/include/asm-powerpc/shmbuf.h b/trunk/arch/powerpc/include/asm/shmbuf.h
similarity index 100%
rename from trunk/include/asm-powerpc/shmbuf.h
rename to trunk/arch/powerpc/include/asm/shmbuf.h
diff --git a/trunk/include/asm-powerpc/shmparam.h b/trunk/arch/powerpc/include/asm/shmparam.h
similarity index 100%
rename from trunk/include/asm-powerpc/shmparam.h
rename to trunk/arch/powerpc/include/asm/shmparam.h
diff --git a/trunk/include/asm-powerpc/sigcontext.h b/trunk/arch/powerpc/include/asm/sigcontext.h
similarity index 100%
rename from trunk/include/asm-powerpc/sigcontext.h
rename to trunk/arch/powerpc/include/asm/sigcontext.h
diff --git a/trunk/include/asm-powerpc/siginfo.h b/trunk/arch/powerpc/include/asm/siginfo.h
similarity index 100%
rename from trunk/include/asm-powerpc/siginfo.h
rename to trunk/arch/powerpc/include/asm/siginfo.h
diff --git a/trunk/include/asm-powerpc/signal.h b/trunk/arch/powerpc/include/asm/signal.h
similarity index 100%
rename from trunk/include/asm-powerpc/signal.h
rename to trunk/arch/powerpc/include/asm/signal.h
diff --git a/trunk/include/asm-powerpc/smp.h b/trunk/arch/powerpc/include/asm/smp.h
similarity index 100%
rename from trunk/include/asm-powerpc/smp.h
rename to trunk/arch/powerpc/include/asm/smp.h
diff --git a/trunk/include/asm-powerpc/smu.h b/trunk/arch/powerpc/include/asm/smu.h
similarity index 100%
rename from trunk/include/asm-powerpc/smu.h
rename to trunk/arch/powerpc/include/asm/smu.h
diff --git a/trunk/include/asm-powerpc/socket.h b/trunk/arch/powerpc/include/asm/socket.h
similarity index 100%
rename from trunk/include/asm-powerpc/socket.h
rename to trunk/arch/powerpc/include/asm/socket.h
diff --git a/trunk/include/asm-powerpc/sockios.h b/trunk/arch/powerpc/include/asm/sockios.h
similarity index 100%
rename from trunk/include/asm-powerpc/sockios.h
rename to trunk/arch/powerpc/include/asm/sockios.h
diff --git a/trunk/include/asm-powerpc/sparsemem.h b/trunk/arch/powerpc/include/asm/sparsemem.h
similarity index 100%
rename from trunk/include/asm-powerpc/sparsemem.h
rename to trunk/arch/powerpc/include/asm/sparsemem.h
diff --git a/trunk/include/asm-powerpc/spinlock.h b/trunk/arch/powerpc/include/asm/spinlock.h
similarity index 100%
rename from trunk/include/asm-powerpc/spinlock.h
rename to trunk/arch/powerpc/include/asm/spinlock.h
diff --git a/trunk/include/asm-powerpc/spinlock_types.h b/trunk/arch/powerpc/include/asm/spinlock_types.h
similarity index 100%
rename from trunk/include/asm-powerpc/spinlock_types.h
rename to trunk/arch/powerpc/include/asm/spinlock_types.h
diff --git a/trunk/include/asm-powerpc/spu.h b/trunk/arch/powerpc/include/asm/spu.h
similarity index 100%
rename from trunk/include/asm-powerpc/spu.h
rename to trunk/arch/powerpc/include/asm/spu.h
diff --git a/trunk/include/asm-powerpc/spu_csa.h b/trunk/arch/powerpc/include/asm/spu_csa.h
similarity index 100%
rename from trunk/include/asm-powerpc/spu_csa.h
rename to trunk/arch/powerpc/include/asm/spu_csa.h
diff --git a/trunk/include/asm-powerpc/spu_info.h b/trunk/arch/powerpc/include/asm/spu_info.h
similarity index 100%
rename from trunk/include/asm-powerpc/spu_info.h
rename to trunk/arch/powerpc/include/asm/spu_info.h
diff --git a/trunk/include/asm-powerpc/spu_priv1.h b/trunk/arch/powerpc/include/asm/spu_priv1.h
similarity index 100%
rename from trunk/include/asm-powerpc/spu_priv1.h
rename to trunk/arch/powerpc/include/asm/spu_priv1.h
diff --git a/trunk/include/asm-powerpc/sstep.h b/trunk/arch/powerpc/include/asm/sstep.h
similarity index 100%
rename from trunk/include/asm-powerpc/sstep.h
rename to trunk/arch/powerpc/include/asm/sstep.h
diff --git a/trunk/include/asm-powerpc/stat.h b/trunk/arch/powerpc/include/asm/stat.h
similarity index 100%
rename from trunk/include/asm-powerpc/stat.h
rename to trunk/arch/powerpc/include/asm/stat.h
diff --git a/trunk/include/asm-powerpc/statfs.h b/trunk/arch/powerpc/include/asm/statfs.h
similarity index 100%
rename from trunk/include/asm-powerpc/statfs.h
rename to trunk/arch/powerpc/include/asm/statfs.h
diff --git a/trunk/include/asm-powerpc/string.h b/trunk/arch/powerpc/include/asm/string.h
similarity index 100%
rename from trunk/include/asm-powerpc/string.h
rename to trunk/arch/powerpc/include/asm/string.h
diff --git a/trunk/include/asm-powerpc/suspend.h b/trunk/arch/powerpc/include/asm/suspend.h
similarity index 100%
rename from trunk/include/asm-powerpc/suspend.h
rename to trunk/arch/powerpc/include/asm/suspend.h
diff --git a/trunk/include/asm-powerpc/synch.h b/trunk/arch/powerpc/include/asm/synch.h
similarity index 100%
rename from trunk/include/asm-powerpc/synch.h
rename to trunk/arch/powerpc/include/asm/synch.h
diff --git a/trunk/include/asm-powerpc/syscall.h b/trunk/arch/powerpc/include/asm/syscall.h
similarity index 100%
rename from trunk/include/asm-powerpc/syscall.h
rename to trunk/arch/powerpc/include/asm/syscall.h
diff --git a/trunk/include/asm-powerpc/syscalls.h b/trunk/arch/powerpc/include/asm/syscalls.h
similarity index 100%
rename from trunk/include/asm-powerpc/syscalls.h
rename to trunk/arch/powerpc/include/asm/syscalls.h
diff --git a/trunk/include/asm-powerpc/systbl.h b/trunk/arch/powerpc/include/asm/systbl.h
similarity index 100%
rename from trunk/include/asm-powerpc/systbl.h
rename to trunk/arch/powerpc/include/asm/systbl.h
diff --git a/trunk/include/asm-powerpc/system.h b/trunk/arch/powerpc/include/asm/system.h
similarity index 100%
rename from trunk/include/asm-powerpc/system.h
rename to trunk/arch/powerpc/include/asm/system.h
diff --git a/trunk/include/asm-powerpc/tce.h b/trunk/arch/powerpc/include/asm/tce.h
similarity index 100%
rename from trunk/include/asm-powerpc/tce.h
rename to trunk/arch/powerpc/include/asm/tce.h
diff --git a/trunk/include/asm-powerpc/termbits.h b/trunk/arch/powerpc/include/asm/termbits.h
similarity index 100%
rename from trunk/include/asm-powerpc/termbits.h
rename to trunk/arch/powerpc/include/asm/termbits.h
diff --git a/trunk/include/asm-powerpc/termios.h b/trunk/arch/powerpc/include/asm/termios.h
similarity index 100%
rename from trunk/include/asm-powerpc/termios.h
rename to trunk/arch/powerpc/include/asm/termios.h
diff --git a/trunk/include/asm-powerpc/thread_info.h b/trunk/arch/powerpc/include/asm/thread_info.h
similarity index 100%
rename from trunk/include/asm-powerpc/thread_info.h
rename to trunk/arch/powerpc/include/asm/thread_info.h
diff --git a/trunk/include/asm-powerpc/time.h b/trunk/arch/powerpc/include/asm/time.h
similarity index 100%
rename from trunk/include/asm-powerpc/time.h
rename to trunk/arch/powerpc/include/asm/time.h
diff --git a/trunk/include/asm-powerpc/timex.h b/trunk/arch/powerpc/include/asm/timex.h
similarity index 100%
rename from trunk/include/asm-powerpc/timex.h
rename to trunk/arch/powerpc/include/asm/timex.h
diff --git a/trunk/include/asm-powerpc/tlb.h b/trunk/arch/powerpc/include/asm/tlb.h
similarity index 100%
rename from trunk/include/asm-powerpc/tlb.h
rename to trunk/arch/powerpc/include/asm/tlb.h
diff --git a/trunk/include/asm-powerpc/tlbflush.h b/trunk/arch/powerpc/include/asm/tlbflush.h
similarity index 100%
rename from trunk/include/asm-powerpc/tlbflush.h
rename to trunk/arch/powerpc/include/asm/tlbflush.h
diff --git a/trunk/include/asm-powerpc/topology.h b/trunk/arch/powerpc/include/asm/topology.h
similarity index 100%
rename from trunk/include/asm-powerpc/topology.h
rename to trunk/arch/powerpc/include/asm/topology.h
diff --git a/trunk/include/asm-powerpc/tsi108.h b/trunk/arch/powerpc/include/asm/tsi108.h
similarity index 100%
rename from trunk/include/asm-powerpc/tsi108.h
rename to trunk/arch/powerpc/include/asm/tsi108.h
diff --git a/trunk/include/asm-powerpc/tsi108_irq.h b/trunk/arch/powerpc/include/asm/tsi108_irq.h
similarity index 100%
rename from trunk/include/asm-powerpc/tsi108_irq.h
rename to trunk/arch/powerpc/include/asm/tsi108_irq.h
diff --git a/trunk/include/asm-powerpc/tsi108_pci.h b/trunk/arch/powerpc/include/asm/tsi108_pci.h
similarity index 100%
rename from trunk/include/asm-powerpc/tsi108_pci.h
rename to trunk/arch/powerpc/include/asm/tsi108_pci.h
diff --git a/trunk/include/asm-powerpc/types.h b/trunk/arch/powerpc/include/asm/types.h
similarity index 100%
rename from trunk/include/asm-powerpc/types.h
rename to trunk/arch/powerpc/include/asm/types.h
diff --git a/trunk/include/asm-powerpc/uaccess.h b/trunk/arch/powerpc/include/asm/uaccess.h
similarity index 100%
rename from trunk/include/asm-powerpc/uaccess.h
rename to trunk/arch/powerpc/include/asm/uaccess.h
diff --git a/trunk/include/asm-powerpc/ucc.h b/trunk/arch/powerpc/include/asm/ucc.h
similarity index 100%
rename from trunk/include/asm-powerpc/ucc.h
rename to trunk/arch/powerpc/include/asm/ucc.h
diff --git a/trunk/include/asm-powerpc/ucc_fast.h b/trunk/arch/powerpc/include/asm/ucc_fast.h
similarity index 99%
rename from trunk/include/asm-powerpc/ucc_fast.h
rename to trunk/arch/powerpc/include/asm/ucc_fast.h
index fce16abe7ee1..839aab8bf37d 100644
--- a/trunk/include/asm-powerpc/ucc_fast.h
+++ b/trunk/arch/powerpc/include/asm/ucc_fast.h
@@ -1,6 +1,4 @@
/*
- * include/asm-powerpc/ucc_fast.h
- *
* Internal header file for UCC FAST unit routines.
*
* Copyright (C) 2006 Freescale Semicondutor, Inc. All rights reserved.
diff --git a/trunk/include/asm-powerpc/ucc_slow.h b/trunk/arch/powerpc/include/asm/ucc_slow.h
similarity index 100%
rename from trunk/include/asm-powerpc/ucc_slow.h
rename to trunk/arch/powerpc/include/asm/ucc_slow.h
diff --git a/trunk/include/asm-powerpc/ucontext.h b/trunk/arch/powerpc/include/asm/ucontext.h
similarity index 100%
rename from trunk/include/asm-powerpc/ucontext.h
rename to trunk/arch/powerpc/include/asm/ucontext.h
diff --git a/trunk/include/asm-powerpc/udbg.h b/trunk/arch/powerpc/include/asm/udbg.h
similarity index 100%
rename from trunk/include/asm-powerpc/udbg.h
rename to trunk/arch/powerpc/include/asm/udbg.h
diff --git a/trunk/include/asm-powerpc/uic.h b/trunk/arch/powerpc/include/asm/uic.h
similarity index 95%
rename from trunk/include/asm-powerpc/uic.h
rename to trunk/arch/powerpc/include/asm/uic.h
index 970eb7e2186a..597edfcae3d6 100644
--- a/trunk/include/asm-powerpc/uic.h
+++ b/trunk/arch/powerpc/include/asm/uic.h
@@ -1,6 +1,4 @@
/*
- * include/asm-powerpc/uic.h
- *
* IBM PPC4xx UIC external definitions and structure.
*
* Maintainer: David Gibson
diff --git a/trunk/include/asm-powerpc/unaligned.h b/trunk/arch/powerpc/include/asm/unaligned.h
similarity index 100%
rename from trunk/include/asm-powerpc/unaligned.h
rename to trunk/arch/powerpc/include/asm/unaligned.h
diff --git a/trunk/include/asm-powerpc/uninorth.h b/trunk/arch/powerpc/include/asm/uninorth.h
similarity index 100%
rename from trunk/include/asm-powerpc/uninorth.h
rename to trunk/arch/powerpc/include/asm/uninorth.h
diff --git a/trunk/include/asm-powerpc/unistd.h b/trunk/arch/powerpc/include/asm/unistd.h
similarity index 100%
rename from trunk/include/asm-powerpc/unistd.h
rename to trunk/arch/powerpc/include/asm/unistd.h
diff --git a/trunk/include/asm-powerpc/user.h b/trunk/arch/powerpc/include/asm/user.h
similarity index 100%
rename from trunk/include/asm-powerpc/user.h
rename to trunk/arch/powerpc/include/asm/user.h
diff --git a/trunk/include/asm-powerpc/vdso.h b/trunk/arch/powerpc/include/asm/vdso.h
similarity index 100%
rename from trunk/include/asm-powerpc/vdso.h
rename to trunk/arch/powerpc/include/asm/vdso.h
diff --git a/trunk/include/asm-powerpc/vdso_datapage.h b/trunk/arch/powerpc/include/asm/vdso_datapage.h
similarity index 100%
rename from trunk/include/asm-powerpc/vdso_datapage.h
rename to trunk/arch/powerpc/include/asm/vdso_datapage.h
diff --git a/trunk/include/asm-powerpc/vga.h b/trunk/arch/powerpc/include/asm/vga.h
similarity index 100%
rename from trunk/include/asm-powerpc/vga.h
rename to trunk/arch/powerpc/include/asm/vga.h
diff --git a/trunk/include/asm-powerpc/vio.h b/trunk/arch/powerpc/include/asm/vio.h
similarity index 100%
rename from trunk/include/asm-powerpc/vio.h
rename to trunk/arch/powerpc/include/asm/vio.h
diff --git a/trunk/include/asm-powerpc/xilinx_intc.h b/trunk/arch/powerpc/include/asm/xilinx_intc.h
similarity index 100%
rename from trunk/include/asm-powerpc/xilinx_intc.h
rename to trunk/arch/powerpc/include/asm/xilinx_intc.h
diff --git a/trunk/include/asm-powerpc/xmon.h b/trunk/arch/powerpc/include/asm/xmon.h
similarity index 100%
rename from trunk/include/asm-powerpc/xmon.h
rename to trunk/arch/powerpc/include/asm/xmon.h
diff --git a/trunk/include/asm-powerpc/xor.h b/trunk/arch/powerpc/include/asm/xor.h
similarity index 100%
rename from trunk/include/asm-powerpc/xor.h
rename to trunk/arch/powerpc/include/asm/xor.h
diff --git a/trunk/arch/powerpc/kernel/Makefile b/trunk/arch/powerpc/kernel/Makefile
index 1a4094704b1f..64f5948ebc9d 100644
--- a/trunk/arch/powerpc/kernel/Makefile
+++ b/trunk/arch/powerpc/kernel/Makefile
@@ -59,8 +59,6 @@ obj64-$(CONFIG_HIBERNATION) += swsusp_asm64.o
obj-$(CONFIG_MODULES) += module.o module_$(CONFIG_WORD_SIZE).o
obj-$(CONFIG_44x) += cpu_setup_44x.o
-ifeq ($(CONFIG_PPC_MERGE),y)
-
extra-$(CONFIG_PPC_STD_MMU) := head_32.o
extra-$(CONFIG_PPC64) := head_64.o
extra-$(CONFIG_40x) := head_40x.o
@@ -100,12 +98,6 @@ ifneq ($(CONFIG_PPC_INDIRECT_IO),y)
obj-y += iomap.o
endif
-else
-# stuff used from here for ARCH=ppc
-smpobj-$(CONFIG_SMP) += smp.o
-
-endif
-
obj-$(CONFIG_PPC64) += $(obj64-y)
extra-$(CONFIG_PPC_FPU) += fpu.o
@@ -121,9 +113,6 @@ PHONY += systbl_chk
systbl_chk: $(src)/systbl_chk.sh $(obj)/systbl_chk.i
$(call cmd,systbl_chk)
-
-ifeq ($(CONFIG_PPC_MERGE),y)
-
$(obj)/built-in.o: prom_init_check
quiet_cmd_prom_init_check = CALL $<
@@ -133,7 +122,4 @@ PHONY += prom_init_check
prom_init_check: $(src)/prom_init_check.sh $(obj)/prom_init.o
$(call cmd,prom_init_check)
-endif
-
-
clean-files := vmlinux.lds
diff --git a/trunk/arch/powerpc/kernel/cpu_setup_44x.S b/trunk/arch/powerpc/kernel/cpu_setup_44x.S
index 5465e8de0e61..80cac984d85d 100644
--- a/trunk/arch/powerpc/kernel/cpu_setup_44x.S
+++ b/trunk/arch/powerpc/kernel/cpu_setup_44x.S
@@ -39,12 +39,6 @@ _GLOBAL(__setup_cpu_440gx)
_GLOBAL(__setup_cpu_440spe)
b __fixup_440A_mcheck
- /* Temporary fixup for arch/ppc until we kill the whole thing */
-#ifndef CONFIG_PPC_MERGE
-_GLOBAL(__fixup_440A_mcheck)
- blr
-#endif
-
/* enable APU between CPU and FPU */
_GLOBAL(__init_fpu_44x)
mfspr r3,SPRN_CCR0
diff --git a/trunk/arch/powerpc/kernel/irq.c b/trunk/arch/powerpc/kernel/irq.c
index 6ac8612da3c3..d972decf0324 100644
--- a/trunk/arch/powerpc/kernel/irq.c
+++ b/trunk/arch/powerpc/kernel/irq.c
@@ -77,22 +77,12 @@ static int ppc_spurious_interrupts;
EXPORT_SYMBOL(__irq_offset_value);
atomic_t ppc_n_lost_interrupts;
-#ifndef CONFIG_PPC_MERGE
-#define NR_MASK_WORDS ((NR_IRQS + 31) / 32)
-unsigned long ppc_cached_irq_mask[NR_MASK_WORDS];
-#endif
-
#ifdef CONFIG_TAU_INT
extern int tau_initialized;
extern int tau_interrupts(int);
#endif
#endif /* CONFIG_PPC32 */
-#if defined(CONFIG_SMP) && !defined(CONFIG_PPC_MERGE)
-extern atomic_t ipi_recv;
-extern atomic_t ipi_sent;
-#endif
-
#ifdef CONFIG_PPC64
EXPORT_SYMBOL(irq_desc);
@@ -216,21 +206,14 @@ int show_interrupts(struct seq_file *p, void *v)
skip:
spin_unlock_irqrestore(&desc->lock, flags);
} else if (i == NR_IRQS) {
-#ifdef CONFIG_PPC32
-#ifdef CONFIG_TAU_INT
+#if defined(CONFIG_PPC32) && defined(CONFIG_TAU_INT)
if (tau_initialized){
seq_puts(p, "TAU: ");
for_each_online_cpu(j)
seq_printf(p, "%10u ", tau_interrupts(j));
seq_puts(p, " PowerPC Thermal Assist (cpu temp)\n");
}
-#endif
-#if defined(CONFIG_SMP) && !defined(CONFIG_PPC_MERGE)
- /* should this be per processor send/receive? */
- seq_printf(p, "IPI (recv/sent): %10u/%u\n",
- atomic_read(&ipi_recv), atomic_read(&ipi_sent));
-#endif
-#endif /* CONFIG_PPC32 */
+#endif /* CONFIG_PPC32 && CONFIG_TAU_INT*/
seq_printf(p, "BAD: %10u\n", ppc_spurious_interrupts);
}
return 0;
@@ -454,8 +437,6 @@ void do_softirq(void)
* IRQ controller and virtual interrupts
*/
-#ifdef CONFIG_PPC_MERGE
-
static LIST_HEAD(irq_hosts);
static DEFINE_SPINLOCK(irq_big_lock);
static DEFINE_PER_CPU(unsigned int, irq_radix_reader);
@@ -1114,8 +1095,6 @@ static int __init irq_debugfs_init(void)
__initcall(irq_debugfs_init);
#endif /* CONFIG_VIRQ_DEBUG */
-#endif /* CONFIG_PPC_MERGE */
-
#ifdef CONFIG_PPC64
static int __init setup_noirqdistrib(char *str)
{
diff --git a/trunk/arch/powerpc/kernel/process.c b/trunk/arch/powerpc/kernel/process.c
index e030f3bd5024..957bded0020d 100644
--- a/trunk/arch/powerpc/kernel/process.c
+++ b/trunk/arch/powerpc/kernel/process.c
@@ -276,10 +276,8 @@ int set_dabr(unsigned long dabr)
{
__get_cpu_var(current_dabr) = dabr;
-#ifdef CONFIG_PPC_MERGE /* XXX for now */
if (ppc_md.set_dabr)
return ppc_md.set_dabr(dabr);
-#endif
/* XXX should we have a CPU_FTR_HAS_DABR ? */
#if defined(CONFIG_PPC64) || defined(CONFIG_6xx)
diff --git a/trunk/arch/powerpc/kernel/vdso.c b/trunk/arch/powerpc/kernel/vdso.c
index f177c60ea766..65639a43e644 100644
--- a/trunk/arch/powerpc/kernel/vdso.c
+++ b/trunk/arch/powerpc/kernel/vdso.c
@@ -788,9 +788,7 @@ static int __init vdso_init(void)
return 0;
}
-#ifdef CONFIG_PPC_MERGE
arch_initcall(vdso_init);
-#endif
int in_gate_area_no_task(unsigned long addr)
{
diff --git a/trunk/arch/powerpc/lib/Makefile b/trunk/arch/powerpc/lib/Makefile
index 2a88e8b9a3c6..d69912c07ce7 100644
--- a/trunk/arch/powerpc/lib/Makefile
+++ b/trunk/arch/powerpc/lib/Makefile
@@ -6,12 +6,10 @@ ifeq ($(CONFIG_PPC64),y)
EXTRA_CFLAGS += -mno-minimal-toc
endif
-ifeq ($(CONFIG_PPC_MERGE),y)
obj-y := string.o alloc.o \
checksum_$(CONFIG_WORD_SIZE).o
obj-$(CONFIG_PPC32) += div64.o copy_32.o crtsavres.o
obj-$(CONFIG_HAS_IOMEM) += devres.o
-endif
obj-$(CONFIG_PPC64) += copypage_64.o copyuser_64.o \
memcpy_64.o usercopy_64.o mem_64.o string.o
diff --git a/trunk/arch/powerpc/mm/mem.c b/trunk/arch/powerpc/mm/mem.c
index 702691cb9e82..1c93c255873b 100644
--- a/trunk/arch/powerpc/mm/mem.c
+++ b/trunk/arch/powerpc/mm/mem.c
@@ -311,7 +311,7 @@ void __init paging_init(void)
#endif /* CONFIG_HIGHMEM */
printk(KERN_DEBUG "Top of RAM: 0x%llx, Total RAM: 0x%lx\n",
- (u64)top_of_ram, total_ram);
+ (unsigned long long)top_of_ram, total_ram);
printk(KERN_DEBUG "Memory hole size: %ldMB\n",
(long int)((top_of_ram - total_ram) >> 20));
memset(max_zone_pfns, 0, sizeof(max_zone_pfns));
diff --git a/trunk/arch/powerpc/mm/ppc_mmu_32.c b/trunk/arch/powerpc/mm/ppc_mmu_32.c
index c53145f61942..6aa120813775 100644
--- a/trunk/arch/powerpc/mm/ppc_mmu_32.c
+++ b/trunk/arch/powerpc/mm/ppc_mmu_32.c
@@ -236,8 +236,8 @@ void __init MMU_init_hw(void)
Hash_end = (struct hash_pte *) ((unsigned long)Hash + Hash_size);
- printk("Total memory = %ldMB; using %ldkB for hash table (at %p)\n",
- total_memory >> 20, Hash_size >> 10, Hash);
+ printk("Total memory = %lldMB; using %ldkB for hash table (at %p)\n",
+ (unsigned long long)(total_memory >> 20), Hash_size >> 10, Hash);
/*
diff --git a/trunk/arch/powerpc/mm/tlb_64.c b/trunk/arch/powerpc/mm/tlb_64.c
index 409fcc7b63ce..be7dd422c0fa 100644
--- a/trunk/arch/powerpc/mm/tlb_64.c
+++ b/trunk/arch/powerpc/mm/tlb_64.c
@@ -34,7 +34,7 @@
DEFINE_PER_CPU(struct ppc64_tlb_batch, ppc64_tlb_batch);
/* This is declared as we are using the more or less generic
- * include/asm-powerpc/tlb.h file -- tgall
+ * arch/powerpc/include/asm/tlb.h file -- tgall
*/
DEFINE_PER_CPU(struct mmu_gather, mmu_gathers);
static DEFINE_PER_CPU(struct pte_freelist_batch *, pte_freelist_cur);
diff --git a/trunk/arch/powerpc/platforms/52xx/Makefile b/trunk/arch/powerpc/platforms/52xx/Makefile
index daf0e1568d6d..b8a52062738a 100644
--- a/trunk/arch/powerpc/platforms/52xx/Makefile
+++ b/trunk/arch/powerpc/platforms/52xx/Makefile
@@ -1,10 +1,8 @@
#
# Makefile for 52xx based boards
#
-ifeq ($(CONFIG_PPC_MERGE),y)
obj-y += mpc52xx_pic.o mpc52xx_common.o
obj-$(CONFIG_PCI) += mpc52xx_pci.o
-endif
obj-$(CONFIG_PPC_MPC5200_SIMPLE) += mpc5200_simple.o
obj-$(CONFIG_PPC_EFIKA) += efika.o
@@ -15,4 +13,4 @@ ifeq ($(CONFIG_PPC_LITE5200),y)
obj-$(CONFIG_PM) += lite5200_sleep.o lite5200_pm.o
endif
-obj-$(CONFIG_PPC_MPC5200_GPIO) += mpc52xx_gpio.o
\ No newline at end of file
+obj-$(CONFIG_PPC_MPC5200_GPIO) += mpc52xx_gpio.o
diff --git a/trunk/arch/powerpc/platforms/86xx/mpc86xx_smp.c b/trunk/arch/powerpc/platforms/86xx/mpc86xx_smp.c
index 835f2dc24dc9..014e26cda08d 100644
--- a/trunk/arch/powerpc/platforms/86xx/mpc86xx_smp.c
+++ b/trunk/arch/powerpc/platforms/86xx/mpc86xx_smp.c
@@ -19,7 +19,7 @@
#include
#include
#include
-#include
+#include
#include
#include
diff --git a/trunk/arch/powerpc/platforms/Makefile b/trunk/arch/powerpc/platforms/Makefile
index 423a0234dc31..8079e0b4fd69 100644
--- a/trunk/arch/powerpc/platforms/Makefile
+++ b/trunk/arch/powerpc/platforms/Makefile
@@ -1,13 +1,7 @@
obj-$(CONFIG_FSL_ULI1575) += fsl_uli1575.o
-ifeq ($(CONFIG_PPC_MERGE),y)
obj-$(CONFIG_PPC_PMAC) += powermac/
-else
-ifeq ($(CONFIG_PPC64),y)
-obj-$(CONFIG_PPC_PMAC) += powermac/
-endif
-endif
obj-$(CONFIG_PPC_CHRP) += chrp/
obj-$(CONFIG_40x) += 40x/
obj-$(CONFIG_44x) += 44x/
diff --git a/trunk/arch/powerpc/platforms/powermac/Makefile b/trunk/arch/powerpc/platforms/powermac/Makefile
index 89774177b209..58ecdd72630f 100644
--- a/trunk/arch/powerpc/platforms/powermac/Makefile
+++ b/trunk/arch/powerpc/platforms/powermac/Makefile
@@ -7,7 +7,7 @@ endif
obj-y += pic.o setup.o time.o feature.o pci.o \
sleep.o low_i2c.o cache.o pfunc_core.o \
- pfunc_base.o
+ pfunc_base.o udbg_scc.o udbg_adb.o
obj-$(CONFIG_PMAC_BACKLIGHT) += backlight.o
obj-$(CONFIG_CPU_FREQ_PMAC) += cpufreq_32.o
obj-$(CONFIG_CPU_FREQ_PMAC64) += cpufreq_64.o
@@ -19,4 +19,3 @@ obj-$(CONFIG_NVRAM:m=y) += nvram.o
obj-$(CONFIG_PPC64) += nvram.o
obj-$(CONFIG_PPC32) += bootx_init.o
obj-$(CONFIG_SMP) += smp.o
-obj-$(CONFIG_PPC_MERGE) += udbg_scc.o udbg_adb.o
diff --git a/trunk/arch/powerpc/sysdev/Makefile b/trunk/arch/powerpc/sysdev/Makefile
index 16a0ed28eb00..a90054b56d5c 100644
--- a/trunk/arch/powerpc/sysdev/Makefile
+++ b/trunk/arch/powerpc/sysdev/Makefile
@@ -25,7 +25,6 @@ obj-$(CONFIG_MV64X60) += $(mv64x60-y) mv64x60_pic.o mv64x60_dev.o \
obj-$(CONFIG_RTC_DRV_CMOS) += rtc_cmos_setup.o
obj-$(CONFIG_AXON_RAM) += axonram.o
-ifeq ($(CONFIG_PPC_MERGE),y)
obj-$(CONFIG_PPC_INDIRECT_PCI) += indirect_pci.o
obj-$(CONFIG_PPC_I8259) += i8259.o
obj-$(CONFIG_IPIC) += ipic.o
@@ -36,7 +35,6 @@ obj-$(CONFIG_OF_RTC) += of_rtc.o
ifeq ($(CONFIG_PCI),y)
obj-$(CONFIG_4xx) += ppc4xx_pci.o
endif
-endif
# Temporary hack until we have migrated to asm-powerpc
ifeq ($(ARCH),powerpc)
diff --git a/trunk/include/asm-s390/Kbuild b/trunk/arch/s390/include/asm/Kbuild
similarity index 100%
rename from trunk/include/asm-s390/Kbuild
rename to trunk/arch/s390/include/asm/Kbuild
diff --git a/trunk/include/asm-s390/airq.h b/trunk/arch/s390/include/asm/airq.h
similarity index 100%
rename from trunk/include/asm-s390/airq.h
rename to trunk/arch/s390/include/asm/airq.h
diff --git a/trunk/include/asm-s390/appldata.h b/trunk/arch/s390/include/asm/appldata.h
similarity index 100%
rename from trunk/include/asm-s390/appldata.h
rename to trunk/arch/s390/include/asm/appldata.h
diff --git a/trunk/include/asm-s390/atomic.h b/trunk/arch/s390/include/asm/atomic.h
similarity index 100%
rename from trunk/include/asm-s390/atomic.h
rename to trunk/arch/s390/include/asm/atomic.h
diff --git a/trunk/include/asm-s390/auxvec.h b/trunk/arch/s390/include/asm/auxvec.h
similarity index 100%
rename from trunk/include/asm-s390/auxvec.h
rename to trunk/arch/s390/include/asm/auxvec.h
diff --git a/trunk/include/asm-s390/bitops.h b/trunk/arch/s390/include/asm/bitops.h
similarity index 100%
rename from trunk/include/asm-s390/bitops.h
rename to trunk/arch/s390/include/asm/bitops.h
diff --git a/trunk/include/asm-s390/bug.h b/trunk/arch/s390/include/asm/bug.h
similarity index 100%
rename from trunk/include/asm-s390/bug.h
rename to trunk/arch/s390/include/asm/bug.h
diff --git a/trunk/include/asm-s390/bugs.h b/trunk/arch/s390/include/asm/bugs.h
similarity index 100%
rename from trunk/include/asm-s390/bugs.h
rename to trunk/arch/s390/include/asm/bugs.h
diff --git a/trunk/include/asm-s390/byteorder.h b/trunk/arch/s390/include/asm/byteorder.h
similarity index 100%
rename from trunk/include/asm-s390/byteorder.h
rename to trunk/arch/s390/include/asm/byteorder.h
diff --git a/trunk/include/asm-s390/cache.h b/trunk/arch/s390/include/asm/cache.h
similarity index 100%
rename from trunk/include/asm-s390/cache.h
rename to trunk/arch/s390/include/asm/cache.h
diff --git a/trunk/include/asm-s390/cacheflush.h b/trunk/arch/s390/include/asm/cacheflush.h
similarity index 100%
rename from trunk/include/asm-s390/cacheflush.h
rename to trunk/arch/s390/include/asm/cacheflush.h
diff --git a/trunk/include/asm-s390/ccwdev.h b/trunk/arch/s390/include/asm/ccwdev.h
similarity index 100%
rename from trunk/include/asm-s390/ccwdev.h
rename to trunk/arch/s390/include/asm/ccwdev.h
diff --git a/trunk/include/asm-s390/ccwgroup.h b/trunk/arch/s390/include/asm/ccwgroup.h
similarity index 100%
rename from trunk/include/asm-s390/ccwgroup.h
rename to trunk/arch/s390/include/asm/ccwgroup.h
diff --git a/trunk/include/asm-s390/checksum.h b/trunk/arch/s390/include/asm/checksum.h
similarity index 100%
rename from trunk/include/asm-s390/checksum.h
rename to trunk/arch/s390/include/asm/checksum.h
diff --git a/trunk/include/asm-s390/chpid.h b/trunk/arch/s390/include/asm/chpid.h
similarity index 100%
rename from trunk/include/asm-s390/chpid.h
rename to trunk/arch/s390/include/asm/chpid.h
diff --git a/trunk/include/asm-s390/chsc.h b/trunk/arch/s390/include/asm/chsc.h
similarity index 100%
rename from trunk/include/asm-s390/chsc.h
rename to trunk/arch/s390/include/asm/chsc.h
diff --git a/trunk/include/asm-s390/cio.h b/trunk/arch/s390/include/asm/cio.h
similarity index 100%
rename from trunk/include/asm-s390/cio.h
rename to trunk/arch/s390/include/asm/cio.h
diff --git a/trunk/include/asm-s390/cmb.h b/trunk/arch/s390/include/asm/cmb.h
similarity index 100%
rename from trunk/include/asm-s390/cmb.h
rename to trunk/arch/s390/include/asm/cmb.h
diff --git a/trunk/include/asm-s390/compat.h b/trunk/arch/s390/include/asm/compat.h
similarity index 100%
rename from trunk/include/asm-s390/compat.h
rename to trunk/arch/s390/include/asm/compat.h
diff --git a/trunk/include/asm-s390/cpcmd.h b/trunk/arch/s390/include/asm/cpcmd.h
similarity index 100%
rename from trunk/include/asm-s390/cpcmd.h
rename to trunk/arch/s390/include/asm/cpcmd.h
diff --git a/trunk/include/asm-s390/cpu.h b/trunk/arch/s390/include/asm/cpu.h
similarity index 100%
rename from trunk/include/asm-s390/cpu.h
rename to trunk/arch/s390/include/asm/cpu.h
diff --git a/trunk/include/asm-s390/cputime.h b/trunk/arch/s390/include/asm/cputime.h
similarity index 100%
rename from trunk/include/asm-s390/cputime.h
rename to trunk/arch/s390/include/asm/cputime.h
diff --git a/trunk/include/asm-s390/current.h b/trunk/arch/s390/include/asm/current.h
similarity index 100%
rename from trunk/include/asm-s390/current.h
rename to trunk/arch/s390/include/asm/current.h
diff --git a/trunk/include/asm-s390/dasd.h b/trunk/arch/s390/include/asm/dasd.h
similarity index 100%
rename from trunk/include/asm-s390/dasd.h
rename to trunk/arch/s390/include/asm/dasd.h
diff --git a/trunk/include/asm-s390/debug.h b/trunk/arch/s390/include/asm/debug.h
similarity index 100%
rename from trunk/include/asm-s390/debug.h
rename to trunk/arch/s390/include/asm/debug.h
diff --git a/trunk/include/asm-s390/delay.h b/trunk/arch/s390/include/asm/delay.h
similarity index 100%
rename from trunk/include/asm-s390/delay.h
rename to trunk/arch/s390/include/asm/delay.h
diff --git a/trunk/include/asm-s390/device.h b/trunk/arch/s390/include/asm/device.h
similarity index 100%
rename from trunk/include/asm-s390/device.h
rename to trunk/arch/s390/include/asm/device.h
diff --git a/trunk/include/asm-s390/diag.h b/trunk/arch/s390/include/asm/diag.h
similarity index 100%
rename from trunk/include/asm-s390/diag.h
rename to trunk/arch/s390/include/asm/diag.h
diff --git a/trunk/include/asm-s390/div64.h b/trunk/arch/s390/include/asm/div64.h
similarity index 100%
rename from trunk/include/asm-s390/div64.h
rename to trunk/arch/s390/include/asm/div64.h
diff --git a/trunk/include/asm-s390/dma.h b/trunk/arch/s390/include/asm/dma.h
similarity index 100%
rename from trunk/include/asm-s390/dma.h
rename to trunk/arch/s390/include/asm/dma.h
diff --git a/trunk/include/asm-s390/ebcdic.h b/trunk/arch/s390/include/asm/ebcdic.h
similarity index 100%
rename from trunk/include/asm-s390/ebcdic.h
rename to trunk/arch/s390/include/asm/ebcdic.h
diff --git a/trunk/include/asm-s390/elf.h b/trunk/arch/s390/include/asm/elf.h
similarity index 100%
rename from trunk/include/asm-s390/elf.h
rename to trunk/arch/s390/include/asm/elf.h
diff --git a/trunk/include/asm-s390/emergency-restart.h b/trunk/arch/s390/include/asm/emergency-restart.h
similarity index 100%
rename from trunk/include/asm-s390/emergency-restart.h
rename to trunk/arch/s390/include/asm/emergency-restart.h
diff --git a/trunk/include/asm-s390/errno.h b/trunk/arch/s390/include/asm/errno.h
similarity index 100%
rename from trunk/include/asm-s390/errno.h
rename to trunk/arch/s390/include/asm/errno.h
diff --git a/trunk/include/asm-s390/etr.h b/trunk/arch/s390/include/asm/etr.h
similarity index 100%
rename from trunk/include/asm-s390/etr.h
rename to trunk/arch/s390/include/asm/etr.h
diff --git a/trunk/include/asm-s390/extmem.h b/trunk/arch/s390/include/asm/extmem.h
similarity index 100%
rename from trunk/include/asm-s390/extmem.h
rename to trunk/arch/s390/include/asm/extmem.h
diff --git a/trunk/include/asm-s390/fb.h b/trunk/arch/s390/include/asm/fb.h
similarity index 100%
rename from trunk/include/asm-s390/fb.h
rename to trunk/arch/s390/include/asm/fb.h
diff --git a/trunk/include/asm-s390/fcntl.h b/trunk/arch/s390/include/asm/fcntl.h
similarity index 100%
rename from trunk/include/asm-s390/fcntl.h
rename to trunk/arch/s390/include/asm/fcntl.h
diff --git a/trunk/include/asm-s390/fcx.h b/trunk/arch/s390/include/asm/fcx.h
similarity index 100%
rename from trunk/include/asm-s390/fcx.h
rename to trunk/arch/s390/include/asm/fcx.h
diff --git a/trunk/include/asm-s390/futex.h b/trunk/arch/s390/include/asm/futex.h
similarity index 100%
rename from trunk/include/asm-s390/futex.h
rename to trunk/arch/s390/include/asm/futex.h
diff --git a/trunk/include/asm-s390/hardirq.h b/trunk/arch/s390/include/asm/hardirq.h
similarity index 100%
rename from trunk/include/asm-s390/hardirq.h
rename to trunk/arch/s390/include/asm/hardirq.h
diff --git a/trunk/include/asm-s390/hugetlb.h b/trunk/arch/s390/include/asm/hugetlb.h
similarity index 100%
rename from trunk/include/asm-s390/hugetlb.h
rename to trunk/arch/s390/include/asm/hugetlb.h
diff --git a/trunk/include/asm-s390/idals.h b/trunk/arch/s390/include/asm/idals.h
similarity index 100%
rename from trunk/include/asm-s390/idals.h
rename to trunk/arch/s390/include/asm/idals.h
diff --git a/trunk/include/asm-s390/io.h b/trunk/arch/s390/include/asm/io.h
similarity index 100%
rename from trunk/include/asm-s390/io.h
rename to trunk/arch/s390/include/asm/io.h
diff --git a/trunk/include/asm-s390/ioctl.h b/trunk/arch/s390/include/asm/ioctl.h
similarity index 100%
rename from trunk/include/asm-s390/ioctl.h
rename to trunk/arch/s390/include/asm/ioctl.h
diff --git a/trunk/include/asm-s390/ioctls.h b/trunk/arch/s390/include/asm/ioctls.h
similarity index 100%
rename from trunk/include/asm-s390/ioctls.h
rename to trunk/arch/s390/include/asm/ioctls.h
diff --git a/trunk/include/asm-s390/ipcbuf.h b/trunk/arch/s390/include/asm/ipcbuf.h
similarity index 100%
rename from trunk/include/asm-s390/ipcbuf.h
rename to trunk/arch/s390/include/asm/ipcbuf.h
diff --git a/trunk/include/asm-s390/ipl.h b/trunk/arch/s390/include/asm/ipl.h
similarity index 100%
rename from trunk/include/asm-s390/ipl.h
rename to trunk/arch/s390/include/asm/ipl.h
diff --git a/trunk/include/asm-s390/irq.h b/trunk/arch/s390/include/asm/irq.h
similarity index 100%
rename from trunk/include/asm-s390/irq.h
rename to trunk/arch/s390/include/asm/irq.h
diff --git a/trunk/include/asm-s390/irq_regs.h b/trunk/arch/s390/include/asm/irq_regs.h
similarity index 100%
rename from trunk/include/asm-s390/irq_regs.h
rename to trunk/arch/s390/include/asm/irq_regs.h
diff --git a/trunk/include/asm-s390/irqflags.h b/trunk/arch/s390/include/asm/irqflags.h
similarity index 100%
rename from trunk/include/asm-s390/irqflags.h
rename to trunk/arch/s390/include/asm/irqflags.h
diff --git a/trunk/include/asm-s390/isc.h b/trunk/arch/s390/include/asm/isc.h
similarity index 100%
rename from trunk/include/asm-s390/isc.h
rename to trunk/arch/s390/include/asm/isc.h
diff --git a/trunk/include/asm-s390/itcw.h b/trunk/arch/s390/include/asm/itcw.h
similarity index 100%
rename from trunk/include/asm-s390/itcw.h
rename to trunk/arch/s390/include/asm/itcw.h
diff --git a/trunk/include/asm-s390/kdebug.h b/trunk/arch/s390/include/asm/kdebug.h
similarity index 100%
rename from trunk/include/asm-s390/kdebug.h
rename to trunk/arch/s390/include/asm/kdebug.h
diff --git a/trunk/include/asm-s390/kexec.h b/trunk/arch/s390/include/asm/kexec.h
similarity index 100%
rename from trunk/include/asm-s390/kexec.h
rename to trunk/arch/s390/include/asm/kexec.h
diff --git a/trunk/include/asm-s390/kmap_types.h b/trunk/arch/s390/include/asm/kmap_types.h
similarity index 100%
rename from trunk/include/asm-s390/kmap_types.h
rename to trunk/arch/s390/include/asm/kmap_types.h
diff --git a/trunk/include/asm-s390/kprobes.h b/trunk/arch/s390/include/asm/kprobes.h
similarity index 100%
rename from trunk/include/asm-s390/kprobes.h
rename to trunk/arch/s390/include/asm/kprobes.h
diff --git a/trunk/include/asm-s390/kvm.h b/trunk/arch/s390/include/asm/kvm.h
similarity index 100%
rename from trunk/include/asm-s390/kvm.h
rename to trunk/arch/s390/include/asm/kvm.h
diff --git a/trunk/include/asm-s390/kvm_host.h b/trunk/arch/s390/include/asm/kvm_host.h
similarity index 100%
rename from trunk/include/asm-s390/kvm_host.h
rename to trunk/arch/s390/include/asm/kvm_host.h
diff --git a/trunk/include/asm-s390/kvm_para.h b/trunk/arch/s390/include/asm/kvm_para.h
similarity index 100%
rename from trunk/include/asm-s390/kvm_para.h
rename to trunk/arch/s390/include/asm/kvm_para.h
diff --git a/trunk/include/asm-s390/kvm_virtio.h b/trunk/arch/s390/include/asm/kvm_virtio.h
similarity index 100%
rename from trunk/include/asm-s390/kvm_virtio.h
rename to trunk/arch/s390/include/asm/kvm_virtio.h
diff --git a/trunk/include/asm-s390/linkage.h b/trunk/arch/s390/include/asm/linkage.h
similarity index 100%
rename from trunk/include/asm-s390/linkage.h
rename to trunk/arch/s390/include/asm/linkage.h
diff --git a/trunk/include/asm-s390/local.h b/trunk/arch/s390/include/asm/local.h
similarity index 100%
rename from trunk/include/asm-s390/local.h
rename to trunk/arch/s390/include/asm/local.h
diff --git a/trunk/include/asm-s390/lowcore.h b/trunk/arch/s390/include/asm/lowcore.h
similarity index 100%
rename from trunk/include/asm-s390/lowcore.h
rename to trunk/arch/s390/include/asm/lowcore.h
diff --git a/trunk/include/asm-s390/mathemu.h b/trunk/arch/s390/include/asm/mathemu.h
similarity index 100%
rename from trunk/include/asm-s390/mathemu.h
rename to trunk/arch/s390/include/asm/mathemu.h
diff --git a/trunk/include/asm-s390/mman.h b/trunk/arch/s390/include/asm/mman.h
similarity index 100%
rename from trunk/include/asm-s390/mman.h
rename to trunk/arch/s390/include/asm/mman.h
diff --git a/trunk/include/asm-s390/mmu.h b/trunk/arch/s390/include/asm/mmu.h
similarity index 100%
rename from trunk/include/asm-s390/mmu.h
rename to trunk/arch/s390/include/asm/mmu.h
diff --git a/trunk/include/asm-s390/mmu_context.h b/trunk/arch/s390/include/asm/mmu_context.h
similarity index 100%
rename from trunk/include/asm-s390/mmu_context.h
rename to trunk/arch/s390/include/asm/mmu_context.h
diff --git a/trunk/include/asm-s390/module.h b/trunk/arch/s390/include/asm/module.h
similarity index 100%
rename from trunk/include/asm-s390/module.h
rename to trunk/arch/s390/include/asm/module.h
diff --git a/trunk/include/asm-s390/monwriter.h b/trunk/arch/s390/include/asm/monwriter.h
similarity index 100%
rename from trunk/include/asm-s390/monwriter.h
rename to trunk/arch/s390/include/asm/monwriter.h
diff --git a/trunk/include/asm-s390/msgbuf.h b/trunk/arch/s390/include/asm/msgbuf.h
similarity index 100%
rename from trunk/include/asm-s390/msgbuf.h
rename to trunk/arch/s390/include/asm/msgbuf.h
diff --git a/trunk/include/asm-s390/mutex.h b/trunk/arch/s390/include/asm/mutex.h
similarity index 100%
rename from trunk/include/asm-s390/mutex.h
rename to trunk/arch/s390/include/asm/mutex.h
diff --git a/trunk/include/asm-s390/page.h b/trunk/arch/s390/include/asm/page.h
similarity index 100%
rename from trunk/include/asm-s390/page.h
rename to trunk/arch/s390/include/asm/page.h
diff --git a/trunk/include/asm-s390/param.h b/trunk/arch/s390/include/asm/param.h
similarity index 100%
rename from trunk/include/asm-s390/param.h
rename to trunk/arch/s390/include/asm/param.h
diff --git a/trunk/include/asm-s390/pci.h b/trunk/arch/s390/include/asm/pci.h
similarity index 100%
rename from trunk/include/asm-s390/pci.h
rename to trunk/arch/s390/include/asm/pci.h
diff --git a/trunk/include/asm-s390/percpu.h b/trunk/arch/s390/include/asm/percpu.h
similarity index 100%
rename from trunk/include/asm-s390/percpu.h
rename to trunk/arch/s390/include/asm/percpu.h
diff --git a/trunk/include/asm-s390/pgalloc.h b/trunk/arch/s390/include/asm/pgalloc.h
similarity index 100%
rename from trunk/include/asm-s390/pgalloc.h
rename to trunk/arch/s390/include/asm/pgalloc.h
diff --git a/trunk/include/asm-s390/pgtable.h b/trunk/arch/s390/include/asm/pgtable.h
similarity index 100%
rename from trunk/include/asm-s390/pgtable.h
rename to trunk/arch/s390/include/asm/pgtable.h
diff --git a/trunk/include/asm-s390/poll.h b/trunk/arch/s390/include/asm/poll.h
similarity index 100%
rename from trunk/include/asm-s390/poll.h
rename to trunk/arch/s390/include/asm/poll.h
diff --git a/trunk/include/asm-s390/posix_types.h b/trunk/arch/s390/include/asm/posix_types.h
similarity index 100%
rename from trunk/include/asm-s390/posix_types.h
rename to trunk/arch/s390/include/asm/posix_types.h
diff --git a/trunk/include/asm-s390/processor.h b/trunk/arch/s390/include/asm/processor.h
similarity index 100%
rename from trunk/include/asm-s390/processor.h
rename to trunk/arch/s390/include/asm/processor.h
diff --git a/trunk/include/asm-s390/ptrace.h b/trunk/arch/s390/include/asm/ptrace.h
similarity index 100%
rename from trunk/include/asm-s390/ptrace.h
rename to trunk/arch/s390/include/asm/ptrace.h
diff --git a/trunk/include/asm-s390/qdio.h b/trunk/arch/s390/include/asm/qdio.h
similarity index 100%
rename from trunk/include/asm-s390/qdio.h
rename to trunk/arch/s390/include/asm/qdio.h
diff --git a/trunk/include/asm-s390/qeth.h b/trunk/arch/s390/include/asm/qeth.h
similarity index 100%
rename from trunk/include/asm-s390/qeth.h
rename to trunk/arch/s390/include/asm/qeth.h
diff --git a/trunk/include/asm-s390/reset.h b/trunk/arch/s390/include/asm/reset.h
similarity index 100%
rename from trunk/include/asm-s390/reset.h
rename to trunk/arch/s390/include/asm/reset.h
diff --git a/trunk/include/asm-s390/resource.h b/trunk/arch/s390/include/asm/resource.h
similarity index 100%
rename from trunk/include/asm-s390/resource.h
rename to trunk/arch/s390/include/asm/resource.h
diff --git a/trunk/include/asm-s390/rwsem.h b/trunk/arch/s390/include/asm/rwsem.h
similarity index 100%
rename from trunk/include/asm-s390/rwsem.h
rename to trunk/arch/s390/include/asm/rwsem.h
diff --git a/trunk/include/asm-s390/s390_ext.h b/trunk/arch/s390/include/asm/s390_ext.h
similarity index 100%
rename from trunk/include/asm-s390/s390_ext.h
rename to trunk/arch/s390/include/asm/s390_ext.h
diff --git a/trunk/include/asm-s390/s390_rdev.h b/trunk/arch/s390/include/asm/s390_rdev.h
similarity index 100%
rename from trunk/include/asm-s390/s390_rdev.h
rename to trunk/arch/s390/include/asm/s390_rdev.h
diff --git a/trunk/include/asm-s390/scatterlist.h b/trunk/arch/s390/include/asm/scatterlist.h
similarity index 100%
rename from trunk/include/asm-s390/scatterlist.h
rename to trunk/arch/s390/include/asm/scatterlist.h
diff --git a/trunk/include/asm-s390/schid.h b/trunk/arch/s390/include/asm/schid.h
similarity index 100%
rename from trunk/include/asm-s390/schid.h
rename to trunk/arch/s390/include/asm/schid.h
diff --git a/trunk/include/asm-s390/sclp.h b/trunk/arch/s390/include/asm/sclp.h
similarity index 100%
rename from trunk/include/asm-s390/sclp.h
rename to trunk/arch/s390/include/asm/sclp.h
diff --git a/trunk/include/asm-s390/sections.h b/trunk/arch/s390/include/asm/sections.h
similarity index 100%
rename from trunk/include/asm-s390/sections.h
rename to trunk/arch/s390/include/asm/sections.h
diff --git a/trunk/include/asm-s390/segment.h b/trunk/arch/s390/include/asm/segment.h
similarity index 100%
rename from trunk/include/asm-s390/segment.h
rename to trunk/arch/s390/include/asm/segment.h
diff --git a/trunk/include/asm-s390/sembuf.h b/trunk/arch/s390/include/asm/sembuf.h
similarity index 100%
rename from trunk/include/asm-s390/sembuf.h
rename to trunk/arch/s390/include/asm/sembuf.h
diff --git a/trunk/include/asm-s390/setup.h b/trunk/arch/s390/include/asm/setup.h
similarity index 100%
rename from trunk/include/asm-s390/setup.h
rename to trunk/arch/s390/include/asm/setup.h
diff --git a/trunk/include/asm-s390/sfp-machine.h b/trunk/arch/s390/include/asm/sfp-machine.h
similarity index 100%
rename from trunk/include/asm-s390/sfp-machine.h
rename to trunk/arch/s390/include/asm/sfp-machine.h
diff --git a/trunk/include/asm-s390/sfp-util.h b/trunk/arch/s390/include/asm/sfp-util.h
similarity index 100%
rename from trunk/include/asm-s390/sfp-util.h
rename to trunk/arch/s390/include/asm/sfp-util.h
diff --git a/trunk/include/asm-s390/shmbuf.h b/trunk/arch/s390/include/asm/shmbuf.h
similarity index 100%
rename from trunk/include/asm-s390/shmbuf.h
rename to trunk/arch/s390/include/asm/shmbuf.h
diff --git a/trunk/include/asm-s390/shmparam.h b/trunk/arch/s390/include/asm/shmparam.h
similarity index 100%
rename from trunk/include/asm-s390/shmparam.h
rename to trunk/arch/s390/include/asm/shmparam.h
diff --git a/trunk/include/asm-s390/sigcontext.h b/trunk/arch/s390/include/asm/sigcontext.h
similarity index 100%
rename from trunk/include/asm-s390/sigcontext.h
rename to trunk/arch/s390/include/asm/sigcontext.h
diff --git a/trunk/include/asm-s390/siginfo.h b/trunk/arch/s390/include/asm/siginfo.h
similarity index 100%
rename from trunk/include/asm-s390/siginfo.h
rename to trunk/arch/s390/include/asm/siginfo.h
diff --git a/trunk/include/asm-s390/signal.h b/trunk/arch/s390/include/asm/signal.h
similarity index 100%
rename from trunk/include/asm-s390/signal.h
rename to trunk/arch/s390/include/asm/signal.h
diff --git a/trunk/include/asm-s390/sigp.h b/trunk/arch/s390/include/asm/sigp.h
similarity index 100%
rename from trunk/include/asm-s390/sigp.h
rename to trunk/arch/s390/include/asm/sigp.h
diff --git a/trunk/include/asm-s390/smp.h b/trunk/arch/s390/include/asm/smp.h
similarity index 100%
rename from trunk/include/asm-s390/smp.h
rename to trunk/arch/s390/include/asm/smp.h
diff --git a/trunk/include/asm-s390/socket.h b/trunk/arch/s390/include/asm/socket.h
similarity index 100%
rename from trunk/include/asm-s390/socket.h
rename to trunk/arch/s390/include/asm/socket.h
diff --git a/trunk/include/asm-s390/sockios.h b/trunk/arch/s390/include/asm/sockios.h
similarity index 100%
rename from trunk/include/asm-s390/sockios.h
rename to trunk/arch/s390/include/asm/sockios.h
diff --git a/trunk/include/asm-s390/sparsemem.h b/trunk/arch/s390/include/asm/sparsemem.h
similarity index 100%
rename from trunk/include/asm-s390/sparsemem.h
rename to trunk/arch/s390/include/asm/sparsemem.h
diff --git a/trunk/include/asm-s390/spinlock.h b/trunk/arch/s390/include/asm/spinlock.h
similarity index 100%
rename from trunk/include/asm-s390/spinlock.h
rename to trunk/arch/s390/include/asm/spinlock.h
diff --git a/trunk/include/asm-s390/spinlock_types.h b/trunk/arch/s390/include/asm/spinlock_types.h
similarity index 100%
rename from trunk/include/asm-s390/spinlock_types.h
rename to trunk/arch/s390/include/asm/spinlock_types.h
diff --git a/trunk/include/asm-s390/stat.h b/trunk/arch/s390/include/asm/stat.h
similarity index 100%
rename from trunk/include/asm-s390/stat.h
rename to trunk/arch/s390/include/asm/stat.h
diff --git a/trunk/include/asm-s390/statfs.h b/trunk/arch/s390/include/asm/statfs.h
similarity index 100%
rename from trunk/include/asm-s390/statfs.h
rename to trunk/arch/s390/include/asm/statfs.h
diff --git a/trunk/include/asm-s390/string.h b/trunk/arch/s390/include/asm/string.h
similarity index 100%
rename from trunk/include/asm-s390/string.h
rename to trunk/arch/s390/include/asm/string.h
diff --git a/trunk/include/asm-s390/suspend.h b/trunk/arch/s390/include/asm/suspend.h
similarity index 100%
rename from trunk/include/asm-s390/suspend.h
rename to trunk/arch/s390/include/asm/suspend.h
diff --git a/trunk/include/asm-s390/sysinfo.h b/trunk/arch/s390/include/asm/sysinfo.h
similarity index 100%
rename from trunk/include/asm-s390/sysinfo.h
rename to trunk/arch/s390/include/asm/sysinfo.h
diff --git a/trunk/include/asm-s390/system.h b/trunk/arch/s390/include/asm/system.h
similarity index 100%
rename from trunk/include/asm-s390/system.h
rename to trunk/arch/s390/include/asm/system.h
diff --git a/trunk/include/asm-s390/tape390.h b/trunk/arch/s390/include/asm/tape390.h
similarity index 100%
rename from trunk/include/asm-s390/tape390.h
rename to trunk/arch/s390/include/asm/tape390.h
diff --git a/trunk/include/asm-s390/termbits.h b/trunk/arch/s390/include/asm/termbits.h
similarity index 100%
rename from trunk/include/asm-s390/termbits.h
rename to trunk/arch/s390/include/asm/termbits.h
diff --git a/trunk/include/asm-s390/termios.h b/trunk/arch/s390/include/asm/termios.h
similarity index 100%
rename from trunk/include/asm-s390/termios.h
rename to trunk/arch/s390/include/asm/termios.h
diff --git a/trunk/include/asm-s390/thread_info.h b/trunk/arch/s390/include/asm/thread_info.h
similarity index 100%
rename from trunk/include/asm-s390/thread_info.h
rename to trunk/arch/s390/include/asm/thread_info.h
diff --git a/trunk/include/asm-s390/timer.h b/trunk/arch/s390/include/asm/timer.h
similarity index 100%
rename from trunk/include/asm-s390/timer.h
rename to trunk/arch/s390/include/asm/timer.h
diff --git a/trunk/include/asm-s390/timex.h b/trunk/arch/s390/include/asm/timex.h
similarity index 100%
rename from trunk/include/asm-s390/timex.h
rename to trunk/arch/s390/include/asm/timex.h
diff --git a/trunk/include/asm-s390/tlb.h b/trunk/arch/s390/include/asm/tlb.h
similarity index 100%
rename from trunk/include/asm-s390/tlb.h
rename to trunk/arch/s390/include/asm/tlb.h
diff --git a/trunk/include/asm-s390/tlbflush.h b/trunk/arch/s390/include/asm/tlbflush.h
similarity index 100%
rename from trunk/include/asm-s390/tlbflush.h
rename to trunk/arch/s390/include/asm/tlbflush.h
diff --git a/trunk/include/asm-s390/todclk.h b/trunk/arch/s390/include/asm/todclk.h
similarity index 100%
rename from trunk/include/asm-s390/todclk.h
rename to trunk/arch/s390/include/asm/todclk.h
diff --git a/trunk/include/asm-s390/topology.h b/trunk/arch/s390/include/asm/topology.h
similarity index 100%
rename from trunk/include/asm-s390/topology.h
rename to trunk/arch/s390/include/asm/topology.h
diff --git a/trunk/include/asm-s390/types.h b/trunk/arch/s390/include/asm/types.h
similarity index 100%
rename from trunk/include/asm-s390/types.h
rename to trunk/arch/s390/include/asm/types.h
diff --git a/trunk/include/asm-s390/uaccess.h b/trunk/arch/s390/include/asm/uaccess.h
similarity index 100%
rename from trunk/include/asm-s390/uaccess.h
rename to trunk/arch/s390/include/asm/uaccess.h
diff --git a/trunk/include/asm-s390/ucontext.h b/trunk/arch/s390/include/asm/ucontext.h
similarity index 100%
rename from trunk/include/asm-s390/ucontext.h
rename to trunk/arch/s390/include/asm/ucontext.h
diff --git a/trunk/include/asm-s390/unaligned.h b/trunk/arch/s390/include/asm/unaligned.h
similarity index 100%
rename from trunk/include/asm-s390/unaligned.h
rename to trunk/arch/s390/include/asm/unaligned.h
diff --git a/trunk/include/asm-s390/unistd.h b/trunk/arch/s390/include/asm/unistd.h
similarity index 100%
rename from trunk/include/asm-s390/unistd.h
rename to trunk/arch/s390/include/asm/unistd.h
diff --git a/trunk/include/asm-s390/user.h b/trunk/arch/s390/include/asm/user.h
similarity index 100%
rename from trunk/include/asm-s390/user.h
rename to trunk/arch/s390/include/asm/user.h
diff --git a/trunk/include/asm-s390/vtoc.h b/trunk/arch/s390/include/asm/vtoc.h
similarity index 100%
rename from trunk/include/asm-s390/vtoc.h
rename to trunk/arch/s390/include/asm/vtoc.h
diff --git a/trunk/include/asm-s390/xor.h b/trunk/arch/s390/include/asm/xor.h
similarity index 100%
rename from trunk/include/asm-s390/xor.h
rename to trunk/arch/s390/include/asm/xor.h
diff --git a/trunk/include/asm-s390/zcrypt.h b/trunk/arch/s390/include/asm/zcrypt.h
similarity index 100%
rename from trunk/include/asm-s390/zcrypt.h
rename to trunk/arch/s390/include/asm/zcrypt.h
diff --git a/trunk/arch/sh/Kconfig b/trunk/arch/sh/Kconfig
index cb992c3d6b71..5131d50f851a 100644
--- a/trunk/arch/sh/Kconfig
+++ b/trunk/arch/sh/Kconfig
@@ -48,6 +48,9 @@ config GENERIC_HWEIGHT
config GENERIC_HARDIRQS
def_bool y
+config GENERIC_HARDIRQS_NO__DO_IRQ
+ def_bool y
+
config GENERIC_IRQ_PROBE
def_bool y
@@ -63,6 +66,10 @@ config GENERIC_TIME
config GENERIC_CLOCKEVENTS
def_bool n
+config GENERIC_LOCKBREAK
+ def_bool y
+ depends on SMP && PREEMPT
+
config SYS_SUPPORTS_PM
bool
@@ -94,9 +101,6 @@ config ARCH_HAS_ILOG2_U64
config ARCH_NO_VIRT_TO_BUS
def_bool y
-config ARCH_SUPPORTS_AOUT
- def_bool y
-
config IO_TRAPPED
bool
@@ -483,6 +487,23 @@ config CRASH_DUMP
For more details see Documentation/kdump/kdump.txt
+config SECCOMP
+ bool "Enable seccomp to safely compute untrusted bytecode"
+ depends on PROC_FS
+ default y
+ help
+ This kernel feature is useful for number crunching applications
+ that may need to compute untrusted bytecode during their
+ execution. By using pipes or other transports made available to
+ the process as file descriptors supporting the read/write
+ syscalls, it's possible to isolate those applications in
+ their own address space using seccomp. Once seccomp is
+ enabled via prctl, it cannot be disabled and the task is only
+ allowed to execute a few safe syscalls defined by each seccomp
+ mode.
+
+ If unsure, say N.
+
config SMP
bool "Symmetric multi-processing support"
depends on SYS_SUPPORTS_SMP
diff --git a/trunk/arch/sh/Kconfig.debug b/trunk/arch/sh/Kconfig.debug
index 36f4b1f7066d..4d2d102e00d5 100644
--- a/trunk/arch/sh/Kconfig.debug
+++ b/trunk/arch/sh/Kconfig.debug
@@ -182,7 +182,7 @@ if SUPERH64
config SH64_PROC_ASIDS
bool "Debug: report ASIDs through /proc/asids"
- depends on PROC_FS
+ depends on PROC_FS && MMU
config SH64_SR_WATCH
bool "Debug: set SR.WATCH to enable hardware watchpoints and trace"
diff --git a/trunk/arch/sh/Makefile b/trunk/arch/sh/Makefile
index 25659ce74baa..01d85c74481d 100644
--- a/trunk/arch/sh/Makefile
+++ b/trunk/arch/sh/Makefile
@@ -95,8 +95,6 @@ head-y := arch/sh/kernel/init_task.o
head-$(CONFIG_SUPERH32) += arch/sh/kernel/head_32.o
head-$(CONFIG_SUPERH64) += arch/sh/kernel/head_64.o
-LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
-
core-y += arch/sh/kernel/ arch/sh/mm/ arch/sh/boards/
core-$(CONFIG_SH_FPU_EMU) += arch/sh/math-emu/
@@ -145,10 +143,6 @@ cpuincdir-$(CONFIG_CPU_SH4) += cpu-sh4
cpuincdir-$(CONFIG_CPU_SH5) += cpu-sh5
cpuincdir-y += cpu-common # Must be last
-libs-$(CONFIG_SUPERH32) := arch/sh/lib/ $(libs-y)
-libs-$(CONFIG_SUPERH64) := arch/sh/lib64/ $(libs-y)
-libs-y += $(LIBGCC)
-
drivers-y += arch/sh/drivers/
drivers-$(CONFIG_OPROFILE) += arch/sh/oprofile/
@@ -161,10 +155,16 @@ KBUILD_CFLAGS += -pipe $(cflags-y)
KBUILD_CPPFLAGS += $(cflags-y)
KBUILD_AFLAGS += $(cflags-y)
+LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name)
+
+libs-$(CONFIG_SUPERH32) := arch/sh/lib/ $(libs-y)
+libs-$(CONFIG_SUPERH64) := arch/sh/lib64/ $(libs-y)
+libs-y += $(LIBGCC)
+
PHONY += maketools FORCE
maketools: include/linux/version.h FORCE
- $(Q)$(MAKE) $(build)=arch/sh/tools arch/sh/include/asm/machtypes.h
+ $(Q)$(MAKE) $(build)=arch/sh/tools include/asm-sh/machtypes.h
all: $(KBUILD_IMAGE)
@@ -215,4 +215,4 @@ arch/sh/lib64/syscalltab.h: arch/sh/kernel/syscalls_64.S
$(call filechk,gen-syscalltab)
CLEAN_FILES += arch/sh/lib64/syscalltab.h \
- arch/sh/include/asm/machtypes.h
+ include/asm-sh/machtypes.h
diff --git a/trunk/arch/sh/boards/Makefile b/trunk/arch/sh/boards/Makefile
index ff9b93c5a91b..463022c7df3c 100644
--- a/trunk/arch/sh/boards/Makefile
+++ b/trunk/arch/sh/boards/Makefile
@@ -5,4 +5,4 @@ obj-$(CONFIG_SH_AP325RXA) += board-ap325rxa.o
obj-$(CONFIG_SH_MAGIC_PANEL_R2) += board-magicpanelr2.o
obj-$(CONFIG_SH_RSK7203) += board-rsk7203.o
obj-$(CONFIG_SH_SH7785LCR) += board-sh7785lcr.o
-obj-$(CONFIG_SH_SHMIN) += board-shmin..o
+obj-$(CONFIG_SH_SHMIN) += board-shmin.o
diff --git a/trunk/arch/sh/boards/board-ap325rxa.c b/trunk/arch/sh/boards/board-ap325rxa.c
index 9c71603d29a2..025d4fe55a58 100644
--- a/trunk/arch/sh/boards/board-ap325rxa.c
+++ b/trunk/arch/sh/boards/board-ap325rxa.c
@@ -17,7 +17,6 @@
#include
#include
#include
-#include
#include
#include
#include
diff --git a/trunk/arch/sh/boards/mach-se/7343/irq.c b/trunk/arch/sh/boards/mach-se/7343/irq.c
index 5d96e2eef82a..051c29d4eae0 100644
--- a/trunk/arch/sh/boards/mach-se/7343/irq.c
+++ b/trunk/arch/sh/boards/mach-se/7343/irq.c
@@ -13,7 +13,6 @@
#include
#include
#include
-#include
#include
#include
diff --git a/trunk/arch/sh/boards/mach-systemh/irq.c b/trunk/arch/sh/boards/mach-systemh/irq.c
index 0ba2fe674c47..601c9c8cdbec 100644
--- a/trunk/arch/sh/boards/mach-systemh/irq.c
+++ b/trunk/arch/sh/boards/mach-systemh/irq.c
@@ -11,9 +11,8 @@
#include
#include
+#include
-#include
-#include
#include
#include
#include
diff --git a/trunk/arch/sh/configs/dreamcast_defconfig b/trunk/arch/sh/configs/dreamcast_defconfig
index d4075283956d..3dc1cbd8a981 100644
--- a/trunk/arch/sh/configs/dreamcast_defconfig
+++ b/trunk/arch/sh/configs/dreamcast_defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.26
-# Wed Jul 30 01:34:24 2008
+# Linux kernel version: 2.6.27-rc1
+# Mon Aug 4 16:49:13 2008
#
CONFIG_SUPERH=y
CONFIG_SUPERH32=y
@@ -11,6 +11,7 @@ CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_TIME=y
@@ -21,7 +22,6 @@ CONFIG_LOCKDEP_SUPPORT=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_ARCH_NO_VIRT_TO_BUS=y
-CONFIG_ARCH_SUPPORTS_AOUT=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
@@ -87,6 +87,7 @@ CONFIG_HAVE_OPROFILE=y
# CONFIG_USE_GENERIC_SMP_HELPERS is not set
CONFIG_HAVE_CLK=y
CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
CONFIG_SLABINFO=y
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
@@ -284,6 +285,7 @@ CONFIG_HZ=250
# CONFIG_SCHED_HRTICK is not set
# CONFIG_KEXEC is not set
# CONFIG_CRASH_DUMP is not set
+CONFIG_SECCOMP=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
CONFIG_PREEMPT=y
@@ -317,10 +319,6 @@ CONFIG_PCI_LEGACY=y
#
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
-
-#
-# Networking
-#
CONFIG_NET=y
#
@@ -555,7 +553,7 @@ CONFIG_INPUT_KEYBOARD=y
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
-# CONFIG_KEYBOARD_MAPLE is not set
+CONFIG_KEYBOARD_MAPLE=y
# CONFIG_KEYBOARD_SH_KEYSC is not set
CONFIG_INPUT_MOUSE=y
# CONFIG_MOUSE_PS2 is not set
diff --git a/trunk/arch/sh/include/asm/a.out.h b/trunk/arch/sh/include/asm/a.out.h
deleted file mode 100644
index 1f93130e179c..000000000000
--- a/trunk/arch/sh/include/asm/a.out.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef __ASM_SH_A_OUT_H
-#define __ASM_SH_A_OUT_H
-
-struct exec
-{
- unsigned long a_info; /* Use macros N_MAGIC, etc for access */
- unsigned a_text; /* length of text, in bytes */
- unsigned a_data; /* length of data, in bytes */
- unsigned a_bss; /* length of uninitialized data area for file, in bytes */
- unsigned a_syms; /* length of symbol table data in file, in bytes */
- unsigned a_entry; /* start address */
- unsigned a_trsize; /* length of relocation info for text, in bytes */
- unsigned a_drsize; /* length of relocation info for data, in bytes */
-};
-
-#define N_TRSIZE(a) ((a).a_trsize)
-#define N_DRSIZE(a) ((a).a_drsize)
-#define N_SYMSIZE(a) ((a).a_syms)
-
-#endif /* __ASM_SH_A_OUT_H */
diff --git a/trunk/arch/sh/include/asm/ptrace.h b/trunk/arch/sh/include/asm/ptrace.h
index 643ab5a7cf3b..b86aeabba61a 100644
--- a/trunk/arch/sh/include/asm/ptrace.h
+++ b/trunk/arch/sh/include/asm/ptrace.h
@@ -104,6 +104,15 @@ struct pt_dspregs {
extern void show_regs(struct pt_regs *);
+/*
+ * These are defined as per linux/ptrace.h.
+ */
+struct task_struct;
+
+#define arch_has_single_step() (1)
+extern void user_enable_single_step(struct task_struct *);
+extern void user_disable_single_step(struct task_struct *);
+
#ifdef CONFIG_SH_DSP
#define task_pt_regs(task) \
((struct pt_regs *) (task_stack_page(task) + THREAD_SIZE \
diff --git a/trunk/arch/sh/include/asm/seccomp.h b/trunk/arch/sh/include/asm/seccomp.h
new file mode 100644
index 000000000000..3280ed3802ef
--- /dev/null
+++ b/trunk/arch/sh/include/asm/seccomp.h
@@ -0,0 +1,10 @@
+#ifndef __ASM_SECCOMP_H
+
+#include
+
+#define __NR_seccomp_read __NR_read
+#define __NR_seccomp_write __NR_write
+#define __NR_seccomp_exit __NR_exit
+#define __NR_seccomp_sigreturn __NR_rt_sigreturn
+
+#endif /* __ASM_SECCOMP_H */
diff --git a/trunk/arch/sh/include/asm/thread_info.h b/trunk/arch/sh/include/asm/thread_info.h
index eeb4c747119e..0a894cafb1dd 100644
--- a/trunk/arch/sh/include/asm/thread_info.h
+++ b/trunk/arch/sh/include/asm/thread_info.h
@@ -117,24 +117,45 @@ static inline struct thread_info *current_thread_info(void)
#define TIF_NEED_RESCHED 2 /* rescheduling necessary */
#define TIF_RESTORE_SIGMASK 3 /* restore signal mask in do_signal() */
#define TIF_SINGLESTEP 4 /* singlestepping active */
-#define TIF_SYSCALL_AUDIT 5
+#define TIF_SYSCALL_AUDIT 5 /* syscall auditing active */
+#define TIF_SECCOMP 6 /* secure computing */
+#define TIF_NOTIFY_RESUME 7 /* callback before returning to user */
#define TIF_USEDFPU 16 /* FPU was used by this task this quantum (SMP) */
#define TIF_POLLING_NRFLAG 17 /* true if poll_idle() is polling TIF_NEED_RESCHED */
#define TIF_MEMDIE 18
-#define TIF_FREEZE 19
-
-#define _TIF_SYSCALL_TRACE (1<dtlb.first; \
@@ -33,11 +31,9 @@
tlb += cpu_data->dtlb.step)
/**
- * for_each_itlb_entry
+ * for_each_itlb_entry - Iterate over free (non-wired) ITLB entries
*
* @tlb: TLB entry
- *
- * Iterate over free (non-wired) ITLB entries
*/
#define for_each_itlb_entry(tlb) \
for (tlb = cpu_data->itlb.first; \
@@ -45,11 +41,9 @@
tlb += cpu_data->itlb.step)
/**
- * __flush_tlb_slot
+ * __flush_tlb_slot - Flushes TLB slot @slot.
*
* @slot: Address of TLB slot.
- *
- * Flushes TLB slot @slot.
*/
static inline void __flush_tlb_slot(unsigned long long slot)
{
diff --git a/trunk/arch/sh/include/cpu-sh2/cpu/cache.h b/trunk/arch/sh/include/cpu-sh2/cpu/cache.h
index 4e0b16500686..673515bc4135 100644
--- a/trunk/arch/sh/include/cpu-sh2/cpu/cache.h
+++ b/trunk/arch/sh/include/cpu-sh2/cpu/cache.h
@@ -21,11 +21,11 @@
#define CCR 0xffffffec
#define CCR_CACHE_CE 0x01 /* Cache enable */
-#define CCR_CACHE_WT 0x06 /* CCR[bit1=1,bit2=1] */
+#define CCR_CACHE_WT 0x02 /* CCR[bit1=1,bit2=1] */
/* 0x00000000-0x7fffffff: Write-through */
/* 0x80000000-0x9fffffff: Write-back */
/* 0xc0000000-0xdfffffff: Write-through */
-#define CCR_CACHE_CB 0x00 /* CCR[bit1=0,bit2=0] */
+#define CCR_CACHE_CB 0x04 /* CCR[bit1=0,bit2=0] */
/* 0x00000000-0x7fffffff: Write-back */
/* 0x80000000-0x9fffffff: Write-through */
/* 0xc0000000-0xdfffffff: Write-back */
@@ -36,6 +36,8 @@
#define CCR_CACHE_ENABLE CCR_CACHE_CE
#define CCR_CACHE_INVALIDATE CCR_CACHE_CF
+#define CACHE_PHYSADDR_MASK 0x1ffffc00
+
#endif
#endif /* __ASM_CPU_SH2_CACHE_H */
diff --git a/trunk/arch/sh/include/cpu-sh2a/cpu/addrspace.h b/trunk/arch/sh/include/cpu-sh2a/cpu/addrspace.h
new file mode 100644
index 000000000000..31eb4b58aa6d
--- /dev/null
+++ b/trunk/arch/sh/include/cpu-sh2a/cpu/addrspace.h
@@ -0,0 +1,10 @@
+#ifndef __ASM_SH_CPU_SH2A_ADDRSPACE_H
+#define __ASM_SH_CPU_SH2A_ADDRSPACE_H
+
+#define P0SEG 0x00000000
+#define P1SEG 0x00000000
+#define P2SEG 0x20000000
+#define P3SEG 0x40000000
+#define P4SEG 0x60000000
+
+#endif /* __ASM_SH_CPU_SH2A_ADDRSPACE_H */
diff --git a/trunk/arch/sh/include/cpu-sh2a/cpu/cache.h b/trunk/arch/sh/include/cpu-sh2a/cpu/cache.h
index afe228b3f493..defb0baa5a06 100644
--- a/trunk/arch/sh/include/cpu-sh2a/cpu/cache.h
+++ b/trunk/arch/sh/include/cpu-sh2a/cpu/cache.h
@@ -36,5 +36,8 @@
#define CCR_CACHE_ENABLE (CCR_CACHE_OCE | CCR_CACHE_ICE)
#define CCR_CACHE_INVALIDATE (CCR_CACHE_OCI | CCR_CACHE_ICI)
+#define CCR_ICACHE_INVALIDATE CCR_CACHE_ICI
+#define CCR_OCACHE_INVALIDATE CCR_CACHE_OCI
+#define CACHE_PHYSADDR_MASK 0x1ffffc00
#endif /* __ASM_CPU_SH2A_CACHE_H */
diff --git a/trunk/arch/sh/include/cpu-sh2a/cpu/cacheflush.h b/trunk/arch/sh/include/cpu-sh2a/cpu/cacheflush.h
new file mode 100644
index 000000000000..3d3b9205d2ac
--- /dev/null
+++ b/trunk/arch/sh/include/cpu-sh2a/cpu/cacheflush.h
@@ -0,0 +1,34 @@
+#ifndef __ASM_CPU_SH2A_CACHEFLUSH_H
+#define __ASM_CPU_SH2A_CACHEFLUSH_H
+
+/*
+ * Cache flushing:
+ *
+ * - flush_cache_all() flushes entire cache
+ * - flush_cache_mm(mm) flushes the specified mm context's cache lines
+ * - flush_cache_dup mm(mm) handles cache flushing when forking
+ * - flush_cache_page(mm, vmaddr, pfn) flushes a single page
+ * - flush_cache_range(vma, start, end) flushes a range of pages
+ *
+ * - flush_dcache_page(pg) flushes(wback&invalidates) a page for dcache
+ * - flush_icache_range(start, end) flushes(invalidates) a range for icache
+ * - flush_icache_page(vma, pg) flushes(invalidates) a page for icache
+ *
+ * Caches are indexed (effectively) by physical address on SH-2, so
+ * we don't need them.
+ */
+#define flush_cache_all() do { } while (0)
+#define flush_cache_mm(mm) do { } while (0)
+#define flush_cache_dup_mm(mm) do { } while (0)
+#define flush_cache_range(vma, start, end) do { } while (0)
+#define flush_cache_page(vma, vmaddr, pfn) do { } while (0)
+#define flush_dcache_page(page) do { } while (0)
+#define flush_dcache_mmap_lock(mapping) do { } while (0)
+#define flush_dcache_mmap_unlock(mapping) do { } while (0)
+void flush_icache_range(unsigned long start, unsigned long end);
+#define flush_icache_page(vma,pg) do { } while (0)
+#define flush_icache_user_range(vma,pg,adr,len) do { } while (0)
+#define flush_cache_sigtramp(vaddr) do { } while (0)
+
+#define p3_cache_init() do { } while (0)
+#endif /* __ASM_CPU_SH2A_CACHEFLUSH_H */
diff --git a/trunk/arch/sh/kernel/cpu/sh4/sq.c b/trunk/arch/sh/kernel/cpu/sh4/sq.c
index dcdf959a3d44..8a8a993f55ea 100644
--- a/trunk/arch/sh/kernel/cpu/sh4/sq.c
+++ b/trunk/arch/sh/kernel/cpu/sh4/sq.c
@@ -199,7 +199,7 @@ EXPORT_SYMBOL(sq_remap);
/**
* sq_unmap - Unmap a Store Queue allocation
- * @map: Pre-allocated Store Queue mapping.
+ * @vaddr: Pre-allocated Store Queue mapping.
*
* Unmaps the store queue allocation @map that was previously created by
* sq_remap(). Also frees up the pte that was previously inserted into
diff --git a/trunk/arch/sh/kernel/cpu/sh5/entry.S b/trunk/arch/sh/kernel/cpu/sh5/entry.S
index ca08e7f26a3a..04c7da968146 100644
--- a/trunk/arch/sh/kernel/cpu/sh5/entry.S
+++ b/trunk/arch/sh/kernel/cpu/sh5/entry.S
@@ -987,11 +987,11 @@ work_resched:
work_notifysig:
gettr tr1, LINK
- movi do_signal, r6
+ movi do_notify_resume, r6
ptabs r6, tr0
or SP, ZERO, r2
- or ZERO, ZERO, r3
- blink tr0, LINK /* Call do_signal(regs, 0), return here */
+ or r7, ZERO, r3
+ blink tr0, LINK /* Call do_notify_resume(regs, current_thread_info->flags), return here */
restore_all:
/* Do prefetches */
@@ -1300,18 +1300,20 @@ syscall_allowed:
getcon KCR0, r2
ld.l r2, TI_FLAGS, r4
- movi (_TIF_SYSCALL_TRACE | _TIF_SINGLESTEP | _TIF_SYSCALL_AUDIT), r6
+ movi _TIF_WORK_SYSCALL_MASK, r6
and r6, r4, r6
beq/l r6, ZERO, tr0
/* Trace it by calling syscall_trace before and after */
- movi syscall_trace, r4
+ movi do_syscall_trace_enter, r4
or SP, ZERO, r2
- or ZERO, ZERO, r3
ptabs r4, tr0
blink tr0, LINK
- /* Reload syscall number as r5 is trashed by syscall_trace */
+ /* Save the retval */
+ st.q SP, FRAME_R(2), r2
+
+ /* Reload syscall number as r5 is trashed by do_syscall_trace_enter */
ld.q SP, FRAME_S(FSYSCALL_ID), r5
andi r5, 0x1ff, r5
@@ -1343,9 +1345,8 @@ syscall_ret_trace:
/* We get back here only if under trace */
st.q SP, FRAME_R(9), r2 /* Save return value */
- movi syscall_trace, LINK
+ movi do_syscall_trace_leave, LINK
or SP, ZERO, r2
- movi 1, r3
ptabs LINK, tr0
blink tr0, LINK
diff --git a/trunk/arch/sh/kernel/entry-common.S b/trunk/arch/sh/kernel/entry-common.S
index 5e0dd1933847..0bc17def55a7 100644
--- a/trunk/arch/sh/kernel/entry-common.S
+++ b/trunk/arch/sh/kernel/entry-common.S
@@ -202,7 +202,7 @@ work_resched:
syscall_exit_work:
! r0: current_thread_info->flags
! r8: current_thread_info
- tst #_TIF_SYSCALL_TRACE | _TIF_SINGLESTEP | _TIF_SYSCALL_AUDIT, r0
+ tst #_TIF_WORK_SYSCALL_MASK, r0
bt/s work_pending
tst #_TIF_NEED_RESCHED, r0
#ifdef CONFIG_TRACE_IRQFLAGS
@@ -211,10 +211,8 @@ syscall_exit_work:
nop
#endif
sti
- ! XXX setup arguments...
mov r15, r4
- mov #1, r5
- mov.l 4f, r0 ! do_syscall_trace
+ mov.l 8f, r0 ! do_syscall_trace_leave
jsr @r0
nop
bra resume_userspace
@@ -223,12 +221,11 @@ syscall_exit_work:
.align 2
syscall_trace_entry:
! Yes it is traced.
- ! XXX setup arguments...
mov r15, r4
- mov #0, r5
- mov.l 4f, r11 ! Call do_syscall_trace which notifies
+ mov.l 7f, r11 ! Call do_syscall_trace_enter which notifies
jsr @r11 ! superior (will chomp R[0-7])
nop
+ mov.l r0, @(OFF_R0,r15) ! Save return value
! Reload R0-R4 from kernel stack, where the
! parent may have modified them using
! ptrace(POKEUSR). (Note that R0-R2 are
@@ -351,7 +348,7 @@ ENTRY(system_call)
!
get_current_thread_info r8, r10
mov.l @(TI_FLAGS,r8), r8
- mov #(_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT), r10
+ mov #_TIF_WORK_SYSCALL_MASK, r10
tst r10, r8
bf syscall_trace_entry
!
@@ -389,8 +386,9 @@ syscall_exit:
#endif
2: .long NR_syscalls
3: .long sys_call_table
-4: .long do_syscall_trace
#ifdef CONFIG_TRACE_IRQFLAGS
5: .long trace_hardirqs_on
6: .long trace_hardirqs_off
#endif
+7: .long do_syscall_trace_enter
+8: .long do_syscall_trace_leave
diff --git a/trunk/arch/sh/kernel/machine_kexec.c b/trunk/arch/sh/kernel/machine_kexec.c
index ec1eadce4aaa..4703dff174d5 100644
--- a/trunk/arch/sh/kernel/machine_kexec.c
+++ b/trunk/arch/sh/kernel/machine_kexec.c
@@ -13,6 +13,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -104,3 +105,10 @@ void machine_kexec(struct kimage *image)
(*rnk)(page_list, reboot_code_buffer, image->start, vbr_reg);
}
+void arch_crash_save_vmcoreinfo(void)
+{
+#ifdef CONFIG_NUMA
+ VMCOREINFO_SYMBOL(node_data);
+ VMCOREINFO_LENGTH(node_data, MAX_NUMNODES);
+#endif
+}
diff --git a/trunk/arch/sh/kernel/module.c b/trunk/arch/sh/kernel/module.c
index 5482e65375a9..c43081039dd5 100644
--- a/trunk/arch/sh/kernel/module.c
+++ b/trunk/arch/sh/kernel/module.c
@@ -27,6 +27,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -36,7 +37,8 @@ void *module_alloc(unsigned long size)
{
if (size == 0)
return NULL;
- return vmalloc(size);
+
+ return vmalloc_exec(size);
}
@@ -145,9 +147,10 @@ int module_finalize(const Elf_Ehdr *hdr,
const Elf_Shdr *sechdrs,
struct module *me)
{
- return 0;
+ return module_bug_finalize(hdr, sechdrs, me);
}
void module_arch_cleanup(struct module *mod)
{
+ module_bug_cleanup(mod);
}
diff --git a/trunk/arch/sh/kernel/ptrace_32.c b/trunk/arch/sh/kernel/ptrace_32.c
index 2bc72def5cf8..035cb300d3dc 100644
--- a/trunk/arch/sh/kernel/ptrace_32.c
+++ b/trunk/arch/sh/kernel/ptrace_32.c
@@ -20,6 +20,8 @@
#include
#include
#include
+#include
+#include
#include
#include
#include
@@ -57,7 +59,23 @@ static inline int put_stack_long(struct task_struct *task, int offset,
return 0;
}
-static void ptrace_disable_singlestep(struct task_struct *child)
+void user_enable_single_step(struct task_struct *child)
+{
+ struct pt_regs *regs = task_pt_regs(child);
+ long pc;
+
+ pc = get_stack_long(child, (long)®s->pc);
+
+ /* Next scheduling will set up UBC */
+ if (child->thread.ubc_pc == 0)
+ ubc_usercnt += 1;
+
+ child->thread.ubc_pc = pc;
+
+ set_tsk_thread_flag(child, TIF_SINGLESTEP);
+}
+
+void user_disable_single_step(struct task_struct *child)
{
clear_tsk_thread_flag(child, TIF_SINGLESTEP);
@@ -81,7 +99,7 @@ static void ptrace_disable_singlestep(struct task_struct *child)
*/
void ptrace_disable(struct task_struct *child)
{
- ptrace_disable_singlestep(child);
+ user_disable_single_step(child);
}
long arch_ptrace(struct task_struct *child, long request, long addr, long data)
@@ -90,12 +108,6 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
int ret;
switch (request) {
- /* when I and D space are separate, these will need to be fixed. */
- case PTRACE_PEEKTEXT: /* read word at location addr. */
- case PTRACE_PEEKDATA:
- ret = generic_ptrace_peekdata(child, addr, data);
- break;
-
/* read the word at location addr in the USER area. */
case PTRACE_PEEKUSR: {
unsigned long tmp;
@@ -125,12 +137,6 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
break;
}
- /* when I and D space are separate, this will have to be fixed. */
- case PTRACE_POKETEXT: /* write the word at location addr. */
- case PTRACE_POKEDATA:
- ret = generic_ptrace_pokedata(child, addr, data);
- break;
-
case PTRACE_POKEUSR: /* write the word at location addr in the USER area */
ret = -EIO;
if ((addr & 3) || addr < 0 ||
@@ -151,67 +157,6 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
}
break;
- case PTRACE_SYSCALL: /* continue and stop at next (return from) syscall */
- case PTRACE_CONT: { /* restart after signal. */
- ret = -EIO;
- if (!valid_signal(data))
- break;
- if (request == PTRACE_SYSCALL)
- set_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
- else
- clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
-
- ptrace_disable_singlestep(child);
-
- child->exit_code = data;
- wake_up_process(child);
- ret = 0;
- break;
- }
-
-/*
- * make the child exit. Best I can do is send it a sigkill.
- * perhaps it should be put in the status that it wants to
- * exit.
- */
- case PTRACE_KILL: {
- ret = 0;
- if (child->exit_state == EXIT_ZOMBIE) /* already dead */
- break;
- ptrace_disable_singlestep(child);
- child->exit_code = SIGKILL;
- wake_up_process(child);
- break;
- }
-
- case PTRACE_SINGLESTEP: { /* set the trap flag. */
- long pc;
- struct pt_regs *regs = NULL;
-
- ret = -EIO;
- if (!valid_signal(data))
- break;
- clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
- if ((child->ptrace & PT_DTRACE) == 0) {
- /* Spurious delayed TF traps may occur */
- child->ptrace |= PT_DTRACE;
- }
-
- pc = get_stack_long(child, (long)®s->pc);
-
- /* Next scheduling will set up UBC */
- if (child->thread.ubc_pc == 0)
- ubc_usercnt += 1;
- child->thread.ubc_pc = pc;
-
- set_tsk_thread_flag(child, TIF_SINGLESTEP);
- child->exit_code = data;
- /* give it a chance to run. */
- wake_up_process(child);
- ret = 0;
- break;
- }
-
#ifdef CONFIG_SH_DSP
case PTRACE_GETDSPREGS: {
unsigned long dp;
@@ -272,39 +217,49 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
return ret;
}
-asmlinkage void do_syscall_trace(struct pt_regs *regs, int entryexit)
+static inline int audit_arch(void)
{
- struct task_struct *tsk = current;
+ int arch = EM_SH;
- if (unlikely(current->audit_context) && entryexit)
- audit_syscall_exit(AUDITSC_RESULT(regs->regs[0]),
- regs->regs[0]);
+#ifdef CONFIG_CPU_LITTLE_ENDIAN
+ arch |= __AUDIT_ARCH_LE;
+#endif
- if (!test_thread_flag(TIF_SYSCALL_TRACE) &&
- !test_thread_flag(TIF_SINGLESTEP))
- goto out;
- if (!(tsk->ptrace & PT_PTRACED))
- goto out;
+ return arch;
+}
- /* the 0x80 provides a way for the tracing parent to distinguish
- between a syscall stop and SIGTRAP delivery */
- ptrace_notify(SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD) &&
- !test_thread_flag(TIF_SINGLESTEP) ? 0x80 : 0));
+asmlinkage long do_syscall_trace_enter(struct pt_regs *regs)
+{
+ long ret = 0;
- /*
- * this isn't the same as continuing with a signal, but it will do
- * for normal use. strace only continues with a signal if the
- * stopping signal is not SIGTRAP. -brl
- */
- if (tsk->exit_code) {
- send_sig(tsk->exit_code, tsk, 1);
- tsk->exit_code = 0;
- }
+ secure_computing(regs->regs[0]);
+
+ if (test_thread_flag(TIF_SYSCALL_TRACE) &&
+ tracehook_report_syscall_entry(regs))
+ /*
+ * Tracing decided this syscall should not happen.
+ * We'll return a bogus call number to get an ENOSYS
+ * error, but leave the original number in regs->regs[0].
+ */
+ ret = -1L;
-out:
- if (unlikely(current->audit_context) && !entryexit)
- audit_syscall_entry(AUDIT_ARCH_SH, regs->regs[3],
+ if (unlikely(current->audit_context))
+ audit_syscall_entry(audit_arch(), regs->regs[3],
regs->regs[4], regs->regs[5],
regs->regs[6], regs->regs[7]);
+ return ret ?: regs->regs[0];
+}
+
+asmlinkage void do_syscall_trace_leave(struct pt_regs *regs)
+{
+ int step;
+
+ if (unlikely(current->audit_context))
+ audit_syscall_exit(AUDITSC_RESULT(regs->regs[0]),
+ regs->regs[0]);
+
+ step = test_thread_flag(TIF_SINGLESTEP);
+ if (step || test_thread_flag(TIF_SYSCALL_TRACE))
+ tracehook_report_syscall_exit(regs, step);
}
diff --git a/trunk/arch/sh/kernel/ptrace_64.c b/trunk/arch/sh/kernel/ptrace_64.c
index d453c47dc522..5922edd416db 100644
--- a/trunk/arch/sh/kernel/ptrace_64.c
+++ b/trunk/arch/sh/kernel/ptrace_64.c
@@ -27,6 +27,8 @@
#include
#include
#include
+#include
+#include
#include
#include
#include
@@ -120,18 +122,23 @@ put_fpu_long(struct task_struct *task, unsigned long addr, unsigned long data)
return 0;
}
+void user_enable_single_step(struct task_struct *child)
+{
+ struct pt_regs *regs = child->thread.uregs;
+
+ regs->sr |= SR_SSTEP; /* auto-resetting upon exception */
+}
+
+void user_disable_single_step(struct task_struct *child)
+{
+ regs->sr &= ~SR_SSTEP;
+}
long arch_ptrace(struct task_struct *child, long request, long addr, long data)
{
int ret;
switch (request) {
- /* when I and D space are separate, these will need to be fixed. */
- case PTRACE_PEEKTEXT: /* read word at location addr. */
- case PTRACE_PEEKDATA:
- ret = generic_ptrace_peekdata(child, addr, data);
- break;
-
/* read the word at location addr in the USER area. */
case PTRACE_PEEKUSR: {
unsigned long tmp;
@@ -154,12 +161,6 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
break;
}
- /* when I and D space are separate, this will have to be fixed. */
- case PTRACE_POKETEXT: /* write the word at location addr. */
- case PTRACE_POKEDATA:
- ret = generic_ptrace_pokedata(child, addr, data);
- break;
-
case PTRACE_POKEUSR:
/* write the word at location addr in the USER area. We must
disallow any changes to certain SR bits or u_fpvalid, since
@@ -191,58 +192,6 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
}
break;
- case PTRACE_SYSCALL: /* continue and stop at next (return from) syscall */
- case PTRACE_CONT: { /* restart after signal. */
- ret = -EIO;
- if (!valid_signal(data))
- break;
- if (request == PTRACE_SYSCALL)
- set_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
- else
- clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
- child->exit_code = data;
- wake_up_process(child);
- ret = 0;
- break;
- }
-
-/*
- * make the child exit. Best I can do is send it a sigkill.
- * perhaps it should be put in the status that it wants to
- * exit.
- */
- case PTRACE_KILL: {
- ret = 0;
- if (child->exit_state == EXIT_ZOMBIE) /* already dead */
- break;
- child->exit_code = SIGKILL;
- wake_up_process(child);
- break;
- }
-
- case PTRACE_SINGLESTEP: { /* set the trap flag. */
- struct pt_regs *regs;
-
- ret = -EIO;
- if (!valid_signal(data))
- break;
- clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
- if ((child->ptrace & PT_DTRACE) == 0) {
- /* Spurious delayed TF traps may occur */
- child->ptrace |= PT_DTRACE;
- }
-
- regs = child->thread.uregs;
-
- regs->sr |= SR_SSTEP; /* auto-resetting upon exception */
-
- child->exit_code = data;
- /* give it a chance to run. */
- wake_up_process(child);
- ret = 0;
- break;
- }
-
default:
ret = ptrace_request(child, request, addr, data);
break;
@@ -273,38 +222,51 @@ asmlinkage int sh64_ptrace(long request, long pid, long addr, long data)
return sys_ptrace(request, pid, addr, data);
}
-asmlinkage void syscall_trace(struct pt_regs *regs, int entryexit)
+static inline int audit_arch(void)
{
- struct task_struct *tsk = current;
+ int arch = EM_SH;
- if (unlikely(current->audit_context) && entryexit)
- audit_syscall_exit(AUDITSC_RESULT(regs->regs[9]),
- regs->regs[9]);
+#ifdef CONFIG_64BIT
+ arch |= __AUDIT_ARCH_64BIT;
+#endif
+#ifdef CONFIG_CPU_LITTLE_ENDIAN
+ arch |= __AUDIT_ARCH_LE;
+#endif
- if (!test_thread_flag(TIF_SYSCALL_TRACE) &&
- !test_thread_flag(TIF_SINGLESTEP))
- goto out;
- if (!(tsk->ptrace & PT_PTRACED))
- goto out;
-
- ptrace_notify(SIGTRAP | ((current->ptrace & PT_TRACESYSGOOD) &&
- !test_thread_flag(TIF_SINGLESTEP) ? 0x80 : 0));
-
- /*
- * this isn't the same as continuing with a signal, but it will do
- * for normal use. strace only continues with a signal if the
- * stopping signal is not SIGTRAP. -brl
- */
- if (tsk->exit_code) {
- send_sig(tsk->exit_code, tsk, 1);
- tsk->exit_code = 0;
- }
+ return arch;
+}
-out:
- if (unlikely(current->audit_context) && !entryexit)
- audit_syscall_entry(AUDIT_ARCH_SH, regs->regs[1],
+asmlinkage long long do_syscall_trace_enter(struct pt_regs *regs)
+{
+ long long ret = 0;
+
+ secure_computing(regs->regs[9]);
+
+ if (test_thread_flag(TIF_SYSCALL_TRACE) &&
+ tracehook_report_syscall_entry(regs))
+ /*
+ * Tracing decided this syscall should not happen.
+ * We'll return a bogus call number to get an ENOSYS
+ * error, but leave the original number in regs->regs[0].
+ */
+ ret = -1LL;
+
+ if (unlikely(current->audit_context))
+ audit_syscall_entry(audit_arch(), regs->regs[1],
regs->regs[2], regs->regs[3],
regs->regs[4], regs->regs[5]);
+
+ return ret ?: regs->regs[9];
+}
+
+asmlinkage void do_syscall_trace_leave(struct pt_regs *regs)
+{
+ if (unlikely(current->audit_context))
+ audit_syscall_exit(AUDITSC_RESULT(regs->regs[9]),
+ regs->regs[9]);
+
+ if (test_thread_flag(TIF_SYSCALL_TRACE))
+ tracehook_report_syscall_exit(regs, 0);
}
/* Called with interrupts disabled */
@@ -338,5 +300,5 @@ asmlinkage void do_software_break_point(unsigned long long vec,
*/
void ptrace_disable(struct task_struct *child)
{
- /* nothing to do.. */
+ user_disable_single_step(child);
}
diff --git a/trunk/arch/sh/kernel/setup.c b/trunk/arch/sh/kernel/setup.c
index 6339d0c95715..a35207655e7b 100644
--- a/trunk/arch/sh/kernel/setup.c
+++ b/trunk/arch/sh/kernel/setup.c
@@ -25,6 +25,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -286,6 +287,25 @@ static void __init setup_memory(void)
extern void __init setup_memory(void);
#endif
+/*
+ * Note: elfcorehdr_addr is not just limited to vmcore. It is also used by
+ * is_kdump_kernel() to determine if we are booting after a panic. Hence
+ * ifdef it under CONFIG_CRASH_DUMP and not CONFIG_PROC_VMCORE.
+ */
+#ifdef CONFIG_CRASH_DUMP
+/* elfcorehdr= specifies the location of elf core header
+ * stored by the crashed kernel.
+ */
+static int __init parse_elfcorehdr(char *arg)
+{
+ if (!arg)
+ return -EINVAL;
+ elfcorehdr_addr = memparse(arg, &arg);
+ return 0;
+}
+early_param("elfcorehdr", parse_elfcorehdr);
+#endif
+
void __init setup_arch(char **cmdline_p)
{
enable_mmu();
diff --git a/trunk/arch/sh/kernel/signal_32.c b/trunk/arch/sh/kernel/signal_32.c
index 4bbbde895a53..51689d29ad45 100644
--- a/trunk/arch/sh/kernel/signal_32.c
+++ b/trunk/arch/sh/kernel/signal_32.c
@@ -24,6 +24,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -507,14 +508,13 @@ handle_signal(unsigned long sig, struct k_sigaction *ka, siginfo_t *info,
switch (regs->regs[0]) {
case -ERESTART_RESTARTBLOCK:
case -ERESTARTNOHAND:
+ no_system_call_restart:
regs->regs[0] = -EINTR;
break;
case -ERESTARTSYS:
- if (!(ka->sa.sa_flags & SA_RESTART)) {
- regs->regs[0] = -EINTR;
- break;
- }
+ if (!(ka->sa.sa_flags & SA_RESTART))
+ goto no_system_call_restart;
/* fallthrough */
case -ERESTARTNOINTR:
regs->regs[0] = save_r0;
@@ -589,12 +589,15 @@ static void do_signal(struct pt_regs *regs, unsigned int save_r0)
* clear the TIF_RESTORE_SIGMASK flag */
if (test_thread_flag(TIF_RESTORE_SIGMASK))
clear_thread_flag(TIF_RESTORE_SIGMASK);
+
+ tracehook_signal_handler(signr, &info, &ka, regs,
+ test_thread_flag(TIF_SINGLESTEP));
}
return;
}
- no_signal:
+no_signal:
/* Did we come from a system call? */
if (regs->tra >= 0) {
/* Restart the system call - no handlers present */
@@ -618,9 +621,14 @@ static void do_signal(struct pt_regs *regs, unsigned int save_r0)
}
asmlinkage void do_notify_resume(struct pt_regs *regs, unsigned int save_r0,
- __u32 thread_info_flags)
+ unsigned long thread_info_flags)
{
/* deal with pending signal delivery */
- if (thread_info_flags & (_TIF_SIGPENDING | _TIF_RESTORE_SIGMASK))
+ if (thread_info_flags & _TIF_SIGPENDING)
do_signal(regs, save_r0);
+
+ if (thread_info_flags & _TIF_NOTIFY_RESUME) {
+ clear_thread_flag(TIF_NOTIFY_RESUME);
+ tracehook_notify_resume(regs);
+ }
}
diff --git a/trunk/arch/sh/kernel/signal_64.c b/trunk/arch/sh/kernel/signal_64.c
index 552eb810cd85..1d62dfef77f1 100644
--- a/trunk/arch/sh/kernel/signal_64.c
+++ b/trunk/arch/sh/kernel/signal_64.c
@@ -22,6 +22,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -42,7 +43,84 @@
#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
-asmlinkage int do_signal(struct pt_regs *regs, sigset_t *oldset);
+/*
+ * Note that 'init' is a special process: it doesn't get signals it doesn't
+ * want to handle. Thus you cannot kill init even with a SIGKILL even by
+ * mistake.
+ *
+ * Note that we go through the signals twice: once to check the signals that
+ * the kernel can handle, and then we build all the user-level signal handling
+ * stack-frames in one go after that.
+ */
+static int do_signal(struct pt_regs *regs, sigset_t *oldset)
+{
+ siginfo_t info;
+ int signr;
+ struct k_sigaction ka;
+
+ /*
+ * We want the common case to go fast, which
+ * is why we may in certain cases get here from
+ * kernel mode. Just return without doing anything
+ * if so.
+ */
+ if (!user_mode(regs))
+ return 1;
+
+ if (try_to_freeze())
+ goto no_signal;
+
+ if (test_thread_flag(TIF_RESTORE_SIGMASK))
+ oldset = ¤t->saved_sigmask;
+ else if (!oldset)
+ oldset = ¤t->blocked;
+
+ signr = get_signal_to_deliver(&info, &ka, regs, 0);
+
+ if (signr > 0) {
+ /* Whee! Actually deliver the signal. */
+ handle_signal(signr, &info, &ka, oldset, regs);
+
+ /*
+ * If a signal was successfully delivered, the saved sigmask
+ * is in its frame, and we can clear the TIF_RESTORE_SIGMASK
+ * flag.
+ */
+ if (test_thread_flag(TIF_RESTORE_SIGMASK))
+ clear_thread_flag(TIF_RESTORE_SIGMASK);
+
+ tracehook_signal_handler(signr, &info, &ka, regs, 0);
+ return 1;
+ }
+
+no_signal:
+ /* Did we come from a system call? */
+ if (regs->syscall_nr >= 0) {
+ /* Restart the system call - no handlers present */
+ switch (regs->regs[REG_RET]) {
+ case -ERESTARTNOHAND:
+ case -ERESTARTSYS:
+ case -ERESTARTNOINTR:
+ /* Decode Syscall # */
+ regs->regs[REG_RET] = regs->syscall_nr;
+ regs->pc -= 4;
+ break;
+
+ case -ERESTART_RESTARTBLOCK:
+ regs->regs[REG_RET] = __NR_restart_syscall;
+ regs->pc -= 4;
+ break;
+ }
+ }
+
+ /* No signal to deliver -- put the saved sigmask back */
+ if (test_thread_flag(TIF_RESTORE_SIGMASK)) {
+ clear_thread_flag(TIF_RESTORE_SIGMASK);
+ sigprocmask(SIG_SETMASK, ¤t->saved_sigmask, NULL);
+ }
+
+ return 0;
+}
/*
* Atomically swap in the new signal mask, and wait for a signal.
@@ -643,14 +721,13 @@ handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka,
switch (regs->regs[REG_RET]) {
case -ERESTART_RESTARTBLOCK:
case -ERESTARTNOHAND:
+ no_system_call_restart:
regs->regs[REG_RET] = -EINTR;
break;
case -ERESTARTSYS:
- if (!(ka->sa.sa_flags & SA_RESTART)) {
- regs->regs[REG_RET] = -EINTR;
- break;
- }
+ if (!(ka->sa.sa_flags & SA_RESTART))
+ goto no_system_call_restart;
/* fallthrough */
case -ERESTARTNOINTR:
/* Decode syscall # */
@@ -673,80 +750,13 @@ handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka,
spin_unlock_irq(¤t->sighand->siglock);
}
-/*
- * Note that 'init' is a special process: it doesn't get signals it doesn't
- * want to handle. Thus you cannot kill init even with a SIGKILL even by
- * mistake.
- *
- * Note that we go through the signals twice: once to check the signals that
- * the kernel can handle, and then we build all the user-level signal handling
- * stack-frames in one go after that.
- */
-int do_signal(struct pt_regs *regs, sigset_t *oldset)
+asmlinkage void do_notify_resume(struct pt_regs *regs, unsigned long thread_info_flags)
{
- siginfo_t info;
- int signr;
- struct k_sigaction ka;
-
- /*
- * We want the common case to go fast, which
- * is why we may in certain cases get here from
- * kernel mode. Just return without doing anything
- * if so.
- */
- if (!user_mode(regs))
- return 1;
-
- if (try_to_freeze())
- goto no_signal;
-
- if (test_thread_flag(TIF_RESTORE_SIGMASK))
- oldset = ¤t->saved_sigmask;
- else if (!oldset)
- oldset = ¤t->blocked;
-
- signr = get_signal_to_deliver(&info, &ka, regs, 0);
-
- if (signr > 0) {
- /* Whee! Actually deliver the signal. */
- handle_signal(signr, &info, &ka, oldset, regs);
+ if (thread_info_flags & _TIF_SIGPENDING)
+ do_signal(regs, 0);
- /*
- * If a signal was successfully delivered, the saved sigmask
- * is in its frame, and we can clear the TIF_RESTORE_SIGMASK
- * flag.
- */
- if (test_thread_flag(TIF_RESTORE_SIGMASK))
- clear_thread_flag(TIF_RESTORE_SIGMASK);
-
- return 1;
+ if (thread_info_flags & _TIF_NOTIFY_RESUME) {
+ clear_thread_flag(TIF_NOTIFY_RESUME);
+ tracehook_notify_resume(regs);
}
-
-no_signal:
- /* Did we come from a system call? */
- if (regs->syscall_nr >= 0) {
- /* Restart the system call - no handlers present */
- switch (regs->regs[REG_RET]) {
- case -ERESTARTNOHAND:
- case -ERESTARTSYS:
- case -ERESTARTNOINTR:
- /* Decode Syscall # */
- regs->regs[REG_RET] = regs->syscall_nr;
- regs->pc -= 4;
- break;
-
- case -ERESTART_RESTARTBLOCK:
- regs->regs[REG_RET] = __NR_restart_syscall;
- regs->pc -= 4;
- break;
- }
- }
-
- /* No signal to deliver -- put the saved sigmask back */
- if (test_thread_flag(TIF_RESTORE_SIGMASK)) {
- clear_thread_flag(TIF_RESTORE_SIGMASK);
- sigprocmask(SIG_SETMASK, ¤t->saved_sigmask, NULL);
- }
-
- return 0;
}
diff --git a/trunk/arch/sh/mm/Kconfig b/trunk/arch/sh/mm/Kconfig
index 56d0a7daa34b..9c131cac91a4 100644
--- a/trunk/arch/sh/mm/Kconfig
+++ b/trunk/arch/sh/mm/Kconfig
@@ -237,7 +237,6 @@ choice
config CACHE_WRITEBACK
bool "Write-back"
- depends on CPU_SH2A || CPU_SH3 || CPU_SH4 || CPU_SH5
config CACHE_WRITETHROUGH
bool "Write-through"
diff --git a/trunk/arch/sh/mm/Makefile_32 b/trunk/arch/sh/mm/Makefile_32
index e295db60b91b..70e0906023cc 100644
--- a/trunk/arch/sh/mm/Makefile_32
+++ b/trunk/arch/sh/mm/Makefile_32
@@ -5,12 +5,15 @@
obj-y := init.o extable_32.o consistent.o
ifndef CONFIG_CACHE_OFF
-obj-$(CONFIG_CPU_SH2) += cache-sh2.o
-obj-$(CONFIG_CPU_SH3) += cache-sh3.o
-obj-$(CONFIG_CPU_SH4) += cache-sh4.o
-obj-$(CONFIG_SH7705_CACHE_32KB) += cache-sh7705.o
+cache-$(CONFIG_CPU_SH2) := cache-sh2.o
+cache-$(CONFIG_CPU_SH2A) := cache-sh2a.o
+cache-$(CONFIG_CPU_SH3) := cache-sh3.o
+cache-$(CONFIG_CPU_SH4) := cache-sh4.o
+cache-$(CONFIG_SH7705_CACHE_32KB) += cache-sh7705.o
endif
+obj-y += $(cache-y)
+
mmu-y := tlb-nommu.o pg-nommu.o
mmu-$(CONFIG_MMU) := fault_32.o tlbflush_32.o ioremap_32.o
diff --git a/trunk/arch/sh/mm/cache-sh2.c b/trunk/arch/sh/mm/cache-sh2.c
index 6614033f6be9..c4e80d2b764b 100644
--- a/trunk/arch/sh/mm/cache-sh2.c
+++ b/trunk/arch/sh/mm/cache-sh2.c
@@ -2,6 +2,7 @@
* arch/sh/mm/cache-sh2.c
*
* Copyright (C) 2002 Paul Mundt
+ * Copyright (C) 2008 Yoshinori Sato
*
* Released under the terms of the GNU GPL v2.0.
*/
@@ -24,8 +25,15 @@ void __flush_wback_region(void *start, int size)
end = ((unsigned long)start + size + L1_CACHE_BYTES-1)
& ~(L1_CACHE_BYTES-1);
for (v = begin; v < end; v+=L1_CACHE_BYTES) {
- /* FIXME cache purge */
- ctrl_outl((v & 0x1ffffc00), (v & 0x00000ff0) | 0x00000008);
+ unsigned long addr = CACHE_OC_ADDRESS_ARRAY | (v & 0x00000ff0);
+ int way;
+ for (way = 0; way < 4; way++) {
+ unsigned long data = ctrl_inl(addr | (way << 12));
+ if ((data & CACHE_PHYSADDR_MASK) == (v & CACHE_PHYSADDR_MASK)) {
+ data &= ~SH_CACHE_UPDATED;
+ ctrl_outl(data, addr | (way << 12));
+ }
+ }
}
}
@@ -37,21 +45,40 @@ void __flush_purge_region(void *start, int size)
begin = (unsigned long)start & ~(L1_CACHE_BYTES-1);
end = ((unsigned long)start + size + L1_CACHE_BYTES-1)
& ~(L1_CACHE_BYTES-1);
- for (v = begin; v < end; v+=L1_CACHE_BYTES) {
- ctrl_outl((v & 0x1ffffc00), (v & 0x00000ff0) | 0x00000008);
- }
+
+ for (v = begin; v < end; v+=L1_CACHE_BYTES)
+ ctrl_outl((v & CACHE_PHYSADDR_MASK),
+ CACHE_OC_ADDRESS_ARRAY | (v & 0x00000ff0) | 0x00000008);
}
void __flush_invalidate_region(void *start, int size)
{
+#ifdef CONFIG_CACHE_WRITEBACK
+ /*
+ * SH-2 does not support individual line invalidation, only a
+ * global invalidate.
+ */
+ unsigned long ccr;
+ unsigned long flags;
+ local_irq_save(flags);
+ jump_to_uncached();
+
+ ccr = ctrl_inl(CCR);
+ ccr |= CCR_CACHE_INVALIDATE;
+ ctrl_outl(ccr, CCR);
+
+ back_to_cached();
+ local_irq_restore(flags);
+#else
unsigned long v;
unsigned long begin, end;
begin = (unsigned long)start & ~(L1_CACHE_BYTES-1);
end = ((unsigned long)start + size + L1_CACHE_BYTES-1)
& ~(L1_CACHE_BYTES-1);
- for (v = begin; v < end; v+=L1_CACHE_BYTES) {
- ctrl_outl((v & 0x1ffffc00), (v & 0x00000ff0) | 0x00000008);
- }
-}
+ for (v = begin; v < end; v+=L1_CACHE_BYTES)
+ ctrl_outl((v & CACHE_PHYSADDR_MASK),
+ CACHE_OC_ADDRESS_ARRAY | (v & 0x00000ff0) | 0x00000008);
+#endif
+}
diff --git a/trunk/arch/sh/mm/cache-sh2a.c b/trunk/arch/sh/mm/cache-sh2a.c
new file mode 100644
index 000000000000..62c0c5f35120
--- /dev/null
+++ b/trunk/arch/sh/mm/cache-sh2a.c
@@ -0,0 +1,129 @@
+/*
+ * arch/sh/mm/cache-sh2a.c
+ *
+ * Copyright (C) 2008 Yoshinori Sato
+ *
+ * Released under the terms of the GNU GPL v2.0.
+ */
+
+#include
+#include
+
+#include
+#include
+#include
+#include
+#include
+
+void __flush_wback_region(void *start, int size)
+{
+ unsigned long v;
+ unsigned long begin, end;
+ unsigned long flags;
+
+ begin = (unsigned long)start & ~(L1_CACHE_BYTES-1);
+ end = ((unsigned long)start + size + L1_CACHE_BYTES-1)
+ & ~(L1_CACHE_BYTES-1);
+
+ local_irq_save(flags);
+ jump_to_uncached();
+
+ for (v = begin; v < end; v+=L1_CACHE_BYTES) {
+ unsigned long addr = CACHE_OC_ADDRESS_ARRAY | (v & 0x000007f0);
+ int way;
+ for (way = 0; way < 4; way++) {
+ unsigned long data = ctrl_inl(addr | (way << 11));
+ if ((data & CACHE_PHYSADDR_MASK) == (v & CACHE_PHYSADDR_MASK)) {
+ data &= ~SH_CACHE_UPDATED;
+ ctrl_outl(data, addr | (way << 11));
+ }
+ }
+ }
+
+ back_to_cached();
+ local_irq_restore(flags);
+}
+
+void __flush_purge_region(void *start, int size)
+{
+ unsigned long v;
+ unsigned long begin, end;
+ unsigned long flags;
+
+ begin = (unsigned long)start & ~(L1_CACHE_BYTES-1);
+ end = ((unsigned long)start + size + L1_CACHE_BYTES-1)
+ & ~(L1_CACHE_BYTES-1);
+
+ local_irq_save(flags);
+ jump_to_uncached();
+
+ for (v = begin; v < end; v+=L1_CACHE_BYTES) {
+ ctrl_outl((v & CACHE_PHYSADDR_MASK),
+ CACHE_OC_ADDRESS_ARRAY | (v & 0x000003f0) | 0x00000008);
+ }
+ back_to_cached();
+ local_irq_restore(flags);
+}
+
+void __flush_invalidate_region(void *start, int size)
+{
+ unsigned long v;
+ unsigned long begin, end;
+ unsigned long flags;
+
+ begin = (unsigned long)start & ~(L1_CACHE_BYTES-1);
+ end = ((unsigned long)start + size + L1_CACHE_BYTES-1)
+ & ~(L1_CACHE_BYTES-1);
+ local_irq_save(flags);
+ jump_to_uncached();
+
+#ifdef CONFIG_CACHE_WRITEBACK
+ ctrl_outl(ctrl_inl(CCR) | CCR_OCACHE_INVALIDATE, CCR);
+ /* I-cache invalidate */
+ for (v = begin; v < end; v+=L1_CACHE_BYTES) {
+ ctrl_outl((v & CACHE_PHYSADDR_MASK),
+ CACHE_IC_ADDRESS_ARRAY | (v & 0x000003f0) | 0x00000008);
+ }
+#else
+ for (v = begin; v < end; v+=L1_CACHE_BYTES) {
+ ctrl_outl((v & CACHE_PHYSADDR_MASK),
+ CACHE_IC_ADDRESS_ARRAY | (v & 0x000003f0) | 0x00000008);
+ ctrl_outl((v & CACHE_PHYSADDR_MASK),
+ CACHE_OC_ADDRESS_ARRAY | (v & 0x000003f0) | 0x00000008);
+ }
+#endif
+ back_to_cached();
+ local_irq_restore(flags);
+}
+
+/* WBack O-Cache and flush I-Cache */
+void flush_icache_range(unsigned long start, unsigned long end)
+{
+ unsigned long v;
+ unsigned long flags;
+
+ start = start & ~(L1_CACHE_BYTES-1);
+ end = (end + L1_CACHE_BYTES-1) & ~(L1_CACHE_BYTES-1);
+
+ local_irq_save(flags);
+ jump_to_uncached();
+
+ for (v = start; v < end; v+=L1_CACHE_BYTES) {
+ unsigned long addr = (v & 0x000007f0);
+ int way;
+ /* O-Cache writeback */
+ for (way = 0; way < 4; way++) {
+ unsigned long data = ctrl_inl(CACHE_OC_ADDRESS_ARRAY | addr | (way << 11));
+ if ((data & CACHE_PHYSADDR_MASK) == (v & CACHE_PHYSADDR_MASK)) {
+ data &= ~SH_CACHE_UPDATED;
+ ctrl_outl(data, CACHE_OC_ADDRESS_ARRAY | addr | (way << 11));
+ }
+ }
+ /* I-Cache invalidate */
+ ctrl_outl(addr,
+ CACHE_IC_ADDRESS_ARRAY | addr | 0x00000008);
+ }
+
+ back_to_cached();
+ local_irq_restore(flags);
+}
diff --git a/trunk/arch/sh/mm/tlb-sh5.c b/trunk/arch/sh/mm/tlb-sh5.c
index f34274a1ded3..dae131243bcc 100644
--- a/trunk/arch/sh/mm/tlb-sh5.c
+++ b/trunk/arch/sh/mm/tlb-sh5.c
@@ -15,9 +15,7 @@
#include
/**
- * sh64_tlb_init
- *
- * Perform initial setup for the DTLB and ITLB.
+ * sh64_tlb_init - Perform initial setup for the DTLB and ITLB.
*/
int __init sh64_tlb_init(void)
{
@@ -46,9 +44,7 @@ int __init sh64_tlb_init(void)
}
/**
- * sh64_next_free_dtlb_entry
- *
- * Find the next available DTLB entry
+ * sh64_next_free_dtlb_entry - Find the next available DTLB entry
*/
unsigned long long sh64_next_free_dtlb_entry(void)
{
@@ -56,9 +52,7 @@ unsigned long long sh64_next_free_dtlb_entry(void)
}
/**
- * sh64_get_wired_dtlb_entry
- *
- * Allocate a wired (locked-in) entry in the DTLB
+ * sh64_get_wired_dtlb_entry - Allocate a wired (locked-in) entry in the DTLB
*/
unsigned long long sh64_get_wired_dtlb_entry(void)
{
@@ -71,12 +65,10 @@ unsigned long long sh64_get_wired_dtlb_entry(void)
}
/**
- * sh64_put_wired_dtlb_entry
+ * sh64_put_wired_dtlb_entry - Free a wired (locked-in) entry in the DTLB.
*
* @entry: Address of TLB slot.
*
- * Free a wired (locked-in) entry in the DTLB.
- *
* Works like a stack, last one to allocate must be first one to free.
*/
int sh64_put_wired_dtlb_entry(unsigned long long entry)
@@ -115,7 +107,7 @@ int sh64_put_wired_dtlb_entry(unsigned long long entry)
}
/**
- * sh64_setup_tlb_slot
+ * sh64_setup_tlb_slot - Load up a translation in a wired slot.
*
* @config_addr: Address of TLB slot.
* @eaddr: Virtual address.
@@ -154,7 +146,7 @@ inline void sh64_setup_tlb_slot(unsigned long long config_addr,
}
/**
- * sh64_teardown_tlb_slot
+ * sh64_teardown_tlb_slot - Teardown a translation.
*
* @config_addr: Address of TLB slot.
*
diff --git a/trunk/arch/sh/tools/Makefile b/trunk/arch/sh/tools/Makefile
index b5d202be8206..567516b58acc 100644
--- a/trunk/arch/sh/tools/Makefile
+++ b/trunk/arch/sh/tools/Makefile
@@ -10,7 +10,7 @@
# Shamelessly cloned from ARM.
#
-arch/sh/include/asm/machtypes.h: $(src)/gen-mach-types $(src)/mach-types
+include/asm-sh/machtypes.h: $(src)/gen-mach-types $(src)/mach-types
@echo ' Generating $@'
- $(Q)if [ ! -d arch/sh/include/asm ]; then mkdir -p arch/sh/include/asm; fi
+ $(Q)if [ ! -d include/asm-sh ]; then mkdir -p include/asm-sh; fi
$(Q)$(AWK) -f $^ > $@ || { rm -f $@; /bin/false; }
diff --git a/trunk/arch/sparc/include/asm/futex_64.h b/trunk/arch/sparc/include/asm/futex_64.h
index d8378935ae90..47f95839dc69 100644
--- a/trunk/arch/sparc/include/asm/futex_64.h
+++ b/trunk/arch/sparc/include/asm/futex_64.h
@@ -59,7 +59,7 @@ static inline int futex_atomic_op_inuser(int encoded_op, int __user *uaddr)
__futex_cas_op("or\t%2, %4, %1", ret, oldval, uaddr, oparg);
break;
case FUTEX_OP_ANDN:
- __futex_cas_op("and\t%2, %4, %1", ret, oldval, uaddr, oparg);
+ __futex_cas_op("andn\t%2, %4, %1", ret, oldval, uaddr, oparg);
break;
case FUTEX_OP_XOR:
__futex_cas_op("xor\t%2, %4, %1", ret, oldval, uaddr, oparg);
diff --git a/trunk/arch/sparc/include/asm/irq_64.h b/trunk/arch/sparc/include/asm/irq_64.h
index 0bb9bf531745..3473e25231d9 100644
--- a/trunk/arch/sparc/include/asm/irq_64.h
+++ b/trunk/arch/sparc/include/asm/irq_64.h
@@ -90,4 +90,7 @@ static inline unsigned long get_softint(void)
return retval;
}
+void __trigger_all_cpu_backtrace(void);
+#define trigger_all_cpu_backtrace() __trigger_all_cpu_backtrace()
+
#endif
diff --git a/trunk/arch/sparc/include/asm/of_platform.h b/trunk/arch/sparc/include/asm/of_platform.h
index aa699775ffba..93a262c44022 100644
--- a/trunk/arch/sparc/include/asm/of_platform.h
+++ b/trunk/arch/sparc/include/asm/of_platform.h
@@ -1,8 +1,24 @@
#ifndef ___ASM_SPARC_OF_PLATFORM_H
#define ___ASM_SPARC_OF_PLATFORM_H
-#if defined(__sparc__) && defined(__arch64__)
-#include
-#else
-#include
-#endif
+/*
+ * Copyright (C) 2006 Benjamin Herrenschmidt, IBM Corp.
+ *
+ * Modified for Sparc by merging parts of asm/of_device.h
+ * by Stephen Rothwell
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version
+ * 2 of the License, or (at your option) any later version.
+ *
+ */
+
+/* This is just here during the transition */
+#include
+
+extern struct bus_type ebus_bus_type;
+extern struct bus_type sbus_bus_type;
+
+#define of_bus_type of_platform_bus_type /* for compatibility */
+
#endif
diff --git a/trunk/arch/sparc/include/asm/of_platform_32.h b/trunk/arch/sparc/include/asm/of_platform_32.h
deleted file mode 100644
index 723f7c9b7411..000000000000
--- a/trunk/arch/sparc/include/asm/of_platform_32.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef _ASM_SPARC_OF_PLATFORM_H
-#define _ASM_SPARC_OF_PLATFORM_H
-/*
- * Copyright (C) 2006 Benjamin Herrenschmidt, IBM Corp.
- *
- * Modified for Sparc by merging parts of asm/of_device.h
- * by Stephen Rothwell
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version
- * 2 of the License, or (at your option) any later version.
- *
- */
-
-/* This is just here during the transition */
-#include
-
-extern struct bus_type ebus_bus_type;
-extern struct bus_type sbus_bus_type;
-
-#define of_bus_type of_platform_bus_type /* for compatibility */
-
-#endif /* _ASM_SPARC_OF_PLATFORM_H */
diff --git a/trunk/arch/sparc/include/asm/of_platform_64.h b/trunk/arch/sparc/include/asm/of_platform_64.h
deleted file mode 100644
index 4f66a5f6342d..000000000000
--- a/trunk/arch/sparc/include/asm/of_platform_64.h
+++ /dev/null
@@ -1,25 +0,0 @@
-#ifndef _ASM_SPARC64_OF_PLATFORM_H
-#define _ASM_SPARC64_OF_PLATFORM_H
-/*
- * Copyright (C) 2006 Benjamin Herrenschmidt, IBM Corp.
- *
- * Modified for Sparc by merging parts of asm/of_device.h
- * by Stephen Rothwell
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version
- * 2 of the License, or (at your option) any later version.
- *
- */
-
-/* This is just here during the transition */
-#include
-
-extern struct bus_type isa_bus_type;
-extern struct bus_type ebus_bus_type;
-extern struct bus_type sbus_bus_type;
-
-#define of_bus_type of_platform_bus_type /* for compatibility */
-
-#endif /* _ASM_SPARC64_OF_PLATFORM_H */
diff --git a/trunk/arch/sparc/include/asm/ptrace_32.h b/trunk/arch/sparc/include/asm/ptrace_32.h
index d43c88b86834..d409c4f21a5c 100644
--- a/trunk/arch/sparc/include/asm/ptrace_32.h
+++ b/trunk/arch/sparc/include/asm/ptrace_32.h
@@ -40,16 +40,6 @@ struct pt_regs {
#define UREG_FP UREG_I6
#define UREG_RETPC UREG_I7
-static inline bool pt_regs_is_syscall(struct pt_regs *regs)
-{
- return (regs->psr & PSR_SYSCALL);
-}
-
-static inline bool pt_regs_clear_syscall(struct pt_regs *regs)
-{
- return (regs->psr &= ~PSR_SYSCALL);
-}
-
/* A register window */
struct reg_window {
unsigned long locals[8];
@@ -72,6 +62,16 @@ struct sparc_stackf {
#ifdef __KERNEL__
+static inline bool pt_regs_is_syscall(struct pt_regs *regs)
+{
+ return (regs->psr & PSR_SYSCALL);
+}
+
+static inline bool pt_regs_clear_syscall(struct pt_regs *regs)
+{
+ return (regs->psr &= ~PSR_SYSCALL);
+}
+
#define user_mode(regs) (!((regs)->psr & PSR_PS))
#define instruction_pointer(regs) ((regs)->pc)
#define user_stack_pointer(regs) ((regs)->u_regs[UREG_FP])
diff --git a/trunk/arch/sparc/include/asm/ptrace_64.h b/trunk/arch/sparc/include/asm/ptrace_64.h
index ec6d45c84cd0..06e4914c13f4 100644
--- a/trunk/arch/sparc/include/asm/ptrace_64.h
+++ b/trunk/arch/sparc/include/asm/ptrace_64.h
@@ -37,21 +37,6 @@ struct pt_regs {
unsigned int magic;
};
-static inline int pt_regs_trap_type(struct pt_regs *regs)
-{
- return regs->magic & 0x1ff;
-}
-
-static inline bool pt_regs_is_syscall(struct pt_regs *regs)
-{
- return (regs->tstate & TSTATE_SYSCALL);
-}
-
-static inline bool pt_regs_clear_syscall(struct pt_regs *regs)
-{
- return (regs->tstate &= ~TSTATE_SYSCALL);
-}
-
struct pt_regs32 {
unsigned int psr;
unsigned int pc;
@@ -128,15 +113,30 @@ struct sparc_trapf {
#ifdef __KERNEL__
+static inline int pt_regs_trap_type(struct pt_regs *regs)
+{
+ return regs->magic & 0x1ff;
+}
+
+static inline bool pt_regs_is_syscall(struct pt_regs *regs)
+{
+ return (regs->tstate & TSTATE_SYSCALL);
+}
+
+static inline bool pt_regs_clear_syscall(struct pt_regs *regs)
+{
+ return (regs->tstate &= ~TSTATE_SYSCALL);
+}
+
struct global_reg_snapshot {
unsigned long tstate;
unsigned long tpc;
unsigned long tnpc;
unsigned long o7;
unsigned long i7;
+ unsigned long rpc;
struct thread_info *thread;
unsigned long pad1;
- unsigned long pad2;
};
#define __ARCH_WANT_COMPAT_SYS_PTRACE
@@ -154,7 +154,6 @@ extern unsigned long profile_pc(struct pt_regs *);
#define profile_pc(regs) instruction_pointer(regs)
#endif
extern void show_regs(struct pt_regs *);
-extern void __show_regs(struct pt_regs *);
#endif
#else /* __ASSEMBLY__ */
@@ -315,9 +314,9 @@ extern void __show_regs(struct pt_regs *);
#define GR_SNAP_TNPC 0x10
#define GR_SNAP_O7 0x18
#define GR_SNAP_I7 0x20
-#define GR_SNAP_THREAD 0x28
-#define GR_SNAP_PAD1 0x30
-#define GR_SNAP_PAD2 0x38
+#define GR_SNAP_RPC 0x28
+#define GR_SNAP_THREAD 0x30
+#define GR_SNAP_PAD1 0x38
#endif /* __KERNEL__ */
diff --git a/trunk/arch/sparc64/kernel/irq.c b/trunk/arch/sparc64/kernel/irq.c
index c481673d249c..ba43d85e8dde 100644
--- a/trunk/arch/sparc64/kernel/irq.c
+++ b/trunk/arch/sparc64/kernel/irq.c
@@ -915,12 +915,18 @@ static void __init sun4v_init_mondo_queues(void)
alloc_one_mondo(&tb->nonresum_mondo_pa, tb->nonresum_qmask);
alloc_one_kbuf(&tb->nonresum_kernel_buf_pa,
tb->nonresum_qmask);
+ }
+}
+
+static void __init init_send_mondo_info(void)
+{
+ int cpu;
+
+ for_each_possible_cpu(cpu) {
+ struct trap_per_cpu *tb = &trap_block[cpu];
init_cpu_send_mondo_info(tb);
}
-
- /* Load up the boot cpu's entries. */
- sun4v_register_mondo_queues(hard_smp_processor_id());
}
static struct irqaction timer_irq_action = {
@@ -949,6 +955,13 @@ void __init init_IRQ(void)
if (tlb_type == hypervisor)
sun4v_init_mondo_queues();
+ init_send_mondo_info();
+
+ if (tlb_type == hypervisor) {
+ /* Load up the boot cpu's entries. */
+ sun4v_register_mondo_queues(hard_smp_processor_id());
+ }
+
/* We need to clear any IRQ's pending in the soft interrupt
* registers, a spurious one could be left around from the
* PROM timer which we just disabled.
diff --git a/trunk/arch/sparc64/kernel/of_device.c b/trunk/arch/sparc64/kernel/of_device.c
index 4fd48ab7dda4..f8b50cbf4bf7 100644
--- a/trunk/arch/sparc64/kernel/of_device.c
+++ b/trunk/arch/sparc64/kernel/of_device.c
@@ -56,9 +56,6 @@ struct of_device *of_find_device_by_node(struct device_node *dp)
EXPORT_SYMBOL(of_find_device_by_node);
#ifdef CONFIG_PCI
-struct bus_type isa_bus_type;
-EXPORT_SYMBOL(isa_bus_type);
-
struct bus_type ebus_bus_type;
EXPORT_SYMBOL(ebus_bus_type);
#endif
@@ -841,8 +838,6 @@ static int __init of_bus_driver_init(void)
err = of_bus_type_init(&of_platform_bus_type, "of");
#ifdef CONFIG_PCI
- if (!err)
- err = of_bus_type_init(&isa_bus_type, "isa");
if (!err)
err = of_bus_type_init(&ebus_bus_type, "ebus");
#endif
diff --git a/trunk/arch/sparc64/kernel/process.c b/trunk/arch/sparc64/kernel/process.c
index 8a9cd3e165b9..7f5debdc5fed 100644
--- a/trunk/arch/sparc64/kernel/process.c
+++ b/trunk/arch/sparc64/kernel/process.c
@@ -52,8 +52,6 @@
#include
#include
-/* #define VERBOSE_SHOWREGS */
-
static void sparc64_yield(int cpu)
{
if (tlb_type != hypervisor)
@@ -213,22 +211,8 @@ static void show_regwindow(struct pt_regs *regs)
printk("I7: <%pS>\n", (void *) rwk->ins[7]);
}
-#ifdef CONFIG_SMP
-static DEFINE_SPINLOCK(regdump_lock);
-#endif
-
-void __show_regs(struct pt_regs * regs)
+void show_regs(struct pt_regs *regs)
{
-#ifdef CONFIG_SMP
- unsigned long flags;
-
- /* Protect against xcall ipis which might lead to livelock on the lock */
- __asm__ __volatile__("rdpr %%pstate, %0\n\t"
- "wrpr %0, %1, %%pstate"
- : "=r" (flags)
- : "i" (PSTATE_IE));
- spin_lock(®dump_lock);
-#endif
printk("TSTATE: %016lx TPC: %016lx TNPC: %016lx Y: %08x %s\n", regs->tstate,
regs->tpc, regs->tnpc, regs->y, print_tainted());
printk("TPC: <%pS>\n", (void *) regs->tpc);
@@ -246,64 +230,24 @@ void __show_regs(struct pt_regs * regs)
regs->u_regs[15]);
printk("RPC: <%pS>\n", (void *) regs->u_regs[15]);
show_regwindow(regs);
-#ifdef CONFIG_SMP
- spin_unlock(®dump_lock);
- __asm__ __volatile__("wrpr %0, 0, %%pstate"
- : : "r" (flags));
-#endif
}
-#ifdef VERBOSE_SHOWREGS
-static void idump_from_user (unsigned int *pc)
-{
- int i;
- int code;
-
- if((((unsigned long) pc) & 3))
- return;
-
- pc -= 3;
- for(i = -3; i < 6; i++) {
- get_user(code, pc);
- printk("%c%08x%c",i?' ':'<',code,i?' ':'>');
- pc++;
- }
- printk("\n");
-}
-#endif
+struct global_reg_snapshot global_reg_snapshot[NR_CPUS];
+static DEFINE_SPINLOCK(global_reg_snapshot_lock);
-void show_regs(struct pt_regs *regs)
+static bool kstack_valid(struct thread_info *tp, struct reg_window *rw)
{
-#ifdef VERBOSE_SHOWREGS
- extern long etrap, etraptl1;
-#endif
- __show_regs(regs);
-#if 0
-#ifdef CONFIG_SMP
- {
- extern void smp_report_regs(void);
+ unsigned long thread_base, fp;
- smp_report_regs();
- }
-#endif
-#endif
+ thread_base = (unsigned long) tp;
+ fp = (unsigned long) rw;
-#ifdef VERBOSE_SHOWREGS
- if (regs->tpc >= &etrap && regs->tpc < &etraptl1 &&
- regs->u_regs[14] >= (long)current - PAGE_SIZE &&
- regs->u_regs[14] < (long)current + 6 * PAGE_SIZE) {
- printk ("*********parent**********\n");
- __show_regs((struct pt_regs *)(regs->u_regs[14] + PTREGS_OFF));
- idump_from_user(((struct pt_regs *)(regs->u_regs[14] + PTREGS_OFF))->tpc);
- printk ("*********endpar**********\n");
- }
-#endif
+ if (fp < (thread_base + sizeof(struct thread_info)) ||
+ fp >= (thread_base + THREAD_SIZE))
+ return false;
+ return true;
}
-#ifdef CONFIG_MAGIC_SYSRQ
-struct global_reg_snapshot global_reg_snapshot[NR_CPUS];
-static DEFINE_SPINLOCK(global_reg_snapshot_lock);
-
static void __global_reg_self(struct thread_info *tp, struct pt_regs *regs,
int this_cpu)
{
@@ -315,14 +259,22 @@ static void __global_reg_self(struct thread_info *tp, struct pt_regs *regs,
global_reg_snapshot[this_cpu].o7 = regs->u_regs[UREG_I7];
if (regs->tstate & TSTATE_PRIV) {
+ struct thread_info *tp = current_thread_info();
struct reg_window *rw;
rw = (struct reg_window *)
(regs->u_regs[UREG_FP] + STACK_BIAS);
- global_reg_snapshot[this_cpu].i7 = rw->ins[6];
- } else
+ if (kstack_valid(tp, rw)) {
+ global_reg_snapshot[this_cpu].i7 = rw->ins[7];
+ rw = (struct reg_window *)
+ (rw->ins[6] + STACK_BIAS);
+ if (kstack_valid(tp, rw))
+ global_reg_snapshot[this_cpu].rpc = rw->ins[7];
+ }
+ } else {
global_reg_snapshot[this_cpu].i7 = 0;
-
+ global_reg_snapshot[this_cpu].rpc = 0;
+ }
global_reg_snapshot[this_cpu].thread = tp;
}
@@ -341,7 +293,7 @@ static void __global_reg_poll(struct global_reg_snapshot *gp)
}
}
-static void sysrq_handle_globreg(int key, struct tty_struct *tty)
+void __trigger_all_cpu_backtrace(void)
{
struct thread_info *tp = current_thread_info();
struct pt_regs *regs = get_irq_regs();
@@ -375,13 +327,14 @@ static void sysrq_handle_globreg(int key, struct tty_struct *tty)
((tp && tp->task) ? tp->task->pid : -1));
if (gp->tstate & TSTATE_PRIV) {
- printk(" TPC[%pS] O7[%pS] I7[%pS]\n",
+ printk(" TPC[%pS] O7[%pS] I7[%pS] RPC[%pS]\n",
(void *) gp->tpc,
(void *) gp->o7,
- (void *) gp->i7);
+ (void *) gp->i7,
+ (void *) gp->rpc);
} else {
- printk(" TPC[%lx] O7[%lx] I7[%lx]\n",
- gp->tpc, gp->o7, gp->i7);
+ printk(" TPC[%lx] O7[%lx] I7[%lx] RPC[%lx]\n",
+ gp->tpc, gp->o7, gp->i7, gp->rpc);
}
}
@@ -390,6 +343,13 @@ static void sysrq_handle_globreg(int key, struct tty_struct *tty)
spin_unlock_irqrestore(&global_reg_snapshot_lock, flags);
}
+#ifdef CONFIG_MAGIC_SYSRQ
+
+static void sysrq_handle_globreg(int key, struct tty_struct *tty)
+{
+ __trigger_all_cpu_backtrace();
+}
+
static struct sysrq_key_op sparc_globalreg_op = {
.handler = sysrq_handle_globreg,
.help_msg = "Globalregs",
diff --git a/trunk/arch/sparc64/kernel/signal.c b/trunk/arch/sparc64/kernel/signal.c
index d1b84456a9ee..ec82d76dc6f2 100644
--- a/trunk/arch/sparc64/kernel/signal.c
+++ b/trunk/arch/sparc64/kernel/signal.c
@@ -2,7 +2,7 @@
* arch/sparc64/kernel/signal.c
*
* Copyright (C) 1991, 1992 Linus Torvalds
- * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
+ * Copyright (C) 1995, 2008 David S. Miller (davem@davemloft.net)
* Copyright (C) 1996 Miguel de Icaza (miguel@nuclecu.unam.mx)
* Copyright (C) 1997 Eddie C. Dost (ecd@skynet.be)
* Copyright (C) 1997,1998 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
@@ -23,7 +23,6 @@
#include
#include
#include
-#include
#include
#include
@@ -91,7 +90,9 @@ asmlinkage void sparc64_set_context(struct pt_regs *regs)
err |= __get_user(regs->u_regs[UREG_G4], (&(*grp)[MC_G4]));
err |= __get_user(regs->u_regs[UREG_G5], (&(*grp)[MC_G5]));
err |= __get_user(regs->u_regs[UREG_G6], (&(*grp)[MC_G6]));
- err |= __get_user(regs->u_regs[UREG_G7], (&(*grp)[MC_G7]));
+
+ /* Skip %g7 as that's the thread register in userspace. */
+
err |= __get_user(regs->u_regs[UREG_I0], (&(*grp)[MC_O0]));
err |= __get_user(regs->u_regs[UREG_I1], (&(*grp)[MC_O1]));
err |= __get_user(regs->u_regs[UREG_I2], (&(*grp)[MC_O2]));
diff --git a/trunk/arch/sparc64/kernel/smp.c b/trunk/arch/sparc64/kernel/smp.c
index 7cf72b4bb108..27b81775a4de 100644
--- a/trunk/arch/sparc64/kernel/smp.c
+++ b/trunk/arch/sparc64/kernel/smp.c
@@ -459,27 +459,35 @@ static void spitfire_xcall_helper(u64 data0, u64 data1, u64 data2, u64 pstate, u
}
}
-static inline void spitfire_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t mask)
+static void spitfire_xcall_deliver(struct trap_per_cpu *tb, int cnt)
{
+ u64 *mondo, data0, data1, data2;
+ u16 *cpu_list;
u64 pstate;
int i;
__asm__ __volatile__("rdpr %%pstate, %0" : "=r" (pstate));
- for_each_cpu_mask(i, mask)
- spitfire_xcall_helper(data0, data1, data2, pstate, i);
+ cpu_list = __va(tb->cpu_list_pa);
+ mondo = __va(tb->cpu_mondo_block_pa);
+ data0 = mondo[0];
+ data1 = mondo[1];
+ data2 = mondo[2];
+ for (i = 0; i < cnt; i++)
+ spitfire_xcall_helper(data0, data1, data2, pstate, cpu_list[i]);
}
/* Cheetah now allows to send the whole 64-bytes of data in the interrupt
* packet, but we have no use for that. However we do take advantage of
* the new pipelining feature (ie. dispatch to multiple cpus simultaneously).
*/
-static void cheetah_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t mask)
+static void cheetah_xcall_deliver(struct trap_per_cpu *tb, int cnt)
{
- u64 pstate, ver, busy_mask;
int nack_busy_id, is_jbus, need_more;
+ u64 *mondo, pstate, ver, busy_mask;
+ u16 *cpu_list;
- if (cpus_empty(mask))
- return;
+ cpu_list = __va(tb->cpu_list_pa);
+ mondo = __va(tb->cpu_mondo_block_pa);
/* Unfortunately, someone at Sun had the brilliant idea to make the
* busy/nack fields hard-coded by ITID number for this Ultra-III
@@ -502,7 +510,7 @@ static void cheetah_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t mas
"stxa %2, [%5] %6\n\t"
"membar #Sync\n\t"
: /* no outputs */
- : "r" (data0), "r" (data1), "r" (data2),
+ : "r" (mondo[0]), "r" (mondo[1]), "r" (mondo[2]),
"r" (0x40), "r" (0x50), "r" (0x60),
"i" (ASI_INTR_W));
@@ -511,11 +519,16 @@ static void cheetah_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t mas
{
int i;
- for_each_cpu_mask(i, mask) {
- u64 target = (i << 14) | 0x70;
+ for (i = 0; i < cnt; i++) {
+ u64 target, nr;
+ nr = cpu_list[i];
+ if (nr == 0xffff)
+ continue;
+
+ target = (nr << 14) | 0x70;
if (is_jbus) {
- busy_mask |= (0x1UL << (i * 2));
+ busy_mask |= (0x1UL << (nr * 2));
} else {
target |= (nack_busy_id << 24);
busy_mask |= (0x1UL <<
@@ -549,11 +562,13 @@ static void cheetah_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t mas
__asm__ __volatile__("wrpr %0, 0x0, %%pstate"
: : "r" (pstate));
if (unlikely(need_more)) {
- int i, cnt = 0;
- for_each_cpu_mask(i, mask) {
- cpu_clear(i, mask);
- cnt++;
- if (cnt == 32)
+ int i, this_cnt = 0;
+ for (i = 0; i < cnt; i++) {
+ if (cpu_list[i] == 0xffff)
+ continue;
+ cpu_list[i] = 0xffff;
+ this_cnt++;
+ if (this_cnt == 32)
break;
}
goto retry;
@@ -584,16 +599,20 @@ static void cheetah_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t mas
/* Clear out the mask bits for cpus which did not
* NACK us.
*/
- for_each_cpu_mask(i, mask) {
- u64 check_mask;
+ for (i = 0; i < cnt; i++) {
+ u64 check_mask, nr;
+
+ nr = cpu_list[i];
+ if (nr == 0xffff)
+ continue;
if (is_jbus)
- check_mask = (0x2UL << (2*i));
+ check_mask = (0x2UL << (2*nr));
else
check_mask = (0x2UL <<
this_busy_nack);
if ((dispatch_stat & check_mask) == 0)
- cpu_clear(i, mask);
+ cpu_list[i] = 0xffff;
this_busy_nack += 2;
if (this_busy_nack == 64)
break;
@@ -605,47 +624,17 @@ static void cheetah_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t mas
}
/* Multi-cpu list version. */
-static void hypervisor_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t mask)
+static void hypervisor_xcall_deliver(struct trap_per_cpu *tb, int cnt)
{
- struct trap_per_cpu *tb;
+ int retries, this_cpu, prev_sent, i, saw_cpu_error;
+ unsigned long status;
u16 *cpu_list;
- u64 *mondo;
- cpumask_t error_mask;
- unsigned long flags, status;
- int cnt, retries, this_cpu, prev_sent, i;
-
- if (cpus_empty(mask))
- return;
-
- /* We have to do this whole thing with interrupts fully disabled.
- * Otherwise if we send an xcall from interrupt context it will
- * corrupt both our mondo block and cpu list state.
- *
- * One consequence of this is that we cannot use timeout mechanisms
- * that depend upon interrupts being delivered locally. So, for
- * example, we cannot sample jiffies and expect it to advance.
- *
- * Fortunately, udelay() uses %stick/%tick so we can use that.
- */
- local_irq_save(flags);
this_cpu = smp_processor_id();
- tb = &trap_block[this_cpu];
-
- mondo = __va(tb->cpu_mondo_block_pa);
- mondo[0] = data0;
- mondo[1] = data1;
- mondo[2] = data2;
- wmb();
cpu_list = __va(tb->cpu_list_pa);
- /* Setup the initial cpu list. */
- cnt = 0;
- for_each_cpu_mask(i, mask)
- cpu_list[cnt++] = i;
-
- cpus_clear(error_mask);
+ saw_cpu_error = 0;
retries = 0;
prev_sent = 0;
do {
@@ -690,10 +679,9 @@ static void hypervisor_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t
continue;
err = sun4v_cpu_state(cpu);
- if (err >= 0 &&
- err == HV_CPU_STATE_ERROR) {
+ if (err == HV_CPU_STATE_ERROR) {
+ saw_cpu_error = (cpu + 1);
cpu_list[i] = 0xffff;
- cpu_set(cpu, error_mask);
}
}
} else if (unlikely(status != HV_EWOULDBLOCK))
@@ -717,32 +705,24 @@ static void hypervisor_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t
}
} while (1);
- local_irq_restore(flags);
-
- if (unlikely(!cpus_empty(error_mask)))
+ if (unlikely(saw_cpu_error))
goto fatal_mondo_cpu_error;
return;
fatal_mondo_cpu_error:
printk(KERN_CRIT "CPU[%d]: SUN4V mondo cpu error, some target cpus "
- "were in error state\n",
- this_cpu);
- printk(KERN_CRIT "CPU[%d]: Error mask [ ", this_cpu);
- for_each_cpu_mask(i, error_mask)
- printk("%d ", i);
- printk("]\n");
+ "(including %d) were in error state\n",
+ this_cpu, saw_cpu_error - 1);
return;
fatal_mondo_timeout:
- local_irq_restore(flags);
printk(KERN_CRIT "CPU[%d]: SUN4V mondo timeout, no forward "
" progress after %d retries.\n",
this_cpu, retries);
goto dump_cpu_list_and_out;
fatal_mondo_error:
- local_irq_restore(flags);
printk(KERN_CRIT "CPU[%d]: Unexpected SUN4V mondo error %lu\n",
this_cpu, status);
printk(KERN_CRIT "CPU[%d]: Args were cnt(%d) cpulist_pa(%lx) "
@@ -756,58 +736,93 @@ static void hypervisor_xcall_deliver(u64 data0, u64 data1, u64 data2, cpumask_t
printk("]\n");
}
-/* Send cross call to all processors mentioned in MASK
- * except self.
+static void (*xcall_deliver_impl)(struct trap_per_cpu *, int);
+
+static void xcall_deliver(u64 data0, u64 data1, u64 data2, const cpumask_t *mask)
+{
+ struct trap_per_cpu *tb;
+ int this_cpu, i, cnt;
+ unsigned long flags;
+ u16 *cpu_list;
+ u64 *mondo;
+
+ /* We have to do this whole thing with interrupts fully disabled.
+ * Otherwise if we send an xcall from interrupt context it will
+ * corrupt both our mondo block and cpu list state.
+ *
+ * One consequence of this is that we cannot use timeout mechanisms
+ * that depend upon interrupts being delivered locally. So, for
+ * example, we cannot sample jiffies and expect it to advance.
+ *
+ * Fortunately, udelay() uses %stick/%tick so we can use that.
+ */
+ local_irq_save(flags);
+
+ this_cpu = smp_processor_id();
+ tb = &trap_block[this_cpu];
+
+ mondo = __va(tb->cpu_mondo_block_pa);
+ mondo[0] = data0;
+ mondo[1] = data1;
+ mondo[2] = data2;
+ wmb();
+
+ cpu_list = __va(tb->cpu_list_pa);
+
+ /* Setup the initial cpu list. */
+ cnt = 0;
+ for_each_cpu_mask_nr(i, *mask) {
+ if (i == this_cpu || !cpu_online(i))
+ continue;
+ cpu_list[cnt++] = i;
+ }
+
+ if (cnt)
+ xcall_deliver_impl(tb, cnt);
+
+ local_irq_restore(flags);
+}
+
+/* Send cross call to all processors mentioned in MASK_P
+ * except self. Really, there are only two cases currently,
+ * "&cpu_online_map" and "&mm->cpu_vm_mask".
*/
-static void smp_cross_call_masked(unsigned long *func, u32 ctx, u64 data1, u64 data2, cpumask_t mask)
+static void smp_cross_call_masked(unsigned long *func, u32 ctx, u64 data1, u64 data2, const cpumask_t *mask)
{
u64 data0 = (((u64)ctx)<<32 | (((u64)func) & 0xffffffff));
- int this_cpu = get_cpu();
-
- cpus_and(mask, mask, cpu_online_map);
- cpu_clear(this_cpu, mask);
- if (tlb_type == spitfire)
- spitfire_xcall_deliver(data0, data1, data2, mask);
- else if (tlb_type == cheetah || tlb_type == cheetah_plus)
- cheetah_xcall_deliver(data0, data1, data2, mask);
- else
- hypervisor_xcall_deliver(data0, data1, data2, mask);
- /* NOTE: Caller runs local copy on master. */
+ xcall_deliver(data0, data1, data2, mask);
+}
- put_cpu();
+/* Send cross call to all processors except self. */
+static void smp_cross_call(unsigned long *func, u32 ctx, u64 data1, u64 data2)
+{
+ smp_cross_call_masked(func, ctx, data1, data2, &cpu_online_map);
}
extern unsigned long xcall_sync_tick;
static void smp_start_sync_tick_client(int cpu)
{
- cpumask_t mask = cpumask_of_cpu(cpu);
-
- smp_cross_call_masked(&xcall_sync_tick,
- 0, 0, 0, mask);
+ xcall_deliver((u64) &xcall_sync_tick, 0, 0,
+ &cpumask_of_cpu(cpu));
}
extern unsigned long xcall_call_function;
void arch_send_call_function_ipi(cpumask_t mask)
{
- smp_cross_call_masked(&xcall_call_function, 0, 0, 0, mask);
+ xcall_deliver((u64) &xcall_call_function, 0, 0, &mask);
}
extern unsigned long xcall_call_function_single;
void arch_send_call_function_single_ipi(int cpu)
{
- cpumask_t mask = cpumask_of_cpu(cpu);
-
- smp_cross_call_masked(&xcall_call_function_single, 0, 0, 0, mask);
+ xcall_deliver((u64) &xcall_call_function_single, 0, 0,
+ &cpumask_of_cpu(cpu));
}
-/* Send cross call to all processors except self. */
-#define smp_cross_call(func, ctx, data1, data2) \
- smp_cross_call_masked(func, ctx, data1, data2, cpu_online_map)
-
void smp_call_function_client(int irq, struct pt_regs *regs)
{
clear_softint(1 << irq);
@@ -843,7 +858,6 @@ void smp_tsb_sync(struct mm_struct *mm)
extern unsigned long xcall_flush_tlb_mm;
extern unsigned long xcall_flush_tlb_pending;
extern unsigned long xcall_flush_tlb_kernel_range;
-extern unsigned long xcall_report_regs;
#ifdef CONFIG_MAGIC_SYSRQ
extern unsigned long xcall_fetch_glob_regs;
#endif
@@ -878,7 +892,6 @@ static inline void __local_flush_dcache_page(struct page *page)
void smp_flush_dcache_page_impl(struct page *page, int cpu)
{
- cpumask_t mask = cpumask_of_cpu(cpu);
int this_cpu;
if (tlb_type == hypervisor)
@@ -894,29 +907,24 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu)
__local_flush_dcache_page(page);
} else if (cpu_online(cpu)) {
void *pg_addr = page_address(page);
- u64 data0;
+ u64 data0 = 0;
if (tlb_type == spitfire) {
- data0 =
- ((u64)&xcall_flush_dcache_page_spitfire);
+ data0 = ((u64)&xcall_flush_dcache_page_spitfire);
if (page_mapping(page) != NULL)
data0 |= ((u64)1 << 32);
- spitfire_xcall_deliver(data0,
- __pa(pg_addr),
- (u64) pg_addr,
- mask);
} else if (tlb_type == cheetah || tlb_type == cheetah_plus) {
#ifdef DCACHE_ALIASING_POSSIBLE
- data0 =
- ((u64)&xcall_flush_dcache_page_cheetah);
- cheetah_xcall_deliver(data0,
- __pa(pg_addr),
- 0, mask);
+ data0 = ((u64)&xcall_flush_dcache_page_cheetah);
#endif
}
+ if (data0) {
+ xcall_deliver(data0, __pa(pg_addr),
+ (u64) pg_addr, &cpumask_of_cpu(cpu));
#ifdef CONFIG_DEBUG_DCFLUSH
- atomic_inc(&dcpage_flushes_xcall);
+ atomic_inc(&dcpage_flushes_xcall);
#endif
+ }
}
put_cpu();
@@ -924,66 +932,41 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu)
void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
{
- void *pg_addr = page_address(page);
- cpumask_t mask = cpu_online_map;
- u64 data0;
+ void *pg_addr;
int this_cpu;
+ u64 data0;
if (tlb_type == hypervisor)
return;
this_cpu = get_cpu();
- cpu_clear(this_cpu, mask);
-
#ifdef CONFIG_DEBUG_DCFLUSH
atomic_inc(&dcpage_flushes);
#endif
- if (cpus_empty(mask))
- goto flush_self;
+ data0 = 0;
+ pg_addr = page_address(page);
if (tlb_type == spitfire) {
data0 = ((u64)&xcall_flush_dcache_page_spitfire);
if (page_mapping(page) != NULL)
data0 |= ((u64)1 << 32);
- spitfire_xcall_deliver(data0,
- __pa(pg_addr),
- (u64) pg_addr,
- mask);
} else if (tlb_type == cheetah || tlb_type == cheetah_plus) {
#ifdef DCACHE_ALIASING_POSSIBLE
data0 = ((u64)&xcall_flush_dcache_page_cheetah);
- cheetah_xcall_deliver(data0,
- __pa(pg_addr),
- 0, mask);
#endif
}
+ if (data0) {
+ xcall_deliver(data0, __pa(pg_addr),
+ (u64) pg_addr, &cpu_online_map);
#ifdef CONFIG_DEBUG_DCFLUSH
- atomic_inc(&dcpage_flushes_xcall);
+ atomic_inc(&dcpage_flushes_xcall);
#endif
- flush_self:
+ }
__local_flush_dcache_page(page);
put_cpu();
}
-static void __smp_receive_signal_mask(cpumask_t mask)
-{
- smp_cross_call_masked(&xcall_receive_signal, 0, 0, 0, mask);
-}
-
-void smp_receive_signal(int cpu)
-{
- cpumask_t mask = cpumask_of_cpu(cpu);
-
- if (cpu_online(cpu))
- __smp_receive_signal_mask(mask);
-}
-
-void smp_receive_signal_client(int irq, struct pt_regs *regs)
-{
- clear_softint(1 << irq);
-}
-
void smp_new_mmu_context_version_client(int irq, struct pt_regs *regs)
{
struct mm_struct *mm;
@@ -1022,11 +1005,6 @@ void kgdb_roundup_cpus(unsigned long flags)
}
#endif
-void smp_report_regs(void)
-{
- smp_cross_call(&xcall_report_regs, 0, 0, 0);
-}
-
#ifdef CONFIG_MAGIC_SYSRQ
void smp_fetch_global_regs(void)
{
@@ -1089,7 +1067,7 @@ void smp_flush_tlb_mm(struct mm_struct *mm)
smp_cross_call_masked(&xcall_flush_tlb_mm,
ctx, 0, 0,
- mm->cpu_vm_mask);
+ &mm->cpu_vm_mask);
local_flush_and_out:
__flush_tlb_mm(ctx, SECONDARY_CONTEXT);
@@ -1107,7 +1085,7 @@ void smp_flush_tlb_pending(struct mm_struct *mm, unsigned long nr, unsigned long
else
smp_cross_call_masked(&xcall_flush_tlb_pending,
ctx, nr, (unsigned long) vaddrs,
- mm->cpu_vm_mask);
+ &mm->cpu_vm_mask);
__flush_tlb_pending(ctx, nr, vaddrs);
@@ -1208,6 +1186,16 @@ void __devinit smp_prepare_boot_cpu(void)
{
}
+void __init smp_setup_processor_id(void)
+{
+ if (tlb_type == spitfire)
+ xcall_deliver_impl = spitfire_xcall_deliver;
+ else if (tlb_type == cheetah || tlb_type == cheetah_plus)
+ xcall_deliver_impl = cheetah_xcall_deliver;
+ else
+ xcall_deliver_impl = hypervisor_xcall_deliver;
+}
+
void __devinit smp_fill_in_sib_core_maps(void)
{
unsigned int i;
@@ -1376,7 +1364,13 @@ void __init smp_cpus_done(unsigned int max_cpus)
void smp_send_reschedule(int cpu)
{
- smp_receive_signal(cpu);
+ xcall_deliver((u64) &xcall_receive_signal, 0, 0,
+ &cpumask_of_cpu(cpu));
+}
+
+void smp_receive_signal_client(int irq, struct pt_regs *regs)
+{
+ clear_softint(1 << irq);
}
/* This is a nop because we capture all other cpus
diff --git a/trunk/arch/sparc64/kernel/sparc64_ksyms.c b/trunk/arch/sparc64/kernel/sparc64_ksyms.c
index 504e678ee128..0804f71df6cb 100644
--- a/trunk/arch/sparc64/kernel/sparc64_ksyms.c
+++ b/trunk/arch/sparc64/kernel/sparc64_ksyms.c
@@ -68,7 +68,6 @@ extern void *__memscan_zero(void *, size_t);
extern void *__memscan_generic(void *, int, size_t);
extern int __memcmp(const void *, const void *, __kernel_size_t);
extern __kernel_size_t strlen(const char *);
-extern void show_regs(struct pt_regs *);
extern void syscall_trace(struct pt_regs *, int);
extern void sys_sigsuspend(void);
extern int compat_sys_ioctl(unsigned int fd, unsigned int cmd, u32 arg);
diff --git a/trunk/arch/sparc64/kernel/traps.c b/trunk/arch/sparc64/kernel/traps.c
index bd30ecba5630..404e8561e2d0 100644
--- a/trunk/arch/sparc64/kernel/traps.c
+++ b/trunk/arch/sparc64/kernel/traps.c
@@ -1777,7 +1777,7 @@ static void sun4v_log_error(struct pt_regs *regs, struct sun4v_error_entry *ent,
pfx,
ent->err_raddr, ent->err_size, ent->err_cpu);
- __show_regs(regs);
+ show_regs(regs);
if ((cnt = atomic_read(ocnt)) != 0) {
atomic_set(ocnt, 0);
@@ -2177,7 +2177,6 @@ static inline struct reg_window *kernel_stack_up(struct reg_window *rw)
void die_if_kernel(char *str, struct pt_regs *regs)
{
static int die_counter;
- extern void smp_report_regs(void);
int count = 0;
/* Amuse the user. */
@@ -2190,7 +2189,7 @@ void die_if_kernel(char *str, struct pt_regs *regs)
printk("%s(%d): %s [#%d]\n", current->comm, task_pid_nr(current), str, ++die_counter);
notify_die(DIE_OOPS, str, regs, 0, 255, SIGSEGV);
__asm__ __volatile__("flushw");
- __show_regs(regs);
+ show_regs(regs);
add_taint(TAINT_DIE);
if (regs->tstate & TSTATE_PRIV) {
struct reg_window *rw = (struct reg_window *)
@@ -2215,11 +2214,6 @@ void die_if_kernel(char *str, struct pt_regs *regs)
}
user_instruction_dump ((unsigned int __user *) regs->tpc);
}
-#if 0
-#ifdef CONFIG_SMP
- smp_report_regs();
-#endif
-#endif
if (regs->tstate & TSTATE_PRIV)
do_exit(SIGKILL);
do_exit(SIGSEGV);
diff --git a/trunk/arch/sparc64/mm/tsb.c b/trunk/arch/sparc64/mm/tsb.c
index 3547937b17a2..587f8efb2e05 100644
--- a/trunk/arch/sparc64/mm/tsb.c
+++ b/trunk/arch/sparc64/mm/tsb.c
@@ -1,9 +1,10 @@
/* arch/sparc64/mm/tsb.c
*
- * Copyright (C) 2006 David S. Miller
+ * Copyright (C) 2006, 2008 David S. Miller
*/
#include
+#include
#include
#include
#include
@@ -415,7 +416,9 @@ void tsb_grow(struct mm_struct *mm, unsigned long tsb_index, unsigned long rss)
tsb_context_switch(mm);
/* Now force other processors to do the same. */
+ preempt_disable();
smp_tsb_sync(mm);
+ preempt_enable();
/* Now it is safe to free the old tsb. */
kmem_cache_free(tsb_caches[old_cache_index], old_tsb);
diff --git a/trunk/arch/sparc64/mm/ultra.S b/trunk/arch/sparc64/mm/ultra.S
index 4c8ca131ffaf..ff1dc44d363e 100644
--- a/trunk/arch/sparc64/mm/ultra.S
+++ b/trunk/arch/sparc64/mm/ultra.S
@@ -480,41 +480,6 @@ xcall_sync_tick:
b rtrap_xcall
ldx [%sp + PTREGS_OFF + PT_V9_TSTATE], %l1
- /* NOTE: This is SPECIAL!! We do etrap/rtrap however
- * we choose to deal with the "BH's run with
- * %pil==15" problem (described in asm/pil.h)
- * by just invoking rtrap directly past where
- * BH's are checked for.
- *
- * We do it like this because we do not want %pil==15
- * lockups to prevent regs being reported.
- */
- .globl xcall_report_regs
-xcall_report_regs:
-
-661: rdpr %pstate, %g2
- wrpr %g2, PSTATE_IG | PSTATE_AG, %pstate
- .section .sun4v_2insn_patch, "ax"
- .word 661b
- nop
- nop
- .previous
-
- rdpr %pil, %g2
- wrpr %g0, 15, %pil
- sethi %hi(109f), %g7
- b,pt %xcc, etrap_irq
-109: or %g7, %lo(109b), %g7
-#ifdef CONFIG_TRACE_IRQFLAGS
- call trace_hardirqs_off
- nop
-#endif
- call __show_regs
- add %sp, PTREGS_OFF, %o0
- /* Has to be a non-v9 branch due to the large distance. */
- b rtrap_xcall
- ldx [%sp + PTREGS_OFF + PT_V9_TSTATE], %l1
-
#ifdef CONFIG_MAGIC_SYSRQ
.globl xcall_fetch_glob_regs
xcall_fetch_glob_regs:
@@ -531,6 +496,13 @@ xcall_fetch_glob_regs:
stx %g7, [%g1 + GR_SNAP_TNPC]
stx %o7, [%g1 + GR_SNAP_O7]
stx %i7, [%g1 + GR_SNAP_I7]
+ /* Don't try this at home kids... */
+ rdpr %cwp, %g2
+ sub %g2, 1, %g7
+ wrpr %g7, %cwp
+ mov %i7, %g7
+ wrpr %g2, %cwp
+ stx %g7, [%g1 + GR_SNAP_RPC]
sethi %hi(trap_block), %g7
or %g7, %lo(trap_block), %g7
sllx %g2, TRAP_BLOCK_SZ_SHIFT, %g2
diff --git a/trunk/arch/xtensa/kernel/xtensa_ksyms.c b/trunk/arch/xtensa/kernel/xtensa_ksyms.c
index 6e52cdd6166f..c9a7c5b74a0d 100644
--- a/trunk/arch/xtensa/kernel/xtensa_ksyms.c
+++ b/trunk/arch/xtensa/kernel/xtensa_ksyms.c
@@ -18,7 +18,6 @@
#include