Commit graph

3201 commits

Author SHA1 Message Date
Andi Kleen
d1e3dfdc2c [PATCH] x86_64: Set compatibility flag for 4GB zone on IA64
IA64 traditionally had a 4GB DMA32 zone. Set the compatibility flag
to keep old drivers working.

For new drivers it would be better to use ZONE_DMA32 now.

Cc: tony.luck@intel.com
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-14 19:55:13 -08:00
Andi Kleen
a2f1b42490 [PATCH] x86_64: Add 4GB DMA32 zone
Add a new 4GB GFP_DMA32 zone between the GFP_DMA and GFP_NORMAL zones.

As a bit of historical background: when the x86-64 port
was originally designed we had some discussion if we should
use a 16MB DMA zone like i386 or a 4GB DMA zone like IA64 or
both. Both was ruled out at this point because it was in early
2.4 when VM is still quite shakey and had bad troubles even
dealing with one DMA zone.  We settled on the 16MB DMA zone mainly
because we worried about older soundcards and the floppy.

But this has always caused problems since then because
device drivers had trouble getting enough DMA able memory. These days
the VM works much better and the wide use of NUMA has proven
it can deal with many zones successfully.

So this patch adds both zones.

This helps drivers who need a lot of memory below 4GB because
their hardware is not accessing more (graphic drivers - proprietary
and free ones, video frame buffer drivers, sound drivers etc.).
Previously they could only use IOMMU+16MB GFP_DMA, which
was not enough memory.

Another common problem is that hardware who has full memory
addressing for >4GB misses it for some control structures in memory
(like transmit rings or other metadata).  They tended to allocate memory
in the 16MB GFP_DMA or the IOMMU/swiotlb then using pci_alloc_consistent,
but that can tie up a lot of precious 16MB GFPDMA/IOMMU/swiotlb memory
(even on AMD systems the IOMMU tends to be quite small) especially if you have
many devices.  With the new zone pci_alloc_consistent can just put
this stuff into memory below 4GB which works better.

One argument was still if the zone should be 4GB or 2GB. The main
motivation for 2GB would be an unnamed not so unpopular hardware
raid controller (mostly found in older machines from a particular four letter
company) who has a strange 2GB restriction in firmware. But
that one works ok with swiotlb/IOMMU anyways, so it doesn't really
need GFP_DMA32. I chose 4GB to be compatible with IA64 and because
it seems to be the most common restriction.

The new zone is so far added only for x86-64.

For other architectures who don't set up this
new zone nothing changes. Architectures can set a compatibility
define in Kconfig CONFIG_DMA_IS_DMA32 that will define GFP_DMA32
as GFP_DMA. Otherwise it's a nop because on 32bit architectures
it's normally not needed because GFP_NORMAL (=0) is DMA able
enough.

One problem is still that GFP_DMA means different things on different
architectures. e.g. some drivers used to have #ifdef ia64  use GFP_DMA
(trusting it to be 4GB) #elif __x86_64__ (use other hacks like
the swiotlb because 16MB is not enough) ... . This was quite
ugly and is now obsolete.

These should be now converted to use GFP_DMA32 unconditionally. I haven't done
this yet. Or best only use pci_alloc_consistent/dma_alloc_coherent
which will use GFP_DMA32 transparently.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-14 19:55:13 -08:00
Andi Kleen
56720367cd [PATCH] x86_64: Update defconfig
Rerun and enable autofs 4, relayfs and softdog

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-14 19:55:12 -08:00
Linus Torvalds
602d4a7e2f Merge master.kernel.org:/pub/scm/linux/kernel/git/paulus/powerpc-merge 2005-11-04 16:27:50 -08:00
Paul Mackerras
c51e3a417b powerpc: Fix vmlinux.lds.S for 32-bit
We can't currently use asm-ppc/page.h in vmlinux.lds.S, so until
we have a merged page.h, define PAGE_SIZE and KERNELBASE locally.
Also gets rid of some dynamic executable cruft that we had for
32-bit.  With -Ttext=$(KERNELBASE) this didn't cause any problem,
but when we changed to putting . = KERNELBASE in the vmlinux.lds.S
this cruft caused the text to get linked at 0xa0 instead of
0xc0000000.  Oops.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-05 10:36:59 +11:00
Paul Mackerras
5ad5707861 powerpc: Merge smp.c and smp.h
This also moves setup_cpu_maps to setup-common.c (calling it
smp_setup_cpu_maps) and uses it on both 32-bit and 64-bit.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-05 10:33:55 +11:00
Russell King
d56c524afa [PATCH] ARM: Reverted 2918/1: [update] Base port of Comdial MP1000 platfrom
No longer maintained
2005-11-04 17:28:34 +00:00
Nicolas Pitre
30c2f90b68 [ARM] 3097/1: change library link ordering
Patch from Nicolas Pitre

We have an optimized sha1 routine (arch/arm/lib/sha1.S) meant to
override the generic one in lib/sha1.c.

Unfortunately lib/lib.a is listed _before_ arch/arm/lib/lib.a in the
link argument list and therefore the architecture specific lib functions
are not picked up before the generic versions.

This patch is a quick fix to change that ordering for ARM.  Here's what
the kbuild maintainer had to say about it (was also CC'd on lkml):

On Wed, 2 Nov 2005, Sam Ravnborg wrote:
> This looks like an obvious way to achive correct ordering.
> We could change it so arch defines always took precedence but
> the above is so simple that it is not worth the effort.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-04 17:17:30 +00:00
Todd Poynor
74ec71e161 [ARM] 3087/1: PXA2xx flash platform device conversion
Patch from Todd Poynor

Add platform devices for flash to Lubbock and Mainstone board files.
Once in place, the two existing mtd map drivers for the boards will be
converted to use a single pxa2xx map driver in the linux-mtd tree.
Take 4: flash_platform_data .map_name vs. .name cleaned up, resync with
merged irda patch context.

Signed-off-by: Todd Poynor <tpoynor@mvista.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-04 17:15:45 +00:00
Dave Jiang
7866f64928 [ARM] 3086/1: ixp2xxx error irq handling
Patch from Dave Jiang

This provides support for IXP2xxx error interrupt handling. Previously there was a patch to remove this (although the original stuff was broken). Well, now the error bits are needed again. These are used extensively by the micro-engine drivers according to Deepak and also we will need it for the new EDAC code that Alan Cox is trying to push into the main kernel.

Re-submit of 3072/1, generated against git tree pulled today. AFAICT, this git tree pulled in all the ARM changes that's in arm.diff. Please let me know if there are additional changes. Thx!

Signed-off-by: Dave Jiang <djiang@mvista.com>
Signed-off-by: Deepak Saxena <dsaxena@plexity.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-04 17:15:44 +00:00
Nicolas Pitre
73f0f7c79b [ARM] 3094/1: remove PLD stuff from old uaccess code
Patch from Nicolas Pitre

ARM processors that have pld instructions are not using those copy_user
implementation anymore.  Let's remove the useless PLD lines which were
half wrong anyway.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-04 17:15:43 +00:00
Paul Mackerras
292a6c58e9 Merge branch 'for-paulus' of git://kernel/home/michael/src/work/ 2005-11-04 16:17:32 +11:00
Paul Mackerras
8ad200d7b7 powerpc: Merge smp-tbsync.c (the generic timebase sync routine)
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-04 13:28:58 +11:00
Michael Ellerman
dc3a9efb5e Merge with Paulus 2005-11-04 12:12:52 +11:00
Michael Ellerman
b8f510219e powerpc: Implement smp_release_cpus() in C not asm
There's no reason for smp_release_cpus() to be asm, and most people can make
more sense of C code. Add an extern declaration to smp.h and remove the custom
one in machine_kexec.c

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-11-04 12:09:42 +11:00
Deepak Saxena
8b5f4f06ee [ARM] Fix IXDP2x01 config files
IXDP2401 config file has wrong baudrate and both boards have 3 UARTs.

Signed-off-by: Deepak Saxena <dsaxena@plexity.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-03 21:05:39 +00:00
Russell King
5f8b1178e2 [ARM] Merge SMP tree 2005-11-03 21:02:39 +00:00
Nicolas Pitre
24bcc2f46c [ARM] 3092/1: remove excessive print format padding
Patch from Nicolas Pitre

Using a llx format to print addresses that might possibly be (only) 36
bits wide make sense.  However making it a zero padded 16 char wide
field is a bit excessive and useless.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-03 20:40:50 +00:00
Russell King
4a5f79e7e6 [ARM SMP] Add configuration option for ARMv6K processors
The 'K' extension adds several new instructions to the ARMv6 ISA
which are primerily useful for SMP.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-03 15:48:21 +00:00
Russell King
0dcc7474b2 [ARM] Add Realview default configuration file
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-03 10:17:44 +00:00
Russell King
ca82d85bc2 [ARM] Fix more 3016/1 breakage
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-03 10:06:35 +00:00
Michael Ellerman
40765d2b8b powerpc: Cleanup vpa code
register_vpa() doesn't actually do a VPA register call it just uses the flags
you pass it, so rename it to vpa_call() to be clearer.

We can then define register_vpa() and unregister_vpa() which are both simple
wrappers around vpa_call(). (we'll need unregister_vpa() for kexec soon)

We can then cleanup vpa_init(), and because vpa_init() is only called from
platforms/pseries we remove the definition in asm-ppc64/smp.h.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
2005-11-03 19:34:38 +11:00
Paul Mackerras
d3ab57ebdc Merge git://oak/home/sfr/kernels/iseries/work 2005-11-03 17:04:08 +11:00
Vitaly Bordug
457e04ca5c [PATCH] ppc32: Fixed warning in m8xx_setup.c
This adds missing header and thus fix the warning issued by ming prototype.

Signed-off-by: Vitaly Bordug <vbordug@ru.mvista.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-03 16:57:50 +11:00
Marcelo Tosatti
3d9e9dc49d [PATCH] ppc32 8xx: fix cpm_dpalloc() comment
Current comment on top of m8xx_cpm_dpinit is wrong.

Signed-off-by: Marcelo Tosatti <marcelo.tosatti@cyclades.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-03 16:57:13 +11:00
Marcelo Tosatti
7ed3463b61 [PATCH] ppc32 8xx: export symbols required for modular IDE
This fixes these warnings:

      Building modules, stage 2.
      MODPOST
    *** Warning: "__ide_mm_insl" [drivers/ide/ide-core.ko] undefined!
    *** Warning: "__ide_mm_outsw" [drivers/ide/ide-core.ko] undefined!
    *** Warning: "__ide_mm_insw" [drivers/ide/ide-core.ko] undefined!
    *** Warning: "__ide_mm_outsl" [drivers/ide/ide-core.ko] undefined!

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-03 16:56:53 +11:00
David Woodhouse
91c33d28cd [PATCH] powerpc: always init nvram on 64-bit powermac
Currently there is no Kconfig symbol to indicate that we want nvram
support on 64-bit kernels; it's assumed we always want it, so make
the powermac setup code always initialize the pmac nvram code if
64-bit.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-03 16:56:13 +11:00
Becky Bruce
9122ee33c6 [PATCH] ppc: Fix build warnings in arch/ppc/kernel/traps.c
The latest updates to bug.h generate build warnings in traps.c in
arch/ppc.  Fix print format specifiers to account for change of line type
to long from int.

Signed-off-by: Becky Bruce <becky.bruce@freescale.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-03 16:54:10 +11:00
John Rose
8902e87f1f [PATCH] ppc64: Fix add notifier crashes
The extraction of PCI stuff from struct device_node left some false
assumptions in notifier code.  As a result, dynamic add crashes when
non-PCI nodes are added.  This patch fixes these assumptions.

Signed-off-by: John Rose <johnrose@austin.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-03 16:53:49 +11:00
Stephen Rothwell
879168ee51 powerpc: move include/asm-ppc64/ppc32.h to arch/powerpc/kernel
It is only included by signal_32.c

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-11-03 16:03:28 +11:00
Stephen Rothwell
62f4f47da6 powerpc: move ppc64/kernel/signal.c to arch/powerpc
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
2005-11-03 16:03:20 +11:00
Michael Ellerman
e19e4ab415 powerpc: Set entry point and text address in linker script
Currently we set the kernel entry point and the address of the text
section in the Makefile, using CONFIG_KERNEL_START.

But we've already got <asm/page.h> in the linker script, so we can just
use KERNELBASE directly. That means if we ever change KERNELBASE there's
one less place to change it.

And we can set the entry point with ENTRY().

There are zero differences from "readelf -a vmlinux" with or without this
patch.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
2005-11-03 16:03:06 +11:00
Michael Ellerman
358c86fda0 powerpc: Make early debugging fit on 80 character terminal
There's some debugging in prom.c that wraps nastly on 80 character
terminals, reformat it to fit.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
2005-11-03 15:39:09 +11:00
Michael Ellerman
e1df870d54 powerpc: Merge asm-ppc/kexec.h and asm-ppc64/kexec.h
Merge include/asm-ppc/kexec.h and include/asm-ppc64/kexec.h.

The only thing that's really changed is that we now allocate crash_notes
properly on PPC32. It's address is exported via sysfs, so it's not correct
for it to be a pointer.

I've also removed some of the "we don't use this" comments, because they're
wrong (or perhaps were referring only to arch code).

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
2005-11-03 15:35:45 +11:00
Michael Ellerman
a121872032 powerpc: Move plpar_wrappers.h into arch/powerpc/platforms/pseries
Move plpar_wrappers.h into arch/powerpc/platforms/pseries, fixup white space,
and update callers.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
2005-11-03 15:33:31 +11:00
Michael Ellerman
cab0af98df powerpc: Make set_dabr() a ppc_md function
Move pSeries specific code in set_dabr() into a ppc_md function, this will
allow us to keep plpar_wrappers.h private to platforms/pseries.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
2005-11-03 15:30:49 +11:00
Michael Ellerman
60d4f4c656 powerpc: Copy default configs into arch/powerpc/configs
Copy default configs into arch/powerpc/configs, rename bpa_defconfig to
cell_defconfig while we're at it.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
2005-11-03 15:24:57 +11:00
Alexandre Oliva
06024f217d [PATCH] x86-64: bitops fix for -Os
This fixes the x86-64 find_[first|next]_zero_bit() function for the
end-of-range case.  It didn't test for a zero size, and the "rep scas"
would do entirely the wrong thing.

Signed-off-by: Alexandre Oliva <oliva@lsd.ic.unicamp.br>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-02 19:41:32 -08:00
Paul Mackerras
f4fcbbe9a7 powerpc: Merge remaining RTAS code
This moves rtas-proc.c and rtas_flash.c into arch/powerpc/kernel, since
cell wants them as well as pseries (and chrp can use rtas-proc.c too,
at least in principle).  rtas_fw.c is gone, with its bits moved into
rtas_flash.c and rtas.c.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-03 14:41:19 +11:00
Linus Torvalds
cfa024f4e4 Merge master.kernel.org:/home/rmk/linux-2.6-arm 2005-11-02 18:38:22 -08:00
Linus Torvalds
3a7142371e Merge branch 'swiotlb' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 2005-11-02 18:36:15 -08:00
Russell King
a054a81159 [ARM SMP] Add hotplug CPU infrastructure
This patch adds the infrastructure to support hotplug CPU on ARM
platforms.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-02 22:24:33 +00:00
Russell King
273c2cdb2b [ARM SMP] Fix a couple of warnings
Use *cpus_addr() to display the mask of pending/to be called CPUs.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-02 21:54:14 +00:00
Russell King
71f512e897 [ARM SMP] Track CPU idle threads
Track the idle thread task_struct for each CPU.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-02 21:51:40 +00:00
Russell King
1ffedce7e8 [ARM] Fix Realview machine for patch 3016/1
3016/1 changed the map_desc structure to take a PFN instead of a
physical address.  Fixup Realview machine support for this change.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-02 14:14:37 +00:00
Russell King
6bf7bd6967 [ARM] Fix mm initialisation with write buffered write allocate caches
It seems that without the extra tlb flush, we may end up faulting
during the early kernel initialisation because the TLB can't see
the updated page tables.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2005-11-02 14:11:35 +00:00
Paul Mackerras
398382999b powerpc: Compile fixes for chrp/nvram.c
Include asm/rtas.h for prototype for rtas_call etc., and make the
`done' variable unsigned int since that's what rtas_call wants.

Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-02 19:58:12 +11:00
Paul Mackerras
300230dcba powerpc: include <linux/platform_device.h> in pegasos_eth.c
Signed-off-by: Paul Mackerras <paulus@samba.org>
2005-11-02 19:57:22 +11:00
Stephen Rothwell
2be7a90675 Merge Paulus' tree 2005-11-02 18:15:43 +11:00
Al Viro
bbc5b21284 [PATCH] missing platform_device.h includes
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-01 21:50:01 -08:00