Russell King [Fri, 27 Feb 2004 15:22:13 +0000 (15:22 +0000)]
[ARM] Remove obsolete sysctl PM interface.
The old sysctl PM interface has been replaced by the driver models
interface. This has been gone for a while in the -rmk tree and no
one complained, so there's no point keeping it around.
Russell King [Fri, 27 Feb 2004 14:02:35 +0000 (14:02 +0000)]
[ARM] Update sa1111-pcibuf for dmapool changes.
- use dev_dbg for device-centric debugging messages
- use pr_debug for general debugging messages
- use dmapools instead of pcipools
- use NULL rather than 0 for NULL pointers
- use enum dma_data_direction rather than int
- use DMA_* direction definitions rather than PCI_DMA_*
- only check for sane DMA direction on mapping functions, but
check that DMA direction matches when unmapping/syncing.
Andre McCurdy [Thu, 26 Feb 2004 12:15:46 +0000 (12:15 +0000)]
[ARM] Optimise ARM720T Thumb abort unwinding.
Patch from: Andre.
Optimise data_thumb_pushpop and data_thumb_ldmstm population
counting code with a slightly more optimal algorithm than the
original as there are only 8 bits to count instead of 16.
Andi Kleen [Wed, 25 Feb 2004 02:01:35 +0000 (18:01 -0800)]
[PATCH] Support AGP bridge on Nvidia Nforce3 + cleanup
For some unknown reasons Nvidia NForce3 doesn't use the standard Hammer AGP architecture,
but requires set up of some shadow registers. This patch adds that to the K8 AGP driver.
Based on an old 2.4 patch from someone at Nvidia.
Also includes another bug fix for the K8 AGP handler, from Brad House.
We should not assume that there is only one northbridge in a Uniprocessor system.
Always flush all.
Andi Kleen [Wed, 25 Feb 2004 01:58:41 +0000 (17:58 -0800)]
[PATCH] New machine check handler for x86-64
This adds a new completely rewritten machine check handler for x86-64.
The old one never worked on 2.6.
The new handler has many improvements. It closely follows the Intel and AMD
recommendations on MCE handlers now (the old one had many violations). It handles
unrecoverable errors in user space better now - it will only kill the process now
if possible instead of panicing.
This one is CPU independent now - it should work on any CPU that supports the standard
x86 MCA architecture.
This new handler only logs fatal errors that lead to kernel panic to the console.
Non fatal errors are logged race free into a new (non ring) buffer now
and supplied to the user using a new character device. The old one could
deadlock on console and printk locks. This also separates machine check errors
from real kernel errors better. The new buffer has been also designed to
be easily accessible from external debugging tools: it has a signature
and could be even recovered after reboot. It is not organized as a ring buffer -
this means the first errors are kept unless explicitely cleared.
The new error formats can be parsed using ftp://ftp.suse.com/pub/people/ak/x86-64/mcelog.c
The new character device for it can be created with mknod /dev/mcelog c 10 227
There is a new sysfs interface to configure the machine check handler.
It has a "tolerant" parameter that defines the aggressiveness of the machine check:
0: always panic
1: panic if deadlock possible (e.g. MCE happened in the kernel)
2: try to avoid panic
Default is 2
Despite of having more features the new handler is shorter.
Andi Kleen [Wed, 25 Feb 2004 01:56:12 +0000 (17:56 -0800)]
[PATCH] x86-64 merge for 2.6.3
Bring the x86-64 port up to date. Lots of smaller bug fixes that have accumulated.
Also fixes another nasty bug introduced by the IA32e changes that causes BUGs at
boot for some people.
Only changes x86-64 specific files. There are some other changes that I'm sending
separately.
- Some cleanup in NMI watchdog code
- Fix HyperThreading CPU setup race (Suresh B. Siddha)
- Update defconfig
- Add a comment on why iommu_fullflush is disabled.
- Export sys_ioctl again
- Fix build with IA32_EMULATION=y and SYSVIPC=n
- Remove noisy boot printks in the mptable scan.
- Implement automatic NMI watchdog switching for real now
- Remove redundant 32bit ioctl handlers for autofs
- Remove CONFIG ifdefs around rtc 32bit ioctl handlers
- Remove useless nfsctl ifdef in syscall.c (Al Viro)
- Increase padding for prefetchw alternative
- Check for NX bit early before setting up memory maps (Suresh B. Siddha)
- Change Intel IA32e config description and fix help texts (Jun Nakajima)
- Fix microcode driver build really now (Dave Jones)
- Add nohpet option to disable HPET timer
- Fix double semicolon in aperture.c
- Add cmpxchg16b cpuid entry
- Fix return value of read_pci_config_16 (Paul Menage)
- Fix __KERNEL_COMPAT32_CS (Zachary Amsden)
- Disable the infamous 30 minutes check in CMOS time setting
- Update URLs in Kconfig (Petri T. Koistinen)
- Fix ACPI interrupt source parsing for Nforce3 (Maciej W. Rozycki)
- Fix 32bit ipc version parsing.
- Run local APIC NMI watchdog only once a second (or less often on idle boxes)
- Merge ACPI APIC SCI functions from i386
- Add i8254 timer suspend code from i386
- Merge with 2.6.2-rc3 + minor changes from i386
- Fix empty_zero_page declaration (Greg Johnson)
- Readd sysctls for exception/page fault trace and vsyscall32
- Fix WCHAN
- Fix STACK_TOP usage. Stack for 64bit processes should be at the
top of memory now again. Also set it correctly for LINUX32_3GB.
- Add warning fixes for gcc 3.4 and -Wdeclaration-after-statement
Andrew Morton [Wed, 25 Feb 2004 00:12:37 +0000 (16:12 -0800)]
[PATCH] asmlinkage fixes
From: Andreas Gruenbacher <agruen@suse.de>,
and me.
Latest gcc cvs is able to detect mismatches between functions which are
tagged asmlinkage and declarations which are missing asmlinkage. Or vice
versa.
Fix up the fallout from an x86 allyesconfig build.
Andrew Morton [Wed, 25 Feb 2004 00:12:24 +0000 (16:12 -0800)]
[PATCH] add syscalls.h
From: "Randy.Dunlap" <rddunlap@osdl.org>
Add syscalls.h, which contains prototypes for the kernel's system calls.
Replace open-coded declarations all over the place. This patch found a
couple of prior bugs. It appears to be more important with -mregparm=3 as we
discover more asmlinkage mismatches.
Some syscalls have arch-dependent arguments, so their prototypes are in the
arch-specific unistd.h. Maybe it should have been asm/syscalls.h, but there
were already arch-specific syscall prototypes in asm/unistd.h...
Tested on x86, ia64, x86_64, ppc64, s390 and sparc64. May cause
trivial-to-fix build breakage on other architectures.
Andrew Morton [Tue, 24 Feb 2004 21:13:08 +0000 (16:13 -0500)]
[PATCH] drivers/acpi/sleep/proc.c warnings
drivers/acpi/sleep/proc.c:359: warning: initialization from incompatible pointer type
drivers/acpi/sleep/proc.c:367: warning: initialization from incompatible pointer type
Andrew Morton [Tue, 24 Feb 2004 12:05:09 +0000 (04:05 -0800)]
[PATCH] swsusp/s3: Assembly interactions need asmlinkage
From: Pavel Machek <pavel@suse.cz>
swsusp/s3 assembly parts, and parts called from assembly are not properly
marked asmlinkage; that leads to double fault on resume when someone
compiles kernel with regparm. Thanks go to Stefan Seyfried for discovering
this.
Having spent a non trivial amount of time trying to pull in the code to
enable MSI, I would suggest that a clear indication in Kconfig that MSI
requires CONFIG_PCI_USE_VECTOR would be very helpful. Also since the MSI
code was integrated into 2.6.1 I've updated the comment that called for
installing the MSI patch.
Andrew Morton [Tue, 24 Feb 2004 12:03:21 +0000 (04:03 -0800)]
[PATCH] add the Intel Alder IO-APIC PCI device to quirks
From: James Bottomley <James.Bottomley@SteelEye.com>
The alder has an intel Extended Express System Support Controller which
presents apparently spurious BARs. When the pci resource code tries to
reassign these BARs, the second IO-APIC gets disabled (with disastrous
consequences).
The first BAR is the actual IO-APIC, the remaining five bars seem to be
spurious resources, so we forcibly insert the first one into the resource
tree and clear all the others.
Andrew Morton [Tue, 24 Feb 2004 12:03:10 +0000 (04:03 -0800)]
[PATCH] Make insert_resource work for alder IOAPIC resources
From: James Bottomley <James.Bottomley@SteelEye.com>
This is a necessary precursor patch for getting the Intel Alder motherboard
working (it has a PCI device corresponding to the IO-APIC which has to be
forcibly inserted into the machine's reserved memory region).
Eric Biederman was going to come up with a more comprehensive fix, but in
the meantime, this is the minimum necessary to get insert_resource to work
when the covering region is larger than the resource being inserted.
Andrew Morton [Tue, 24 Feb 2004 12:03:00 +0000 (04:03 -0800)]
[PATCH] Report NGROUPS_MAX via a sysctl (read-only)
From: Tim Hockin <thockin@sun.com>
Attached is a simple patch to expose NGROUPS_MAX via sysctl. Nothing
fancy, just a read-only variable. glibc can use this to sysconf() the
value properly, so apps will stop relying on NGROUPS_MAX as a real
constant.
Paul Mackerras [Tue, 24 Feb 2004 11:58:56 +0000 (03:58 -0800)]
[PATCH] Clean up IRQ mapping code
On the larger ppc64 machines we remap the interrupt numbers used by
the hardware/firmware to virtual IRQ numbers < NR_IRQS. Up until now
we have used an array for the "real" (hardware) -> virtual IRQ number
mapping, but with new machines coming out that will have 24-bit
hardware IRQ numbers, this will break. However, in fact it is only
the XICS interrupt controller which cares about this mapping. This
patch moves that side of the mapping (real -> virtual) into the XICS
code and makes it use a radix tree.
On iSeries we have a similar issue, where the "real" IRQ numbers that
we need are in fact an encoding of the bus/device/function address of
the device. This patch fixes iSeries to use the virt->real IRQ
mapping, allowing us to support larger iSeries machines. This patch
also gets rid of the temporary hack that Stephen Rothwell submitted.
On machines with OpenPIC (including the G5) the mapping is explicitly
1-1, and that hasn't changed. For other machines this patch cleans up
and simplifies the code that sets up the virtual->real mapping.
I have tested this code and verified that G5, pSeries and iSeries boot
and run correctly with this patch.
Jeff Garzik [Tue, 24 Feb 2004 16:18:44 +0000 (11:18 -0500)]
Improvements to the bk-make-sum BitKeeper summary/submission script:
* use bk:// url to reduce confusion
* remove "Linus, " from introductory output text
* don't diffstat each individual cset; do the entire patch all in
one go. Makes the script a -lot- faster when summarizing
a large number of changesets.
Jochen Friedrich [Tue, 24 Feb 2004 15:29:39 +0000 (10:29 -0500)]
[PATCH] tms380tr patch 1/3 (bug fix)
Hi Jeff,
this fixes some problems partly introduced in the latest token ring
update:
- mix of alloc_trdev(0) and alloc_trdev(sizeof(struct net_local)) confused
memory management.
- initialization of proteon and sknet cards was broken.
- proteon_close() and skisa_close() deleted.
Alexander Viro [Tue, 24 Feb 2004 15:17:51 +0000 (10:17 -0500)]
[PATCH] vlsi_ir leak, allocation and freeing fixes
* switched to sane allocation
* fixes race on removal - we unregistered too late
* contrary to the comment, device had no destructor, so removal
had leaked - unregister_netdev() doesn't trigger freeing in that driver.
* fixes freeing (kfree -> free_netdev)
Otherwise the same story as with previous patch - irda-related part of NE*
that got lost.
Alexander Viro [Tue, 24 Feb 2004 15:01:14 +0000 (10:01 -0500)]
[PATCH] au1k leaks, allocation and free_netdev() fixes
* fixes leaks on failed init
* switches to sane allocation
* fixes netdev freeing (kfree -> free_netdev)
* fixes the idiocy with ->init() (from registger_netdev()) calling
unregister_netdevice() in case of failure - before we got anywhere past
the very beginning of register_netdev().
That's a part of NE* series that failed through the cracks (there were
pending irda patches, so that had been postponed, irda patches either
hadn't materialized in two months or hadn't touched that driver at all,
the latter being more likely).
Error path (EISA) probe was using device before set.
# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.1567 -> 1.1568
# drivers/net/dgrs.c 1.23 -> 1.24
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 04/02/19 shemminger@osdl.org 1.1568
# fix bug in eisa error path.
# --------------------------------------------
#
Scott Feldman [Tue, 24 Feb 2004 14:50:10 +0000 (09:50 -0500)]
[netdrvr e100] Response to Jeff's review plus some minor fixes.
* define dump stats complete constant
* add mwb() to keep order straight with HW when appending
new resources to Rx and Tx queues
* increment stats for rx_dropped and rx_over_errors
Scott Feldman [Tue, 24 Feb 2004 14:43:09 +0000 (09:43 -0500)]
[PATCH] e1000: disable CSA fix for 82547
* Multiple reports of system lock-ups with the CSA patch, so
let's disable fix for now until we can understand why this
is causing the hangs. It was first thought that only pre-
productions systems would hang, but that's not true.
Don Fry [Tue, 24 Feb 2004 14:29:12 +0000 (09:29 -0500)]
[PATCH] pcnet32.c adds loopback test
This adds the ability to do a local loopback test for the adapter. This
source was submitted by James Lewis <jklewis@us.ibm.com>. Tested on PPC
and IA32 systems.
Don Fry [Tue, 24 Feb 2004 14:29:04 +0000 (09:29 -0500)]
[PATCH] pcnet32.c add PCI hot remove support
This patch adds support for PCI hot remove. Tested on PPC64 boxes.
The driver has also been checked to comply with PCMCIA/cardbus remove
requirements, but as I don't have a PCMCIA card, it is untested.
If a PCMCIA card is removed, reads will return FFFF. The FFFF will
cause all while loops to exit.
Don Fry [Tue, 24 Feb 2004 14:28:42 +0000 (09:28 -0500)]
[PATCH] 2.6.3 pcnet32.c change to use ethtool_ops
This changes the driver to use ethtool_ops to be more modular. There is a
net delta of just a one line between the two implementations, but permission
checking and copying to/from user space, etc. is all done in a consistent
manner by ethtool.c
Don Fry [Tue, 24 Feb 2004 14:28:26 +0000 (09:28 -0500)]
[PATCH] 2.6.3 pcnet32.c wrong vendor ID fix
This patch was originally sent by Jon Mason on Sat Jan 31.
"I created a patch that allows pcnet32 adapters sold in IBM RS/6000 systems
to be recognized in non-ppc computers. The problem is that the Vendor ID
of this adapter is incorrect. There is a ppc specific workaround to get
it working on that architecture (checkout
http://lxr.linux.no/source/arch/ppc/kernel/pci.c?a=ppc#L87
for the workaround), but it obviously won't fix the problem in non-ppc
architectures."
Randy Dunlap [Tue, 24 Feb 2004 08:27:37 +0000 (03:27 -0500)]
[PATCH] strip: use kernel min/max
Domen Puncer schrieb:
>
> Just some suggestions...
>
>> #define ELEMENTS_OF(X) (sizeof(X) / sizeof((X)[0]))
>
> Remove this define and s/ELEMENTS_OF/ARRAY_SIZE/g
>
There are more occurances of redundant ARRAY_SIZEs in the kernel. I will
keep that in mind!
>
>
>>@@ -847,7 +845,7 @@
>> static int allocate_buffers(struct strip *strip_info, int mtu)
>> {
>> struct net_device *dev = strip_info->dev;
>>- int sx_size = MAX(STRIP_ENCAP_SIZE(MAX_RECV_MTU), 4096);
>>+ int sx_size = max((int)STRIP_ENCAP_SIZE(MAX_RECV_MTU), 4096);
>
>
> max_t?
Changed that to max_t and min_t. A newbie queston: What should when be
preferred and why?
Jens Axboe [Tue, 24 Feb 2004 04:26:03 +0000 (20:26 -0800)]
[PATCH] fix SCSI non-sector bio backed IO
This fixes the SCSI layer to handle non-sector-aligned requests from
SG_IO (and potentially anything else producing these requests) that
could stall the machine and cause all sorts of funnies depending on the
low level driver used.