Andrew Morton [Fri, 20 Feb 2004 09:33:18 +0000 (01:33 -0800)]
[PATCH] MIPS mega-patch
From: Ralf Baechle <ralf@linux-mips.org>
Below following 125547 lines of patches, all to arch/mips and
include/asm-mips. I'm going to send the remaining stuff of which the one
or other bit may need to be discussed in smaller bits.
Holger Schurig [Fri, 20 Feb 2004 16:52:31 +0000 (16:52 +0000)]
[ARM PATCH] 1670/1: PXA serial driver
Patch from Holger Schurig
PXA Serial port (FFUART, BTUART, STUART) and console support
This patch works perfectly here with "console=ttyS0,115200" in the
kernel command line. It contains Jean-frederic Clere fix to detect
STUART and BTUART.
Nico said that I should post it to your patch tracker. It replaces patch 1662/1
Follows your suggestion and also removes the #ifdef around
pci_unmap_addr and friends. Since pci.h should only be getting
included if PCI is enabled by PCI drivers and core, we shouldn't
need the NOP version.
Tony Lindgren [Fri, 20 Feb 2004 10:09:26 +0000 (10:09 +0000)]
[ARM PATCH] 1759/1: Add ARM925 support, updated
Patch from Tony Lindgren
The following patch adds the ARM925 processor support.
This patch is based on the proc-arm925.S in 2.4 kernel, and it has been
modified to be more like the ARM926 support in the 2.6 kernel, except for
the cache flushing and initialization. Also, this patch fixes the
writeback cache flushing for most part.
There are still some issues with writeback cache flushing with devices
using direct memory access, such as USB OHCI. It is recommended to use
the writethrough instead if using USB. This is the default for OMAP-1510.
OMAP-1610 does not have these issues, as it uses ARM926 core.
This patch includes the update for the processor functions to be armv4t
instead armv5t as suggested here:
Carlos Puchol [Thu, 19 Feb 2004 14:14:58 +0000 (06:14 -0800)]
[PATCH] initial support for transmeta's efficeon processors
This implements the initial support for the AGP gart in Transmeta's
Efficeon processors.
This code is based on linus' code from a while ago. Peter and I adapted
it for the current kernel.
The note at the top indicates how it was tested, known issues, and so
forth. It is working quite well, and we'll work to fix the minor issues
and test it some more with s3, more cards, other southbridges, etc.,
next.
Andrew Morton [Thu, 19 Feb 2004 13:41:53 +0000 (05:41 -0800)]
[PATCH] Fix the display of max-ever-used-stack in sysrq-T output
The sysrq-T output currently tries to display the mimimum amount of free
stack which each task has ever had available. It has been busted for years,
because we forgot to zero out the stack when it is first created.
Fix that up, adding a conig option for it.
If the option is disabled, or the arch is not x86 then the free stack usage
will display as zero.
This fixes the behaviour of the pmac "macio" IDE driver when a DMA
transfer happen to get less data out of the device than expected when
setting up the DMA commands (the device underruns). This is very common
with recent ATAPI stuffs and used to cause problem & disable DMA. This
patch fixes the way we handle that condition, thus also fixing DVD
burning on a bunch of recent pmacs.
[PATCH] Be careful about memory ordering in sungem driver
Some barriers between setting up the DMA regions and writing the
descriptor addresses would be most useful.
I had some in my 2.4 version but they got lost someway, probably me not
properly merging with davem at this point. The 970 is definitely more
agressive at re-ordering stores than previous CPUs...
Here is a patch adding some (probably too much, but better safe than
sorry).
People ask how to write the CIS on a SmartMedia card using an sddr09
reader/writer. The patch below documents the required command (but does
not add the code).
Two years ago or so I used this to fix the CIS on a card that my camera no
longer wanted to accept. A Linux utility to do this might be useful, but
the problem always is that we do not really have a good mechanism.
How does one tell a driver that it has to do something special? Add yet
another ioctl?
Alan Stern [Thu, 19 Feb 2004 07:34:39 +0000 (23:34 -0800)]
[PATCH] USB: Use driver-model logging in the UHCI driver
The main item in this patch is the conversion of the UHCI driver from
using the old usb.h logging macros to the new driver-model dev_xxx
macros.
There are a few other minor changes too: updated version number, author,
copyright, and maintainer information, removed some unneeded error
messages, added some line breaks, added a convenience macro for the device
pointer.
Alan Stern [Thu, 19 Feb 2004 07:34:09 +0000 (23:34 -0800)]
[PATCH] USB: Repair unusual_devs.h entry
On Fri, 20 Feb 2004, Gustavo Guillermo wrote:
> Ok, I tested the patch, The camera works, just as in the old Kernel,
> Thanks, I'm including as an atachment the /proc/bus/usb/devices from
> kernel 2.4.x and 2.6.x, and the kernel log for 2.4.x, but ooops, I forgot
> to biold 2.4.x with full debug, if someone need it I will do.
>
> Please include this FIX in the Next Release.
Greg, I now feel confident that this patch should be applied.
Alan Stern [Thu, 19 Feb 2004 07:32:56 +0000 (23:32 -0800)]
[PATCH] USB: Another unusual_devs.h update
On Thu, 19 Feb 2004, Agustin De Igartua wrote:
> Initializing USB Mass Storage driver...
> usb-storage: This device (04e6,0002,0100 S 06 P 50) has unneeded SubClass and Protocol entries in unusual_devs.h
> Please send a copy of this message to <linux-usb-devel@lists.sourceforge.net>scsi0 : SCSI emulation for USB Mass Storage devices
Thank you for sending this in. Greg, here's the patch.
Pat Gefre [Thu, 19 Feb 2004 03:06:58 +0000 (19:06 -0800)]
[PATCH] ia64: cleanup SN2 pci_bus_cvlink.c
I incorporated (at least in spirit I hope) hch's suggestions on the fixup code
put in some kfrees that I was missing and static for sn_alloc_pci_sysdata
(thanks Bartlomiej Zolnierkiewicz). White space clean up.
Andrew Morton [Thu, 19 Feb 2004 00:40:04 +0000 (16:40 -0800)]
[PATCH] show_task() is not SMP safe
From: Arnd Bergmann <arnd@arndb.de>
Christian Bornträger noticed that the kernel can crash after <SysRq>-T. It
appears that the show_task function gets called for all tasks, which does
not work if one of the tasks is running in a system call on another CPU.
In that case the result of thread_saved_pc and show_stack is undefined and
likely to cause a crash.
For tasks running in user space on other CPUs, show_task() is probably
harmless, but I'm not sure if that's true on all architectures.
The patch below is still racy for tasks that are about to sleep, but it
demonstrates the problem.
Andrew Morton [Thu, 19 Feb 2004 00:39:53 +0000 (16:39 -0800)]
[PATCH] show_task() fix and cleanup
show_task() is preinting negative numbers for free stack due to arithmetic
against the wrong pointer.
Fix that up, and clean up a few related things.
show_task still has bogus code which atempts to work out how much stack the
task has ever used - it cannot work because we don't actually zero out the
stack pages when allocating them. We should fix that, or take it out.
Andrew Morton [Thu, 19 Feb 2004 00:39:43 +0000 (16:39 -0800)]
[PATCH] print some x86 build options during oopses
I find this handy sometimes: it makes the oops output include info as to
whether the user has selected CONFIG_PREEMPT, CONFIG_SMP or, particularly,
CONFIG_DEBUG_PAGEALLOC. It can save one email round-trip.
Andrew Morton [Thu, 19 Feb 2004 00:39:33 +0000 (16:39 -0800)]
[PATCH] config option for irqbalance
From: "Martin J. Bligh" <mbligh@aracnet.com>
Make irqbalance into a config option - some people (jgarzik, arjan, etc)
wanted to be able to disable it and do things from userspace instead. This
patch allows each camp to do their own thing, which seems fair ;-)
Andrew Morton [Thu, 19 Feb 2004 00:39:12 +0000 (16:39 -0800)]
[PATCH] ia32: pfn_to_nid fix
From: "Martin J. Bligh" <mbligh@aracnet.com>
Makes sure pfn_to_nid is defined for all combinations of subarches, and that
it's defined before it's used so we don't run into implicit declaration
problems.
Andrew Morton [Thu, 19 Feb 2004 00:39:02 +0000 (16:39 -0800)]
[PATCH] fix pfn_valid on ia32 discontigmem
From: "Martin J. Bligh" <mbligh@aracnet.com>
Fix pfn_valid for architctures with discontiguous memory. This only
changes the NUMA definition, and it leaves the NUMA-Q definition as was,
because it's faster that way, it's in hotpaths, and our memory is always
contiguous.
Andrew Morton [Thu, 19 Feb 2004 00:38:51 +0000 (16:38 -0800)]
[PATCH] fix access() POSIX compliance
From: Andreas Gruenbacher <agruen@suse.de>
The fix for permission() that makes it compliant with POSIX.1-2001
apparently was lost. Here is the patch I sent before. (The relevant lines
from the standard text are cited in
http://www.ussg.iu.edu/hypermail/linux/kernel/0310.2/0286.html. The fix
proposed in that posting did not handle directories without execute
permissions correctly.)
Make permission check conform to POSIX.1-2001
The access(2) function does not conform to POSIX.1-2001: For root
and a file with no permissions, access(file, MAY_READ|MAY_EXEC)
returns 0 (it should return -1).
Andrew Morton [Thu, 19 Feb 2004 00:38:29 +0000 (16:38 -0800)]
[PATCH] use noinline for rest_init()
gcc-3.4 incorretly inlines rest_init() into start_kernel(), causing things to
crash when the .text.init section gets unloaded. Use noinline to prevent
that.
Andrew Morton [Thu, 19 Feb 2004 00:38:18 +0000 (16:38 -0800)]
[PATCH] Add noinline attribute
From: Andi Kleen <ak@muc.de>
This patch adds the `noinline' function attribute. It can be used to
explicitly tell the compiler to not inline functions.
We need this due to what is, IMO, a bug present in gcc-3.4 and current
gcc-3.5 CVS: the compiler is inlining init/main.c:rest_init() inside
init/main.c:start_kernel(), despite the fact that thay are declared to be
placed in different text sections.
Andrew Morton [Thu, 19 Feb 2004 00:38:07 +0000 (16:38 -0800)]
[PATCH] Use -funit-at-a-time on ia32
From: Andi Kleen <ak@muc.de>
The upcomming gcc 3.4 has a new compilation mode called unit-at-a-time.
What it does is to first load the whole file into memory and then generate
the output. This allows it to use a better inlining strategy, drop unused
static functions and use -mregparm automatically for static functions.
It does not seem to compile significantly slower.
This is also available in some of the 3.3 based "hammer branch"
compilers used in distributions (at least in SuSE and Mandrake)
Some tests show impressive .text shrinkage from unit-at-a-time.
e.g. here is the same kernel compiled with -fno-unit-at-a-time and
-funit-at-a-time with a gcc 3.4 snapshot. The gains are really
impressive:
text data bss dec hex filename 4129346 708629 207240 5045215 4cfbdf vmlinux-nounitatatime 3999250 674853 207208 4881311 4a7b9f vmlinux-unitatatime
.text shrinks by over 130KB!. And .data shrinks too.
At first look the numbers look nearly too good to be true, but they have been
verified with several configurations and seem to be real. It looks like
we have a lot of stupid inlines or dead functions. I'm really not
sure why it is that much better. But it's hard to argue with hard
numbers.
[A bloat-o-meter comparision between the two vmlinuxes can be found in
http://www.firstfloor.org/~andi/unit-vs-no-unit.gz . It doesn't show
any obvious candidates unfortunately, just lots of small changes]
With the gcc 3.3-hammer from SuSE 9.0 the gains are a bit smaller, but
still noticeable (>100KB on .text)
This patch enables -funit-at-a-time on ia32 if the compiler is gcc-3.4 or
later. We had several reports of gcc-3.3 producing very early lockups.
This one helps even more, >236KB .text difference. Clearly worth
the effort.
This patch adds an option to use -mregparm=3 while compiling the kernel. I
did an LTP run and it showed no additional failures over an non regparm
kernel.
According to some gcc developers it should be safe to use in all gccs that
are still supports (2.95 and up)
I didn't make it the default because it will break all binary only modules
(although they can be fixed by adding a wrapper that calls them with
"asmlinkage"). Actually it may be a good idea to make this default with
2.7.1 or somesuch.
We add new kbuild infrastructure: the command
scripts/gcc-version.sh $(CC)
will print out the version of gcc in a canonical 4-digit form suitable for
performing numerical tests against.
DESC
arch/i386/Makefile,scripts/gcc-version.sh,Makefile small fixes
EDESC
From: Serge Belyshev <33554432@mtu-net.ru>
arch/i386/Makefile:
* omitted $(KBUILD_SRC)/ in script call.
scripts/gcc-version.sh:
* GNU tail no longer supports 'tail -1' syntax.
We should consider adding -fweb option:
vanilla:
$ size vmlinux
text data bss dec hex filename 3056270 526780 386056 3969106 3c9052 vmlinux
with -fweb:
$ size vmlinux
text data bss dec hex filename 3049523 526780 386056 3962359 3c75f7 vmlinux
Also note 0.1 ... 1.0% speedup in various benchmarks.
This option is not enabled by default at -O2 because it
(like -fomit-frame-pointer) makes debugging impossible.