Selected commits to mm-sources from 19/12/2005 to 15/01/2006, resulting in 2.6.15-mm4, covering 944 new and 1394 removed patches.

Editors notes: Andrew started reviewing Patches like a maniac after his return, on some days I found over 150 commits in my inbox. It seems like many kernel developers devoted their holidays to bugfixing and refactoring code (like the generic timekeeping infrastructure) instead of implementing new features, so this issue of mm-traffic features a rather small number of "interesting" patches even if there has been a very large number of available patches.


reiser4 bugfix patch Hans Reiser 39 files changed, 922 insertions(+), 1370 deletions(-)
The attached patch contains the following recent changes to reiser4 which were tested thoroughly (I believe).

-bug fix in readpages: missing deadlock avoidance is added
-bug fix in invalidatepage: context initialization was too late. Moved to be initialized earlier
-missing jnode releasing on error handling code patches
-unnecessary read/write spinlocks are replaced by plain spinlocks: that allowed to decrease CPU usage somewhat
-cryptcompress plugin update (I hope Edward can say more about it)
-sync is simplified: using the fact that all file changes merge into one atom on stat data update
-readpage can now be run without preventing races with truncate. Error code is returned if page was truncating while readpage was running
-filemap_nopage is eliminated as it is not needed anymore
-bug fix in write when file is opened O_SYNC: space grabbing was missing
-write to extent file change: reiser4 did not handle properly copy_from_user's fault: extent items were updated first and those changes did not get undone when copy_from_user failed. Fixed
-cleanup, unused code removals, commenting
-bug fix in umount: directory cursor destroying was missing


Areca RAID driver (arcmsr) update2 "erich" 4 files changed, 2289 insertions(+), 5775 deletions(-)
Areca RAID driver (arcmsr) cleanups Randy Dunlap 5 files changed, 1383 insertions(+), 1603 deletions(-)
areca-raid-linux-scsi-driver updates "erich" 4 files changed, 506 insertions(+), 880 deletions(-)
Many Linux kernel style cleanups, over 1.2 MB of patches.


acx driver update Denis Vlasenko 11 files changed, 1864 insertions(+), 1889 deletions(-)
Update drivers/net/wireless/tiacx driver from version 0.3.14 to 0.3.23, Patch is 250 KB in size.


Add DRM support for Radeon X600 Brice Goglin 1 files changed, 1 insertion(+)
Now that Xorg 6.9/7.0 has been released, DRI is supported on more Radeon cards without ATI proprietary drivers. I got my X300 to work without problem. But, another Radeon X600 required to add its PCI ids to the Radeon driver. Patch is attached.

I can't be sure about the "CHIP_RV350", I copied it from the X300 entry (from http://dri.freedesktop.org/wiki/ATIRadeon, X600 is a rv380 chip while X300 is a rv370). But, at least it works now.


Add /sys/fs Miklos Szeredi 2 files changed, 8 insertions(+)
This patch adds an empty /sys/fs, which filesystems can use.


Add tmpfs options for memory placement policies Robin Holt 6 files changed, 75 insertions(+), 15 deletions(-)
Introduce a tmpfs mount option which allows specifying a memory policy and a second option to specify the nodelist for that policy. With the default policy, tmpfs will behave as it does today. This patch adds support for preferred, bind, and interleave policies.

The default policy will cause pages to be added to tmpfs files on the node which is doing the writing. Some jobs expect a single process to create and manage the tmpfs files. This results in a node which has a significantly reduced number of free pages.

With this patch, the administrator can specify the policy and nodes for that policy where they would prefer allocations.

This patch was originally written by Brent Casavant and Hugh Dickins. I added support for the bind and preferred policies and the mpol_nodelist mount option.


Add udev support to parport_pc Jason Dravet 1 files changed, 16 insertions(+)
add-udev-support-to-parport_pc-tidy Andrew Morton 1 files changed, 6 insertions(+), 4 deletions(-)
Add sysfs support to parport_pc. Without this patch parport_pc does not provide enough information to udev to create a /dev node. This eliminates the need to create the lp and parport nodes using /etc/udev/makedev.d.


ahci: add Intel ICH8 device IDs Jason Gaston 2 files changed, 10 insertions(+), 10 deletions(-)
ata_piix: add Intel ICH8 device IDs Jason Gaston 2 files changed, 20 insertions(+), 1 deletion(-)
hda_intel: add Intel ICH8 device IDs Jason Gaston 2 files changed, 2 insertions(+), 2 deletions(-)
i2c-i801: add Intel ICH8 device IDs Jason Gaston 3 files changed, 3 insertions(+), 2 deletions(-)
Intel ICH8: add PCI device IDs Jason Gaston 3 files changed, 12 insertions(+), 7 deletions(-)
piix: add Intel ICH8M device IDs Jason Gaston 1 files changed, 4 insertions(+)
Add the Intel ICH8 DID's to the ahci.c file for AHCI mode SATA support.
Add the Intel ICH8 DID's to the ata_piix.c and quirks.c file for IDE mode SATA support.
Add the Intel ICH8 HD Audio device ID to the hda_intel.c audio driver.
Add the Intel ICH8 I2C device ID to the i2c-i801.c audio driver.


Altix: ioc3 serial support Patrick Gefre 10 files changed, 3410 insertions(+), 1 deletion(-)
This is a re-submission. On the original submission I was asked to organize the code so that the MIPS ioc3 ethernet and serial parts could be used with this driver. Stanislaw Skowronek was kind enough to provide the shim layer for this - thanks Stanislaw. This patch includes the shim layer and the Altix PCI ioc3 serial driver. The MIPS merged ioc3 ethernet and serial support is forthcoming.


amd64-agp suspend support Michal Schmidt 1 files changed, 24 insertions(+)
ati-agp suspend/resume support Jaco Kroon 1 files changed, 20 insertions(+)
This adds support for suspend/resume to the amd64-agp and the ati-agp drivers. Without, X displays garbage on amd64-agp after resume from swsusp.


ARM Netwinder watchdog wdt977 update Woody Suwalski 1 files changed, 141 insertions(+), 75 deletions(-)
Cleanup for the ARM-only watchdog driver wdt977. This is probably the last update, since we want to merge with w83977f_wdt. Jose Goncalves has ported this driver to i386, so probably we can iron out configuration differences.


cs89x0: add ixdp2351 support Deepak Saxena 2 files changed, 25 insertions(+), 6 deletions(-)
cs89x0: cleanly implement ixdp2x01 and pnx0501 support Lennert Buytenhek 2 files changed, 34 insertions(+), 13 deletions(-)
(...)    
14 small patches to the cs89x0 network driver, mostly bugfixes.


EDAC with sysfs interface added Doug Thompson 4 files changed, 2166 insertions(+), 370 deletions(-)
This converts EDAC to sysfs and is the final chunk neccessary before EDAC has a stable user space API and can be considered for submission into the base kernel.


Enable unit-at-a-time optimisations for GCC4 Ingo Molnar 1 files changed, 3 insertions(+), 3 deletions(-)
Allow gcc4 compilers to optimize unit-at-a-time.

This flag enables gcc to "see" the entire C file before making optimisation decisions such as inline, which results in GCC making better decisions. One of the immediate effects of this is that static functions that are used only once now get inlined.

GCC 3.4 has this flag as well, however GCC 3.x have a problem with inlining and stacks and as a result, enabling this flag there would cause excessive and unacceptable stack use. This problem is fixed in the GCC 4.x series. The x86-64 architecture already enables this feature so it's well tested already.


i386: enable 4k stacks by default Adrian Bunk 1 files changed, 4 insertions(+), 3 deletions(-)
This patch enables 4k stacks by default.

4k stacks have become a well-tested feature used fore a long time in Fedora and even in RHEL 4. There are no known problems in in-kernel code with 4k stacks still present after Neil's patch that went into -mm nearly two months ago. Defaulting to 4k stacks in -mm kernel will give some more testing coverage and should show whether there are really no problems left. Keeping the option for now should make the people happy who want to use the experimental -mm kernel but don't trust the well-tested 4k stacks. Additionally, make it more obvious that available stack space is not being halved.


nvidiafb: Add boot option 'bpp' Antonino A. Daplas 1 files changed, 21 insertions(+), 4 deletions(-)
nvidiafb: Fixes for new G5 Benjamin Herrenschmidt 3 files changed, 75 insertions(+), 18 deletions(-)
nvidiafb-add-boot-option-bpp.patch: Add boot/module option 'bpp' so user can specify at what color depth to boot into.

nvidiafb-fixes-for-new-g5.patch: Recent X "nv" driver was fixed for various issues with modern 6xxx and 7xxx cards. This patch ports those fixes to nvidiafb. This makes it work fine on the 6600 bundled with the newest G5 macs. I've verified it still works on the 5200FX of the iMacG5.


partitions: Read Rio Karma partition table Bob Copeland 5 files changed, 77 insertions(+)
The Rio Karma portable MP3 player has its own proprietary partition table. The partition layout is similar to a DOS boot sector but it begins at a different offset and uses a different magic number (0xAB56 instead of 0xAA55). Add support for it to enable mounting the device.


powerpc: Add support for the MPC83xx watchdog Kumar Gala 3 files changed, 235 insertions(+)
Add support for the PowerPC MPC83xx watchdog. The MPC83xx has a simple watchdog that once enabled it can not be stopped, has some simple timeout range selection, and the ability to either reset the processor or take a machine check.


spi: add spi_butterfly driver David Brownell 4 files changed, 490 insertions(+)
This adds a bitbanging parport based adaptor cable for AVR Butterfly, giving SPI links to its DataFlash chip and (eventually) firmware running in the card.


Time: Generic Timekeeping Infrastructure John Stultz 14 files changed, 1169 insertions(+), 10 deletions(-)
Time: i386 Clocksource Drivers John Stultz 8 files changed, 461 insertions(+), 1 deletion(-)
This implements the generic timekeeping infrastructure. This common infrastructure is intended to be used by any arch to reduce code duplication, improve robustness in the face of late or lost ticks, enables finer granularity timekeeping, and allows for or assists future changes such as high-res timers, dynamic ticks, or realtime preemption.

The major change with this code is that it allows timekeeping to be independent of the timer interrupt. This provides a linear mapping (ignoring ntp adjustments) between a hardware clocksource counter and the time of day. This allows for lost ticks or other delays to not affect timekeeping. Additionally, it provides finer nanosecond resolution values to the clock_gettime functions.

Included below is timeofday.c (which includes all the time of day management and accessor functions), and minimal hooks into arch independent code. This patch does not remove the current timekeeping code, allowing architectures to move over when they are ready. Without architecture specific hooks, this code is non-functional and should not affect the behavior of existing code.