openwrt/staging/blogic.git
19 years ago[ARM] 3165/1: fix atomic_cmpxchg() implementation for ARMv6+
Nicolas Pitre [Wed, 16 Nov 2005 15:05:11 +0000 (15:05 +0000)]
[ARM] 3165/1: fix atomic_cmpxchg() implementation for ARMv6+

Patch from Nicolas Pitre

If 'old' and 'oldval' are different then 'res' never gets set.  In that
case, if ever %0 happened to contain anything but zero (rather likely)
then the code will loop forever (or until another CPU just come along
and change the atomic value to match 'old' which is rather unlikely).

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] compressed/head.S debugging defaults to asm/arch/debug-macro.S
Russell King [Wed, 16 Nov 2005 14:59:51 +0000 (14:59 +0000)]
[ARM] compressed/head.S debugging defaults to asm/arch/debug-macro.S

Since we want new platforms to use debug-macro.S, make the decompressor
debugging method default to using this include file rather than having
new platforms add to an #if defined().

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] Include asm/hardware.h instead of asm/arch/hardware.h
Russell King [Wed, 16 Nov 2005 14:51:20 +0000 (14:51 +0000)]
[ARM] Include asm/hardware.h instead of asm/arch/hardware.h

Rationalise hardware.h include.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[ARM] Fix arch-realview/system.h to use __io_address()
Russell King [Wed, 16 Nov 2005 14:38:19 +0000 (14:38 +0000)]
[ARM] Fix arch-realview/system.h to use __io_address()

Move __io_address to arch-realview/hardware.h, drop core.h from platsmp.c
and localtimer.c, and include asm/io.h where required.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years agoMerge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Wed, 16 Nov 2005 00:59:38 +0000 (16:59 -0800)]
Merge /pub/scm/linux/kernel/git/davem/net-2.6

19 years ago[PATCH] powerpc: Fix sparsemem with memory holes [was Re: ppc64 oops..]
Paul Mackerras [Wed, 16 Nov 2005 00:43:26 +0000 (11:43 +1100)]
[PATCH] powerpc: Fix sparsemem with memory holes [was Re: ppc64 oops..]

This patch should fix the crashes we have been seeing on 64-bit
powerpc systems with a memory hole when sparsemem is enabled.
I'd appreciate it if people who know more about NUMA and sparsemem
than me could look over it.

There were two bugs.  The first was that if NUMA was enabled but there
was no NUMA information for the machine, the setup_nonnuma() function
was adding a single region, assuming memory was contiguous.  The
second was that the loops in mem_init() and show_mem() assumed that
all pages within the span of a pgdat were valid (had a valid struct
page).

I also fixed the incorrect setting of num_physpages that Mike Kravetz
pointed out.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[NETFILTER] Free layer-3 specific protocol tables at cleanup
KOVACS Krisztian [Wed, 16 Nov 2005 00:47:34 +0000 (16:47 -0800)]
[NETFILTER] Free layer-3 specific protocol tables at cleanup

Although the comment around the allocation code tells us that
the layer-3 specific protocol tables will be freed when cleaning up,
they aren't. And this makes nfsim complain loudly...

Signed-off-by: KOVACS Krisztian <hidden@balabit.hu>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NETFILTER] Remove nf_conntrack stat proc file when cleaning up
KOVACS Krisztian [Wed, 16 Nov 2005 00:47:09 +0000 (16:47 -0800)]
[NETFILTER] Remove nf_conntrack stat proc file when cleaning up

Fix nf_conntrack statistics proc file removal. Looks like the old bug
was forward-ported from ip_conntrack. :-]

Signed-off-by: KOVACS Krisztian <hidden@balabit.hu>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[PATCH] ia64: cpu_idle performance bug fix
Chen, Kenneth W [Tue, 15 Nov 2005 22:37:05 +0000 (14:37 -0800)]
[PATCH] ia64: cpu_idle performance bug fix

Our performance validation on 2.6.15-rc1 caught a disastrous performance
regression on ia64 with netperf (-98%) and volanomark (-58%) compares to
previous kernel version 2.6.14-git7.  See the following chart (result
group 1 & 2).

  http://kernel-perf.sourceforge.net/results.machine_id=26.html

We have root caused it to commit 64c7c8f88559624abdbe12b5da6502e8879f8d28

This changeset broke the ia64 task resched notification.  In
sched.c:resched_task(), a reschedule IPI is conditioned upon
TIF_POLLING_NRFLAG.  However, the above changeset unconditionally set
the polling thread flag for idle tasks regardless whether pal_halt_light
is in use or not.  As a result, resched IPI is not sent from
resched_task().  And since the default behavior on ia64 is to use
pal_halt_light, we end up delaying the rescheduling task until next
timer tick, and thus cause the performance regression.

This fixes the performance bug.  I'm glad our performance suite is
turning up bad performance bug like this in time.

Signed-off-by: Ken Chen <kenneth.w.chen@intel.com>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[TCP]: More spelling fixes.
Stephen Hemminger [Tue, 15 Nov 2005 23:17:10 +0000 (15:17 -0800)]
[TCP]: More spelling fixes.

From Joe Perches

Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years agoMerge master.kernel.org:/home/rmk/linux-2.6-arm
Linus Torvalds [Tue, 15 Nov 2005 20:46:57 +0000 (12:46 -0800)]
Merge master.kernel.org:/home/rmk/linux-2.6-arm

19 years agoMerge branch 'upstream-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
Linus Torvalds [Tue, 15 Nov 2005 20:45:33 +0000 (12:45 -0800)]
Merge branch 'upstream-fixes' of /linux/kernel/git/jgarzik/libata-dev

19 years ago[ARM] Initialise SA1111 core before SA1111 PCMCIA
Russell King [Tue, 15 Nov 2005 19:04:22 +0000 (19:04 +0000)]
[ARM] Initialise SA1111 core before SA1111 PCMCIA

This avoids a BUG_ON with kref.c when SA1111 tries to register
a driver with an unregistered bus type.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[libata ahci] command completion fixes, improved debug msgs
Jeff Garzik [Tue, 15 Nov 2005 19:03:47 +0000 (14:03 -0500)]
[libata ahci] command completion fixes, improved debug msgs

- Fix a regression in command completion, which prevented
  the restart of the DMA engine after the device throws
  an error.
- Pack more hardware info into the port-reset error message.
- Promote "welcome to our timeout" message from debug msg
  to normal printk.

19 years ago[PATCH] oops-tracing: mention extended VGA
Dave Jones [Tue, 15 Nov 2005 08:09:24 +0000 (00:09 -0800)]
[PATCH] oops-tracing: mention extended VGA

Something I've found handy countless times when users do this..

Signed-off-by: Dave Jones <davej@redhat.com>
Acked-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Update location of ll_rw_blk.c in docs
Ben Collins [Tue, 15 Nov 2005 08:09:21 +0000 (00:09 -0800)]
[PATCH] Update location of ll_rw_blk.c in docs

Picked from the ubuntu-2.6 tree

The change in location for ll_rw_blk.c from drivers/block/ to block/ caused
failure to generate documentation.

Signed-off-by: Ben Collins <bcollins@ubuntu.com>
Cc: Jeff Garzik <jgarzik@pobox.com>
Cc: Jens Axboe <axboe@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] cciss_scsi warning fix
Grant Coady [Tue, 15 Nov 2005 08:09:20 +0000 (00:09 -0800)]
[PATCH] cciss_scsi warning fix

drivers/block/cciss_scsi.c:264: warning: `print_bytes' defined but not used
drivers/block/cciss_scsi.c:298: warning: `print_cmd' defined but not used

Signed-off-by: Grant Coady <gcoady@gmail.com>
Acked-by: Mike Miller <mike.miller@hp.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] v850: use generic hardirq code
Christoph Hellwig [Tue, 15 Nov 2005 08:09:18 +0000 (00:09 -0800)]
[PATCH] v850: use generic hardirq code

Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Miles Bader <miles@gnu.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] v850: Add missing include in hardirq.h
Miles Bader [Tue, 15 Nov 2005 08:09:17 +0000 (00:09 -0800)]
[PATCH] v850: Add missing include in hardirq.h

Signed-off-by: Miles Bader <miles@gnu.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] v850: Fix show_interrupts
Miles Bader [Tue, 15 Nov 2005 08:09:16 +0000 (00:09 -0800)]
[PATCH] v850: Fix show_interrupts

A variable was being used in multiple conflicting ways.  I also restructured
the code a bit for clarity.

Signed-off-by: Miles Bader <miles@gnu.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] sdladrv.c build fix
Toni Mueller [Tue, 15 Nov 2005 08:09:14 +0000 (00:09 -0800)]
[PATCH] sdladrv.c build fix

gcc4 doesn't allow typecasted lvals.

Cc: "David S. Miller" <davem@davemloft.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] hfc_usb: fix usb device table
Andrew Morton [Tue, 15 Nov 2005 08:09:13 +0000 (00:09 -0800)]
[PATCH] hfc_usb: fix usb device table

We need to use the USB_DEVICE macro here, else the modinfo aliases go all wrong.

Also, correctly terminate the table, as noted by Dave Jones <davej@redhat.com>

Cc: Greg KH <greg@kroah.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Acked-by: Karsten Keil <kkeil@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] md: make md threads interruptible again
NeilBrown [Tue, 15 Nov 2005 08:09:12 +0000 (00:09 -0800)]
[PATCH] md: make md threads interruptible again

Despite the fact that md threads don't need to be signalled, and won't
respond to signals anyway, we need to have an 'interruptible' wait, else
they stay in 'D' state and add to the load average.

(akpm: the signal_pending() test is unneeded - we'll fix that up in the next
round.  For now, leave it there because that's how the code used to be).

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] md: mark START_ARRAY deprecated with a date
NeilBrown [Tue, 15 Nov 2005 08:09:11 +0000 (00:09 -0800)]
[PATCH] md: mark START_ARRAY deprecated with a date

This was marked deprecated "after 2.6" back in the 2.5 days.  But now it
seems there isn't going to be any "after 2.6", and we deprecate by date
now.  So set a date.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] knfsd: make sure nfsd doesn't hog a cpu forever
NeilBrown [Tue, 15 Nov 2005 08:09:10 +0000 (00:09 -0800)]
[PATCH] knfsd: make sure nfsd doesn't hog a cpu forever

Being kernel-threads, nfsd servers don't get pre-empted (depending on
CONFIG).  If there is a steady stream of NFS requests that can be served
from cache, an nfsd thread may hold on to a cpu indefinitely, which isn't
very friendly.

So it is good to have a cond_resched in there (just before looking for a
new request to serve), to make sure we play nice.

Signed-off-by: Neil Brown <neilb@suse.de>
Acked-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Add missing EXPORT_SYMBOLS() for __ide_mm_* functions on powerpc
Ben Collins [Tue, 15 Nov 2005 08:09:09 +0000 (00:09 -0800)]
[PATCH] Add missing EXPORT_SYMBOLS() for __ide_mm_* functions on powerpc

These exported symbols are in arch/ppc/ but missing from arch/powerpc/ for
ppc32 builds.

Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] ipmi: bump-driver-version
Corey Minyard [Tue, 15 Nov 2005 08:09:07 +0000 (00:09 -0800)]
[PATCH] ipmi: bump-driver-version

Lots of good changes to the driver lately that userspace will care about
the version of the driver.  Bump the version from 36.0 to 38.0 to be higher
than 37 that the 2.4 driver came out with a few weeks ago which doesn't
have all the same changes.

Signed-off-by: Matt Domsch <Matt_Domsch@dell.com>
Signed-off-by: Corey Minyard <minyard@acm.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] Make sysctl.h (again) usable from userspace
Harald Welte [Tue, 15 Nov 2005 08:09:06 +0000 (00:09 -0800)]
[PATCH] Make sysctl.h (again) usable from userspace

Make sysctl.h (again) useable from userspace

Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] drop "[PATCH] i386 kexec-on-panic: Don't shutdown the apics"
Vivek Goyal [Tue, 15 Nov 2005 08:09:04 +0000 (00:09 -0800)]
[PATCH] drop "[PATCH] i386 kexec-on-panic: Don't shutdown the apics"

A patch by Eric was merged (f2b36db692b7ff6972320ad9839ae656a3b0ee3e)
and later on reverted back (1e4c85f97fe26fbd70da12148b3992c0e00361fd).

Along with above patch, another patch was posted and has been merged
(3d1675b41b02d64bd1185903ea0d25a8c0bb6dea).  That patch was dependent on
the above patch and now it should also be reverted.

Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[ARM] Use kernel/power/Kconfig
Russell King [Tue, 15 Nov 2005 11:31:41 +0000 (11:31 +0000)]
[ARM] Use kernel/power/Kconfig

Rather than defining our own PM option, use kernel/power/Kconfig.
This fixes build errors introduced by
bca73e4bf8563d83f7856164caa44d5f42e44cca

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
19 years ago[LLC]: Fix typo
Jochen Friedrich [Tue, 15 Nov 2005 05:58:18 +0000 (21:58 -0800)]
[LLC]: Fix typo

Signed-off-by: Jochen Friedrich <jochen@scram.de>
Acked-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[LLC]: Make core block on remote busy.
Jochen Friedrich [Tue, 15 Nov 2005 05:57:46 +0000 (21:57 -0800)]
[LLC]: Make core block on remote busy.

Signed-off-by: Jochen Friedrich <jochen@scram.de>
Acked-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[LLC]: Fix TX window scaling
Jochen Friedrich [Tue, 15 Nov 2005 05:57:15 +0000 (21:57 -0800)]
[LLC]: Fix TX window scaling

Signed-off-by: Jochen Friedrich <jochen@scram.de>
Acked-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[IPV6]: Fixes sparse warning in ipv6/ipv6_sockglue.c
Luiz Capitulino [Tue, 15 Nov 2005 05:43:36 +0000 (21:43 -0800)]
[IPV6]: Fixes sparse warning in ipv6/ipv6_sockglue.c

The patch below fixes the following sparse warning:

net/ipv6/ipv6_sockglue.c:291:13: warning: Using plain integer as NULL pointer

Signed-off-by: Luiz Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[IPV6]: small fix for ipv6_dev_get_saddr(...)
Yan Zheng [Tue, 15 Nov 2005 05:42:46 +0000 (21:42 -0800)]
[IPV6]: small fix for ipv6_dev_get_saddr(...)

The "score.rule++" doesn't make any sense for me.
According to codes above, I think it should be "hiscore.rule++;" .

Signed-off-by: Yan Zheng<yanzheng@21cn.com>
Acked-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years agoMerge x86-64 update from Andi
Linus Torvalds [Tue, 15 Nov 2005 03:56:02 +0000 (19:56 -0800)]
Merge x86-64 update from Andi

19 years ago[PATCH] x86_64: Fix sparse mem
Bob Picco [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] x86_64: Fix sparse mem

Fix up booting with sparse mem enabled. Otherwise it would just
cause an early PANIC at boot.

Signed-off-by: Bob Picco <bob.picco@hp.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Increase the maximum number of local APICs to the maximum
Andi Kleen [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] x86_64: Increase the maximum number of local APICs to the maximum

This is needed for large multinode IBM systems which have a sparse
APIC space in clustered mode, fully covering the available 8 bits.

The previous kernels would limit the local APIC number to 127,
which caused it to reject some of the CPUs at boot.

I increased the maximum and shrunk the apic_version array a bit
to make up for that (the version is only 8 bit, so don't need
an full int to store)

Cc: Chris McDermott <lcm@us.ibm.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Remove CONFIG_CHECKING and add command line option for pagefault...
Andi Kleen [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] x86_64: Remove CONFIG_CHECKING and add command line option for pagefault tracing

CONFIG_CHECKING covered some debugging code used in the early times
of the port. But it wasn't even SMP safe for quite some time
and the bugs it checked for seem to be gone.

This patch removes all the code to verify GS at kernel entry. There
haven't been any new bugs in this area for a long time.

Previously it also covered the sysctl for the page fault tracing.
That didn't make much sense because that code was unconditionally
compiled in. I made that a boot option now because it is typically
only useful at boot.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Make node boundaries consistent
Magnus Damm [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] x86_64: Make node boundaries consistent

The current x86_64 NUMA memory code is inconsequent when it comes to node
memory ranges. The exact behaviour varies depending on which config option
that is used.

setup_node_bootmem() has start and end as arguments and these are used to
calculate the size of the node like this: (end - start). This is all fine
if end is pointing to the first non-available byte. The problem is that the
current x86_64 code sometimes treats it as the last present byte and sometimes
as the first non-available byte. The result is that some configurations might
lose a page at the end of the range.

This patch tries to fix CONFIG_ACPI_NUMA, CONFIG_K8_NUMA and CONFIG_NUMA_EMU
so they all treat the end variable as the first non-available byte. This is
the same way as the single node code.

The patch is boot tested on dual x86_64 hardware with the above configurations,
but maybe the removed code is needed as some workaround?

Signed-off-by: Magnus Damm <magnus@valinux.co.jp>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Log machine checks from boot on Intel systems
Andi Kleen [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] x86_64: Log machine checks from boot on Intel systems

The logging for boot errors was turned off because it was broken
on some AMD systems. But give Intel EM64T systems a chance because they are
supposed to be correct there.

The advantage is that there is a chance to actually log uncorrected
machine checks after the reset.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Make ACPI NUMA and NUMA emulation peers of K8_NUMA in Kconfig
Ravikiran G Thirumalai [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] x86_64: Make ACPI NUMA and NUMA emulation peers of K8_NUMA in Kconfig

On x86_64 arches, there is no way to choose ACPI_NUMA without having to choose
K8_NUMA.  CONFIG_K8_NUMA is not needed for Intel EM64T NUMA boxes.  It also
looks odd if you have to select ACPI_NUMA from the power management menu.
This patch fixes those oddities.  Patch does the following:

1. Makes NUMA a config option like other arches
2. Makes topology detection options like K8_NUMA dependent on NUMA
3. Choosing ACPI NUMA detection can be done from the standard
   "Processor type and features" menu

AK: I fixed up the dependencies and changed the help texts a bit
on top of Kiran's patch.

Signed-off-by: Ravikiran Thirumalai <kiran@scalex86.org>
Signed-off-by: Shai Fultheim <shai@scalex86.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Use common sys_time64
Paolo 'Blaisorblade' Giarrusso [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] x86_64: Use common sys_time64

Keeping this function does not makes sense because it's a copied (and
buggy) copy of sys_time.  The only difference is that now.tv_sec (which is
a time_t, i.e.  a 64-bit long) is copied (and truncated) into a int
(32-bit).

The prototype is the same (they both take a long __user *), so let's drop
this and redirect it to sys_time (and make sure it exists by defining
__ARCH_WANT_SYS_TIME).

Only disadvantage is that the sys_stime definition is also compiled (may be
fixed if needed by adding a separate __ARCH_WANT_SYS_STIME macro, and
defining it for all arch's defining __ARCH_WANT_SYS_TIME except x86_64).

Acked-by: Andi Kleen <ak@suse.de>
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Set ____cacheline_maxaligned_in_smp alignment to 128 bytes
Paolo 'Blaisorblade' Giarrusso [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] x86_64: Set ____cacheline_maxaligned_in_smp alignment to 128 bytes

The current value was correct before the introduction of Intel EM64T support -
but now L1_CACHE_SHIFT_MAX can be less than L1_CACHE_SHIFT, which _is_ funny!

Between the few users of ____cacheline_maxaligned_in_smp, we also have (for
example) rcu_ctrlblk, and struct zone, with zone->{lru_,}lock.  I.e.  we have
a lot of excess cacheline bouncing on them.

No correctness issues, obviously.  So this could even be merged for 2.6.14
(I'm not a fan of this idea, though).

CC: Andi Kleen <ak@suse.de>
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Remove asm-x86_64/rwsem.h
Andi Kleen [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] x86_64: Remove asm-x86_64/rwsem.h

Not needed since x86-64 always uses the spinlock based rwsems.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Remove optimization for B stepping AMD K8
Andi Kleen [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] x86_64: Remove optimization for B stepping AMD K8

B stepping were the first shipping Opterons. memcpy/memset/copy_page/
clear_page had special optimized version for them. These are really
old and in the minority now and the difference to the generic versions
(using rep microcode) is not that big anyways. So just remove them.

TODO: figure out optimized versions for Intel Netburst based EM64T

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Reduce number of retries for reset through keyboard controller
Andi Kleen [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] x86_64: Reduce number of retries for reset through keyboard controller

Old code could retry for 10 seconds worst time. Only try it
for one second now.

Suggested by Yinghai Lu

Cc: Yinghai.Lu@amd.com
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: x86_64/i386 fix Intel cache detection code assumption about threads...
Siddha, Suresh B [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] x86_64: x86_64/i386 fix Intel cache detection code assumption about threads sharing

Fix the Intel cache detection code assumption that number of threads
sharing the cache will either be equal to number of HT or core siblings.

This also cleans up the code in general a bit.

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86-64/i386: Intel HT, Multi core detection fixes
Siddha, Suresh B [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] x86-64/i386: Intel HT, Multi core detection fixes

Fields obtained through cpuid vector 0x1(ebx[16:23]) and
vector 0x4(eax[14:25], eax[26:31]) indicate the maximum values and might not
always be the same as what is available and what OS sees.  So make sure
"siblings" and "cpu cores" values in /proc/cpuinfo reflect the values as seen
by OS instead of what cpuid instruction says. This will also fix the buggy BIOS
cases (for example where cpuid on a single core cpu says there are "2" siblings,
even when HT is disabled in the BIOS.
http://bugzilla.kernel.org/show_bug.cgi?id=4359)

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Fix NUMA node lookup debug code which had bitrotted
Andi Kleen [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] x86_64: Fix NUMA node lookup debug code which had bitrotted

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Don't enable interrupt unconditionally in reboot path
Andi Kleen [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] x86_64: Don't enable interrupt unconditionally in reboot path

When they were disabled before (e.g. after a panic) it's better
to keep them off, otherwise followon panics can happen from timer
interrupt handlers etc.

Drawback is that pageup in the console won't work anymore though.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Formatting fixes for arch/x86_64/kernel/process.c
Andi Kleen [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] x86_64: Formatting fixes for arch/x86_64/kernel/process.c

No functional changes.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Allow modular build of ia32 aout loader
Andi Kleen [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] x86_64: Allow modular build of ia32 aout loader

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Force correct address space size for MTRR on some 64bit Intel Xeons
Shaohua Li [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] x86_64: Force correct address space size for MTRR on some 64bit Intel Xeons

They report 40bit, but only have 36bits of physical address space.
This caused problems with setting up the correct masks for MTRR.

CPUID workaround for steppings 0F33h(supporting x86) and 0F34h(supporting x86
and EM64T). Detail info can be found at:
http://download.intel.com/design/Xeon/specupdt/30240216.pdf
http://download.intel.com/design/Pentium4/specupdt/30235221.pdf

Signed-off-by: Shaohua Li<shaohua.li@intel.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] AGP: Make gart iterator in K8 AGP driver SMP safe
Andi Kleen [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] AGP: Make gart iterator in K8 AGP driver SMP safe

Ugh!

Cc: davej@redhat.com
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] AGP: Try unsupported AGP chipsets on x86-64 by default
Andi Kleen [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] AGP: Try unsupported AGP chipsets on x86-64 by default

So far all new ones have worked and there isn't much variation because
the CPU does all the interesting bits.

So enable try unsupported by default.

Can be still disabled with try_unsupported=0 (module) or
amd64.try_unsupported=0   (boot option)

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] AGP: Support ULI/ALI 1689 bridge on AMD64
Andi Kleen [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] AGP: Support ULI/ALI 1689 bridge on AMD64

(no name because I'm not sure of the correct name)

Cc: davej@redhat.com
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Optimize NUMA node hash function
Eric Dumazet [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] x86_64: Optimize NUMA node hash function

Compute the highest possible value for memnode_shift, in order to reduce
footprint of memnodemap[] to the minimum, thus making all users
(phys_to_nid(), kfree()), more cache friendly.

Before the patch :

 Node 0 MemBase 0000000000000000 Limit 00000001ffffffff
 Node 1 MemBase 0000000200000000 Limit 00000003ffffffff
 Using 23 for the hash shift. Max adder is 3ffffffff

After the patch :

 Node 0 MemBase 0000000000000000 Limit 00000001ffffffff
 Node 1 MemBase 0000000200000000 Limit 00000003ffffffff
 Using 33 for the hash shift.

In this case, only 2 bytes of memnodemap[] are used, instead of 2048

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Save/restore CS in 64bit signal handlers and force __USER_CS for CS
Bryan Ford [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] x86_64: Save/restore CS in 64bit signal handlers and force __USER_CS for CS

This allows to run 64bit signal handlers in 64bit processes that run small
code snippets in compat mode.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: New heuristics to find out hotpluggable CPUs.
Andi Kleen [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] x86_64: New heuristics to find out hotpluggable CPUs.

With a NR_CPUS==128 kernel with CPU hotplug enabled we would waste 4MB
on per CPU data of all possible CPUs.  The reason was that HOTPLUG
always set up possible map to NR_CPUS cpus and then we need to allocate
that much (each per CPU data is roughly ~32k now)

The underlying problem is that ACPI didn't tell us how many hotplug CPUs
the platform supports.  So the old code just assumed all, which would
lead to this memory wastage.

This implements some new heuristics:

 - If the BIOS specified disabled CPUs in the ACPI/mptables assume they
   can be enabled later (this is bending the ACPI specification a bit,
   but seems like a obvious extension)
 - The user can overwrite it with a new additionals_cpus=NUM option
 - Otherwise use half of the available CPUs or 2, whatever is more.

Cc: ashok.raj@intel.com
Cc: len.brown@intel.com
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Use int operations in spinlocks to support more than 128 CPUs spinning.
Andi Kleen [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] x86_64: Use int operations in spinlocks to support more than 128 CPUs spinning.

Pointed out by Eric Dumazet

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Some clarifications for Documention/x86_64/mm.txt
Andi Kleen [Sat, 5 Nov 2005 16:25:54 +0000 (17:25 +0100)]
[PATCH] x86_64: Some clarifications for Documention/x86_64/mm.txt

I got some questions on this, so just fix up the documentation.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Replace swiotlb extern with include
Andi Kleen [Sat, 5 Nov 2005 16:25:53 +0000 (17:25 +0100)]
[PATCH] x86_64: Replace swiotlb extern with include

Minor victory on the continuous quest against all stray extern.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Replace cpu_pda extern with include
Andi Kleen [Sat, 5 Nov 2005 16:25:53 +0000 (17:25 +0100)]
[PATCH] x86_64: Replace cpu_pda extern with include

Minor cleanup - remove obsolete extern

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Only use asm/sections.h to declare section symbols
Andi Kleen [Sat, 5 Nov 2005 16:25:53 +0000 (17:25 +0100)]
[PATCH] x86_64: Only use asm/sections.h to declare section symbols

Adding __initdata_* to asm-generic/sections.h
Replaces a lot of open coded externs in arch/x86_64/*
I had to change __bss_end to __bss_stop to match the other architectures.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Don't apply __PHYSICAL_MASK to page frame numbers
Andi Kleen [Sat, 5 Nov 2005 16:25:53 +0000 (17:25 +0100)]
[PATCH] x86_64: Don't apply __PHYSICAL_MASK to page frame numbers

It is for physical addresses, not for PFNs.

Pointed out by Tejun Heo.

Cc: htejun@gmail.com
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Unmap NULL during early bootup
Siddha, Suresh B [Sat, 5 Nov 2005 16:25:53 +0000 (17:25 +0100)]
[PATCH] x86_64: Unmap NULL during early bootup

We should zap the low mappings, as soon as possible, so that we can catch
kernel bugs more effectively. Previously early boot had NULL mapped
and didn't trap on NULL references.

This patch introduces boot_level4_pgt, which will always have low identity
addresses mapped.  Druing boot, all the processors will use this as their
level4 pgt.  On BP, we will switch to init_level4_pgt as soon as we enter C
code and zap the low mappings as soon as we are done with the usage of
identity low mapped addresses.  On AP's we will zap the low mappings as
soon as we jump to C code.

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Ashok Raj <ashok.raj@intel.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Speed up numa_node_id by putting it directly into the PDA
Andi Kleen [Sat, 5 Nov 2005 16:25:53 +0000 (17:25 +0100)]
[PATCH] x86_64: Speed up numa_node_id by putting it directly into the PDA

Not go from the CPU number to an mapping array.
Mode number is often used now in fast paths.

This also adds a generic numa_node_id to all the topology includes

Suggested by Eric Dumazet

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Fix gcc 4 warning in aperture.c
Andi Kleen [Sat, 5 Nov 2005 16:25:53 +0000 (17:25 +0100)]
[PATCH] x86_64: Fix gcc 4 warning in aperture.c

Fix

  arch/x86_64/kernel/aperture.c: In function #iommu_hole_init#:
  arch/x86_64/kernel/aperture.c:199: warning: #aper_order# may be used uninitialized in this function

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86-64/i386: Fix CPU model for family 6
Suresh Siddha [Sat, 5 Nov 2005 16:25:53 +0000 (17:25 +0100)]
[PATCH] x86-64/i386: Fix CPU model for family 6

According to cpuid instruction in IA32 SDM-Vol2, when computing cpu model,
we need to consider extended model ID for family 0x6 also.

AK: Also added fixes/simplifcation from Petr Vandrovec

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Remove duplicate __cpuinit define
Ashok Raj [Sat, 5 Nov 2005 16:25:53 +0000 (17:25 +0100)]
[PATCH] x86_64: Remove duplicate __cpuinit define

Remove duplicate __cpuinit in smp.c. Already defined in init.h which is
already included.

Signed-off-by: Ashok Raj <ashok.raj@intel.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Use the DMA32 zone for dma_alloc_coherent()/pci_alloc_consistent
Andi Kleen [Sat, 5 Nov 2005 16:25:53 +0000 (17:25 +0100)]
[PATCH] x86_64: Use the DMA32 zone for dma_alloc_coherent()/pci_alloc_consistent

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Remove obsolete ARCH_HAS_ATOMIC_UNSIGNED and page_flags_t
Andi Kleen [Sat, 5 Nov 2005 16:25:53 +0000 (17:25 +0100)]
[PATCH] x86_64: Remove obsolete ARCH_HAS_ATOMIC_UNSIGNED and page_flags_t

Has been introduced for x86-64 at some point to save memory
in struct page, but has been obsolete for some time. Just
remove it.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Fix up outdated pfn_to_page comment
Andi Kleen [Sat, 5 Nov 2005 16:25:53 +0000 (17:25 +0100)]
[PATCH] x86_64: Fix up outdated pfn_to_page comment

pfn_to_page really requires pfn_valid to be true now, no question.
Some people stumbled over it, but it was misleading and wrong.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] i386/x86-64: Share interrupt vectors when there is a large number of interrup...
James Cleverdon [Sat, 5 Nov 2005 16:25:53 +0000 (17:25 +0100)]
[PATCH] i386/x86-64: Share interrupt vectors when there is a large number of interrupt sources

Here's a patch that builds on Natalie Protasevich's IRQ compression
patch and tries to work for MPS boots as well as ACPI.  It is meant for
a 4-node IBM x460 NUMA box, which was dying because it had interrupt
pins with GSI numbers > NR_IRQS and thus overflowed irq_desc.

The problem is that this system has 270 GSIs (which are 1:1 mapped with
I/O APIC RTEs) and an 8-node box would have 540.  This is much bigger
than NR_IRQS (224 for both i386 and x86_64).  Also, there aren't enough
vectors to go around.  There are about 190 usable vectors, not counting
the reserved ones and the unused vectors at 0x20 to 0x2F.  So, my patch
attempts to compress the GSI range and share vectors by sharing IRQs.

Cc: "Protasevich, Natalie" <Natalie.Protasevich@unisys.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Support for AMD specific MCE Threshold.
Jacob Shin [Sat, 5 Nov 2005 16:25:53 +0000 (17:25 +0100)]
[PATCH] x86_64: Support for AMD specific MCE Threshold.

MC4_MISC - DRAM Errors Threshold Register realized under AMD K8 Rev F.
This register is used to count correctable and uncorrectable ECC errors that occur during DRAM read operations.
The user may interface through sysfs files in order to change the threshold configuration.

bank%d/error_count - reads current error count, write to clear.
bank%d/interrupt_enable - set/clear interrupt enable.
bank%d/threshold_limit - read/write the threshold limit.

APIC vector 0xF9 in hw_irq.h.
5 software defined bank ids in mce.h.
new apic.c function to setup threshold apic lvt.
defaults to interrupt off, count enabled, and threshold limit max.
sysfs interface created on /sys/devices/system/threshold.

AK: added some ifdefs to make it compile on UP

Signed-off-by: Jacob Shin <jacob.shin@amd.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Adjust, correct, and complete the HPET definitions for x86-64.
Jan Beulich [Sat, 5 Nov 2005 16:25:53 +0000 (17:25 +0100)]
[PATCH] x86_64: Adjust, correct, and complete the HPET definitions for x86-64.

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Account mem_map in VM holes accounting
Andi Kleen [Sat, 5 Nov 2005 16:25:53 +0000 (17:25 +0100)]
[PATCH] x86_64: Account mem_map in VM holes accounting

The VM needs to know about lost memory in zones to accurately
balance dirty pages. This patch accounts mem_map in there too,
which fixes a constant errror of a few percent. Also some
other misc mappings and the kernel text itself are accounted
too.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: When cpu_up fails clean up page allocator properly
Andi Kleen [Sat, 5 Nov 2005 16:25:53 +0000 (17:25 +0100)]
[PATCH] x86_64: When cpu_up fails clean up page allocator properly

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Make i386 compile again with fourth DMA32 zone
Andi Kleen [Sat, 5 Nov 2005 16:25:53 +0000 (17:25 +0100)]
[PATCH] x86_64: Make i386 compile again with fourth DMA32 zone

The code should deal with an additional empty zone, so fix up the
#error.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
19 years ago[PATCH] x86_64: Set compatibility flag for 4GB zone on IA64
Andi Kleen [Sat, 5 Nov 2005 16:25:53 +0000 (17:25 +0100)]
[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>
19 years ago[PATCH] x86_64: Add 4GB DMA32 zone
Andi Kleen [Sat, 5 Nov 2005 16:25:53 +0000 (17:25 +0100)]
[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>
19 years ago[PATCH] x86_64: Update defconfig
Andi Kleen [Sat, 5 Nov 2005 16:25:53 +0000 (17:25 +0100)]
[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>
19 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc-merge
Linus Torvalds [Tue, 15 Nov 2005 01:56:00 +0000 (17:56 -0800)]
Merge git://git./linux/kernel/git/paulus/powerpc-merge

19 years agopowerpc: Remove __init from a function used in suspend/resume.
Paul Mackerras [Mon, 14 Nov 2005 10:56:57 +0000 (21:56 +1100)]
powerpc: Remove __init from a function used in suspend/resume.

Suspend/resume on powermacs uses the pmac_get_boot_time function,
so it can't be marked as __init.

Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years agopowerpc: Remove an extraneous and incorrect declaration of pmac_nvram_init.
Paul Mackerras [Mon, 14 Nov 2005 10:55:48 +0000 (21:55 +1100)]
powerpc: Remove an extraneous and incorrect declaration of pmac_nvram_init.

Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years agopowerpc: Fix clearing of the FPSCR when invoking a signal handler
Paul Mackerras [Mon, 14 Nov 2005 10:55:15 +0000 (21:55 +1100)]
powerpc: Fix clearing of the FPSCR when invoking a signal handler

As pointed out by Gary Byers, we were clearing the image of the FPSCR
(floating point status and control register) in the thread_struct before
copying it to the user stack when invoking a signal.  Thus the task
would see its FPSCR getting cleared when it took a signal.

While fixing it I noticed that our swapcontext system call was also
clearing FPSCR.  It shouldn't, so I fixed that too.

Signed-off-by: Paul Mackerras <paulus@samba.org>
19 years ago[NETFILTER] fix leak of fragment queue at unloading nf_conntrack_ipv6
Yasuyuki Kozakai [Mon, 14 Nov 2005 23:28:45 +0000 (15:28 -0800)]
[NETFILTER] fix leak of fragment queue at unloading nf_conntrack_ipv6

This patch makes nf_conntrack_ipv6 free all IPv6 fragment queues at module
unloading time.  Also introduce a BUG_ON if we ever again have leaks in
the memory accounting.

Signed-off-by: Yasuyuki Kozakai <yasuyuki.kozakai@toshiba.co.jp>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NETFILTER] nf_conntrack: fix possibility of infinite loop while evicting nf_ct_frag6...
Yasuyuki Kozakai [Mon, 14 Nov 2005 23:28:18 +0000 (15:28 -0800)]
[NETFILTER] nf_conntrack: fix possibility of infinite loop while evicting nf_ct_frag6_queue

This synchronizes nf_ct_reasm with ipv6 reassembly, and fixes a possibility
of an infinite loop if CPUs evict and create nf_ct_frag6_queue in parallel.

Signed-off-by: Yasuyuki Kozakai <yasuyuki.kozakai@toshiba.co.jp>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NETFILTER]: fix type of sysctl variables in nf_conntrack_ipv6
Yasuyuki Kozakai [Mon, 14 Nov 2005 23:27:43 +0000 (15:27 -0800)]
[NETFILTER]: fix type of sysctl variables in nf_conntrack_ipv6

These variables should be unsigned.  This fixes sysctl handler for
nf_ct_frag6_{low,high}_thresh.

Signed-off-by: Yasuyuki Kozakai <yasuyuki.kozakai@toshiba.co.jp>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NETFILTER]: cleanup IPv6 Netfilter Kconfig
Yasuyuki Kozakai [Mon, 14 Nov 2005 23:26:58 +0000 (15:26 -0800)]
[NETFILTER]: cleanup IPv6 Netfilter Kconfig

This removes linux 2.4 configs in comments as TODO lists.
And this also move the entry of nf_conntrack to top like IPv4 Netfilter
Kconfig.

Based on original patch by Krzysztof Piotr Oledzki <ole@ans.pl>.

Signed-off-by: Yasuyuki Kozakai <yasuyuki.kozakai@toshiba.co.jp>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NETFILTER]: link 'netfilter' before ipv4
Krzysztof Oledzki [Mon, 14 Nov 2005 23:25:59 +0000 (15:25 -0800)]
[NETFILTER]: link 'netfilter' before ipv4

Staticaly linked nf_conntrack_ipv4 requires nf_conntrack. but currently
nf_conntrack is linked after it. This changes the order of ipv4 and netfilter
to fix this.

Signed-off-by: Krzysztof Oledzki <olenf@ans.pl>
Signed-off-by: Yasuyuki Kozakai <yasuyuki.kozakai@toshiba.co.jp>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NETFILTER] nfnetlink: unconditionally require CAP_NET_ADMIN
Harald Welte [Mon, 14 Nov 2005 23:24:59 +0000 (15:24 -0800)]
[NETFILTER] nfnetlink: unconditionally require CAP_NET_ADMIN

This patch unconditionally requires CAP_NET_ADMIN for all nfnetlink
messages.  It also removes the per-message cap_required field, since all
existing subsystems use CAP_NET_ADMIN for all their messages anyway.

Patrick McHardy owes me a beer if we ever need to re-introduce this.

Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NETFILTER] nf_conntrack: Add missing code to TCP conntrack module
KOVACS Krisztian [Mon, 14 Nov 2005 23:23:01 +0000 (15:23 -0800)]
[NETFILTER] nf_conntrack: Add missing code to TCP conntrack module

Looks like the nf_conntrack TCP code was slightly mismerged: it does
not contain an else branch present in the IPv4 version. Let's add that
code and make the testsuite happy.

Signed-off-by: KOVACS Krisztian <hidden@balabit.hu>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NETFILTER] ctnetlink: More thorough size checking of attributes
Pablo Neira Ayuso [Mon, 14 Nov 2005 23:22:11 +0000 (15:22 -0800)]
[NETFILTER] ctnetlink: More thorough size checking of attributes

Add missing size checks. Thanks Patrick McHardy for the hint.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NETFILTER] nfnetlink: skip size check if size not specified (== 0)
Pablo Neira Ayuso [Mon, 14 Nov 2005 23:21:41 +0000 (15:21 -0800)]
[NETFILTER] nfnetlink: skip size check if size not specified (== 0)

Skip sizecheck if the size of the attribute wasn't specified, ie. zero.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[NETFILTER] ctnetlink: use size_t to make gcc-4.x happy
Pablo Neira Ayuso [Mon, 14 Nov 2005 23:21:01 +0000 (15:21 -0800)]
[NETFILTER] ctnetlink: use size_t to make gcc-4.x happy

Make gcc-4.x happy. Use size_t instead of int. Thanks to Patrick McHardy
for the hint.

Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Harald Welte <laforge@netfilter.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
19 years ago[libata] REQUEST SENSE handling fixes
Jeff Garzik [Mon, 14 Nov 2005 19:50:05 +0000 (14:50 -0500)]
[libata] REQUEST SENSE handling fixes

- Move ATAPI check-condition handling out of the timeout handler
- Use multi-qc-issue feature to issue REQUEST SENSE ATAPI PACKET
  command upon receiving an ATAPI check-condition.

This cleans things up a lot, and eliminates a nasty recursion bug.

19 years ago[libata] minor fixes, new helpers
Jeff Garzik [Mon, 14 Nov 2005 19:14:16 +0000 (14:14 -0500)]
[libata] minor fixes, new helpers

- in ata_dev_identify(), don't assume that all devices are either
  ATA or ATAPI.  In the future, this code will see port multipliers
  and other devices.
- make a debugging printk less verbose
- add new helper ata_qc_reinit()
- add new helper BPRINTK() and port flag ATA_FLAG_DEBUGMSG, for
  fine-grained debugging use.

19 years ago[libata] fix bugs in ATAPI padding DMA mapping code
Jeff Garzik [Mon, 14 Nov 2005 19:06:26 +0000 (14:06 -0500)]
[libata] fix bugs in ATAPI padding DMA mapping code

The ATAPI pad-to-next-32bit-boundary code modifies the scatterlist's
length variable, sometimes to zero.  x86-64 platform would oops if a
zero-length scatterlist entry was asked to be mapped.  Work around this
by ensuring that we never DMA-map a zero length buffer or SG entry.