Size: 182799
Comment:
|
Size: 881
Comment: converted to 1.6 markup
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
Comprehensible changelog of the linux kernel, inspired by [http://wiki.dragonflybsd.org/index.php/DragonFly_Status Dragonfly's status]. Other places to get news about the linux kernel are [http://www.kernel-traffic.org Kernel traffic], [http://lwn.net/Kernel/ LWN kernel status], [http://lwn.net/Articles/driver-porting/ LWN driver porting guide] and [http://lwn.net/Articles/2.6-kernel-api/ LWN list of API changes in 2.6] - many articles here link to LWN and much of the 2.6.x changelog was restored from them (you may be be interested in subscribing so Jonathan can keep up the good work ;-) ). Before adding things here look at the RULES section at the end of the page!! | #pragma keywords Linux, Kernel, Operative System, Linus Torvalds, Open Source, drivers, filesystems, network, memory management, scheduler, preemtion, locking #pragma description Summary of the changes and new features merged in the Linux Kernel during the 2.6.x and 3.x development Changes done in each Linux kernel release. Other places to get news about the Linux kernel are [[http://lwn.net/Kernel/|LWN kernel status]], [[http://www.h-online.com/open/features/|H-Online]], or the Linux Kernel mailing list (there is a web interface in [[http://www.lkml.org|www.lkml.org]]). List of changes of older releases can be found at LinuxVersions. If you're going to add something here look first at LinuxChangesRules! |
Line 3: | Line 5: |
==== 2.6.15 and older ==== * See Linux26Changes, this page "only" tracks the current stable and development releases. |
You can discuss the latest Linux kernel changes on the [[http://forum.kernelnewbies.org/list.php?4|New Linux Kernel Features Forum]]. |
Line 6: | Line 7: |
==== 2.6.17 ==== * Still not released, see [#development below] ==== Latest stable release: 2.6.16 ==== * Released 20 March, 2006 [http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.16 (full changelog)] * [http://72.14.207.104/search?q=cache:IT1X2f-H0yUJ:wiki.kernelnewbies.org/LinuxChanges+&hl=en&ct=clnk&cd=1 Google cache of this page] * Overview (useful for headlines): * OCFS2 (http://lwn.net/Articles/137278/, http://oss.oracle.com/projects/ocfs2/), a clustering filesystem contributed by Oracle (there's [http://sources.redhat.com/cluster/gfs/ GFS] from Red Hat who bought it from Sistina Software, shipped out-of-the-tree for now) * new unshare() ( http://lwn.net/Articles/135321/), pselect()/ppoll() and *at() system calls (http://lwn.net/Articles/164887/) * support the moving of the physical location of pages between nodes in NUMA systems * support for the Cell processor * cpufreq support for G5s plus thermal control for dualcore G5s * improved power management support for many devices and subsystems (libata, alsa...) * mutex locking primitive * high-resolution timers (http://lwn.net/Articles/167897) * per-mountpoint noatime/nodiratime * 64-to-32-bit ioctl compatibilty for the v4l2 subsystem * IPv6 support for DCCP * New TIPC protocol (Transparent Inter Process Communication, http://tipc.sourceforge.net/) used for intra-clustering communication * ACL support for CIFS filesystem * HFSX filesystem support * new configfs filesystem (which complements sysfs, not replaces it) * support for running executables from v9fs (plan9 9P distributed filesystem) * support for many new devices, improved support and features for others and lots of other changes. * '''Kernel Core changes''' * New features/frameworks * *at syscalls: introduce in total 13 new system calls which take a file descriptor/filename pair instead of a single file name. These functions (sys_openat, sys_mkdirat, sys_mknodat, sys_fchownat, sys_futimesat, sys_newfstatat, sys_unlinkat, sys_renameat, sys_linkat, sys_symlinkat, sys_readlinkat, sys_fchmodat, sys_faccessat) are needed to implement race-free filesystem traversal, they are necessary to implement a virtual per-thread current working directory (multi-threaded backup software, etc). Glibc today implements those interfaces using the /proc/self/fd magic, but this hack is rather expensive, and other operative systems like OpenSolaris [http://docs.sun.com/app/docs/doc/816-0212/6m6nd4nc7?a=view already have some of them]. In the GNU world, coreutils are already using them, and will have lots of other users too - every program which is walking the filesystem tree will benefit [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5590ff0d5528b60153c0b4e7b771472b5a95e297 (commit)]. * Add pselect/ppoll system call implementation [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9f72949f679df06021c9e43886c9191494fdb007 (commit)]. * Add unshare() system call. The linux kernel implements threads in a very simple and lightweight, handling them just as normal processes which happen to share resource with other threads (just like Windows and Solaris in recent Solaris versions). The clone() system call already allows to create new processes which can share different attributes (file descriptors, filesystem information, filesystem namespace, signal handlers, address space...). The unshare() system call adds a primitive to the Linux thread model that allows threads to selectively 'unshare' any resources that were being shared at the time of their creation. unshare() was [http://marc.theaimsgroup.com/?l=linux-kernel&m=96753366711611&w=2 conceptualized by Alexander Viro] in August of 2000. unshare() augments the usefulness of Linux threads for applications that would like to control shared resources without creating a new process. unshare() is a natural addition to the set of available primitives on Linux that implement the concept of process/thread as a virtual machine. For more info check the [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/unshare.txt Documentation]. [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cf2e340f4249b781b3d2beb41e891d08581f0e10 (commit)], implementation for unsharing file descriptors [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a016f3389c06606dd80e687942ff3c71d41823c4 (commit)], vm structure (disabled in this release by default) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a0a7ec308f1be5957b20a1a535d21f683dfd83f0 (commit)], filesystem namespace [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=741a295130606143edbf9fc740f633dbc1e6225f (commit)], filesystem info [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=99d1419d96d7df9cfa56bc977810be831bd5ef64 (commit)]. [http://lwn.net/Articles/135321/ (LWN article)] * New 'mutex' locking primitive. Until now, there was two main types of locks: spinlocks and semaphores. Mutexes are like a spinlock, but you may block holding a mutex. If you can't lock a mutex, your task will suspend itself, and be woken up when the mutex is released. This means the CPU can do something else while you are waiting. There are many cases when you simply can't sleep and so have to use a spinlock instead. Semaphores can be and have been (ab)used for this same purpose, but mutexes are simpler than semaphores, and have some advantages. You cannot use mutexes the same way you can use semaphores though, e.g. they cannot be used from an interrupt context, nor can they be unlocked from a different context that which acquired it. Read the [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/mutex-design.txt documentation], or (more interesting) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=kernel/mutex.c kernel/mutex.c]; it also features some extensive debugging facilities in [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=kernel/mutex-debug.c kernel/mutex-debug.c] [http://lwn.net/Articles/165039/ (LWN article)] [http://lwn.net/Articles/167034/ (LWN article explaining the API)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6053ee3b32e3437e8c1e72687850f436e779bd49 (commit)] * High resolution timers ([http://lwn.net/Articles/167897 LWN article explaining the API)]. In contrast to the low-resolution timeout API implemented in kernel/timer.c, hrtimers provide finer resolution and accuracy depending on system configuration and capabilities. These timers are currently used for: itimers, POSIX timers, nanosleep and precise in-kernel timing. For more details read the [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/hrtimers.txt documentation] [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c0a3132963db68f1fbbd0e316b73de100fee3f08 (commit)] * Swap migration. [http://lwn.net/Articles/157066/ (LWN article)] Swap migration allows the moving of the physical location of pages between nodes in a NUMA system while the process is running, through swap. This means that the virtual addresses that the process sees do not change. However, the system rearranges the physical location of those pages. The main intent of page migration patches here is to reduce the latency of memory access by moving pages near to the processor where the process accessing that memory is running. The patchset allows a process to manually relocate the node on which its pages are located. The pages of process can also be relocated from another process using the sys_migrate_pages() function call. Swap migration works by simply evicting the page, the pages must be faulted back in. The pages are then typically reallocated by the system near the node where the process is executing. Manual migration is very useful if for example the scheduler has relocated a process to a processor on a distant node. A batch scheduler or an administrator can detect the situation and move the pages of the process nearer to the new processor. For more details, see the commit [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=45b07ef31d1182d2cfde7711327e3afb268bb1ac (commit)]. Also, add "direct migration" support on top of the swap based page migration facility: This allows the direct migration of anonymous pages and the migration of file backed pages by dropping the associated buffers (requires writeout) and fall back to swap if necessary [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a48d07afdf18212de22b959715b16793c5a6e57a (commit)] * Add /proc/sys/vm/drop_caches. Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free. This is mainly useful for benchmarking, for getting consistent results between filesystem benchmarks without rebooting. To free pagecache: "echo 1 > /proc/sys/vm/drop_caches", to free dentries and inodes: "echo 2 > /proc/sys/vm/drop_caches", to free pagecache, dentries and inodes: "echo 3 > /proc/sys/vm/drop_caches". As this is a non-destructive operation and dirty objects are not freeable, the user should run `sync' first [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9d0243bca345d5ce25d3f4b74b7facb3a6df1232 (commit)] * Implement madvise(MADV_REMOVE): This feature frees up a given range of pages and its associated backing store. Current implementation supports only shmfs/tmpfs and other filesystems return -ENOSYS. Databases want to use this feature to drop a section of their bufferpool (shared memory segments) - without writing back to disk/swap space. This feature is also useful for supporting hot-plug memory on UML [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f6b3ec238d12c8cc6cc71490c6e3127988460349 (commit)] * Per-mountpoint noatime/nodiratime: turns noatime and nodiratime into per-mount instead of per-sb flags [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fc33a7bb9c6dd8f6e4a014976200f8fdabb3a45c (commit)] * EDAC support. The EDAC goal is to detect and report errors that occur within the computer system. In the initial release, memory Correctable Errors (CE) and Uncorrectable Errors (UE) are the primary errors being harvested. Detecting CE events, then harvesting those events and reporting them, can be a predictor of future UE events. With CE events, the system can continue to operate, but with less safety. Preventive maintainence and proactive part replacement of memory DIMMs exhibiting CEs can reduce the likelihood of the dreaded UE events and system 'panics'. In addition, PCI Bus Parity and SERR Errors are scanned for on PCI devices in order to determine if errors are occurring on data transfers [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=da9bb1d27b21cb24cbb6a2efb5d3c464d357a01e (commit)]. Add drivers for Intel i82860, i82875 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0d88a10e566d46bffc214c974e5cf5abe38d8da8 (commit)], for AMD 76x and Intel E750x, E752x [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=806c35f5057a64d3061ee4e2b1023bf6f6d328e2 (commit)] and Radisys 82600 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2f768af73fea4c70f9046388a7ff648ad11f028e (commit)] * Tweaks to the NUMA policies in the slab allocator [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dc85da15d42b0efc792b0f5eab774dc5dbc1ceec (commit)] * Implement a generic dispatch queue for all the I/O schedulers [http://lwn.net/Articles/157208/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8922e16cf6269e668123acb1ae1fdc62b7a3a4fc (commit)], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b4878f245ec8e168cdd1f170f823a750b7dd4af5 (commit)] * Process scheduler * Add a 'domain distance' function, which is used to cache measurement results for machiens with several nodes. Each distance is only measured once. This means that e.g. on NUMA distances of 0, 1 and 2 might be measured, on HT distances 0 and 1, and on SMP distance 0 is measured. The code walks the domain tree to determine the distance, so it automatically follows whatever hierarchy an architecture sets up. This cuts down on the boot time significantly and removes the old O(N^2) limit. For more details, see the commit [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=198e2f181163233b379dc7ce8a6d7516b84042e7 (commit)] * Filter affine wakeups [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d7102e95b7b9c00277562c29aad421d2d521c5f6 (commit)] * Add a new SCHED_BATCH (3) scheduling policy: such tasks are presumed CPU-intensive, and will acquire a constant +5 priority level penalty. Such policy is nice for workloads that are non-interactive, but which do not want to give up their nice levels. The policy is also useful for workloads that want a deterministic scheduling policy without interactivity causing extra preemptions (between that workload's tasks) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b0a9499c3dd50d333e2aedb7e894873c58da3785 (commit)] * Huge pages * Implement copy-on-write support for hugetlb mappings so MAP_PRIVATE can be supported. This helps us to safely use hugetlb pages in many more applications [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1e8f889b10d8d2223105719e36ce45688fedbd59 (commit)] * Make hugepages obey cpusets [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=aea47ff363c15b0be5fc27ed991b1fdee338f0a7 (commit)] * Add NUMA policy support for huge pages: The huge_zonelist() function in the memory policy layer provides an list of zones ordered by NUMA distance. The hugetlb layer will walk that list looking for a zone that has available huge pages but is also in the nodeset of the current cpuset [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5da7ca86078964cbfe6c83efc1205904587706fe (commit)] * Performance / size optimizations * Shrink struct page in some configurations using anonymous struct [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=349aef0bc4c7f07d685c977e12d0e2d0b5d0e6db (commit)] * Shrink dentry struct: Some long time ago, dentry struct was carefully tuned so that on 32 bits UP, sizeof(struct dentry) was exactly 128, ie a power of 2, and a multiple of memory cache lines. Then RCU was added and dentry struct enlarged by two pointers, with nice results for SMP, but not so good on UP, because breaking the above tuning (128 + 8 = 136 bytes). This reverts this unwanted side effect using a union. As dentry cache easily contains millions of entries, a size reduction is worth the extra complexity of the ugly C union [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5160ee6fc891a9ca114be0e90fa6655647bb64b2 (commit)] * Add the SLOB allocator, a configurable replacement for slab allocator. This adds a CONFIG_SLAB option under CONFIG_EMBEDDED. SLOB is a traditional K&R/UNIX allocator with a SLAB emulation layer, similar to the original Linux kmalloc allocator that SLAB replaced. It's signicantly smaller code and is more memory efficient. But like all similar allocators, it scales poorly and suffers from fragmentation more than SLAB, so it's only appropriate for small systems who want to save some memory [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=10cef6029502915bdb3cf0821d425cf9dc30c817 (commit)] * Make vm86 support optional under CONFIG_EMBEDDED, to save about 5k of kernel size [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=64ca9004b819ab87648dbfc78f3ef49ee491343e (commit)] * configurable support for ELF core dumps, saves about 5K [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=708e9a794cf8822b760edaccd9053edb07c34d19 (commit)] * Make x86 doublefault handling optional, saves about 13 KB [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=22c4e3084eb8b88288a622a57d8b35c450a439f2 (commit)] * Make *[ug]id16 support optional, saves around 2 Kb [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e585e47031751f4e393e10ffd922885508b958dd (commit)] * Add scripts/bloat-o-meter script (python) to measure size changes in the functions of a given file [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d960600df3ce3588571e2c1adf1f5f6d8ca9eb5a (commit)] * Various changes * TTY layer buffering revamp, see the commit link [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=33f0f88f1c51ae5c2d593d26960c760ea154c2e2 (commit)] * Abandon GCC 2.9x support. It doesn't support useful features already used by some drivers like anonymous unions. Plus, no new distros are shipping with 2.9x compilers. In other words, supporting it has more disadvantages than advantages. The minium required compiler version us GCC 3.2 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fd285bb54d8a3e99810090ae88cfe8ed77d1da25 (commit)] * cpuset: Provide a simple per-cpuset metric of memory pressure, tracking the -rate- that the tasks in a cpuset call try_to_free_pages(), the synchronous (direct) memory reclaim code. This enables batch managers monitoring jobs running in dedicated cpusets to efficiently detect what level of memory pressure that job is causing. For more details, see the commit [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3e0d98b9f1eb757fc98efc84e74e54a08308aa73 (commit)] * Make high and batch sizes of per_cpu_pagelists configurable, as recently there has been lot of traffic on the right values for batch and high water marks for per_cpu_pagelists. A new tunable /proc/sys/vm/percpu_pagelist_fraction is added. This entry controls the fraction of pages at most in each zone that are allocated for each per cpu page list. The min value for this is 8. It means that we don't allow more than 1/8th of pages in each zone to be allocated in any single per_cpu_pagelist. The batch value of each per cpu pagelist is also updated as a result [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8ad4b1fb8205340dba16b63467bb23efc27264d6 (commit)] * swsusp: remove the image encryption that is only used by swsusp instead of zeroing the image after resume in order to prevent someone from reading some confidential data from it in the future and it does not protect the image from being read by an unauthorized person before resume. The functionality it provides should really belong to the user space and will possibly be reimplemented after the swap-handling functionality of swsusp is moved to the user space [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f2d97f02961e8b1f8a24befb88ab0e5c886586ff (commit)] * swsusp: make suspend image size limit tunable via /sys/power/image_size. It is necessary for systems on which there is a limited amount of swap available for suspend. It can also be useful for optimizing performance of swsusp on systems with 1 GB of RAM or more. The default size is set to 500 MB [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ca0aec0f7a94bf9f07fefa8bfd23282d4e8ceb8a (commit)]. * Add list_for_each_entry_safe_reverse() [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0ad42352c01788e41a33336577fdd270d8de55bb (commit)] * MD: Exposes and allow to set lots of parameters through sysfs * keys: Add a new keyctl function that allows the expiry time to be set on a key or removed from a key, provided the caller has attribute modification access [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=017679c4d45783158dba1dd6f79e712c22bb3d9a (commit)], and ake it possible for a running process (such as gssapid) to be able to instantiate a key. For more details, see the commit [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b5f545c880a2a47947ba2118b2509644ab7a2969 (commit)] * SPI framework, implements the model of a queue of messages which complete asynchronously (with thin synchronous wrappers on top) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8ae12a0d85987dc138f8c944cb78a92bf466cea0 (commit)] * Export cpu topology in sysfs, /sys/devices/system/cpu/cpuX/topology/*, for more details see the commit [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=69dcc99199fe29b0a29471a3488d39d9d33b25fc (commit)] * Suspend/Resume support for AMD64 GART [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=90be4b49b8b54505772a6a766ac0891ec92b4c2d (commit)], ATI [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5dda4986752b531d89d49c218682e42c63ef1d61 (commit)] and Intel 945GM [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3b0e8eadc511eaceba6d6b8d0743359a34ee23c6 (commit)] * '''Architecture-specific''' * x86 * sparsemem for single node systems: Allows SPARSEMEM to be enabled on non-numa x86 systems. This is made dependant on EXPERIMENTAL also being set [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=215c3409eed16c89b6d11ea1126bd9d4f36b9afd (commit)] * A simple driver for the CS5535 and CS5536 that allows a user-space program to manipulate GPIO pins. The CS5535/CS5536 chips are Geode processor companion devices [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e329113ca437e44ec399b7ffe114ed36e84ccf5e (commit)] * x86: Basic support for the AMD Geode GX and LX processors [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f90b8116032f4216d260e31f966a3585319387ac (commit)] * x86-32 / x86-64: mark rodata sections read only [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=63aaf3086baea7b94c218053af8237f9dbac5d05 (commit)], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=67df197b1a07944c2e0e40ded3d4fd07d108e110 (commit)], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=37b73c828185731f6236a6387c02d7b08c150810 (commit)] * kdump for x86-32/64: Add "elfcorehdr" command line option. "elfcorehdr" specifies the location of elf core header stored by the crashed kernel. This command line option will be passed by the kexec-tools to capture kernel [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=aac04b32f3e4c63f461459d0e1d6aa01caac6e66 (commit)]. Also, add memmmap command line option for x86-64, similar to i386. memmap=exactmap enables setting of an exact E820 memory map, as specified by the user [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=69cda7b1f06befb8d6a884b8a663d19dcaef590b (commit)] * x86-64: Support constant TSC feature in future AMD CPUs [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=130951ccb14167c20b87e8bed52b60864ed53c2b (commit)] * x86_64: Allow compilation on a 32bit biarch toolchain [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bb33421dde79f9a36d5485c56335ff178ac7d268 (commit)] * x86-64: Inclusion of ScaleMP vSMP architecture [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=79f12614a6537cc3ac9ca4d1ea26f6e4f4a34aee (commit)] * Adds the Intel ICH8 IDs [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b6ebb2659065b6e03605e7f0c69449bda382261a (commit)] * PPC * SPU file system. The SPU file system is used on PowerPC machines that implement the Cell Broadband Engine Architecture (aka: Cell processors) in order to access Synergistic Processor Units (SPUs). The file system provides a name space similar to posix shared memory or message queues. Users that have write permissions on the file system can use spu_create(2) to establish SPU contexts in the spufs root. Every SPU context is represented by a directory containing a predefined set of files. These files can be used for manipulating the state of the logical SPU. For more details, read the [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/filesystems/spufs.txt Documentation] [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=67207b9664a8d603138ef1556141e6d0a102bea7 (commit)] * Add back support for booting from BootX. ARCH=powerpc couldn't boot from BootX as it uses a "different" way of getting in the kernel. This patch adds the necessary trampolines, creating a flattened device-tree from the tree passed from MacOS, and initializing the btext engine early for really-early debugging [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d7f3945420b5d8114f2d4d85e90abe5063cc196a (commit)] * Add cpufreq support for all desktop G5. This patch adds cpufreq support for all desktop "tower" G5 models [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9a699aefa87cb0379a67741926820c9271d748a9 (commit)] * Thermal control for dual core G5s ([http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ac171c46667c1cb2ee9e22312291df6ed78e1b6e (commit)] * Experimental support for new G5 Macs: This adds some very basic support for the new machines, including the Quad G5 (tested), and other new dual core based machines and iMac G5 iSight (untested). This is still experimental, there is no thermal control yet, there is no proper handing of MSIs, it just boots [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1beb6a7d6cbed3ac03500ce9b5b9bb632c512039 (commit)] * PPC32 and PPC64 kexec implementations [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3d1229d6ae92ed1994f4411b8493327ef8f4b76f (commit)] * ppc64: per cpu data optimisations [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7a0268fa1a3613f2c526a9b3058701b277f6abe1 (commit)] * IBMEBUS bus support. This adds the necessary core bus support used by device drivers that sit on the IBM GX bus on modern pSeries machines like the Galaxy infiniband for example. It provide transparent DMA ops (the low level driver works with virtual addresses directly) along with a simple bus layer using the Open Firmware matching routines [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d7a301033f1990188f65abf4fe8e5b90ef0e3888 (commit)] * G4+ oprofile support [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=555d97ac87aef08bb55dff6f05e68fe2987d6f6d (commit)] * powerpc/8xx: Use 8MB D-TLB's for kernel static mapping faults, thus reducing TLB space consumed for the kernel and improving performance [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8f069b1a90bd97bf6d59a02ecabf0173d9175609 (commit)] * Make COFF zImages for old 32-bit powermacs [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=66a45dd3620ee5f913ba1af3d2dca8b9bdfa2b96 (commit)] * Remove powermac support from ARCH=ppc. This makes it possible to build kernels for PReP and/or CHRP with ARCH=ppc by removing the (non-building) powermac support. It's now also possible to select PReP and CHRP independently. Powermac users should now build with ARCH=powerpc instead of ARCH=ppc. (This does mean that it is no longer possible to build a 32-bit kernel for a G5) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a7fdd90bc43e3e9cb08bc1b13650024d419b89e5 (commit)]. Also, make ARCH=powerpc the default for 32-bit ppc [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=820a8ce7931d18338e5c089725ec083518da1644 (commit)] * Add platform functions interpreter along with the backends for UniN/U3/U4, mac-io, GPIOs and i2c. It adds the ability to execute those do-platform-* scripts in the device-tree (at least for most devices for which a backend is provided) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5b9ca526917b7bc7d1da3beaccb2251a8f0b5fe2 (commit)]. Add support for add/remove/update properties in firmware device tree [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=088186ded490ced80758200cf8f906ed741df306 (commit)], add add/remove/update properties in /proc/device-tree [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=898b5395e915210f41223caa30312994d64cba1d (commit)], and add support for changing properties from userspace [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=610d91511f99f0a8325ad78fb7259c454b23e65a (commit)] * Add FSL SOC library and setup code [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=eed320010872a11f5255b3d076e5b4f142af553d (commit)] * Early debugging support for iSeries [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bf6a7112bda99aadd6675526423a96be6b356a3d (commit)] * Add "partitionable endpoint" support. New versions of firmware introduce a new method by which the "partitionable endpoint" (the point at which the pci bus is cut) should be located [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=25e591f6dd07365cbf0b1c2454386ce597dd5e05 (commit)] * PCI error recovery infrastructure for the PPC64 pSeries systems [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=77bd741561016134d1761d6101c4f0361025062f (commit)] * Add TQM85xx (8540/8541/8555/8560) board support [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a819f8ba76e81669fcc2665ac532cac650694b99 (commit)] * Add MPC834x SYS board to arch/powerpc [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7d13d21ae85f64e35dcdae4d6a6286e62a38e0ab (commit)] * 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 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fabbfb9e8c53416eaa4f62b957430211376c9c82 (commit)] * s390 * Add support for the hardware accelerated sha256 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0a497c17fee428604e06320272ff74415eacdc31 (commit)] and aes [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bf754ae8ef8bc443c067601d9401103e4001e7c5 (commit)] crypto algorithms; also support cex2a crypto cards [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=88fbf18399bde8f2900cf932acd40733dfa1effa (commit)] * qdio V=V pass-through. QDIO and Hiper Sockets processing in z/VM V=V guest environments (as well as V=R with z/VM running in LPAR mode) requires shadowing of all QDIO architecture queue elements. Especially the shadowing of SBALs and SLSBs structures in the hypervisor, and the need to issue SIGA SYNC operations to observe state changes, eventually causes significant CPU processing overhead in the hypervisor. The QDIO pass-through support for V=V guests avoids the shadowing of SBALs and SLSBs. This significantly reduces the hypervisor overhead for QDIO based I/O [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8129ee164267dc030b8e1d541ee3643c0b9f2fa1 (commit)] * ARM * Iomega NAS 100d network attached storage product. The NAS100D is a consumer device containing a 266MHz Intel IXP420 processor, 16MB of flash, 64MB of RAM, a 160Gb internal IDE hard disk, and 802.11b/g wireless on an Atheros mini-PCI card [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3145d8a6cc83ee15adf18f598873e53a54cd1841 (commit)] * Add pxa27x OHCI platform specific code to enable the ohci device on the pxa27x based Sharp Zaurus Cxx00 devices [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3125c68d70e3433c21234431a9df9e7336efa29f (commit)] * Remove EPXA10DB machine support [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0fec53a24a5e5f7ba68d891b68f568b6aeafaca6 (commit)] * Support for the Atmel AT91RM9200 processor: this adds support for the Cogent CSB337 and CSB637 boards [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=49978db4f39950cdaaf967e1aad4a324bdc2e180 (commit)] and the Atmel's DK and EK boards [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f0a13854be269357ff70022524ec503d3cba6a32 (commit)] * Add support for the serial device for machines with Atmel AT91RM9200 processors [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1e6c9c2878c9c1f301449c78551e0b7c5f3e3ae5 (commit)] * MIPS: * Add oprofile support to 5K, 20K and 25K [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2065988e9fb1628de7958b0f7f709b93302f7b97 (commit)] * SB1: Oprofile support [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c03bc121212ecb36120b118a94c1b91a2e07b7b2 (commit)] * Add support for the built-in parallel port on SGI O2 (aka IP32) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8e75f744289f0a1c38b669e39a489af460640881 (commit)] * UML * Add support for throttling and unthrottling input when the tty driver can't handle it [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e4dcee8099802c71437a15b940f66106d9f88b2f (commit)] * implement soft interrupts [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1d7173baf286c8b720f97f119ec92be43076ebde (commit)] * FRV * Implement futex operations [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5c40f7f373889930d176a515ec375b60a70b5b49 (commit)] * Make futex code compilable on nommu [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7ee1dd3fee22f15728f545d266403fc977e1eb99 (commit)] * Sparc64: * Serial Console for E250 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c126cf80d450a4d0aac3de7162d4c14b5c971b24 (commit)] * Add support for *at(), ppoll, and pselect syscalls [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2d7d5f05111a9d913131a2764d8b20157f8f758d (commit)] * SH: * kexec() support [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9d44190eae97ad4c9ce30f1084e1b0dabd646df5 (commit)] * Add support for the hp680 backlight, as found in the hp6xx series of sh devices [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=06c6f90032e39d33d02ab20f32e3f3cd87f58d28 (commit)] * m32r: Support M32104UT target platform. The M32104UT is an eval board based on an uT-Engine specification. This board has an MMU-less M32R family processor, M32104. [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9287d95ea194abf32fab24c6909f8ea55ab0292f (commit)] * Alpha: convert to generic irq framework. This allows automatic SMP IRQ affinity assignment other than default "all interrupts on all CPUs" which is rather expensive. This might be useful if the hardware can be programmed to distribute interrupts among different CPUs, like Alpha does [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=eee45269b0f5979c70bc151c6c2f4e5f4f5ababe (commit)] * MMU-less CPUs: Provide shared-writable mmap support on ramfs [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=642fb4d1f1dd2417aa69189fe5ceb81e4fb72900 (commit)]. This made possible to use SYSV IPC SHM in MMU-less configurations [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b0e15190ead07056ab0c3844a499ff35e66d27cc (commit)] * IA64: Perfmon for Montecito [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9179cb65780def28770a895a4bc8fa60e903ab80 (commit)] * '''Filesystems''' * OCFS2: Clustering filesystem contributed by Oracle (Oracle-Cluster-File-System). It's general purpose extent based shared disk cluster filesystem with many similarities with ext3, support for 64 bit inode numbers, and has automatically extending metadata groups which may also make it attractive for non-clustered use. It includes a simple heartbeat implementation for monitoring which nodes come and go and a distributed lock manager called "dlm" [http://lwn.net/Articles/137278/ (LWN article)], [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=29552b1462799afbe02af035b243e97579d63350 (commit)] * Configfs: It's a ram-based filesystem that provides the converse of sysfs's functionality. Where sysfs is a filesystem-based view of kernel objects, configfs is a filesystem-based manager of kernel objects, or config_items. With sysfs, an object is created in kernel (for example, when a device is discovered) and it is registered with sysfs. Its attributes then appear in sysfs, allowing userspace to read the attributes via readdir(3)/read(2). It may allow some attributes to be modified via write(2). The important point is that the object is created and destroyed in kernel, the kernel controls the lifecycle of the sysfs representation, and sysfs is merely a window on all this. Both sysfs and configfs can and should exist together on the same system. One is not a replacement for the other [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7063fbf2261194f72ee75afca67b3b38b554b5fa (commit)] * FUSE: Make the maximum size of write data configurable by the filesystem. The previous fixed 4096 limit only worked on architectures where the page size is less or equal to this. This change make writing work on other architectures too, and also lets the filesystem receive bigger write requests in direct_io mode. Normal writes which go through the page cache are still limited to a page sized chunk per request [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3ec870d524c9150add120475c8ddcfa50574f98e (commit)] * NFSv4: Allow user to set the port used by the NFSv4 callback channel with the nfs.callback_tcpport boot option [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a72b44222d222749d54b3e370d825094352e389f (commit)] * NFS: support large reads and writes on the wire. Most NFS server implementations allow up to 64KB reads and writes on the wire. The Solaris NFS server allows up to a megabyte, for instance. Now the Linux NFS client supports transfer sizes up to 1MB, too. This will help reduce protocol and context switch overhead on read/write intensive NFS workloads, and support larger atomic read and write operations on servers that support them [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=40859d7ee64ed6bfad8a4e93f9bb5c1074afadff (commit)] * v9fs: add readpage support. v9fs mmap support was originally removed to make mergin easier, but there have been requests from folks who want readpage functionality (primarily to enable execution of files mounted via 9P). This patch adds readpage support (but not writepage which contained most of the objectionable code) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=147b31cf09ee493aa71c87c0dd2eef74b6b2aeba (commit)]. Add new and more efficient multiplexer implementation [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3cf6429a26da5c4d7b795e6d0f8f56ed2e4fdfc0 (commit)] and zero copy implementation to reduce the number of copies in the data and stat paths [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=531b1094b74365dcc55fa464d28a9a2497ae825d (commit)] * ext3: external journal device as a mount option. The syntax is : "# mount -t ext3 -o journal_dev=0x0820 ...", where 0x0820 means major=8 and minor=32 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=71b9625744b7d4a6a2416389a5ba464bdf11f07f (commit)] * FAT: Support Direct I/O [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e5174baaea7585760f02eef23b225847d209a8db (commit)] * RelayFS: Add support for global relay buffers. This can be used by clients to create a single global relayfs buffer instead of the default per-cpu buffers. This was suggested as being useful for certain debugging applications where it's more convenient to be able to get all the data from a single channel without having to go to the bother of dealing with per-cpu files [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e6c08367b8fc6dce6dfd1106f53f6ef28215b313 (commit)]. Also, add support for relay files in other filesystems [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=08c541a7ade230883c48225f4ea406a0117e7c2f (commit)] * XFS: make it work with SELinux [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=446ada4a03808f128e8f28daa0f103dc69d22d5b (commit)] * XFS: enable write barriers per default [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4ef19dddbaf2f24e492c18112fd8a04ce116daca (commit)] * Add tmpfs options for memory placement policies [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7339ff8302fd70aabf5f1ae26e0c4905fa74a495 (commit)] * HFS: add HFSX support which allows for case-sensitive filenames [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2179d372d9f8b5fc5c189c89bc6a565a42151b23 (commit)] * CIFS: Kerberos and CIFS ACL support [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bf8206791750854bc6668266b694e8fe2cacb924 (commit)], [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0a4b92c05ed02ad7abdd165823eaf4bbcb33ae5c (commit)]; and add some performance improvements [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=84afc29b185334f489975a003b128e1b15e24a54 (commit)], [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ec637e3ffb6b978143652477c7c5f96c9519b691 (commit)] * NTFS: Implement support for sector sizes above 512 bytes (up to the maximum supported by NTFS which is 4096 bytes) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=78af34f03d33d2ba179c9d35685860170b94a285 (commit)] * '''Networking''' * TIPC (Transparent Inter Process Communication). TIPC is a protocol designed for intra cluster communication. For more information see http://tipc.sourceforge.net [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b97bf3fd8f6a16966d4f18983b2c40993ff937d4 (commit)] * Netfilter x_tables, an abstraction layer for {ip,ip6,arp}_tables: This tries to do the best job for unifying the data structures and backend interfaces for the three evil clones ip_tables, ip6_tables and arp_tables [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2e4e6a17af35be359cc8f1c924f8f198fbd478cc (commit)] * Add IFB (Intermediate Functional Block) network device: a new device to do intermediate functional block in a system shared manner. The new functionality can be grouped as: 1) qdiscs/policies that are per device as opposed to system wide. ifb allows for a device which can be redirected to thus providing an impression of sharing. 2) Allows for queueing incoming traffic for shaping instead of dropping. Packets are redirected to this device using tc/action mirred redirect construct [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=253af4235d24ddfcd9f5403485e9273b33d8fa5e (commit)] * LSM-IPSec: Security association restriction: implement per packet access control via the extension of the Linux Security Modules (LSM) interface by hooks in the XFRM and pfkey subsystems that leverage IPSec security associations to label packets. Such access controls augment the existing ones based on network interface and IP address. The former are very coarse-grained, and the latter can be spoofed. By using IPSec, the system can control access to remote hosts based on cryptographic keys generated using the IPSec mechanism. This enables access control on a per-machine basis or per-application if the remote machine is running the same mechanism and trusted to enforce the access control policy. [http://www.selinux-symposium.org/2005/presentations/session2/2-3-jaeger.pdf paper], [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5e0f76c6bbc0d26cd9625876f7beeb7b002f39bf (commit)] * TCP BIC: CUBIC window growth (2.0). Replace existing BIC version 1.1 with new version 2.0. The main change is to replace the window growth function with a cubic function as described in http://www.csc.ncsu.edu/faculty/rhee/export/bitcp/cubic-paper.pdf [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=df3271f3361b61ce02da0026b4a53e63bc2720cb (commit)] * Netfilter ip_tables: NUMA-aware allocation. Part of a performance problem with ip_tables is that memory allocation is not NUMA aware, but 'only' SMP aware (ie each CPU normally touch separate cache lines). Even with small iptables rules, the cost of this misplacement can be high on common workloads. Instead of using one vmalloc() area (located in the node of the iptables process), we now allocate an area for each possible CPU, using vmalloc_node() so that memory should be allocated in the CPU's node if possible [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=318360646941d6f3d4c6e4ee99107392728a4079 (commit)] * DCCPv6 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3df80d9320bcaea72b1b4761a319c79cb3fdaf5f (commit)] * netem: packet corruption option. It adds the ability to randomly corrupt packets with netem, useful for testing hardware offload in devices [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c865e5d99e25a171e8262fc0f7ba608568633c64 (commit)] * Update SCTP_PEER_ADDR_PARAMS socket option to the latest api draft [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=52ccb8e90c0ace233b8b740f2fc5de0dbd706b27 (commit)] * Add support for SCTP_DELAYED_ACK_TIME socket option. This option will get or set the delayed ack time [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7708610b1bff4a0ba8a73733d3c7c4bda9f94b21 (commit)] * XFRM: IPsec tunnel wildcard address support [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ee51b1b6cece4dad408feeb0c3c9adb9cbd9f7d9 (commit)] * '''Drivers''' * DRM: * Add i945GM PCI ID [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5457f38e01ae2d296ff49db42254679018f13fa9 (commit)] * Add X600 PCI ID [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2fed3bd7436e8988980989493c16b4983be1a800 (commit)] * libata * Suspend support, and add support for the ata_piix drivers, other drivers will be ported in the future [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9b847548663ef1039dd49f0eb4463d001e596bc3 (commit)] * Add JMicron JMB360 support [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bd12097c7415c13aff53aed473eec92acd15712a (commit) * IDE devices * IDE: MODALIAS support for autoloading of ide-cd, ide-disk, ide-floppy and ide-tape to autoload these modules depending on the probed media type of the IDE device [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=263756ec228f1cdd49fc50b1f87001a4cebdfe12 (commit)] * piix: add Intel ICH8M device IDs [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b7bed9ec44cb282425f56033e5fb5448086cd758 (commit)] * SCSI * megaraid: remove overlapping PCI ID's from the legacy driver [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=3492b328834319c9503c0a34c50fb3f009556443 (commit)] and remove the restriction where the legacy driver could not be built alongside the newgen [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=ed7e8ef7f12f5c3c8bbb85eeb0a1ded91c7c5dbf (commit)]. This means that some users of the legacy megaraid driver will find themselves unable to boot 2.6.16 until they switch to the newgen megaraid_mbox driver. * Input devices * Input: add MODALIAS input classes support [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1d8f430c15b3a345db990e285742c67c2f52f9a6 (commit)] * Add support for Geyser 2 touchpads used on post Oct 2005 Apple Powerbooks to the appletouch driver [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e1e02c9f766e5cf20d951d35e6d2bc2683aa87ef (commit)] * Implement support for the fn key on Apple Powerbooks using USB based keyboards and makes them behave like their ADB counterparts [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=eab9edd27f7ceaad6b57085817d63287bda15190 (commit)] * Add support for Cherry Cymotion keyboard [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=940824b0ac6661ff4f3b36e7bce17f681d0cbc23 (commit)] * Driver for beeper found in Linksys NSLU2 boxes. It should work on any ixp4xx based platforms [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=01387959022def72f95f4bc1341aa69e32a06b30 (commit)] * USB devices * A driver for USB ADSL modems based on the ADI eagle chipset (Eagle and ADI 930 usb adsl modems [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b72458a80c75cab832248f536412f386e20a93a0 (commit)] * Add USB storage support for the Nikon Coolpix 2000 camera [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=17fa6e552f2fc6bb06af767b0abf9cb642e13404 (commit)] * Add USB storage support for devices based in the alauda chip, like the Olympus MAUSB-10 and Fujifilm DPC-R1 USB Card reader/writer devices, both support XD and Smartmedia cards [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e80b0fade09ef1ee67b0898d480d4c588f124d5f (commit)] * Add support for ATI/Philips USB RF remotes (eg. ATI Remote Wonder II) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=735b0cbb5bbb981d726a465c157f20976794aab0 (commit)] * Support for Posiflex PP-7000 retail USB printer [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=effac8be4e46aabf22788d24caaa1ae9c295d26d (commit)] * Support for Linksys USB200M devices [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5e0f76c6bbc0d26cd9625876f7beeb7b002f39bf (commit)] * Add support for CA-42 clone cable (www.ca-42.com) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=838b42814c640ddcc378ba29cd31ffd64fb36bc5 (commit)] * usb-storage support for SONY DSC-T5 still camera [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ec7dc8d254985dc4a31858c2c7c7029290e223dd (commit)] and Rio Karma [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=abb02fdf83f981f2511b3772db6e106845c70ad9 (commit)] * ftdi: Two new ATIK based USB astronomical CCD cameras, ATIK-ATK16C and ATIK-ATK16HRC. These devices are also USB Astronomical CCD cameras that work through an FTDI 245BM chip, share the same base hardware but, it has a colour CCD chip instead of a grayscale one [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=09c280a24650ff74e713742e94120fdf7765cda8 (commit)] * ftdi_sio: Support two POS printers made by Westrex International (Model 777 and Model 8900F) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a94b52ac84828e193d18c96c1334c9997b524a35 (commit)] * Network devices * hostap: allow flashing firmware [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a485cde662f5b6b2299ee01a7e9e2c11683f807b (commit)] * New experimental driver for the Marvell Yukon2 Gigabit Ethernet chipset. This driver is based on the skge driver, but using the logic from the Syskonnect version of the sk98lin driver. It should support all the Yukon2 chipsets that are available in many current Intel and AMD motherboards [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cd28ab6a4e50a7601d22752aa7ce0c8197b10bdf (commit)] * sky2: add hardware VLAN acceleration support [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d1f1370863f7fa3d76dc7d7779debdda854a5a60 (commit)], MII ioctl interface [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ef743d3359813795fb38c4308bff2311eb30651f (commit)], add Yukon-EC ultra support [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5a5b1ea026572ac0e5e03d7322deb546d60f9e6e (commit)] * Add Wake on LAN support to sis900 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ea37ccea66e6bdd9f3571418b6461850088c114e (commit)] * Implements the UFO (feature merged in 2.6.15) support in S2io driver [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fed5eccdcf542742786701b2514b5cb7ab282b93 (commit)] * Intel ixp2000 network driver [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=15d014d13149aedd76cbff1b5c3bbfe839391457 (commit)] * ipw2100: support WEXT-18 enc_capa v3. This patch allows ipw2100 driver to advertise the WPA-related encryption options that it does really support. It's necessary to work correctly with Network Manager and other programs that actually check driver & card capabilities [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=166c3436d683cfe5316c7723ed746a93db053f12 (commit)] * Add support for the Intel IXDP2351 to the CS89x0 driver [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9c878967d32a10cb604718f7608efa0ea3d8b596 (commit)] * mv643xx_eth: Add multicast support [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=16e0301831767ee1b8e5e022cc08e76f9f8a8938 (commit)] * e1000: Added hardware support for PCI express, 82546GB( Quad Copper) and 82571 Fiber [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b7ee49db8b4b21dad3284d5507e7ea2946031f6e (commit)] * e1000: Added disable packet split capability [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=35ec56bb78fda9c88cd1ad30e048ce5b4398d33f (commit)] * ieee80211: Fix some of the ieee80211 crypto related code so that instead of having the host fully do crypto operations, the host_build_iv flag works properly (for WEP in this patch) which, if turned on, requires the hardware to do all crypto operations, but the ieee80211 layer builds the IV. The hardware also has to build the ICV [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a4bf26f30e398afa293b85103c885f03d4660a07 (commit)] * Sound devices * Add power management support for ak4531 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=11d3824ad7d6240d7ce44bdf1d9e81e62a903f72 (commit)], ens137x [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fe8be10786c040bce53c18048d75b1b23aec64ae (commit)], emu10k1 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=09668b441dacdf4640509b640ad73e24efd5204f (commit)], fm801 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b1e9ed26a9e472548a63a59014708fdae013b7a3 (commit)], cmipci [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cb60e5f5b2b19284479825cdaa6dd6b7078cf5d2 (commit)], SB16/AWE [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5bdb6a1629408f657f5f2c42b3c07c689c411499 (commit)], als4000 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=703529140cfb774366b839f38f027f283cb948b4 (commit)], es968 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7a8fef1f95e563a93c7d70048b63c1ca20685a1b (commit)], AD1848 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c66d7f72569e304acc134b2561b148fe7c23c0f7 (commit)], als100 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=480615f33fa48e1a4db33e40b21d4009250f5b23 (commit)], DT019x [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e2fa213591518bb1387f6042b8572c76ecdc6c6e (commit)], azt2320 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b6cc25cae365bada36c9f006e314b998eb2c5e7c (commit)] * emu10k1: enable side surround channels for Audigy2 EX [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2f020aa71197eddef749ad6202ca5a66c0c6e382 (commit)], add support for Audigy 2 subsystem 2006 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f6f8bb642350dafc21676ccd4fab333282064b8d (commit)], partial support for Creative emu1212m [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=19b99fbaed2e2971b756311435c67e84431d8515 (commit)], entry for SB Live 5.1 Digital OEM (SB0220) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a8ee72952bd7bd21df944ef1512a1e582abe0528 (commit)] * via82xx: add dxs entry for MSI KT800 Delta-FSR [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c1b8f5f0e4aabd4b47648dd9465fb750e07da9fb (commit)] * Add support for the CS5535 Audio device [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9b4ffa48ae855c8657a36014c5b0243ff69f4722 (commit)] * hda-codec: add AD1988 support [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fd66e0d0591dd12eb0bea1e9f3aa194bb93cebbd (commit)], support of ALC262, ALC883, ALC885, ALC861 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=df694daa3c0135202e4702cb2d11e68a43f6c51e (commit)], add the model entry (ALC880 6stack) for ASUS P5GD1-HVM [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7632c7b4443057e1294208a0d9a55d8558f2f6ca (commit)] * ice1724: add support of M-Audio Revolution 5.1 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=59acf76e0268e3f0156ef5113e89d838a8c02bb6 (commit)] * Add Digigram PCXHR driver [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e12229b4d2b7863b1baaeca759aa87703bf9fdf8 (commit)] * via82xx: add dxs entry for P4m800/VIA8237R [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=802c00f2f3700423df06a1149c23cd60dd59159c (commit)] * hda-codec: Add support for the Sigmatel STAC927x HDA codec family [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3cc08dc6ea677ed4e843120aa070e145b6781a4b (commit)] * hda-codec: Add Sigmatel HDA support for the Intel D975XBK motherboard [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d62c40e04cfcec3cef8093bd79d72fe86c8f2195 (commit)] * hda-codec: Add support for Agere's variant of Si3054/5 based HDA modem [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e061bf1aa3af8a3f2ae7e1b5f8a110eae7936615 (commit)] * V4L/DVB * Add support for the remote control receiver inside the DViCO FusionHDTV DVB-T Dual Digital, and a keymap for the MCE remote bundled with it [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7c239703a942117c3446ca06af537fc3ea12fb24 (commit)] * Support for DVB reception on the PCI half of the DViCO DVB-T Dual Digital [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=43eabb4e2284146f8bfae8730ae41c218b724b7d (commit)] * Add support for Lifeview FlyDVB Trio [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4aa6ba513e28884b56bac529553a47a6b160c310 (commit)] * Added digital support for cx88 (cx88-alsa) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b7f355d23c34399ccfd54fd613c306ab4a788234 (commit)] * Add Kworld/Vstream Xpert DVB-T card with cx22702 tuner [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f39624fda00d2a30d31f0fa06153e9b460295676 (commit)] * Add support for DViCO FusionHDTV5 USB Gold [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=effee0333b6090ff4ff0463e8fb6084cf4406bbd (commit)] * Added support for VP-3054 (aka Digitalnow DNTV Live! DVB-T Pro!) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fc40b261db15d010455ad0a4e2ac59da2ced730f (commit)] * Add remote for Compro Videomate Gold+ Pal version [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2a9a9a84f2ac6e4481f564c42a9268477465c359 (commit)] * Enable remote control on AVERTV STUDIO 303 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=899ad11b55206c30db7e3667d14c8bdb167f51f8 (commit)] * Adding support for the Hauppauge HVR1100 and HVR1100-LP products [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=611900c1858747a87657eb405ebab5b1e72bb57c (commit)] * Add support for KWorld DVB-S 100, based on the same chips as Hauppauge [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1c956a3ac087b7590296f5a0be2cdab2666158cd (commit)] * Enable IR support for the Nova-S-Plus [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fb56cb65e4b737c93727ea296050e8d24eb7cb42 (commit)] * Added Hauppauge ImpactVCB board [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cd1257d860f6ee09b589723a5d3888b1fed46487 (commit)] * Added V4L support for the Nova-S-Plus and Nova-SE2 DVB-S products [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0fa14aa6214823bb013b598add866e277a7efe28 (commit)] * Added basic support (tv + radio) for Terratec Cinergy 250 PCI [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f639c9b21b763441bd6bd76185be6d2504d83d54 (commit)] * Added SECAM L' video standard [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f3c5987a386300abea9854b32814d0eab7af7841 (commit)] * Adds 32-bit compatibility for v4l2 framegrabber ioctls [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cf664a6458b254ce665d129c0960cff4f32b91f3 (commit)] * Add support for DViCO FusionHDTV DVB-T USB devices [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f8bf134d5f697311c04e867b6733d047a4b55a12 (commit)] * Add bttv card MagicTV (rebranded MachTV) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2d05ae6b5b77f063aa0f82cf0570f3e4b80b367c (commit)] * Added remote control support for pinnacle pctv [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=366cc64b0d9ac922ac4f0f54e06c13ec95249928 (commit)] * Add support for Samsung tuner TCPN 2121P30A, used in Hauppauge PVR-500 cards [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b3d37042d7d33baf0247d1df31031e64427f39b3 (commit)] * Add support for Galaxis DVB-S rev1.3 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9ead9bd1079b4b7ba45589f6495e79ec50237aed (commit)] * Add standard for South Korean NTSC-M using A2 audio, South Korea uses NTSC-M but with A2 audio instead of BTSC [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0dfd812d4b2afc797310943b451608d347854e76 (commit)] * Add IR support to KWorld DVB-T (cx22702-based) [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a77a922fcc56fe44fd8f65c041a52ff48474fafe (commit)] * Add support to ET61X151 and ET61X251 PC Camera Controllers made by Etoms Electronics [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7ce08c93e388922e25a96a7d9895784182e4c72c (commit)] * Various * 8xx PCMCIA: support for MPC885ADS and MPC866ADS [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1371d3be045a6a1a8b828b838069b5fe6e0ab4c6 (commit)] * Geode LX HW RNG Support: adds support to hw_random for the Geode LX HRNG device [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a7a4ad0998dcd682f4968e8ec5fc1259914a1c4a (commit)] * i2c-nforce2 add nforce4 MCP-04 device ID [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7c72ccf09b6debe55b8e049377ad3183ed4f4cb3 (commit)] * i2c: Add support for Barco LPT->DVI to i2c-parport [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1d26f455eb0db0bf4d4b7177547f4310b645a32a (commit)] * hwmon: New vt8231 driver [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1de9e371b89e1cf4da123f0d92efa8eb134ca5e8 (commit)] * New character device driver for the Synclink GT and Synclink AC families of synchronous and asynchronous serial adapters [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=705b6c7b34f2621f95f606d0e683daa10cdb8eb9 (commit)] * Add "bpp" boot option to nvidiafb to specify at what depth color the kernel must boot [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ade9185a39aa2bc51f95b4899836e59df671d844 (commit)] * Add support for the watchdog timer built into the EPX-C3 single board computer manufactured by Winsystems, Inc [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=eed6565f70ce3fc958e5a3483c48fc4a8e111bdc (commit)] * Serial: make the number of UARTs registered configurable at compile time [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a61c2d78ce61e67baf27c43f6721db87a27ac762 (commit)] * Add 8250 support for Decision Computer International Co. PCCOM2 [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d9004eb466d03b7900ed432fecec6819012b4ed3 (commit)] * Altix: Add driver support for a 2 port PCI IOC3-based serial card on Altix boxes [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2d0cfb527944c2cfee2cffab14f52d483e329fcf (commit)] * Add f71805f hwmon driver [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e53004e20a58e9d28347e02adccb37a33e0d771a (commit)] [[Anchor(development)]] ==== 2.6.17 ==== * /!\ '''STILL NOT RELEASED!''' /!\ * Overview * sys_splice syscall * X86 "SMP alternatives" (optimize the kernel image at runtime, ej: switch between different spinlock implementations depending on the system where the kernel is run or on cpu hotplug/remove) [http://lwn.net/Articles/164121/ (LWN article)] * Lightweight robust futexes [http://lwn.net/Articles/172149/ (LWN article)] * Block queue IO tracing * User-space software suspend interface * New scheduler domain which optimizes scheduling decisions for multi-core CPUs sharing caches * Generic RTC subsystem * Raid5 reshaping support [http://lwn.net/Articles/169140/ (LWN article)] * iptables support for H.323 protocol, 64-to-32bit compatibility for 32-bit iptables userspace tools running in a 64-bit kernel * 64-to-32-bit socket ioctl compatibility * Add support for Router Preference (RFC4191), Router Reachability Probing (RFC4191) and experimental support for Route Information Option in RA (RFC4191) in IPV6 * CCID2 support for DCCP * '''Kernel Core changes''' * Core * Introduce the sys_splice() system call. A pipe is used as small kernel buffer that you can use to transfer data from one end to the other. The idea and first implementation were done by Linus Torvalds [http://marc.theaimsgroup.com/?l=linux-kernel&m=110507985702357&w=2 (mail)], [http://marc.theaimsgroup.com/?l=linux-kernel&m=110511497731192&w=2 (mail)], [http://marc.theaimsgroup.com/?l=linux-kernel&m=110511787707447&w=2 (mail)]. It's a "better sendfile()", it can take input from anything (not just file -> socket) that just has "splice_read()", and move it to anything else, without doing any extra copies of the data. For example, a digital video camera could stream to both a file and live video (or something else) without doubling the buffering and doing memcpy [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5274f052e7b3dbd81935772eb551dfd0325dfa9d (commit)] * Add a new scheduler domain for representing multi-core with shared caches between cores. Consider a dual package system, each package containing two cores and with last level cache shared between cores with in a package. If there are two runnable processes, with this appended patch those two processes will be scheduled on different packages. On such systems, with this patch we have observed 8% perf improvement with specJBB (2 warehouse) benchmark and 35% improvement with CFP2000 rate (with 2 users). This new domain will come into play only on multi-core systems with shared caches. On other systems, this sched domain will be removed by domain degeneration code. This new domain can be also used for implementing power savings policy (see OLS 2005 [http://www.linuxsymposium.org/2005/view_abstract.php?content_key=109 CMP kernel scheduler paper] for more details) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1e9f28fa1eb9773bf65bae08288c6a0a38eef4a7 (commit)] * Lightweight robust futexes. "Robustness" is about dealing with crashes while holding a lock: if a process exits prematurely while holding a pthread_mutex_t lock that is also shared with some other process (e.g. yum segfaults while holding a pthread_mutex_t, or yum is kill -9-ed), then waiters for that lock need to be notified that the last owner of the lock exited in some irregular way. To solve such types of problems, "robust mutex" userspace APIs were created: pthread_mutex_lock() returns an error value if the owner exits prematurely - and the new owner can decide whether the data protected by the lock can be recovered safely. [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/robust-futexes.txt Documentation], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/robust-futex-ABI.txt ABI documentation], [http://lwn.net/Articles/172149/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e9056f13bfcdd054a0c3d730e4e096748d8a363a (commit 1)], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0771dfefc9e538f077d0b43b6dec19a5a67d0e70 (commit 2)], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dfd4e3ec246355274c9cf62c6b04a1ee6fa3caba (commit 3)] * Block queue IO tracing support (blktrace). This allows users to trace the block layer actions on a given queue. Tracing allows you to see any traffic happening on a block device queue. For more information (and the user space support tools needed), fetch the blktrace app from: git://brick.kernel.dk/data/git/blktrace.git [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2056a782f8e7e65fd4bfd027506b4ce1c5e9ccd4 (commit)] * sync_file_range() syscall [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f79e2abb9bd452d97295f34376dedbec9686b986 (commit)] * Introduce a user space interface for swsusp. The interface is based on a special character device, called the snapshot device, that allows user space processes to perform suspend and resume-related operations with the help of some ioctls and the read()/write() functions. Additionally it allows these processes to allocate free swap pages from a selected swap partition, called the resume partition, so that they know which sectors of the resume partition are available to them. The interface uses the same low-level system memory snapshot-handling functions that are used by the built-it swap-writing/reading code of swsusp. To read the interface documentation see the commit [http://lwn.net/Articles/153203/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6e1819d615f24ce0726a7d0bd3dd0152d7b21654 (commit)], [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f577eb30afdc68233f25d4d82b04102129262365 (commit)] * Make CONFIG_REGPARM enabled by default. With this option, GCC passes the first 3 function parameters in registers. It's a noticable win both for size and for performance, and gcc[34] handles it correctly [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b824eb605ccba995fd32c6590aed365f93d48002 (commit)] * CONFIG_UNWIND_INFO: As a foundation for reliable stack unwinding, this adds a config option (available to all architectures except IA64 and those where the module loader might have problems with the resulting relocations) to enable the generation of frame unwind information [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=604bf5a216e7f2d97cdf62614ca1281921531040 (commit)] * Reduce the size of (struct fdtable) to exactly 64 bytes on 32bits platforms, lowering kmalloc() allocated space by 50% [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0c9e63fd38a2fb2181668a0cdd622a3c23cfd567 (commit)] * Optimize select/poll by putting small data sets on the stack instead of using kmalloc for small fd sets, an old optimization from Linux 2.0. Using the stack is faster than kmalloc. On a Intel P4 system it speeds up a select of a single pty fd by about 13% (~4000 cycles -> ~3500). It also saves memory because a daemon hanging in select or poll will usually save one or two less pages. This can add up - e.g. if you have 10 daemons blocking in poll/select you save 40KB of memory [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=70674f95c0a2ea694d5c39f4e514f538a09be36f (commit)] * Implement /proc/slab_allocators: It produces output like: "idr_layer_cache: 80 idr_pre_get+0x33/0x4e" [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=871751e25d956ad24f129ca972b7851feaa61d53 (commit)] * New /proc file /proc/self/mountstats: Create a new file under /proc/self, called mountstats, where mounted file systems can export information (configuration options, performance counters, and so on). Use a mechanism similar to /proc/mounts and s_ops->show_options. This mechanism does not violate namespace security, and is safe to use while other processes are unmounting file systems [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b4629fe2f094b719847f31be1ee5ab38300038b2 (commit)] * APIs * Deprecate the use of MS_VERBOSE and replace it with MS_SILENT [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9b04c997b1120feefa1e6ee8e2902270bc055cd2 (commit)] * Add API for flushing Anon pages: Currently, get_user_pages() returns fully coherent pages to the kernel for anything other than anonymous pages. This is a problem for things like fuse and the SCSI generic ioctl SG_IO which can potentially wish to do DMA to anonymous pages passed in by users. The fix is to add a new memory management API: flush_anon_page() which is used in get_user_pages() to make anonymous pages coherent [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=03beb07664d768db97bf454ae5c9581cd4737bb4 (commit)] * Add flush_kernel_dcache_page() API: We have a problem in a lot of emulated storage in that it takes a page from get_user_pages() and does something like: kmap_atomic(page; modify page; kunmap_atomic(page). However, nothing has flushed the kernel cache view of the page before the kunmap. We need a lightweight API to do this, so this new API would specifically be for flushing the kernel cache view of a user page which the kernel has modified. The driver would need to add flush_kernel_dcache_page(page) before the final kunmap [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5a3a5a98b6422d05c39eaa32c8b3f83840c7b768 (commit)] * 2TB files: Add blkcnt_t as the type of inode.i_blocks. This enables you to make the size of blkcnt_t either 4 bytes or 8 bytes on 32 bits architecture with CONFIG_LSF. On h8300, i386, mips, powerpc, s390 and sh that define sector_t, blkcnt_t is defined as u64 if CONFIG_LSF is enabled; otherwise it is defined as unsigned long. On other architectures, it is defined as unsigned long [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a0f62ac6362c168754cccb36f196b3dfbddc3bc3 (commit)] * for_each_possible_cpu: defines for_each_possible_cpu, a for-loop over cpu_possible_map. for_each_online_cpu is for-loop cpu over cpu_online_map......for_each_cpu() is not sufficiently explicit and can lead to mistakes. This patch adds for_each_possible_cpu() in preparation for the removal of for_each_cpu() [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=631d6747e1d877a4baa924cb373b8b9511a53e5e (commit)] * unify pfn_to_page: There are 3 memory models, FLATMEM, DISCONTIGMEM, SPARSEMEM. Each arch has its own page_to_pfn(), pfn_to_page() for each models. But most of them can use the same arithmetic. This patch adds asm-generic/memory_model.h, which includes generic page_to_pfn(), pfn_to_page() definitions for each memory model. When CONFIG_OUT_OF_LINE_PFN_TO_PAGE=y, out-of-line functions are used instead of macro. This is enabled by some archs and reduces text size [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a117e66ed45ac0569c039ea60bd7a9a61e031858 (commit)] * Notifier chain update: The kernel's implementation of notifier chains is unsafe, there is no protection against entries being added to or removed from a chain while the chain is in use. Several usage classes were found and we decided to codify this distinction and make it part of the API. This change introduces three new, parallel APIs: one for blocking notifiers, one for atomic notifiers, and one for "raw" notifiers (which is really just the old API under a new name). With atomic and blocking chains, the implementation guarantees that the chain links will not be corrupted and that chain callers will not get messed up by entries being added or removed [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e041c683412d5bf44dc2b109053e3b837b71742d (commit)] * add EXPORT_SYMBOL_GPL_FUTURE(): This patch adds the ability to mark symbols that will be changed in the future, so that kernel modules that don't include MODULE_LICENSE("GPL") and use the symbols, will be flagged and printed out to the system log [http://lwn.net/Articles/171838/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9f28bb7e1d0188a993403ab39b774785892805e1 (commit)] * Permit Dual-MIT/GPL licenses [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7529c301165079d0f149d0e54724829e602f8fc0 (commit)] * CFQ: * Seek and async performance tuning: Detect whether a given process is seeky and if so disable (mostly) the idle window if it is. We still allow just a little idle time, just enough to allow that process to submit a new request. That is needed to maintain fairness across priority groups. In some cases, we could setup several async queues. This is not optimal from a performance POV, since we want all async io in one queue to perform good sorting on it. It also impacted sync queues, as async io got too much slice time [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=206dc69b31ca05baac68c75b8ed2ba7dd857d273 (commit)] * Change cfq io context linking from list to tree: On setups with many disks, we spend a considerable amount of time looking up the process-disk mapping on each queue of io. Testing with a NULL based block driver, this costs 40-50% reduction in throughput for 1000 disks [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e2d74ac0664c89757bde8fb18c98cd7bf53da61c (commit)] * Generic RTC subsystem: This allows users to plug one or more RTCs to the system [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=drivers/rtc code)]. This removes a number of drivers under drivers/i2c which are implemented in this new subsystem [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6fc7f10cee28c7fa190920fefda8c696d5bf3074 (commit)]. * Remove RTC UIP synchronization. Reading the CMOS clock on x86 and some other arches currently takes up to one second because it synchronizes with the CMOS second tick-over. This delay shows up at boot time as well a resume time. This is the currently the most substantial boot time delay for machines that are working towards instant-on capability. Also, a quick back of the envelope calculation (.5sec * 2M users * 1 boot a day * 10 years) suggests it has cost Linux users in the neighborhood of a million man-hours. [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=63732c2f37093d63102d53e70866cf87bf0c0479 (commit)] * debugfs: Add debugfs_create_blob() helper for exporting binary data: I wanted to export a binary blob via debugfs, and although it was pretty easy it seems like it'd be easier if there was a helper for it. It's a pity we need the wrapper struct but I can't see a cleaner way to do it [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dd308bc355a1aa4f202fe9a3133b6c676cb9606c (commit)] * relayfs: migrate from relayfs to a generic relay API [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b86ff981a8252d83d6a7719ae09f3a05307e3592 (commit)] * relay: add sendfile() support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=221415d76231d9012871e6e6abcbad906c46626a (commit)] * Enable mprotect on huge pages: 2.6.16 uses hugetlb on-demand paging, but it doesn_t support hugetlb mprotect [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8f860591ffb29738cf5539b6fbf27f50dcdeb380 (commit)] * cpuset memory spread page cache implementation and hooks: Change the page cache allocation calls to support cpuset memory spreading. See the previous patch, cpuset_mem_spread, for an explanation of cpuset memory spreading. On systems without cpusets configured in the kernel, this is no change. On systems with cpusets configured in the kernel, but the "memory_spread" cpuset option not enabled for the current tasks cpuset, this adds a call to a cpuset routine and failed bit test of the processor state flag PF_SPREAD_PAGE. On tasks in cpusets with "memory_spread" enabled, this adds a call to a cpuset routine that computes which of the tasks mems_allowed nodes should be preferred for this allocation. If memory spreading applies to a particular allocation, then any other NUMA mempolicy does not apply [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=44110fe385af23ca5eee8a6ad4ff55d50339097a (commit)] * cpuset memory spread basic implementation: This patch provides the implementation and cpuset interface for an alternative memory allocation policy that can be applied to certain kinds of memory allocations, such as the page cache (file system buffers) and some slab caches (such as inode caches). The policy is called "memory spreading." If enabled, it spreads out these kinds of memory allocations over all the nodes allowed to a task, instead of preferring to place them on the node where the task is executing. All other kinds of allocations, including anonymous pages for a tasks stack and data regions, are not affected by this policy choice, and continue to be allocated preferring the node local to execution, as modified by the NUMA mempolicy. There are two boolean flag files per cpuset that control where the kernel allocates pages for the file system buffers and related in kernel data structures. They are called 'memory_spread_page' and 'memory_spread_slab'. If the per-cpuset boolean flag file 'memory_spread_page' is set, then the kernel will spread the file system buffers (page cache) evenly over all the nodes that the faulting task is allowed to use, instead of preferring to put those pages on the node where the task is running. If the per-cpuset boolean flag file 'memory_spread_slab' is set, then the kernel will spread some file system related slab caches, such as for inodes and dentries evenly over all the nodes that the faulting task is allowed to use, instead of preferring to put those pages on the node where the task is running. This policy can provide substantial improvements for jobs that need to place thread local data on the corresponding node, but that need to access large file system data sets that need to be spread across the several nodes in the jobs cpuset in order to fit. Without this patch, especially for jobs that might have one thread reading in the data set, the memory allocation across the nodes in the jobs cpuset can become very uneven [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=825a46af5ac171f9f41f794a0a00165588ba1589 (commit)] * cpuset memory spread: slab cache format: Rewrap the overly long source code lines resulting from the previous patch's addition of the slab cache flag SLAB_MEM_SPREAD. This patch contains only formatting changes, and no function change [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fffb60f93ce5880aade88e01d7133b52a4879710 (commit)] * cpuset memory spread: slab cache filesystems: Mark file system inode and similar slab caches subject to SLAB_MEM_SPREAD memory spreading. If a slab cache is marked SLAB_MEM_SPREAD, then anytime that a task that's in a cpuset with the 'memory_spread_slab' option enabled goes to allocate from such a slab cache, the allocations are spread evenly over all the memory nodes (task->mems_allowed) allowed to that task, instead of favoring allocation on the node local to the current cpu [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4b6a9316fab51af611dc8671f296734089f6a22a (commit)] * cpuset memory spread slab cache implementation: Provide the slab cache infrastructure to support cpuset memory spreading See the previous patches, cpuset_mem_spread, for an explanation of cpuset memory spreading. This patch provides a slab cache SLAB_MEM_SPREAD flag. If set in the kmem_cache_create() call defining a slab cache, then any task marked with the process state flag PF_MEMSPREAD will spread memory page allocations for that cache over all the allowed nodes, instead of preferring the local (faulting) node. On systems not configured with CONFIG_NUMA, this results in no change to the page allocation code path for slab caches. On systems with cpusets configured in the kernel, but the "memory_spread" cpuset option not enabled for the current tasks cpuset, this adds a call to a cpuset routine and failed bit test of the processor state flag PF_SPREAD_SLAB. This patch provides the generic slab flags and logic needed to apply memory spreading to a particular slab. A subsequent patch will mark a few specific slab caches for this placement policy [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=101a50019ae5e370d73984ee05d56dd3b08f330a (commit)] * Introduce FMODE_EXEC file flag, to indicate that file is being opened for execution. This is useful for distributed filesystems to maintain consistent behavior for returning ETXTBUSY when opening for write and execution happens on different nodes [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b500531e6f5f234ed267bd7060ee06d144faf0ca (commit)] * strndup_user(): This patch series creates a strndup_user() function to easy copying C strings from userspace. Also we avoid common pitfalls like userspace modifying the final \0 after the strlen_user() [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=96840aa00a031069a136ec4c55d0bdd09ac6d3a7 (commit)] * msync(): perform dirty page levelling: It seems sensible to perform dirty page throttling in msync: as the application dirties pages we can kick off pdflush early, or even force the msync() caller to perform writeout, or even throttle the msync() caller. The main effect of this is to start disk writeback earlier if we've just discovered that a large amount of pagecache has been dirtied. (Otherwise it wouldn't happen for up to five seconds, next time pdflush wakes up). It also will cause the page-dirtying process to get panalised for dirtying those pages rather than whacking someone else with the problem. We should do this for munmap() and possibly even exit(), too [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9c50823eebf7c256b92b4e0f02b5fb30e97788c2 (commit)] * kbuild * Improved modversioning support for external modules [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=040fcc819a2e7783a570f4bdcdd1f2a7f5f06837 (commit)] * Support building individual files for external modules [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=06300b21f4c79fd1578f4b7ca4b314fbab61a383 (commit)] * Mark unwind info for signal trampolines using the new S augmentation flag introduced in: http://gcc.gnu.org/PR26208 (GCC 4.2) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=da2e9e1ff40c863a12803c32209baaded3512433 (commit)] * vt: Add TIOCL_GETKMSGREDIRECT needed by the userland suspend tool to get the current value of kmsg_redirect from the kernel so that it can save it and restore it after resume [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0ca07731e495584bd84dca15a0f065470d594ec4 (commit)] * Removes the support for pps. It's completely unused within the kernel and is basically in the way for further cleanups. It should be easier to readd proper support for it after the rest has been converted to NTP4 (where the pps mechanisms are quite different from NTP3 anyway) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5ddcfa878d5b10b0ab94251a4229a8a9daaf93ed (commit)] * '''Architecture-specific''' * x86 32/64 * Use -mtune=generic for generic kernels. The upcomming gcc 4.2 got a new option -mtune=generic to tune code for both common AMD and Intel CPUs. Use this option when available for generic kernels. On x86-64 it is used with CONFIG_GENERIC_CPU. On i386 it is enabled with CONFIG_X86_GENERIC. It won't affect the base line CPU support in any ways and also not the minimum supported CPU [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dca99a38bccceda9e079d4c95abefbd9028605fe (commit)] * SMP "alternatives" for x86-32. This features detects the configuration of the system at boot time, and patches certain instructions in the kernel image on the fly with optimized versions for UP or SMP, depending on what system is running. This is useful for distros, who can provide a single kernel which auto-optimizes itself for UP or SMP environments. The feature can patch both SMP->UP and UP->SMP. The UP->SMP case is useful for CPU hotplug (which may be useful in virtualized environments to hot-add/remove CPUs in virtualized guests in reaction to load changes in the host) [http://lwn.net/Articles/164121/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9a0b5817ad97bb718ab85322759d19a238712b47 (commit)] * Increase the variability of the process stack on 64bit architectures. 8 MB is not really very random, use 1GB (or more with larger page sizes) instead. Only enabled on x86-64 right now, Other architectures need to add a suitable STACK_RND_MASK [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=913bd906019514579b3c7ec5ab9c463e89207a57 (commit)] * Allow disabling the "sep" feature (X86_FEATURE_SEP) at boot. This forces use of the int80 vsyscall, useful mainly for testing or benchmarking the int80 vsyscall code [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4f88651125e2ca8b106b6f65b65ea45776517bf3 (commit)] *"make isoimage" support; FDINITRD= support. This adds a "make isoimage" to i386 and x86-64, which allows the automatic creation of a bootable CD image. It also adds an option FDINITRD= to include an initrd of the user's choice in generated floppy- or CD boot images [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=841b8a46bffec232377d2de157f971e812be4fe4 (commit)] * kprobes-booster. For details see the commit link [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=311ac88fd2d4194a95e9e38d2fe08917be98723c (commit)] * Remove the obsolete microcode_ioctl. Nowadays, even Debian stable ships a microcode_ctl utility recent enough to no longer use this ioctl [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f45e4656ac0609437267b242953c07d523649f8d (commit)] * PPC * Numa: Support sparse online node map. The powerpc numa code unconditionally onlines all nodes from 0 to the highest node id found, regardless of whether cpus or memory are present in the nodes, which wastes 8K per node and complicates some cpu and memory hotplug situations, such as adding a resource that doesn't map to one of the nodes discovered at boot. Instead, this feature set nodes online as resources are scanned, and falls back to node 0 only when we're sure this isn't a NUMA machine [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=482ec7c403d239bb4f1732faf9a14988094ce08b (commit)] * Implement accurate task and cpu time accounting for 64-bit powerpc kernels. Instead of accounting a whole jiffy of time to a task on a timer interrupt because that task happened to be running at the time, we now account time in units of timebase ticks according to the actual time spent by the task in user mode and kernel mode, we also count the time spent processing hardware and software interrupts accurately. This is conditional on CONFIG_VIRT_CPU_ACCOUNTING, if that is not set, tick-based approximate accounting is done as before [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c6622f63db86fcbd41bf6fe05ddf2e00c1e51ced (commit)] * Support for the physmapped flash on m8xx [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=076d022c566fddde41fd4a858dd24bacad8304d7 (commit)] * Add PCI support for 8540 ADS [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8080d5497146d5d27d9e8e78229d1adc7fe280cf (commit)] * Add platform support for MPC834x USB controllers [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4b10cfd40e3fa1c1663b9c9fa22260d41e669c6f (commit)] * Add oprofile calltrace support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6c6bd754bf43d59756f094de144ecac239629dda (commit)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fa465f8c7008c6cab32b05f3f1af57f7c86e8873 (commit)] * Add hvc backend for rtas, needed to get console output on those boards [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f4d1749e9570d3984800c371c6e06eb35b9718b1 (commit)] * spufs * Enable SPE problem state MMIO access [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6df10a82f8de89c66eb91c371d62d76e87b2cbba (commit)] * Allow SPU code to do syscalls. An SPU does not have a way to implement system calls itself, but it can create intercepts to the kernel. This uses the method defined by the JSRE interface for C99 host library calls from an SPU to implement Linux system calls. It uses the reserved SPU stop code 0x2104 for this, using the structure layout and syscall numbers for ppc64-linux [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2dd14934c9138c562d93c501e88c6d6f061eb8ba (commit)] * Adds support for the LITE5200B, the new development board for the Freescale MPC5200 processor. It has two PCI slots and so a different PCI IRQ routing [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f8dd311982c86141f4f2fd326c0edf0c2d9fd97b (commit)] * Adds support for the PCI hostbridge in MPC5200B [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5931c4350059ce9bd5fe398b628c478753a11e44 (commit)] * Implement mfc access for PPE-side DMA: This adds a new file called 'mfc' to each spufs directory. The file accepts DMA commands that are a subset of what would be legal DMA commands for problem state register access. Upon reading the file, a bitmask is returned with the completed tag groups set [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a33a7d7309d79656bc19a0e96fc4547a1633283e (commit)] * ARM * Add support for the new XScale v3 core. It's an ARMv5 ISA core with the following additions: L2 cache, I/O coherency support (on select chipsets), Low-Locality reference cache attributes (replaces mini-cache), supersections (v6 compatible), 36-bit addressing (v6 compatible), single instruction cache line clean/invalidate, LRU cache replacement (vs round-robin) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=23bdf86aa06ebe71bcbf6b7d25de9958c6ab33fa (commit)] * Add support for the Intel ixp23xx series of CPUs and support for the ADI Engineering Roadrunner, Intel IXDP2351, and IP Fabrics Double Espresso platforms. The ixp23xx is an XSC3 based CPU with 512K of L2 cache, a 64bit 66MHz PCI interface, two DDR RAM interfaces, QDR RAM interfaces, two gigabit MACs, two 10/100 MACs, expansion bus, four microengines, a Media and Switch Fabric unit almost identical to the one on the ixp2400, two xscale (8250ish) UARTs and a bunch of other stuff [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c4713074375c61f939310b04e92090afe29810dc (commit)] * proc-v6: page table walks with outer-cacheable attribute, and enable no-execute in page tables [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3747b36eeab93d8969e86987bbc1d44971229b26 (commit)] * Add support for the Cirrus ep93xx series of CPUs. The ep93xx is an ARM920T based CPU with two VICs, PL010 based UARTs, IrDA, Maverickcrunch floating point coprocessor, between 24 and 64 GPIOs, ethernet, OHCI USB and, depending on the model, pcmcia, raster engine, graphics accelerator, IDE controller and a bunch of other stuff. Add the core ep93xx support code, and support for the Glomation GESBC-9312-sx and the Technologic Systems TS-72xx SBCs [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e7736d47a11a771ba87314be563b2cb6b8d11d14 (commit)] * ep93xx: Add GPIO interrupt support for the first 16 GPIO lines (port A and B ) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bd20ff5793b4ece4fa3e9e0fcf8e6bbd93526215 (commit)] * Add support for Intel's IXDP28x5 platform. This is just and IXDP2801 with a new CPU rev [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0328ad23cfd8a0501f44a1b83e49d5b0e47e2b3c (commit)] * s3c2410: Support for Simtec IM2440D20 CPU modules (Osiris) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=110d322b29c08d8cf1dba599fd45ad2b9752a4bb (commit)] * s3c24xx: Add USB bus clock source [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=36c64af4e013ddf44c44298f50ff138ef1e2e7b7 (commit)] * Battery support for sharp zaurus sl-5500 (collie). Collie slowly charges battery even with charging disabled, so fast charge is not enabled yet [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=48a03ae863e0031def037fc828d7ea1a29b6fb7b (commit)] * Add support for logicpd pxa270 card engine [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e9937d4b0a9382c4c78411d1c53e62be396ee9a9 (commit)] * Adds support for the Ethernet controller integrated in the Atmel AT91RM9200 SoC processor. [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d4b7780ea1d2e08410fcc9963a57254147ae577a (commit)] * Add Cirrus EP93xx AMBA PL010 serial support: [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=aee85fe8e8143d3f54d9e6d3c6cdd40ead563267 (commit)] * Add a driver for the on-chip watchdog on the cirrus ep93xx series of ARM CPUs [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f52ac8fec8a13e207f675b0c16e0d5f800c1c204 (commit)] * Adds support for the LED(s) on the AT91RM9200-based boards [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cc2832a1313340ff1de55f15fac5b7fe48fa2a72 (commit)] * Adds support for the I/O coherent cache available on the xsc3 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=23759dc6430428897a36c4d493f611eca55c9481 (commit)] * Add pci slave support for ixp23xx [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=532bda5d9cd2f94a9e374765c23858c7d8641f66 (commit)] * SD/MMC support for i.MX/MX1 SD/MMC controller [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=56ca904053ab14ba4067a72b69a5edf246771209 (commit)] * Support for 2.6 (MMC/SD driver) on the Atmel AT91RM9200 processor [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=65dbf34393f7b3d20e993d9651a825df0fa5376b (commit)] * Allow un-muxed syscalls to be available for everyone. It's been a while since the un-muxed socket and ipc syscalls were introduced, so make the unistd.h number definitions visible for non-EABI as well as EABI [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d53ace70052b5c0a08a4f92993c0614f84920abf (commit)] * nommu: Adds MPU support in boot/compressed/head.S [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=10c2df65060e1ab57b2f75e0749de0ee9b8f4810 (commit)] * nommu: Add nommu specific Kconfig and MMUEXT variable in Makefile [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f8c07de6beac55c3273cbd679bfa67555ef14ef5 (commit)] * backlight: Generalise to support other Sharp SL hardware, this enables the driver to support other Zaurus hardware, specifically the SL-6000x (Tosa) model [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2c0f5fb08e8ad59f396b1bda41ccd93cbb00a09f (commit)] * PARISC * Add PREEMPT support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=50a34dbd612925f2ec55b1781632835ef36b97d5 (commit)] * Enable ioremap functionality unconditionally [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=29ef8295327653ff09a56285c35213cd31fa54b3 (commit)] * Add CONFIG_HPPA_IOREMAP to conditionally enable ioremap [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b8ce0aadcdebbaf5ec013c57e2a0803060817bcc (commit)] * MIPS: * Add early console for Cobalt [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e87dddeb92618d9dbb8b9f946a193739a4447609 (commit)] * Remove obsoleted serial au1x00_uart driver as announced in feature-removal-schedule.txt [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=335bd9dff31d042b773591933d3ee5bd62d5ea27 (commit)] * UML: * Add hotplug memory support to UML. The mconsole syntax is config mem=[+-]n[KMG]. In other words, add or subtract some number of kilobytes, megabytes, or gigabytes. Unplugged pages are allocated and then madvise(MADV_TRUNCATE), which is a currently experimental madvise extension. These pages are tracked so they can be plugged back in later if the admin decides to give them back [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=02dea0875b0f9b331a65fd6097dfd6115ca4ef24 (commit)] * Implement {get,set}_thread_area for i386: Implement sys_[gs]et_thread_area and the corresponding ptrace operations for UML [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=aa6758d4867cd07bd76105ade6177fe6148e559a (commit)] * Sparc64: Add support for the Niagara platform (CPU, PCI devices, hypervisor, hypervisor serial console, etc) which includes a big rewrite of some parts of the sparc64 architecture [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c4a1745aa09fc110afdefea0e5d025043e348bae (commit)] * IA64: * Support for cpu0 removal [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ff741906ad3cf4b8ca1a958acb013a97a6381ca2 (commit)] * Export cpu cache info by sysfs: Export 8 attributes of cpu cache info under /sys/devices/system/cpu/cpuX/cache/indexX: 1) level 2) type 3) coherency_line_size 4) ways_of_associativity 5) size 6) shared_cpu_map 7) attributes 8) number_of_sets: number_of_sets=size/ways_of_associativity/coherency_line_size [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f19180056ea09ec6a5d32e741234451a1e6eba4d (commit)] * S390: * Channel path measurements: Gather extended measurements for channel paths from the channel subsystem and expose them to userspace via a sysfs attribute [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=495a5b45ac33b8fe2c49780fdbcc8014cb6d6ddc (commit)] * '''Filesystems''' * Ext3 * Support for multiple block allocation in ext3-get-blocks(): Look up the disk block mapping and count the total number of blocks to allocate, then pass it to ext3_new_block(), where the real block allocation is performed. Once multiple blocks are allocated, prepare the branch with those just allocated blocks info and finally splice the whole branch into the block mapping tree [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b47b24781c59565f45acd765dc995a752d561e96 (commit)] * "nobh" writeback support for filesystems blocksize < pagesize [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a0e9285233a32edf267d27cd03fe0056951422cf (commit)] * XFS * Introduces multi-level in-core file extent: The new multi-level extent allocations are only required for heavily fragmented files, so the old-style linear extent list is used on files until the extents reach a pre-determined size of 4k. 4k buffers are used because this is the system page size on Linux i386 and systems with larger page sizes don't seem to gain much, if anything, by using their native page size as the extent buffer size [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0293ce3a9fd1b34c933a96577a8ba737b681cf75 (commit)] * Reenable the noikeep (delete inode cluster space) option by default [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e15f195cfb2fb1f2af0fdfc21277643deb26c0df (commit)] * Reorganize some of the in-core file extent:[http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4eea22f01bb4fdba1aab4430c33adbe88d9d4985 (commit)] * JFS * Add uid, gid, and umask mount options. OS/2 doesn't initialize the uid, gid, or unix-style permission bits, the uid, gid, & umask mount options perform pretty much like those for the fat file system, overriding what is stored on disk. This is useful for users sharing the file system with OS/2 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=69eb66d7da7dba2696281981347698e1693c2340 (commit)] * Add ext2 inode attributes for jfs. To see the type of inode attributes implemented see the commit [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fa3241d24cf1182b0ffb6e4d412c3bc2a2ab7bf6 (commit)] * Reenable write barriers by default [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3bbcc8e3976f8bba2fd607c8850d7dfe7e332fda (commit)] * Provide support for the splice syscall [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1b895840ce93fd2d150a86c800a3085eaab4eb9e (commit)] * NFS * Add I/O performance counters [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=91d5b47023b608227d605d1e916b29dd0215bff7 (commit)] * Introduce mechanism for tracking NFS client metrics. Add a per-superblock performance counter facility to the NFS client. This facility mimics the counters available for block devices and for networking. Expose these new counters via the new /proc/self/mountstats interface [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d9ef5a8c26aab09762afce43df64736720b4860e (commit)] * Use UNSTABLE + COMMIT for NFS O_DIRECT writes [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fad61490419b3e494f300e9b2579810ef3bcda31 (commit)] * Add RPC I/O statistics to /proc/self/mountstats [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4ece3a2d18fd7fe1d4972284a8c98c569020093f (commit)] * SUNRPC: add a handful of per-xprt counters, monitor generic transport events [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=262ca07de4d7f1bff20361c1353bb14b3607afb2 (commit)] * SUNRPC: track length of RPC wait queues which will eventually be exported to userland via the RPC iostats interface [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e19b63dafdf7d615b0d36b90990a07e7792b9d3a (commit)] * SUNRPC: introduce per-task RPC iostats [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ef759a2e54ed434b2f72b52a14edecd6d4eadf74 (commit)] * SUNRPC: provide a mechanism for collecting stats in the RPC client [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=11c556b3d8d481829ab5f9933a25d29b00913b5a (commit)] * CIFS * Add posix (advisory) byte range locking support to cifs client: Samba (version 3) server support for this is also currently being done. This client code is in an experimental path (requires enabling /proc/fs/cifs/Experimental) while it is being tested [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=08547b036b8445e2318e14f1f03308105b01fc5b (commit)] * Readdir perf optimizations part 1 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d47d7c1a850b867047fe17140fabd0376894e849 (commit)] * NTFS: Add support for sparse files which have a compression unit of 0 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a0646a1f04f1ec4c7514e5b00496b54e054a2c99 (commit)] * SELinux/audit * Disable the automatic labeling of new inodes on disk when no policy is loaded. Discussion in https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=180296. Currently it does add an 'unlabeled' label in this case, which we've found causes problems later [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8aad38752e81d1d4de67e3d8e2524618ce7c9276 (commit)] * Add a slab cache for the SELinux inode security struct, one of which is allocated for every inode instantiated by the system. The memory savings are considerable. On 64-bit, instead of the size-128 cache, we have a slab object of 96 bytes, saving 32 bytes per object. After booting, I see about 4000 of these and then about 17,000 after a kernel compile. With this patch, we save around 530KB of kernel memory in the latter case. On 32-bit, the savings are about half of this [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7cae7e26f245151b9ccad868bf2edf8c8048d307 (commit)] * SELinux audit events: Hardwire important SE Linux events to the audit system [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=af601e4623d0303bfafa54ec728b7ae8493a8e1b (commit)] * Audit string fields interface + consumer [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=93315ed6dd12dacfc941f9eb8ca0293aadf99793 (commit)] * Add tty to syscall audit records [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a6c043a887a9db32a545539426ddfc8cc2c28f8f (commit)] * Add a little more information to the add/remove rule message emitted by the kernel [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5d3301088f7e412992d9e61cc3604cbdff3090ff (commit)] * More filter rule comparators. Currently, audit only supports the "=" and "!=" operators in the -F filter rules. This patch reworks the support for "=" and "!=", and adds support for ">", ">=", "<", and "<=". [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b63862f46547487388e582e8ac9083830d34f058 (commit)] * When a network interface goes into promiscuous mode, its an important security issue. The attached patch is intended to capture that action and send an event to the audit system [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5bdb98868062c1b14025883049551af343233187 (commit)] * '''Networking''' * IPV6 * Add support for Router Preference (RFC4191) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ebacaaa0fdf4402cdf4c8e569f54af36b6f0aa2d (commit)] * Add Router Reachability Probing (RFC4191) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=270972554c91acd29412d8b6a10e606041012106 (commit)] * Add experimental support for Route Information Option in RA (RFC4191): [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=70ceb4f53929f73746be72f73707cd9f8753e2fc (commit)] * Add router_probe_interval sysctl [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=52e1635631b342803aecaf81a362c1464e3da2e5 (commit)] * Add accept_ra_pinfo sysctl. This controls whether we accept Prefix Information in RAs [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c4fd30eb18666972230689eb30e8f90844bce635 (commit)] * Add accept_ra_rt_info_max_plen sysctl [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=09c884d4c3b45cda904c2291d4723074ff523611 (commit)] * Add accept_ra_defrtr sysctl: This controls whether we accept default router information in RAs [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=65f5c7c1143fb8eed5bc7e7d8c926346e00fe3c0 (commit)] * Add accept_ra_rtr_pref sysctl [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=930d6ff2e2a5f1538448d3b0b2652a8f0c0f6cba (commit)] * DCCP * Initial feature negotiation implementation [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=afe00251dd9b53d51de91ff0099961f42bbf3754 (commit)] * Initial CCID2 (TCP-Like) implementation. For now CCID2 was turned the default for all SOCK_DCCP connections, but this will be remedied soon [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2a91aa3967398fb94eccc8da67c82bce9f67afdf (commit)], and make it the default as per the draft [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=93ce20928f6e197707add8f670ae0cd029107e8f (commit)] * Introduce sysctls for the default features, in /proc/sys/net/dccp/default/*: /proc/sys/net/dccp/default/ack_ratio, /proc/sys/net/dccp/default/rx_ccid, /proc/sys/net/dccp/default/send_ackvec, /proc/sys/net/dccp/default/send_ndp, /proc/sys/net/dccp/default/seq_window, /proc/sys/net/dccp/default/tx_ccid. Of course we also need the setsockopt for each app to tell its preferences, but for testing or defining something other than CCID2 as the default for apps that don't explicitely set their preference the sysctl interface is handy [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e55d912f5b75723159348a7fc7692f869a86636a (commit)] * Netfilter * Add H.323 conntrack/NAT helper [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5e35941d990123f155b02d5663e51a24f816b6f3 (commit)] * nf_conntrack, support for layer 3 protocol load on demand: x_tables matches and targets that require nf_conntrack_ipv[4|6] to work don't have enough information to load on demand these modules [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b9f78f9fca626875af8adc0f7366a38b8e625a0e (commit)] * Extend current iptables compatibility layer in order to get 32bit iptables to work on 64bit kernel. Current layer is insufficient due to alignment checks both in kernel and user space tools [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2722971cbe831117686039d5c334f2c0f560be13 (commit)] * Unify IPv4/IPv6 multiport match: This unifies ipt_multiport and ip6t_multiport to xt_multiport. As a result, this addes support for inversion and port range match to IPv6 packets [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a89ecb6a2ef732d04058d87801e2b6bd7e5c7089 (commit)] * Unify IPv4/IPv6 esp match: This unifies ipt_esp and ip6t_esp to xt_esp. Please note that now a user program needs to specify IPPROTO_ESP as protocol to use esp match with IPv6. This means that ip6tables requires '-p esp' like iptables [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=dc5ab2faece3b7473931357db7f63f596678481d (commit)] * Add RFC2863 operstate. This adds a dormant flag to network devices, RFC2863 operstate derived from these flags and possibility for userspace interaction. It allows drivers to signal that a device is unusable for user traffic without disabling queueing (and therefore the possibility for protocol establishment traffic to flow) and a userspace supplicant (WPA, 802.1X) to mark a device unusable without changes to the driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b00055aacdb172c05067612278ba27265fcd05ce (commit)] * Allow 32 bit socket ioctl in 64 bit kernel [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=89bbfc95d65839d6ae23ddab8a3cc5af4ae88383 (commit)] * Socket timestamp 32 bit handler for 64 bit kernel [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f0ac2614412e2b597e2d5bfbd3960b4f73718b41 (commit)] * IPSEC: Sync series - SA expires. This allows a user to insert SA expires. This is useful to do on an HA backup for the case of byte counts but may not be very useful for the case of time based expiry [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=53bc6b4d29c07664f3abe029b7e6878a1067899a (commit)] * IPSEC: Sync series - acquire insert: This introduces a feature similar to the one described in RFC 2367: "... the application needing an SA sends a PF_KEY SADB_ACQUIRE message down to the Key Engine, which then either returns an error or sends a similar SADB_ACQUIRE message up to one or more key management applications capable of creating such SAs". An app such as OSPF could then use ipsec KM to get keys [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=980ebd25794f0f87ac32844e2c73e9e81f0a72ba (commit)] * TCP: MTU probing: Implementation of packetization layer path mtu discovery for TCP, based on the internet-draft currently found at http://www.ietf.org/internet-drafts/draft-ietf-pmtud-method-05.txt [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5d424d5a674f782d0659a3b66d951f412901faee (commit)] * TCP/UDP getpeersec. This patch implements an application of the LSM-IPSec networking controls whereby an application can determine the label of the security association its TCP or UDP sockets are currently connected to via getsockopt and the auxiliary data mechanism of recvmsg. IOW: This patch enables a security-aware application to retrieve the security context of an IPSec security association a particular TCP or UDP socket is using. The application can then use this security context to determine the security context for processing on behalf of the peer at the other end of this connection. In the case of UDP, the security context is for each individual packet. An example application is the inetd daemon, which could be modified to start daemons running at security contexts dependent on the remote client. More details in the commit [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2c7946a7bf45ae86736ab3b43d0085e43947945c (commit)] * TCP: sysctl to allow TCP window > 32767 sans wscale: Back in the dark ages, we had to be conservative and only allow 15-bit window fields if the window scale option was not negotiated. Some ancient stacks used a signed 16-bit quantity for the window field of the TCP header and would get confused. Those days are long gone, so we can use the full 16-bits by default now. There is a sysctl added so that we can still interact with such old stacks [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=15d99e02babae8bc20b836917ace07d93e318149 (commit)] * Introduce tunnel4/tunnel6: Move the generic tunnel protocol stuff out of xfrm4_tunnel/xfrm6_tunnel and moves it into the new files of tunnel4.c and tunnel6 respectively [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d2acc3479cbccd5cfbca6c787be713ef1de12ec6 (commit)] * BRIDGE * Use LLC to send STP. The bridge code can use existing LLC output code when building spanning tree protocol packets [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=12ac84c4a9c505e3e30529563b04cc8f6d5ebbf3 (commit)] * Use LLC for the receive path of Spanning Tree Protocol packets (STP). This allows link local multicast packets to be received by other protocols (if they care), and uses the existing LLC code to get STP packets back into bridge code. The bridge multicast address is also checked, so bridges using other link local multicast addresses are ignored. This allows for use of different multicast addresses to define separate STP domains [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cf0f02d04a830c8202e6a8f8bb37acc6c1629a91 (commit)] * Allow show/store of group multicast address: Bridge's communicate with each other using Spanning Tree Protocol (STP) over a standard multicast address. There are times when testing or layering bridges over existing topologies or tunnels, when it is useful to use alternative multicast addresses for STP packets. The 802.1d standard has some unused addresses, that can be used for this. This patch is restrictive in that it only allows one of the possible addresses in the standard [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fda93d92d7824159d8532995072dde2bee4bc4b3 (commit)] * X25 * Allow use of the optional user facility to insert ITU-T (http://www.itu.int/ITU-T/) specified DTE facilities in call set-up x25 packets. This feature is optional; no facilities will be added if the ioctl is not used, and call setup packet remains the same as before. If the ioctls provided are used, then a facility marker will be added to the x25 packet header so that the called dte address extension facility can be differentiated from other types of facilities (as described in the ITU-T X.25 recommendation) that are also allowed in the x25 packet header [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a64b7b936dcd926ace745c07c14f45ecfaddb034 (commit)] * Allow dte facility patch to use 32 64 bit ioctl conversion mechanism [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9a6b9f2e763a1d1492e164f13c13b995a9b98d78 (commit)] * Allow 32 bit x25 module structures to be passed to a 64 bit kernel via ioctl using the new compat_sock_ioctl registration mechanism [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1b06e6ba25a37fe1c289049d0e0300d71ae39eff (commit)] * Wireless * WE-20, version 20 of the Wireless Extensions, it enables the full Wireless Extension API over RtNetlink. This is a configuration option, as currently most people have no need for it [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=711e2c33ac9221a419a9e28d05dd78a6a9c5fd4d (commit)] * Add the hardware independent software MAC layer [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=370121e5190a86a2d8a717ecd6f33028c7dc6fd4 (commit)] * softmac: reduce default rate to 11Mbps: We don't make much of an attempt to fall back to lower rates, and 54M just isn't reliable enough for many people. In fact, it's not clear we even set it to 11M if we're trying to associate with an 802.11b AP. This defaults to 11M, which ought to work for most people. When dynamic rate adjustment is handled, defaults can be reconsidered [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2638fed7ccb07ff43cdc109dd78e821efb629995 (commit)] * softmac: reduce scan dwell time: It currently takes something like 8 seconds to do a scan, because we spend half a second on each channel. Reduce that time to 20ms per channel [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=16f4352733d19c2d496f682c08cff368ba0495d0 (commit)] * Add LEAP authentication type [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=24056bec086aaa99923b21c0e1a0e993bb1c7e2a (commit)] * Add flags for all geo channels [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d128f6c176bff9c4929476e13132804321a6d5c5 (commit)] * Add spectrum management information [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7bd64366044565d6861783613db191c8aaec691e (commit)] * Add 802.11h information element parsing: Added default handlers for various 802.11h DFS and TPC [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d1b46b0fba8c1049135ee5d60910b04463dccc95 (commit)] and TIM [http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=41a25c616b3140c388ff6009a1cb0b6b06a10f29 (commit)] * '''Drivers''' * PCI: Scheduled removal of the obsolete PCI_LEGACY_PROC (/proc/pci) interface [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5eeca8e688b6affba4cd85262152fdd1b274ad33 (commit)] * ipmi * Add full driver model support for the IPMI driver. It links in the proper bus and device support. It adds an "ipmi" driver interface that has each BMC discovered by the driver (as a device) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=50c812b2b9513e3df34eae8c30cb2c221b79b2cb (commit)] * Add generic PCI handling [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b0defcdbd2b7da7694e2645da92716cea0a3c0ff (commit)] * AGP/DRM * ATI RS350 support: [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9d1ef8a64e21e57109be45a7345b09cf913e4b0e (commit)] * Enable VIA AGP driver on x86-64 for VIA P4 chipsets, needed for some newer EM64T systems [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9d1f6b28ee2429a1f94a9f7074ffae7f918d33be (commit)] * Rework radeon memory map [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d5ea702f1e8e3edeea6b673a58281bf99f3dbec5 (commit)] * Add all the r300 and r400 PCI ids from DRM CVS [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f3dd5c37382472a8b245ad791ed768771594e60c (commit)] * libata * Turn on ATAPI by default [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=418dc1f5a805822fcf1118804ddc689a4156db4a (commit)] * Add per-device max_sectors [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b00eec1d58ee71131375bfeb86e64bceec3f5618 (commit)] * ahci: Now that libata is smart enought to handle both soft and hard resets, add softreset method [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4658f79bec0b51222e769e328c2923f39f3bda77 (commit)] * Add support for the Promise Fasttrak TX4300/TX4310 4-port PCI SATA controllers based on the PDC40719 chip to sata_promise driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e1fd263c772e89706dee28aa794399ac4bd6b9c1 (commit)] * Add a new PCI ID for SiI 3124 to sata_sil24 driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4b9d7e04a8daaf3e5afe775ec9cbbfda5e32dd5b (commit)] * Add 6042 support to sata_mv driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e4e7b89280d1d666e2c09e5ad36cf071796c4c7e (commit)] * Make per-dev transfer mode limits per-dev. Now that each ata_device has xfer masks, per-dev limits can be made per-dev instead of per-port [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5a529139554f12cb265715117a2153c936286294 (commit)] * Simplex and other mode filtering logic. This provides the needed framework to support all the mode rules found in the PATA world [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5444a6f405618706eddbe1605ef8533b1b655764 (commit)] * Remove E.D.D [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=aec5c3c1a929d7d79a420e943285cf3ba26a7c0d (commit)] * AHCI: add ATI SB600 PCI IDs [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8b316a3973f05e572b4edeeda9072987f6bbaa44 (commit)] * SCSI * Allow displaying and setting of cache type via sysfs: This patch adds a scsi_disk class with the cache type and FUA parameters, so user land application can easily obtain them without having to parse dmesg. It also allows setting the cache type (use with care...) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6bdaa1f17dd32ec62345c7b57842f53e6278a2fa (commit)] * sas: add support for enclosure and bad ID rphy attributes [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a012564136a665f8d63443c057ba368572b483df (commit)] * mptsas: add support for enclosure and bay identifier attributes: Adds support to retrieve the enclosure and bay identifiers. This patch is from Eric with minor modifications from me, rewritten from a buggy patch of mine, based on the earlier CSMI implementation from Eric.. [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e3094447e013a59ccedcf60f6055f18225bd8465 (commit)] * qla2xxx: Add ISP54xx support, chip is similar in form to our ISP24xx offering [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=044cc6c8ec311c4ddeebfcc31c53dea282de70b7 (commit)] * Add big endian support to 3ware 9000 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=75913d9bb8328c4eca54cad39a5fb665b48383eb (commit)] * lpfc: Add support for FAN [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5024ab179c13d763f95c8391f45f22309609f479 (commit)] * lpfc: Add module parameter to limit number of outstanding commands per lpfc HBA [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b28485acb930f67c014024bc3b9c01129124e566 (commit)] * mptspi: Add transport class Domain Validation [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c92f222e1f14588171e63b550ca8c85fa9130061 (commit)] * qla2xxx: Add VPD sysfs attribute [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6f6417905cf272337a9762e1f92a1fffa651fcd3 (commit)] * Input devices * Add support for Braille devices [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b9ec4e109d7a342e83e1210e05797222e36555c3 (commit)] * Add SNES mouse support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b157d55eef38f014015b8058a9f733d1c1c49cb4 (commit)] * USB devices * Add OHCI support for AU1200 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d5fb7f1b5b832946eaf450b2a695ec3e7fd2d351 (commit)] * Add EHCI support for AU1200 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=76fa9a240de4294a097235c9ddd470c21eb3449e (commit)] * Add support for OCHI on AT91rm9200 based boards [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=39a269c09f854d3d98cbb755b3568175f04efa10 (commit)] * Add support for AT91 (rm9200, eventually also sam9261 or uClinux) platforms [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bae4bd848dc0b7e6defc7a5d62834a35d1eed06d (commit)] * Add a new device ID to the cp2101 driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=59224f5352542b968c41200954e56c26c4f0a075 (commit)] * Add Icom ID1 USB product and vendor ids to the ftdi_sio driver. The Icom ID-1 1.2 GHz band digital transceiver is a new radio that has a USB interface [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bf58fbd5e86a43466e638407ff8a4eb7766a3b68 (commit)] * Add support for Creativelabs Silvercrest USB keyboard [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2e56222ed52cec40427fa89f23b228232e3e327e (commit)] * Add navman GPS device driver (USB serial) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e9a66c64bb7033cb0180d419b2008acf7a141adc (commit)] * Add support for the Nokia ca42 version 2 cable to the cypress_m8 driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a5c44e29e5637b5e6fe59d225eb4f438688b3849 (commit)] * Adds Linksys USBVPN1 support (http://www1.linksys.com/Products/product.asp?prid=3D543&scid=3D30) to the pegasus driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=efafe6fb72b2bbab40080a08f7946f1eadb9bad9 (commit)] * EHCI for Freescale 83xx. This driver supports both the Dual-Role (DR) controller and the Multi-Port-Host (MPH) controller present in the Freescale MPC8349 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=80cb9aee01245b38325dd84f1359b14a3f01f10d (commit)] * Add a Video4linux2 driver for ZC0301 Image Processor and Control Chip.[http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=60f780528f3ae603eb169a221628b93b6c6929f9 (commit)] * Adds support for three USB peripheral controllers: "musbhsfc" for peripherals only, as found in for example the IBM/AMCC 44EP processors; "musbhdrc" is OTG-capable (dual role), and is found in various products including OMAP 2430 and the new DaVinci SOCs. The full speed controller on the FreeScale MPC8272 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1c05ad4447e4ecbd61647c102fb6f2f5a6634ff3 (commit)] * Network devices * Driver for the Broadcom 43xx based wireless cards (from http://bcm43xx.berlios.de). This chip is embedded in lots of laptops: Apple (Airport Extreme), Acer, Asus, Dell, Compaq and [http://linux-bcom4301.sourceforge.net/go/hardware many others] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f222313a61a5e134de80767b35c672b91e78383c (commit)] * ipw2100 * Add LEAP authentication algorithm support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cbbdd03fadeddd02efec05ccfd4e6870ed913762 (commit)] * Add generic geo information [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=be6b3b15b511aededd89d1ebbc7b25d0edd1ccd3 (commit)] * ipw2200: * Support WE-18 WPA: This allows ipw2100 driver to advertise the WPA-related encryption options that it does really support. It's necessary to work correctly with Networkmanager and other programs that actually check driver & card capabilities [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f1b50863aa6a96c61a57e3b3a5e76e67b38c5c3e (commit)] * Add LEAP authentication algorithm support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3e234b4e5768b4f783fc45f20be8c6515b875f17 (commit)] * Bluetooth coexistence support. It adds a new module param "bt_coexist" which defaults to OFF [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=810dabd466fe70869b66ab64dd326b6153cef645 (commit)] * Add module parameter to enable/disable roaming [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4bfdb91dcff0dd4b70922de263ccffffb8fb1d16 (commit)] * switch to the new ipw2200-fw-3.0 image format. You will also need to upgrade your firmware image to the 3.0 version, available from http://ipw2200.sf.net/firmware.php [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9006ea75cfaded82acbc34d03e9d4e86447f40a9 (commit)] * Enable the "slow diversity" algorithm. This forces one antenna or the other, if the background noise is significantly quieter in one than the other. It favors the quieter antenna, and won't kick in unless the difference is significant [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=71de1f3dd14e3e39cef929506a9526779f5a447d (commit)] * Wireless extension sensitivity threshold support. It allows the user to set the handover threshold, i.e. the number of consecutively missed beacons that will trigger a roaming attempt. The disassociation threshold is set to 3 times the handover threshold [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=651be26f2daf31e61faf4b55ada709cf39ec76a2 (commit)] * TG3 * Add support for 5714S and 5715S [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d4d2c558fd3e1f5e386b153f194aa8f0be496c77 (commit)] * Add support for new chip 5755 which is very similar to 5787 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=af36e6b6d7f4ad7a5ccfd14dfa71ec941255f93d (commit)] * Add 5755 nvram support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d3c7b886978bef42f5ea487dec376c482d3cd7e3 (commit)] * Add basic support for 5787 and 5754 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d9ab5ad12b0d865bdb1b750d81192d34465541e9 (commit)] * Support additional nvrams and new nvram format for 5787 and 5754 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1b27777a9b9b2b6d1c06000b7a31262d198b4238 (commit)] * Support 5787 hardware TSO [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5a6f3074c2ea5a7b4ff5b18f0e1fd9b1257e1a29 (commit)] and ipv6 checksum support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9c27dbdf64cba05d0cacc343118a7fd01d4b82f7 (commit)] * Support one-shot MSI on 5787. In this mode, MSI disables itself automatically after it is generated, saving the driver a register access to disable it for NAPI [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fcfa0a32c767219c1bdad621ef4a3aff1904cbbd (commit)] * Forcedeth * Let FORCEDETH no longer depend on EXPERIMENTAL [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=827700866ad0996e8c0f5ce75d1c01ae9b034cd6 (commit)] * Add support for vlan stripping/inserting in hardware [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ee407b02f3f1992bc746876c26f8175c8783562b (commit)] * Add highdma support for tx/rx rings [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0832b25a75d128e4f9724156380ba071c4f3f20d (commit)] * Add support for MSI/MSIX interrupts [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d33a73c81241e3d9ab8da2d0558429bdd5b4ef9a (commit)] * e1000 * Add support for ESB2 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6418ecc68e1d9416451b6f78ebb2c0b077e0abf2 (commit)] * Add TSO workaround for 82573 controller support: [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9f68788856b134f93d9d10b19aa902924c61fc02 (commit)] * Added a performance enhancement - prefetch [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=30320be88fb9cae888eacf1f1eaae95a03720128 (commit)] * sky2 * Add MSI support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fb2690a9bfa330aff3de29cbdde526591ac90dce (commit)] * Remove support for untested Yukon EC/rev 0, the Yukon EC/rev0 (A1) chipset requires a bunch of workarounds [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=290d4de5b71f60bb5853a7ef9f0e8c817cd26892 (commit)] * Airo * Cache wireless scans: Observed problems when multiple processes request scans and subsequently scan results, this causes a scan result request to hit card registers before the scan is complete, returning an incomplete scan list and possibly making the card very angry. Instead, cache the results of a wireless scan and serve result requests from the cache, rather than hitting the hardware for them [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9e75af30d529d54fc650586776c100d0665c0c93 (commit)] * Adds IWENCODEEXT and IWAUTH support for WEP and unencrypted operation, but no WPA. It allows the driver to operate more willingly with wpa_supplicant and NetworkManager [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4be757dd4c00ddabff2d6faf639466bb5d76bc79 (commit)] * S2io * Large Receive Offload (LRO) feature(v2) for Neterion 10GbE Xframe PCI-X and PCI-E NICs. LRO algorithm was described in [http://www.linuxsymposium.org/2005/linuxsymposium_procv1.pdf an OLS 2005 presentation] (also located at ftp.s2io.com (user linuxdocs, password: HALdocs, the same ftp site has Programming Manual for Xframe-I ASIC). LRO feature is supported on Neterion Xframe-I, Xframe-II and Xframe-Express 10GbE NICs. The Large Receive Offload(LRO) feature is a stateless offload that is complementary to TSO feature but on the receive path, the idea is to combine and collapse (upto 64K maximum) in the driver, in-sequence TCP packets belonging to the same session. It is mainly designed to improve 1500 mtu receive performance, since Jumbo frame performance is already close to 10GbE line rate. Performance numbers and other details in the commit [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7d3d0439f574a4857c97b3ad2e63b082b7382d7e (commit)] * BNX2: Add ETHTOOL_GREGS support (ethtool -d support) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=244ac4f446ac6a19caf5eb692c4844f29e6478bf (commit)] * natsemi * Converts the driver to use NAPI [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b27a16b7c4738ea16f6f0730caf382a3f57317bb (commit)] * Support oversized EEPROMs [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a8b4cf42cf57e44e3c4a585e0f0a71e3a7efbf29 (commit)] * Starfire: Implement suspend and resume methods. It allows to put a computer with a starfire dual board into S4 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d4fbeabbc9e68c80738fe59135d201c3ed5fe40f (commit)] * sb1250-mac: Add support for the 4th port and other new features of the BCM1480 SOC [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f90fdc3cce3d8c8ed09615dc68cb789655078803 (commit)] * pcnet_cs: Add new id (Logitec LPM-LN100TE):[http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c96a34ec3bad5ba37ee4da4a188ad534b2fa4321 (commit)] * isdn4linux: Add drivers for the Siemens Gigaset 3070 family of ISDN DECT PABXes connected via USB, either directly or over a DECT link using a Gigaset M105 or compatible DECT data adapter. The devices are integrated as ISDN adapters within the isdn4linux framework, supporting incoming and outgoing voice and data connections, and also as tty devices providing access to device specific AT commands. Supported devices include models 3070, 3075, 4170, 4175, SX205, SX255, and SX353 from the Siemens Gigaset product family, as well as the technically identical models 45isdn and 721X from the Deutsche Telekom Sinus series. Supported DECT adapters are the Gigaset M105 data and the technically identical Gigaset USB Adapter DECT, Sinus 45 data 2, and Sinus 721 data (but not the Gigaset M34 and Sinus 702 data which advertise themselves as CDC-ACM devices). These drivers have been developed over the last four years within the project http://sourceforge.net/projects/gigaset307x . [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=drivers/isdn/gigaset Source code] * sis900 adm7001 PHY support: This is required to get a SIS964 based motherboard ethernet working (FSC D1875) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=494aced2cda34c186083f7d53c419426eea3d584 (commit)] * spidernet: enable tx checksum offloading by default [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8dfc914a3f2ae4e303e2bff89f28fc14cee8a9a6 (commit)] * bonding: support carrier state for master [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ff59c4563a8d1b39597aab4917959146c61f09b0 (commit)] * axnet_cs.c: Add hardware multicast support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b8ab2dc3e1a7c525ca73ba0af3518ec0b7654b3b (commit)] * ALSA * Driver for AdLib FM cards. An AdLib card is just an OPL2, the driver has been tested with an actual ancient 8-bit ISA AdLib cards and works fine, but given that AdLib cards don't have their own mixer, upping the volume from 0 might be a problem without the card driver already loaded and driving the OPL3 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cf40a310a7aaf1944eea3e01e9c120b31850c3b6 (commit)] * Make procfs & OSS plugin code optional (CONFIG_SND_VERBOSE_PROCFS, CONFIG_SND_PCM_OSS_PLUGINS) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=21a3479a0b606d36fe24093f70a1c27328cec286 (commit)] * Add Zoom Video support in the ES18xx driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=95b712965f0a50365cc0128dacc27acf562f2ff1 (commit)] * Add support for EDIROL UM-3ex [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e03173fce2f2c233b755f2d668d6d4247a717453 (commit)] * Add Leadtek Winfast tv 2000xp delux to whitelist in the bt848 driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=abf58f095525c0e46b4ee64a4f9c2084b4c08f4c (commit)] * Add support of Prodigy-7.1LT to the ice1724 driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=45fe722ba814dc50410729a473022c550dd96910 (commit)] * ac97: Added a codec patch for LM4550 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ba22429d3ea3b9945735b88d4dde74711171ffab (commit)] * HDA/ALC260: add 'acer' models [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0bfc90e95946ac420e2de049707232ce18ddeba9 (commit)] * via82xx - Add dxs entry for FSC Amilo L7300 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bd84b0cc99d267d6512f01a55af7dbb673f784af (commit)] * Add default entry for CTL Travel Master U553W [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c1fc8047310c9d3147f9521af651a5823a72d218 (commit)] * emu10k1 - Add the entry for Audigy4 SB0400 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4fcf0117d599965a5916985c9923776628e16779 (commit)] * via82xx - Add dxs entry for ASRock mobo [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=42611c02ac31e44abd53893209460ce60205cb8e (commit)] * Add more PCI subsystem IDs of DVB cards to the blacklist of cards to the bt87x driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0110f50b6eb7a833f0e1e4e9a58d04a03d58939c (commit)] * Add snd-als300 driver for Avance Logic ALS300/ALS300+ soundcards [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b3a70d5ece60684c00d7d94ccc42741efdf99336 (commit)] * Add dxs entry for EPoX EP-8KRAI in via82xx driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c04d092bde6a5dce632dec595f3974a35ed2cc2a (commit)] * Add a mixer control which allows the user to switch the Aux playback between the internal Aux jack, Wavetable, and Rear Line-In on Aureon Universe cards [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=af9b70ac0044d126b28d28894cd890447c0a9dc1 (commit)] * Add snd-riptide driver for Conexant Riptide chip [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=109a9638f0fe38915838b7b9acd98e7cfa91797f (commit)] * Add snd-miro driver for miroSOUND PCM [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1841f613fd2e73f09d3fa2beeccf2f8d978ec2db (commit)] * Add support of LG LW20 laptop with ALC880 codec [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d681518a56d25d21d73a421174d189242adc68c7 (commit)] * hda-codec * Add PCM for 2nd ADC on ALC260 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4c5186ed6b25278df595edf2d355ee87b00c4426 (commit)] * Add missing model entries for Intel 945 boards [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=353b9e667042d6faa15a41df022bf38c949a7b2f (commit)] * Added a new model 'laptop-eapd' to AD1986A codec for Samsung R65 and ASUS A6J laptops [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=825aa97241b46d2819c1db984c86a1a9df41b8e1 (commit)] * Add a model entry for Aopen i915GMm-HFS mobo with ALC880 codec [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ede3531e8ce2deb81e477e18d72ef10efeb20ebe (commit)] * Add support for VAIO FE550G and SZ110 laptops with Sigmatel codec (7661). The new model 'vaio' is added [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=db064e503419c32df463326a3891a973bb30582e (commit)] * Add model entry for FIC P4M-915GD1 with ALC880 codec [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a12606cff106335650f0e9382e87b0fb08733eff (commit)] * Added the support ASUS P4GPL-X with ALC880 codec [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=84f3430c7255668a0298d166605d27e3c96b5de4 (commit)] * Add HP model [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=18a815d7426986890b88078ea63b77732baca0b5 (commit)] * Add lg model for LG laptop (m1 express dual) with ALC880 codec [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ae6b813a4dbba2713df497c032798b845289653f (commit)] * Added the support for HP nx9420 (Angelfire) laptop with AD1981HD codec [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b2c2844c5a486020e5d564870d114a7f4cd5ea4f (commit)] * Add support for high definition audio on ATI SB600 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=89be83f8eef781a801898c08a5317ed463fe872f (commit)] * usb-audio * Add a quirk entry for the Edirol PC-50 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=415b09e4559b0c95666af3cebe918386212aef98 (commit)] * Add Miditech Play'n Roll support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b2b8229dde970b95e407d90a140e8a8753e1f0f6 (commit)] * Add Roland G-70 support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cdca881d79dc4133b35db5c855b688ee9cba12a9 (commit)] * Add support for the Yamaha MDP-5 and EZ-J24 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4ccb4a4387b3ed8c5a03862ef1e6f7be484ade25 (commit)] * Add a quirk for the Casio AP-80R [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0243ef71acc0b5bd734b511ae6d9b4b481c1dc5e (commit)] * Add mixer control names for the Audiotrak Maya44 USB [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c7a93b852bf9ffcf466b304fa3cfac8823f9b932 (commit)] * Add a quirk entry for the Casio PL-40R. [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9808dc962f6780ce7eac47c82400fede7f4a08b3 (commit)] * V4L/DVB * Add new internal VIDIOC_INT commands for setting the tuner mode, for putting a chip into standby mode and to set/get the routing of inputs/outputs of audio or video of a chip. These new commands will replace older commands that are no longer up to the task [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=757d250518c4905c5d13c8974446e08a2e3cf244 (commit)] * Add IR support to KWorld DVB-T (cx22702-based) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=28ecc4490100488663f1a978846632800ab198d5 (commit)] * Add standard for South Korean NTSC-M using A2 audio, South Korea uses NTSC-M but with A2 audio instead of BTSC and several audio chips need this information in order to set the correct audio processing registers [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d97a11e091a0bf40f1cfb0bbf443ddd7b455b133 (commit)] * Hauppauge Grey Remote support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bf47e4e43e4dcf88fef61b1b4139ce2da20e1f73 (commit)] * Added terratec hybrid xs and kworld 2800rf support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4d17d0834a2e6a5cba096ea09592a4a096183300 (commit)] * Support for Galaxis DVB-S rev1.3 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8bd6301c2a33271b629ac1ef2088e110624d5665 (commit)] * Hauppauge HVR 900 Composite support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a94e95b443811c127734ef10f3b7d2220532c1d2 (commit)] * Add support for the Avermedia 777 DVB-T card [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a78d0bfabda67dd40a5a97ba4c24265e1820e7ea (commit)] * Added signal detection support to tvp5150 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=19d7509c0531b0e08f52ab93070569e0aba54cdf (commit)] * Add initial support for KWorld HardwareMpegTV XPert [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=44256de13ecc72291b616fda5f2c7ca8b110feec (commit)] * Added support for the Tevion DVB-T 220RF, an analog/digital hybrid card [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3dfb729f4513184d06a0c618179489ac7bb277e0 (commit)] * Add filtered Composite2 input to Pinnacle PCTV 40i: add filtered Composite2 input. This improves video quality for Composite signals on the S-Video connector of the card [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cb46e3c28ef8055e82dfbc64ba64dda123833036 (commit)] * Add support for ELSA EX-VISION 700TV, which is the ELSA Japan's flagship model of the software encoding TV capture card [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d0456d1d67044ff2987190d0d8148a88f1a775af (commit)] * Add support for Terratec Prodigy XS [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=282b7cb3e03d9ada4067083e61919d74197a1e5a (commit)] * Add radio support for KWorld HardwareMpegTV XPert [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e2798212e3ce0057336bc0807beb3213de1dc5be (commit)] * Add support for the Lifeview FlyDVB-T LR301 card [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3d8466ece44c70555a101da73845955c443f4d18 (commit)] * Add DVB-T support for the Lifeview DVB Trio PCI card: only DVB-T support, no DVB-S yet [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=420f32fe4e3eed466a6563e15a89f4688134cc98 (commit)] * Add support for xc3028 analogue tuner (Hauppauge HVR900, Terratec Hybrid XS) to v4l [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0004fd59d57a5875db8897966c414a88b5dad481 (commit)] * Add support for Kworld ATSC110 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3e1410adc7cc9e8511327179b5b86864be17b7f9 (commit)] * Add cpia2 camera support [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ab33d5071de7a33616842882c11b5eb52a6c26a1 (commit)] * Add support for the FE6600 tuner used on the DViCO FusionHDTV DVB-T Hybrid board, and add support for the Zarlink ZL10353 DVB-T demodulator, which supersedes the MT352, used on the DViCO FusionHDTV DVB-T Hybrid and later model Plus boards [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=780dfef37e2c941985b708f67aa0074edc922bea (commit)] * Add support for Satelco Easywatch DVB-S light [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=36f4f334a169e5d42721d74b5d92fda89f792b06 (commit)] * Add support for remote control in Lifeview FlyDVB-T Duo [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a8029170b907e7bfac5f6ea3fcd5d076e90beaf3 (commit)] * Add support for AVerMedia A169 Dual Analog tuner card (dual saa7134 decoders - only 1 working right now) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=68593af311aadb541b3b70acea175dea8e9cf7ca (commit)] * Added ID entries for the Genius VideoWonder DVB-T and the LifeView FlyTV Platinum Gold [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=42e6b3b476f89b08232d1c1efd2327665b9050c8 (commit)] * There seems to be a new version of the USB DVB-T stick from WideView with a new demod-revision inside and thus a new firwmare. This patch enables support for that [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d46e6451956df4bee829dfebd5b521d0ee4868d1 (commit)] * Added support for the new Lifeview hybrid cardbus modules [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d95b8942eed310759bc866a2a4c0f110578aaa69 (commit)] * Added keycodes for the DViCO FusionHDTV portable remote control in Cxusb driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c150178bff4ae76635ccb06abd5258933379ecc6 (commit)] * Remove VIDIOC_S_AUDIO from tvaudio: no longer used [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=11cda1075d8c40e536b77fce6dbf4cdbf8f77736 (commit)] * Add support for the Wolfson Microelectronics WM8739 stereo A/D converter from the ivtv driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=75c4570ca4849b089c4edfc14bf02b4720087aba (commit)] * Cx88 default picture controls values [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9f9c907fdc331fc6062d758f46f65cb0d2dd11be (commit)] * Add PAL / SECAM support to LG TALN series [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f3629be8388a679590eb919919ee63e2715ec25e (commit)] * Add support for the uPD6408x NEC Electronics 3-Dimensional Y/C separation i2c device [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=add953cecba870f4ad7730bd0a6d5eaaabeac3bc (commit)] * Creates a virtual video device driver. The Virtual Video Device Driver (aka vivi) is a device that can be used to test core v4l functionalities or be a prototype for newer development. When loaded, it provides a video device that generates a standard color bar, with a timestamp placed at top left corner [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1e6dd65e17b8b584026334b16485365bab486422 (commit)] * Infiniband: * PathScale InfiniPath Verbs Driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=cd5e25d93e6efeb93db7b6731b0a674495270621 (commit)] * Various updates [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=064c94f9da8845f12446ab37142aa10f3c6f66ac (commit)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ace48471736a4b00753c74633f430c4a3a7d89cb (commit)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=52aef8183fbedb0232b20127b089e85e7aa095e3 (commit)] * IRDA * TOIM3232 dongle support: Here goes a patch for supporting TOIM3232 based serial IrDA dongles [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0ac81ae34ec8898e7eb1388fe21e3cee7b626a88 (commit)] * nsc-ircc: support for yet another Thinkpad IrDA chipset, a variation of the nsc-ircc PC8739x chipset, found in some IBM Thinkpad laptops [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0ed79c9b7dea5cd9a55589a495cf96f00cd037d9 (commit)] * nsc-ircc: Enable PnP support for the nsc-ircc chipset [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ec4f32d550b94b4b66c9c7689bc09c6b32c8e82e (commit)] * Video: * vgacon: Add support for soft scrollback. The scrollback buffer of the VGA console is located in VGA RAM. This RAM is fixed in size and is very small. To make the scrollback buffer larger, it must be placed instead in System RAM. The feature and the size of the buffer are made as a kernel config option. Besides consuming kernel memory, this feature will slow down the console by approximately 20% [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=15bdab959c9bb909c0317480dd9b35748a8f7887 (commit)] * fbdev: Support the framebuffer driver for the display controller in AMD Geode GX processors (Geode GX533, Geode GX500 etc). Tested at 640x480, 800x600, 1024x768 and 1280x1024 at 8, 16, and 24 bpp with both CRT and TFT. No accelerated features currently implemented and compression remains disabled. This driver requires that the BIOS (or the SoftVG/Firmbase code in the BIOS) has created an appropriate virtual PCI header [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=fc4effc7a98d0d320e478d1d42bc4a8a64380150 (commit)] * nvidiafb: Add suspend and resume hooks to make software suspend more reliable [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7a07cd786dbd0111b9dd977e114438220cb4eee5 (commit)] * Add ID for Quadro NVS280: Quadro NVS280 is a dual-head PCIe card [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ed49843b897da9969e349c279ffc832efcb93213 (commit)] * fbdev: Make BIOS EDID reading configurable: DDC reading via the Video BIOS may take several tens of seconds with some combination of display cards and monitors [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=59153f7d7effdb5b3c81eb6d03914a866157b319 (commit)] * fbdev: add modeline for 1680x1050@60 for the Philips 200W display. aty128fb does not do DDC, it picks 1920x1440 or similar. It works ok with nvidiafb because it can ask for DDC data. [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b0c87978216836455ef5fbcac6df1ce6679750b0 (commit)] * au1200fb: Add support for Alchemy Au1200 framebuffer driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f95ec3c6df271ae4e6290cd6b95c18a009c76dc9 (commit)] * w100fb: Add acceleration support in w100fb.c (i.e. ATI Imageons) for the copyarea and fillrect operations [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9b0e1c5dd2941aec566047e10a5cc929ca7f7d4f (commit)] * Remove old radeon driver, which has been obsoleted by the new one since a few releases [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=39451a73a2d190763ba8a98f486cf23d63d22582 (commit)] * i2c * Add support for the CS5535/CS5536 in the scx200_acb driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=16ffc5c99554bc1630bc3939e0950a75b2b1c811 (commit)] * Add Broadcom HT-1000 south bridge's PCI ID to i2c-piix driver. Note that at least on Supermicro H8SSL it uses non-standard SMBHSTCFG = 3 and standard values like 0 or 9 causes hangup [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5f7ea3c58c9aa571617a9d77dd2fbd4bd81cc50a (commit)] * Add the DS2482 I2C-to-w1 bridge driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=baf12ae29ab4cc6381e21b2e1a3af75a6a8f7566 (commit)] * acpiphp * Add dock event handling: These patches add generic dock event handling to acpiphp. If there are pci devices that need to be inserted/removed after the dock event, the event notification will be handed down to the normal pci hotplug event handler in acpiphp so that new bridges/devices can be enumerated. Because some dock stations do not have pci bridges or pci devices that need to be inserted after a dock, acpiphp will remain loaded to handle dock events even if no hotpluggable pci slots are discovered. You probably need to have the pci=assign-busses kernel parameter enabled to use these patches, and you may not allow ibm_acpi to handle docking notifications and use this patch [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=20416ea54087c25502d6fb973b8e119973e16341 (commit)] * Add new bus to acpi: If we add a new bridge with subordinate busses, we should call make sure that acpi is notified so that the PRT (if present) can be read and drivers who have registered on this bus will be notified when it is started. Also make sure to use the max reserved bus number for the starting the bus scan [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=15a1ae74879925d0d3f71ebc3f56d0a2c5db393a (commit)] * hwmon * Add support for the Intel Pentium M series to the hwmon-vid driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4c537fb287e68b84df685f4730348e83a163367b (commit)] * Add support for the Winbond W83687THF chip to the w83627hf hardware monitoring driver. This new chip is almost similar to the already supported W83627THF chip, except for VID and a few other minor changes [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c2db6ce14a743ac5f8973124272cf425c4f86b90 (commit)] * pcmcia * Add support for Possio GCC AKA PCMCIA Siemens MC45 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=30bac7aa0e3678c79ff00fc9372f34712eeb34fc (commit)] * AT91RM9200 Compact Flash driver: This patch adds support for the Compact Flash controller integrated in he Atmel AT91RM9200 processor [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2c1f3b7a30286c16ba151fadb0abf0b20e2a1e45 (commit)] * Serial: * Add rs422 support to the Altix ioc4 serial driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=64b91379439ff0fb007bde90eb496299c14a9b2a (commit)] * serial_cs: Add Merlin U630 IDs [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=1de9cedfbdff1d8adb662cd3afc5bda66e393351 (commit)] * Allow 8250 PCI, PNP, GSC and HP300 support to be disabled with EMBEDDED enabled [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0cff260a42c051ee64c184ed05d96d18d243f7f6 (commit)] * mmc * Secure Digital Host Controller Interface driver: Driver for the Secure Digital Host Controller Interface specification [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d129bceb1d44ed3c23b99164849193703372bab4 (commit)] * Add OMAP MMC host driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=730c9b7e6630f786fcec026fb11d2e6f2c90fdcb (commit)] * udf: fix uid/gid options and add uid/gid=ignore and forget options: As Pekka Enberg pointed out, with the if still following the else, you can still get a null uid written to the disk if you specify a default uid= without uid=forget. In other words, if the desktop user is uid=1000 and the mount option uid=1000 is given ( which is done on ubuntu automatically and probably other distributions that use hal ), then if any other user besides uid 1000 owns a file then a 0 will be written to the media as the owning uid instead [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0e6b3e5e97e2e8a25bcfc528dad94edf5220dfeb (commit)] * aoe: support dynamic resizing of AoE devices: Allow the driver to recognize AoE devices that have changed size. Devices not in use are updated automatically, and devices that are in use are updated at user request [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3ae1c24e395b2b65326439622223d88d92bfa03a (commit)] * dm/md: * Raid5 reshaping support [http://lwn.net/Articles/169140/ (LWN article)] [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=ccfcc3c10b2a5cb8fd3c918199a4ff904fc6fb3e (commit)] * Infrastructure to allow normal IO to continue while array is expanding: We need to allow that different stripes are of different effective sizes, and use the appropriate size. Also, when a stripe is being expanded, we must block any IO attempts until the stripe is stable again [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=7ecaa1e6a1ad69862e9980b6c777e11f26c4782d (commit)] * Following symlinks are created if dm-0 maps to sda: /sys/block/dm-0/slaves/sda --> /sys/block/sda, /sys/block/sda/holders/dm-0 --> /sys/block/dm-0 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f165921df46a977e3561f1bd9f13a348441486d1 (commit)] * Following symlinks are created if md0 is built from sda and sdb: /sys/block/md0/slaves/sda --> /sys/block/sda, /sys/block/md0/slaves/sdb --> /sys/block/sdb, /sys/block/sda/holders/md0 --> /sys/block/md0, /sys/block/sdb/holders/md0 --> /sys/block/md0 [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5463c7904c952aa6b6804dd902c72a5332fa5221 (commit)] * LED * Adds an LED driver for LEDs exported by the Sharp LOCOMO chip as found on some models of Sharp Zaurus [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4d3cb35476903768541f79e61f171e79e6065098 (commit)] * Add NAND MTD activity LED trigger [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=8fe833c1b010489b71b082e553b1dfa80ef81061 (commit)] * Adds LED drivers for LEDs found on the Sharp Zaurus c7x0 (corgi, shepherd, husky) and cxx00 (akita, spitz, borzoi) models [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3179108daaaccbf28b17d6d8b0e06abf0eee6d9f (commit)] * Add an LED trigger for IDE disk activity to the ide-disk driver [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2bfb646cdf348cb77c572f06d5b9d17ea205c7e2 (commit)] * Add an LED trigger for the charger status as found on the Sharp Zaurus series of devices [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=181bf8aa68a1d062d7f98abb0f1cb8871910320c (commit)] * Adds LED drivers for LEDs found on the Sharp Zaurus c6000 model (tosa) [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6d0cf3e0480f6be9232854387794443d1a904d6d (commit)] * LED: class documentation [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=75c1d31d9ea71025b73430c696b727e8aa15872d (commit)] * Add LED class [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c72a1d608dd0eb3d553a08bfdf1c0041bebaa8a0 (commit)] * add LED device support for ixp4xx devices [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6a0c51bfce5ae4058366017d861aea6564d25aee (commit)] * Add support for LED triggers to the LED subsystem. "Triggers" are events which change the state of an LED. Two kinds of trigger are available, simple ones which can be added to exising code with minimum disruption and complex ones for implementing new or more complex functionality [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c3bc9956ec52fb2c70f29aa894d8eec766116584 (commit)] * Add an example of a complex LED trigger in the form of a generic timer which triggers the LED its attached to at a user specified frequency and duty cycle [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6655c6fe575b720eb8cb6c143ae10995a7aa1916 (commit)] * Add driver support for general purpose I/O feature of the Synclink GT adapters [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=0080b7aae88c75e2a6b38dfcb228b0f239e18e3c (commit)] * WATCHDOG at91_wdt.c Watchdog driver for the Atmel AT91RM9200 processor [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=853807fb500a9442d88646b7be92bfa51334f8e8 (commit)] Rules and tips: * Name of the new feature/description of the change, including a small explanation (if possible). Add links to web pages (if available), papers, etc. Keep the structure of previous changelogs! * If there's a interesting email (benchmarks, announcements if there's no web page, etc) about it in the mailing lists, get a link in one of the list's archives (at http://marc.theaimsgroup.com/?l=linux-kernel please, just for coherence. There're also fsdev & netdev mailing lists, etc) and add it. * Add commit's link to the git's web interface if possible, using the "(commit)" word. * To find commit's links you can search in the [http://www.kernel.org/git git web interface]. Remember that there're two main GIT trees where you can search for commits: [http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git the one which has all the stuff committed after 2.6.12-rc2] (ie: current development) and [http://kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git the one which has all the stuff BEFORE 2.6.12-rc2] * However, if you want to keep track in "realtime", do NOT use the git's web interface (or the RSS). The RSS gets overflowed when there's a big merge. And more importantly, the shortlog you find in git's web interface does NOT care when things were really "committed": If a developer writes a patch, merges it in his git repository and then Linus pulls and merges it a month after it was merged in the developer's repository , the commit data won't appear in the "todays shortlog", but in the one-month-old changes (this could be fixed in the future however). * IOW: To keep track of the linux merges in realtime, the best option is to [http://vger.kernel.org/vger-lists.html#git-commits-head subscribe to the git-commits-head] mailing list (or search in the archives). Commit IDs are in the X-Git-Commit mail header. Tell your mailer to show them (by default it will be hidden unless you activate the "see the whole mail" option), if your mailer is good enought you'll be able to add a script which gets the Commit ID out of the header and launch a browser with the "http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=" needed gitweb URL before it. * It may look too hard to review the thousands of emails you get from the git-commit-head list, get the commit ID, the URL, a description and format all of it to put it here: "Formatting" is what would take most of your time. But the fact is that you can avoid most of the hard job by using some tricks. First of all, most of the relevant commits will be merged (and sent to the git-commits-head list) in the first two weeks after a kernel is released. When the mailing list sends you the commit messages, use the "mark" feature of your mailer to mark important commits - this is a easy operation, since the subject tells you if the commit is important, you can review quite a lot of commit messages per minute. When you're done, create an action/filter/whatever which allows you to extract the commit id. My MUA (sylpheed) allows me to create an "action" which allows me to pass the selected message(s) to a command. This allows to me to order my messages by marked/umarked to make easier to select at the same time all the marked messages, the I tell sylpheed to execute the previous "action", which runs a scripts which "greps" the commit-id out of the email headers and appends it to a file. This way I get a file with a list of all the relevant commit IDs (Other MUAS could have another methods to achieve this same goal or not have any at all). Now, with a local linux git repository (updated to head) and with a bit of scripting you can get (with git) the changelog information of every commit ID, so you can parse that information and generate a wiki-compatible-syntax list of commits with descriptions, URLs to gitweb automatically generated, etc. You'll need to fix the descriptions, but you get a LOT of work done automatically. * The web interface will show "meta-commits". When Linus merges things from a remote repository, You'll see a "Merge git://git.domain.com/foo/bar" style of message commit. If you click it for details you'll see a huge merge, but then the git shortlog will also show the individual commits. So those "meta-commits" are useful to add links to big merges which do one thing but do not mean anything by themselves. Those "meta-commits" will not be mailed to the git-commits-head mailing list. Random related stuff: * [http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.14-rc5/2.6.14-rc5-mm1/broken-out/post-halloween-doc.patch davej's post halloween document], [http://kernelnewbies.org/status/latest.html Kernelnewbies status] * Todo: Find links to corresponding changesets for the untracked 2.5 releases (if you're really bored) |
<<Include(Linux_4.14)>> |
Changes done in each Linux kernel release. Other places to get news about the Linux kernel are LWN kernel status, H-Online, or the Linux Kernel mailing list (there is a web interface in www.lkml.org). List of changes of older releases can be found at LinuxVersions. If you're going to add something here look first at LinuxChangesRules!
You can discuss the latest Linux kernel changes on the New Linux Kernel Features Forum.
Linux 4.14 has been released on 12 Nov 2017.
Summary: This release includes support for bigger memory limits in x86 hardware (128PiB of virtual address space, 4PiB of physical address space); support for AMD Secure Memory Encryption; a new unwinder that provides better kernel traces and a smaller kernel size; a cgroups "thread mode" that allows resource distribution across the threads of a group of processes; support for the zstd compression algorithm has been added to Btrfs and Squashfs; support for zero-copy of data from user memory to sockets; better asynchronous buffered I/O support; support for Heterogeneous Memory Management that will be needed in future GPUs; better cpufreq behaviour in some corner cases; Longer-lived TLB entries by using the PCID CPU feature; asynchronous non-blocking buffered reads; and many new drivers and other improvements.
Contents
-
Prominent features
- Bigger memory limits
- Add support for AMD Secure Memory Encryption
- Better kernel traces with the ORC unwinder
- zstd compression in Btrfs and Squashfs
- Zero-copy from user memory to sockets
- Heterogeneous Memory Management for future GPUs
- Asynchronous buffered I/O support
- Better cpufreq coordination with SMP
- Control Groups thread mode
- Longer-lived TLB Entries with PCID
- Core (various)
- File systems
- Memory management
- Block layer
- Tracing, perf and BPF
- Virtualization
- Security
- Networking
- Architectures
-
Drivers
- Graphics
- Storage
- Drivers in the Staging area
- Networking
- Audio
- Tablets, touch screens, keyboards, mouses
- TV tuners, webcams, video capturers
- Universal Serial Bus
- Serial Peripheral Interface (SPI)
- Watchdog
- ACPI, EFI, cpufreq, thermal, Power Management
- Real Time Clock (RTC)
- Voltage, current regulators, power capping, power supply
- Pin Controllers (pinctrl)
- Multi Media Card (MMC)
- Memory Technology Devices (MTD)
- Industrial I/O (iio)
- Multi Function Devices (MFD)
- Pulse-Width Modulation (PWM)
- Inter-Integrated Circuit (I2C)
- Hardware monitoring (hwmon)
- General Purpose I/O (gpio)
- Leds
- DMA engines
- Cryptography hardware acceleration
- PCI
- Clock
- Various
- List of merges
- Other news sites
1. Prominent features
1.1. Bigger memory limits
Original x86-64 was limited by 4-level paging to 256 TiB of virtual address space and 64 TiB of physical address space. People are already bumping into this limit: some vendors offers servers with 64 TiB of memory today. To overcome the limitation upcoming hardware will introduce support for 5-level paging. It is a straight-forward extension of the current page table structures adding one more layer of translation. It bumps the limits to 128 PiB of virtual address space and 4 PiB of physical address space. This "ought to be enough for anybody" ©.
On x86, 5-level paging enables 56-bit userspace virtual address space. Not all user space is ready to handle wide addresses. It's known that at least some JIT compilers use higher bits in pointers. It collides with valid pointers with 5-level paging and leads to crashes. To mitigate this, the Linux kernel will not allocate virtual address space above 47-bit by default. Userspace can ask for allocation from full address space by specifying hint address above 47-bits.
Recommended LWN article: Five-level page tables
Code: commit, commit, commit, commit, merge
1.2. Add support for AMD Secure Memory Encryption
Secure Memory Encryption can be used to mark individual pages of memory as encrypted through the page tables. A page of memory that is marked encrypted will be automatically decrypted when read from DRAM and will be automatically encrypted when written to DRAM. Secure Memory Encryption can therefore be used to protect the contents of DRAM from physical attacks on the system.
Recommended LWN article: Two approaches to x86 memory encryption
AMD Memory encryption whitepaper: link
Code: commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
1.3. Better kernel traces with the ORC unwinder
This release includes a new "unwinder". An "unwinder" is what prints the list of functions (aka. stack trace, callgraph, call stack...) that have been executed before reaching a determinate point of the code, and it's used, for example, the list of functions that lead to a crash when a kernel oopses. The new unwinder is called ORC, an alias for "Oops Rewind Capability", and has been developed as an simpler alternative to the DWARF debuginfo format.
Linux already has an unwinder, and while it usually works well, it isn't reliable in all situations, which causes troubles for modern functionality like live patching that requires completely reliable stack traces. It also requires a functionality called "frame pointers" (CONFIG_FRAME_POINTERS) to print complete call stacks. Frame pointers make GCC add instrumentation code to every function in the kernel, which increases the size of the kernel executable code by about 3.2%, resulting in a broad kernel-wide slowdown, and more for some workloads. This option is enabled by default in some Linux distros.
In contrast, the ORC unwinder does not need to insert code anywhere so it has no effect on text size or runtime performance, because the debuginfo (about 2-4MiB) is placed out of band. So the ORC unwinder provides a nice performance improvement across the board compared with frame pointers, while at the same time having reliable stack traces.
Recommended LWN article: The ORCs are coming
Recommended article: The Linux x86 ORC Stack Unwinder
1.4. zstd compression in Btrfs and Squashfs
zstd offers a wide variety of compression speed and quality trade-offs. It can compress at speeds approaching lz4, and quality approaching lzma. zstd decompressions at speeds more than twice as fast as zlib, and decompression speed remains roughly the same across all compression levels. Because it is a big win in speed over zlib and in compression ratio over lzo, FB has been using it in production with great results. Support has also been added for squashfs. For benchmark numbers see the links.
Project page: https://github.com/facebook/zstd
Code: commit, commit, commit, commit
1.5. Zero-copy from user memory to sockets
Copying large buffers between user process and kernel can be expensive. Linux supports various interfaces that eschew copying, such as sendpage(2) and splice(2). The MSG_ZEROCOPY socket flag extends the underlying copy avoidance mechanism to common socket send calls. Copy avoidance is not a free lunch. As implemented, with page pinning, it replaces per byte copy cost with page accounting and completion notification overhead. As a result, MSG_ZEROCOPY is generally only effective at writes over around 10 KB.
Recommended LWN article: Zero-copy networking
Documentation: MSG_ZEROCOPY
Netdev talk: sendmsg copy avoidance with MSG_ZEROCOPY
1.6. Heterogeneous Memory Management for future GPUs
Today device driver expose dedicated memory allocation API through their device file, often relying on a combination of IOCTL and mmap calls. The device can only access and use memory allocated through this API. This effectively split the program address space into object allocated for the device and useable by the device and other regular memory (malloc, mmap of a file, share memory, ...) only accessible by CPU (or in a very limited way by a device by pinning memory). Allowing different isolated component of a program to use a device thus require duplication of the input data structure using device memory allocator. This is reasonable for simple data structure (array, grid, image, ...) but this get extremely complex with advance data structures. This is becoming a serious limitation on the kind of work load that can be offloaded to device like GPU.
New industry standard like C++, OpenCL or CUDA are pushing to remove this barrier. This require a shared address space between GPU device and CPU so that GPU can access any memory of a process (while still obeying memory protection like read only). This kind of feature is also appearing in various other operating systems. Heterogeneous Memory Management is a set of helpers to facilitate several aspects of address space sharing and device memory management.
Recommended LWN article: Heterogeneous memory management
Documentation: Documentation/vm/hmm.txt
Code: commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
1.7. Asynchronous buffered I/O support
The buffered I/O path in Linux can block in some situations. Using a threadpool to emulate non-blocking operations on regular buffered files is a common pattern today (samba, libuv, etc...) Applications split the work between network bound threads (epoll) and IO threadpool. Not every application can use sendfile syscall (TLS / post-processing). This common pattern leads to increased request latency. Latency can be due to additional synchronization between the threads or fast (cached data) request stuck behind slow request (large / uncached data).
In this release, the preadv2(2) syscall with RWF_NONBLOCK will let userspace applications bypass enqueuing operation in the threadpool if it's already available in the pagecache.
Code: commit, commit, commit, commit
1.8. Better cpufreq coordination with SMP
In Linux, notifications of task scheduler events are sent to the cpufreq subsystem, so that it can increase the frequency if needed, and achieve good interactivity. However, the cpufreq drivers are not called when the events are happening in different CPUs, for example, a new process being created in another CPU. This release makes task scheduler to update the cpufreq policies for remote CPUs as well. The schedutil, ondemand and conservative governors are updated to process cpufreq updates for remote CPUs (the intel_pstate driver is updated to always reject them).
Recommended LWN article: CPU frequency governors and remote callbacks
1.9. Control Groups thread mode
In this release, cgroup v2 supports thread granularity, to support use cases requiring hierarchical resource distribution across the threads of a group of processes. By default, all threads of a process belong to the same cgroup, which also serves as the resource domain to host resource consumptions which are not specific to a process or thread. The thread mode allows threads to be spread across a subtree while still maintaining the common resource domain for them.
Recommended LWN article: A milestone for control groups
Code: commit, commit, commit, commit, commit, commit
1.10. Longer-lived TLB Entries with PCID
PCID is a hardware feature that has been available on Intel CPUs and that it attaches an address space tag to TLB entries and thus allows the hardware to skip TLB flushes when it context-switches. x86's PCID is far too short to uniquely identify a process, and it can't even really uniquely identify a running process because there are monster systems with over 4096 CPUs. To make matters worse, past attempts to use all 12 PCID bits have resulted in slowdowns instead of speedups.
This release uses PCID differently. It uses a PCID to identify a recently-used mm on a per-cpu basis. An mm has no fixed PCID binding at all; instead, it is given a fresh PCID each time it's loaded except in cases where the kernel wants to preserve the TLB, in which case it reuses a recent value.
Code: commit, commit, commit, commit, commit, commit, commit, commit
2. Core (various)
Asynchronous I/O: non-blocking buffered reads (FEATURED) commit, commit, commit, commit
- Control Groups (cgroup)
Implement cgroup v2 thread mode (FEATURED) commit, commit, commit, commit, commit, commit
Adds a new cgroupfs mount option, cpuset_v2_mode, to enable cpuset controller to use v2 behavior in a v1 cgroup commit, commit
cgroup: introduce an ability to control the size of cgroup hierarchy. The cgroup.max.descendants file allows to set the maximum allowed number of descendant cgroups, the cgroup.max.depth file controls the maximum depth of the cgroup tree. A cgroup.stat file is added with some stats commit, commit, commit, commit
cpufreq: schedutil: Make iowait boost more energy efficient by doubling the boost for every consecutive iowait update, instead of going directly to the maximum commit
- gcc plugins
PM: docs: Describe high-level PM strategies and sleep states commit
futex: Allow for compiling out PI support commit
Remove gperf usage from toolchain commit
- IRQ
ipc: optimize semget/shmget/msgget for lots of keys commit
lockdep: Add 'cross-release' support, which allows APIs like completions or page locks, where it's not the 'owner' who releases the lock, to be tracked too commit, commit, commit,commit
Add zstd compression and decompression (FEATURED) commit
Add xxhash hash algorithms (needed by zstd) commit
Extend the sys_membarrier(2) ABI with the MEMBARRIER_CMD_PRIVATE_EXPEDITED variant. It executes faster than the non-expedited variant (no blocking), and it also works on NOHZ_FULL configurations commit
prctl: Allow local CAP_SYS_ADMIN changing exe_file, used by checkpointing software commit
- task scheduler
Call the cpufreq callbacks for remote CPUs as well as local (FEATURED) commit, commit
Hotplug state fail injection commit
Improve the interrupt and rescheduling latency in systems that have a very long wakeup list commit, commit
Add debugfs knob for "sched_debug" commit
Show task state in /proc/sched_debug commit
objtool: Add ORC unwind table generation (FEATURED) commit
Greatly improve quota scalability (100% improvement for file creation and about 50% improvement for file unlink in some benchmarks) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
driver core: emit uevents when device is bound to a driver commit
power management: Extend generic power domain debugfs commit
firmware: delete in-kernel firmware commit
3. File systems
- BTRFS
Add zstd support (FEATURED) commit
Allow a degraded read-write mount if all the raid profile constraints are met commit, commit
Improve ssd allocation algorithms commit
Allow defrag compress to override NOCOMPRESS attribute commit
Convert prelimary reference tracking to use rbtrees (prep work for better extent reference tracking) commit
Deprecate userspace transaction ioctls commit
- EXT4
- XFS
Disable per-inode DAX flag, as it can crash commit
- F2FS
Support F2FS_IOC_FS{GET,SET}XATTR commit
Support inode checksum commit
Introduce discard_granularity sysfs entry commit
Support project quota commit
Support journalled quota commit
Add app/fs io stat commit
Enhance on-disk inode structure scalability commit
Introduce gc_urgent mode for background GC commit
- CIFS
- SQUASHFS
Add zstd support (FEATURED) commit
- AUTOFS4
4. Memory management
Heterogeneous Memory Management (FEATURED) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Second step of Transparent Huge Page swap optimization. In the first step, the splitting huge page is delayed from almost the first step of swapping out to after allocating the swap space for the THP and adding the THP into the swap cache. In the second step, the splitting is delayed further to after the swapping out finished. Swap out throughput of THP improves 42% in some benchmarks commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Virtual memory based swap readahead. The traditional approach is readahead based on the placement of pages in the swap device; this release does swap readahead based on the placement of swapped pages in virtual memory. This approach causes extra overhead in traditional HDDs, which is why it's only enabled for SSDs. A sysfs knob, /sys/kernel/mm/swap/vma_ra_enabled, has been added that allows to enable it manually; swap readahead statistics are also available commit, commit, commit, commit, commit
percpu: replace percpu area map allocator with bitmap allocator. There now exist use cases that allocate a million or more objects, which made the previous implementation inadequate commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Memory hotplug: remove zone restrictions and allow explicit onlining type on any memblock, regardless of the physical adress commit, commit
Separate NUMA statistics from zone statistics for improved scalability commit, commit, commit
Transparent huge pages migration without breaking the huge page first commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
hugetlb: when clearing a huge page from the begin to the end, it is possible that the begin of the huge page is evicted from the CPU cache, and it is possible for the application to access the begin of the huge page after clearing the huge page. This release clears the huge page from the end to the beginning commit
madvise(2): introduce MADV_WIPEONFORK, which result in a memory area being empty in the child process after fork. It differs from MADV_DONTFORK in that if a child process accesses memory that was MADV_WIPEONFORK, it will get zeroes, but the address ranges are still valid. It only works on private, anonymous VMAs. It is similar to the OpenBSD minherit syscall with MAP_INHERIT_ZERO commit, commit
swap: choose swap device according to numa node to improve performance commit
shmem: add hugetlbfs support to memfd_create(2), adding a new flag, MFD_HUGETLB. It is useful for the Oracle garbage collection commit
Add /proc/pid/smaps_rollup, a new proc file. Some systems (eg Android) regularly samples the memory usage in /proc/pid/smaps to determine aggregate memory statistics (e.g., total PSS) of a process. For very large processes, that can be too slow, as printing the information in /proc/pid/smaps can be too slow. The new file contains most of the fields of /proc/pid/smaps, but instead of a set of fields for each VMA, it contains one synthetic smaps-format entry representing the whole process. In the single smaps_rollup synthetic entry, each field is the summation of the corresponding field in all of the real-smaps VMAs. The same format is preserved so thatuserspace parsers can repurpose parsers with minimal fuss commit
SLUB: add free list pointer obfuscation inspired from PaX. It adds nearly zero overhead and frustrates the very common heap overflow exploitation method of overwriting freelist pointers commit
SLUB: add a naive detection of double free or corruption similar to "fasttop" check in GNU C Library allocator commit
userfaultfd: enable zeropage support for shmem commit, commit, commit, commit, commit, commit, commit
userfaultfd: allow to request for a signal to the faulting process, instead of the page-fault event. Dealing with page-fault event using a monitor thread can be an overhead in these cases commit
userfaultfd: provide pid in userfault msg, it could be useful for calculating downtime during postcopy live migration per vCPU commit, commit
zRam: support writing incompressible pages to disk commit, commit, commit, commit, commit, commit, commit, commit, commit
z3fold: use per-cpu unbuddied lists for improved scalability commit
5. Block layer
Add a DAX common 4k zero page commit, commit, commit, commit, commit
bfq: boost throughput with flash-based non-queueing devices commit
Device Mapper: dm integrity: count and display checksum failures commit
loop: add ioctl for changing logical block size commit
drbd: new disk-option disable-write-same commit
null_blk: add configfs interface commit, add interface to power on disk commit, badbblocks support commit, bandwidth control commit, emulate cache commit, support discard commit, support memory backed store commit
6. Tracing, perf and BPF
- perf
Record the branch type and then show statistics and info about in callchain entries. A new option save_type is added in --branch-filter option for perf record. It is also possible now for --branch-history to work without callgraphs commit, commit, commit, commit, commit, commit, commit, commit
Add the new sample type for physical address to allow the tracing/profiling of physical memory addresses (with new option --phys-data), where the PMU supports it commit, commit, commit, commit, commit
Implement a visual marker for fused x86 instructions in the annotate TUI browser, available now in 'perf report' commit, commit
Export some PMU capability details in the new /sys/bus/event_source/devices/cpu/caps/ sysfs directory commit
Add initial support for namespaces, using setns to access files in namespaces, grabbing their build-ids, etc commit, commit, commit, commit, commit
pipe mode: process tracing data in 'perf annotate' pipe mode commit
perf annotater: Support --show-nr-samples option commit, commit
perf annotate browser: Circulate percent, total-period and nr-samples view commit
perf buildid-cache: Cache debuginfo commit
perf report: Enable finding kernel inline functions commit
perf script: Add support for exporting to sqlite3 commit
perf tools: Add support for printing new mem_info encodings commit
- BPF
Add support for sys_enter_* and sys_exit_* tracepoints commit
Allow selecting numa node during map creation commit, commit
Add new jump instructions (BPF_J{LT,LE,SLT,SLE) to eBPF in order to reduce register pressure by avoiding BPF_J{GT,GE,SGT,SGE} rewrites and result in shorter BPF programs, less stack usage and less verification complexity commit, commit, commit, commit, commit, commit, commit, commit, commit
Add bpf device maps and XDP_REDIRECT, which can be used to build arbitrary switching frameworks using XDP commit, commit, commit, commit, commit, commit, commit, commit, commit
Implements a sockmap and socket redirect helper using a model similar to XDP netdev redirect. A sockmap is a BPF map type that holds references to sock structs. Then with a new sk redirect bpf helper BPF programs can use the map to redirect skbs between sockets. To use this infrastructure a new BPF program BPF_PROG_TYPE_SK_SKB is added that allows users to reference sock details, such as port and ip address fields, to build useful socket layer program commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add option to set mark and priority in addition to bound device for newly created sockets. Also, allow the bpf programs to use the get_current_uid_gid helper meaning socket marks, priority and device can be set based on the uid/gid of the running process commit, commit, commit, commit, commit, commit, commit
7. Virtualization
XEN: introduce the frontend for the newly introduced PV Calls procotol commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
hv_sock: implements Hyper-V transport for Virtual Sockets (AF_VSOCK) commit
8. Security
- seccomp
Improved logging: admins can permit or quiet logging of specific seccomp actions; applications can request logging of all actions (except for RET_ALLOW); it makesit possible for devsto request logging of specific syscalls commit, commit, commit, commit, commit, commit
Implement SECCOMP_RET_KILL_PROCESS action (SECCOMP_RET_KILL is aliased to SECCOMP_RET_KILL_THREAD) commit, commit, commit, commit
Introduce v3 namespaced file capabilities that allows to change file capabilities inside a namespace, without leaking the capability outside of the namespace. For more information, read the recommended LWN article. commit
exec: Use sane stack rlimit under secureexec commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
- Selinux
audit: Reduce overhead using a coarse clock commit
Extract early boot entropy from the passed cmdline commit
9. Networking
Introduce zerocopy socket send flag MSG_ZEROCOPY (FEATURED) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Support RX checksum with IPsec crypto offload for esp4/esp6 commit, commit
Generic Routing Encapsulation: Add ERSPAN type II tunnel support. One of the purposes is for Linux box to be able to receive ERSPAN monitoring traffic sent from the Cisco switch, by creating a ERSPAN tunnel device. In addition, the patch also adds ERSPAN TX, so Linux virtual switch can redirect monitored traffic to the ERSPAN tunnel device commit
IPv6 Segment Routing
Add support for advanced local segment processing, as specified in most recent specifications of IPv6 SR commit, commit, commit, commit, commit
Support encapsulation of IPv4 packets commit
Implements the T.Encaps.L2 SR function, enabling to encapsulate an L2 Ethernet frame within an IPv6+SRH packet commit
Update the seg6local lightweight tunnel, and mainly implement four new actions: End.T, End.DX2, End.DX4 and End.DT6 commit, commit, commit
sched actions: improve dump performance by adding support for filtering based on time since last used commit, commit, commit, commit
NCSI: VLAN Filtering Support commit
unix sockets: drop obsolete fd-recursion limits. All unix sockets now account inflight FDs to the respective sender. There is no known way for a local user to exceed those limits or exploit the accounting commit
UDP: Allow to switch off UDP-based tunnel offloads per device commit, commit, commit, commit, commit, commit
Distributed Switch Architecture: learning static FDB entries via the switchdev notification chain rather then by using bridge bypass SELF flag commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
IPv6: optimization: avoid overhead when no custom FIB rules are installed commit
IPv6: Add sysctl for per namespace flow label reflection commit
Allow IPsec GSO for local sockets commit
Allow generic XDP to work on virtual devices commit
Network Service Header (NSH) is a new protocol for service function chaining, it can be handled as a L3 protocol like IPv4 and IPv6; Eth + NSH + Inner packet or VxLAN-gpe + NSH + Inner packet are two typical use cases commit, commit, commit, commit
- Infiniband
RDMA Netlink Device Client, needed to properly integrate coming RDMAtool into iproute2 package which is based on netlink commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
New ioctl API for the RDMA ABI merge, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
cma: Set default gid type to RoCEv2 commit
Hardware tag matching support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
ipoib: Enable ioctl for to IPoIB rdma netdevs commit
ethtool: add support for forward error correction mode setting on a link commit
geneve: add rtnl changelink support commit
macvlan: add offload features for encapsulation commit
tap: XDP support commit
- netfilter
netfilter: nf_tables: support for recursive chain deletion commit, commit, commit
xt_hashlimit: add rate match mode that allows matching on the current packet/byte rate without rate limiting. The main difference between the existing algorithm and the new one is that the existing algorithm rate-limits the flow whereas the new algorithm classifies the flow based on whether it is above or below a certain rate commit
nftables: tcp mss mangling support commit, commit, commit, commit
nftables: Attach process info to NFT_MSG_NEWGEN notifications, this is helpful for 'nft monitor' to track which process caused a given change to the ruleset commit
nftables: add FIB expression to the netdev table. The lookup will be delegated to the IPv4 or IPv6 FIB depending on the protocol of the packet commit
nft_limit: Add a stateful limit named object type, this allows to create limit policies that you can identify via name commit
- TCP
- Transformation (xfrm)
Support setting an output mark. On systems that use mark-based routing (eg Android) it may be necessary for routing lookups to use marks in order for packets to be routed correctly commit
Add support for network devices capable of removing the ESP trailer commit
Remove flow cache (no longer needed) commit
Add xdst pcpu cache commit
irda: move to staging, will be removed in future releases commit, commit, commit
Remove software UDP fragmentation offload code. gives little other than bugs commit, commit, commit, commit
10. Architectures
- ARM
eBPF JIT compiler commit
crypto: ghash: add NEON accelerated fallback for vmull.p64 commit
coresight tmc: Add support for Coresight SoC 600 components commit, commit
- Device Tree Sources (both 32 and 64 bit)
Qualcomm IPQ8074 commit
Marvell Armada 8080 commit
Uniphier PXs3 commit
TI AM335x Moxa UC-8100-ME-T open platform commit
TI AM57xx Beaglebone X15 Rev C commit
Broadcom Raspberry Pi Zero W commit
Gemini-based D-Link DIR-685 router commit
Toradex Apalis module + Apalis and Ixora carrier boards commit, commit
Freescale i.MX53-based Beckhoff CX9020 Embedded PC commit
A64-OLinuXino commit
Rockchip RK3329 Pine64/Rock64 board support commit
Haikou baseboard with RK3399-Q7 SoM commit
RK3399 Sapphire module on Excavator carrier (RK3399 reference design) commit, commit
Theobroma Systems RK3399-Q7 SoM commit
ZTE ZX296718 PCBOX Board commit
BCM53573: Add Broadcom BCM947189ACDBMR board support commit
a64: add DTSI file for AXP803 PMIC commit
Add dts file for MT7622 reference board variant 1 commit, commit
renesas: Add Renesas Draak board support commit
dts: uniphier: remove sLD3 SoC support commit
- ARM64
VMAP_STACK support, allowing the kernel stacks to be allocated in the vmalloc space with a guard page for trapping stack overflows commit, commit
Initial support for persistent memory on ARM: DC CVAP instruction exposed to user space (HWCAP) and the in-kernel pmem API implemented commit, commit, commit
Support mremap() for vDSO commit
perf: add support for Cortex-A35 commit, add support for Cortex-A73 commit
perf: Allow more than one cycle counter to be used commit
- crypto
Add non-SIMD generic fallback for crct10dif commit, aes-ce-cipher commit, aes-blk, commit, ghash-ce commit, arm64/sha2-ce commit, sha1-ce commit, aes-bs commit, aes-ce-ccm commit, crc32 commit
gcm: implement native driver using v8 Crypto Extensions commit
ghash - add NEON accelerated fallback for 64-bit PMULL commit
raid6: use faster multiplication for ARM NEON delta syndrome commit, implement recovery using ARM NEON intrinsics commit
- X86
Enable PCID optimized TLB flushing on newer Intel CPUs (FEATURED) commit, commit, commit, commit, commit, commit, commit, commit
Add 5-level paging support (FEATURED) commit, commit, commit, commit
Add 'encrypted memory' support, which is a new hardware feature on upcoming AMD CPUs ('Secure Memory Encryption', SME) (FEATURED) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Add the ORC unwinder and asm code unwind hints commit, commit
Implement fast refcount overflow protection. It does not have a noticeable performance impact, but it doesn't have the fuller checking either commit
Complete rewrite of the Cache Quality Monitoring (CQM) facility. The CQM support has been integrated into the Resource Director Technology (RDT) facility, which is the obvious choise as in hardware CQM is part of RDT. This allowed to add Memory Bandwidth Monitoring support on top commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
intel_th: Add Cannon Lake PCH-LP support commit, add Cannon Lake PCH-H support commit, add Cedar Fork PCH support commit, add Lewisburg PCH support commit
intel_rdt: Add command line options for resource director technology commit, turn off most RDT features on Skylake commit
Remove lguest support commit
- KVM
- hyper-v
perf vendor events: Add Skylake server event list commit, commit
- MIPS
- Device Tree Source
Add DWARF unwinding to assembly commit
math-emu: Add severak FP emu debugfs statistics commit, commit, commit
CPS: Detect CPUs in secondary clusters commit
CPS: Cluster support for topology functions commit
bpf: Implement JLT, JLE, JSLT and JSLE ops in the eBPF JIT commit
Remove unused R6000 support commit
- PARISC
- POWERPC
perf: access via perf to a new type of PMU (IMC) on Power9, which can count both core events as well as nest unit events (Memory controller etc) commit, commit, commit, commit
perf vendor events: Add POWER9 PMU events commit
Size of vmalloc area is increased to 56T on 64-bit hash MMU systems. This avoids problems with the percpu allocator on systems with very sparse NUMA layouts commit
random: Use darn instruction for get_random_seed() on Power9 commit
Add support for powercap framework commit, add support to clear sensor groups data commit, support to set power-shifting-ratio commit
Implement STRICT_KERNEL_RWX on PPC32 commit
hugetlb: Add support for reserving gigantic huge pages via kernel command line commit
Enable removal of memory for use in memory tracing commit
Add Power9 scheduler topology, to capture the fact that pairs of cores may share an L2 cache commit
Power9 support for VAS, which is a new mechanism for accessing coprocessors, and initial support for using it with the NX compression accelerator commit, commit, commit, commit, commit, commit, commit, commit
Add emulation for the addpcis instruction commit
Support for guests under PowerVM to use the Power9 XIVE interrupt controller commit
Enable PCI peer-to-peer commit
KVM: Book3S HV: Report storage key support to userspace commit
xmon: Add ISA v3.0 SPRs to SPR dump commit, add AMR, UAMOR, AMOR, IAMR to SPR dump commit
- S390
Add support for IBM z14 machines commit
Add IBM z14 TLB flushing improvements for KVM guests commit, commit
Add support for the TOD clock epoch extension commit
Add NIAI spinlock hints for IBM z14 commit
- KVM
topology: enable/disable dynamically commit
vmcp: make use of contiguous memory allocator commit
dasd: Add discard support for FBA devices commit, blk-mq conversion commit, add average request times to dasd statistics commit
- SPARC
- ARC
11. Drivers
11.1. Graphics
Enhanced syncobj APIs (wait/signal/reset/create signalled), useful for Vulkan commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
dma-buf/sync_file: Allow multiple sync_files to wrap a single dma-fence commit
Add YCBCR 4:2:0 support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
Format modifier/blob plane property added commit
atomic: initial support for asynchronous plane update commit
- bridge
Add Synopsys Designware MIPI DSI host bridge driver commit
- tiny
- i915
- Lots of GEN10/CNL support patches
Add support for drm syncobjs commit
GVT vGPU 48-bit ppgtt support commit
NOA change ioctl commit
CCS (color compression) scanout support commit, commit, commit, commit, commit
Let user specify override VBT via firmware load commit
debugfs: Export per-engine reset count info to debugfs commit, report execlists irq bit in debugfs commit, add slice and subslice information to debugfs commit
- amdgpu
- Vega10 improvements
Command submission overhead improvements commit
amdgpu: Disabling Power Gating for Stoney platform commit
powerplay: add CZ profile support commit
powerplay: add avfs profiling_info_v4_2 support on Vega10 commit, add profile mode for vega10 commit, add support for 3DP 4K@120Hz on vega10 commit, added didt support for vega10 commit, enable ACG feature on vega10 commit
Reduce internal gart to 256M (this does not affect the ttm GTT pool size) commit
Add new gttsize module parameter to configure the size of the GTT domain commit
Expose VM fragment size as module parameter commit
Add vis_vramlimit module parameter to Restrict visible VRAM for testing commit
Add sdma_phase_quantum module parameter to make SDMA phase quantum configurable commit
- amdkfd
- nouveau
- vmwgfx
- msm
Add modeset module param commit
- exynos
NV12MT support commit
- tegra
- sun4i
- omapdrm
- stm
- dw_hdmi
- atmel-hlcdc
Add 8-bit color support commit
- vc4
fbcon: Make fbcon a built-time depency for fbdev commit
fbcon: add fbcon=margin:<color> command line option commit
11.2. Storage
ata: mediatek: add support for MediaTek SATA controller commit
cs5536: add support for IDE controller variant commit
- nvme
- SCSI
hisi_sas: add v2 hw DFX feature commit
hisi_sas: support zone management commands commit
hpsa: add support for legacy boards commit
lpfc: Add Buffer to Buffer credit recovery support commit
qla2xxx: Add LR distance support from nvram bit commit
qla2xxx: Add ability to autodetect SFP type commit
qla2xxx: Add support for minimum link speed commit
qla2xxx: Enable Async TMF processing commit
smartpqi: add in new controller ids commit
smartpqi: add pqi reset quiesce support commit
Show .retries and .jiffies_at_alloc in debugfs commit
cciss: Drop obsolete driver commit
11.3. Drivers in the Staging area
Add driver for Realtek RTL8822BE 802.11ac PCIe wireless network adapters commit, commit, commit, commit, commit, commit, commit
typec: fusb302: Add support for USB2 charger detection through extcon commit
media: cxd2099: Add module parameter for buffer mode commit
pi433: New driver commit
11.4. Networking
- Bluetooth
- Infiniband
mlx4: Add resource utilization support commit
hfi1: Add 16B RC/UC support commit, add 16B UD support commit, add 16B trace support commit, add support to process 16B header errors commit, add support to receive 16B bypass packets commit, add support to send 16B bypass packets commit, add kernel receive context info to debugfs commit
mlx4: Add inline-receive support commit, add support for RSS QP commit, add support for WQ indirection table related verbs commit, add support for WQ related verbs commit, dd user mac FW update support commit
mlx5: Add debug control parameters for congestion control commit, add delay drop configuration and statistics commit, add multicast flow steering support for underlay QP commit, add raw ethernet local loopback support commit, add support for QP with a given source QPN commit, add support for multi underlay QP commit, add support to dropless RQ commit, add raw ethernet local loopback firmware command commit, separate between E-Switch and MPFS commit, commit, add PCIe outbound stalls counters infrastructure commit
mlx5e: Add PCIe outbound stalls counters commit, add RX buffer fullness counters commit, add outbound PCI buffer overflow counter commit, enable local loopback in loopback selftest commit, IPoIB, Add support for get_link_ksettings in ethtool commit, support RSS for GRE tunneled packets commit, support TSO and TX checksum offloads for GRE tunnels commit
qedr: notify user application if DPM is supported commit, notify user application of supported WIDs commit
vmw_pvrdma: Add RoCEv2 support commit
amd-xgbe: Add additional ethtool statistics commit, add hardware features debug output commit, add per queue Tx and Rx statistics commit, add support for VXLAN offload capabilities commit, add support to handle device renaming commit
aquantia: Switch to use napi_gro_receive commit
ath10k: add initial USB support commit, add tdls support for 10.4 firmwares commit, add queue restarts stats counter commit
ath9k: Add Dell Wireless 1802 with wowlan capability commit
bnxt: Add PCIe device IDs for bcm58802/bcm58808 commit, allow the user to set ethtool stats-block-usecs to 0 commit, implement ndo_bridge_{get|set}link methods commit, add TC flower offload flow_alloc/free FW cmds commit, add code to query TC flower offload stats commit, add support for port_attr_get and and get_phys_port_name commit, add support to enable VF-representors commit, add vf-rep RX/TX and netdev implementation commit, add TC flower filter offload support commit
brcmfmac: Add support for CYW4373 SDIO/USB chipset commit
cxgb4: core hardware/firmware support for Forward Error Correction on a link commit, ethtool forward error correction management support commit
dpaa_eth: enable Rx hashing control commit
usb: add device id for TP-LINK UE300 USB 3.0 Ethernet commit
qualcomm: rmnet: Initial implementation commit
fsl/fman: enable FMan Keygen commit
hv_netvsc: Add ethtool handler to set and get UDP hash levels commit
i40e/i40evf: support for VF VLAN tag stripping control commit
ibmvnic: Implement ethtool .get_channels commit, .get_ringparam commit, implement per-queue statistics reporting commit
igb: support BCM54616 PHY commit
iwlwifi: add support of FPGA fw commit, add new PCI ID for 7265D commit, mvm: add debugfs to force CT-kill commit
ixgbe: add initial support for xdp redirect commit
liquidio: added support for ethtool --set-channels feature commit, added support for ethtool --set-ring feature commit, support new firmware statistic fw_err_pki commit
- mlxsw
mvneta: Driver and hardware supports IPv6 offload, so enable it commit
hinic: Initialize hw interface commit
arc_emac: Add support for ndo_do_ioctl net_device_ops operation commit
dsa: mv88e6xxx: add Energy Detect ops commit
stmmac: dwmac-rk: Add rv1108 gmac support commit, add Adaptrum Anarion GMAC glue layer commit, dwmac-rk: Add RK3128 GMAC support commit
fec: Allow reception of frames bigger than 1522 bytes commit
hns3: Add driver for Hisilicon HNS3 HCLGE Acceleration Engine & Compatibility Layer and Hisilicon HNS3 Ethernet Device Support commit, commit, commit, commit, commit, commit, commit, commit, commit
hns: Add self-adaptive interrupt coalesce support in hns driver commit
mvpp2: add support for TX interrupts and RX queue distribution modes commit, software tso support commit
phy: Add rockchip PHY driver support commit
phy: add I2C mdio bus commit
qcom/emac: add software control for pause frame mode commit
qualcomm: rmnet: Implement ndo_get_iflink commit
netvsc: allow controlling send/recv buffer size commit, transparent VF management commit
nfp: add basic SR-IOV ndo functions commit, add ethtool statistics for representors commit, report MAC statistics in ethtool commit
phylink: add in-band autonegotiation support for 10GBase-KR mode commit, add module EEPROM support commit, add phylink infrastructure commit, add support for MII ioctl access to Clause 45 PHYs commit
qed: Add setter APIs support for RX flow classification commit, add support for Energy efficient ethernet commit, add support for vf coalesce configuration commit
qede: Add ethtool support for Energy efficient ethernet commit, add getter APIs support for RX flow classification commit
qtnfmac: implement cfg80211 channel_switch handler commit, implement cfg80211 dump_survey handler commit, implement reporting current channel commit, implement scan timeout commit, introduce counter for Rx underflow events commit
r8152: add Linksys USB3GIGV1 id commit
ravb: add wake-on-lan support via magic packet commit
rndis_host: support Novatel Verizon USB730L commit
rsi: support legacy power save, U-APSD, rf-kill and AP mode commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
sfc: Add ethtool -m support for QSFP modules commit, add SFP module support commit, add sfp-bus to bridge between network devices and sfp cages commit
sunvnet: add support for IPv6 checksum offloads commit
wil6210: add statistics for suspend time commit, support FW RSSI reporting commit
11.5. Audio
firewire-motu: add support for MOTU Audio Express commit
hda: Implement mic-mute LED mode enum commit, realtek - Enable jack detection function for Intel ALC700 commit, add Cannonlake PCI ID commit, realtek - Add support for ALC236/ALC3204 commit
ice1712: Add support for STAudio ADCIII commit
- ASoC
Intel: Add Kabylake machine driver for RT5663 commit, Headset button support in kabylake machine driver commit, add Geminilake platform support commit
Intel: cannonlake: Add support commit, commit, commit, commit
Intel: kbl: Add Multi-Playback & Echo-reference commit, commit, commit
tlv320aic32x4: Add support for tlv320aic32x6 commit
codecs: add wm8524 codec driver commit
codecs: msm8916-wcd-analog: add MBHC support commit
cs43130: Add support for CS43130 codec commit
cygnus: Add support for 384kHz frame rates commit
qcom: apq8016-sbc: Add support to Headset JACK commit
rockchip: Add support for DMIC codec commit, add support for DP codec commit
rt5514: Add the I2S ASRC support commit, support the DSP recording continuously after the hotwording triggered commit, support the TDM docking mode commit
samsung: i2s: Support more resolution rates commit
sun4i-i2s: Add support for H3 commit
tlv320aic3x: Support for OCMV configuration commit
11.6. Tablets, touch screens, keyboards, mouses
axp20x-pek: add support for AXP221 PEK commit
PS/2 gpio bit banging driver for serio bus commit
atmel_mxt_ts: add support for reset line commit
elan_i2c: support touchpads with two physical buttons commit
Add power key driver for Rockchip RK805 PMIC commit
Add a driver for PWM controllable vibrators commit
goodix: add support for capacitive home button commit
- HID
multitouch: Support Asus T304UA media keys commit
multitouch: support buttons and trackpoint on Lenovo X1 Tab Gen2 commit
input: map digitizer battery usage commit
asus: Add T100CHI bluetooth keyboard dock special keys mapping commit, add support for T100 touchpad commit, add T100CHI bluetooth keyboard dock touchpad support commit
11.7. TV tuners, webcams, video capturers
v4l: Add packed Bayer raw12 pixel formats commit
Added support for the TerraTec T1 DVB-T USB tuner [IT9135 chipset] commit
adv7180: add missing adv7180cp, adv7180st i2c device IDs commit
camms: Qualcom camss driver commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit
cec-pin: add low-level pin hardware support commit
coda: add h264 and mpeg4 profile and level controls commit
ddbridge: Kconfig option to control the MSI modparam default commit, support MaxLinear MXL5xx based cards (MaxS4/8) commit, support for CineS2 V7(A) and DuoFlex S2 V4 hardware commit
stv0910: add multistream (ISI) and PLS capabilities commit
Add ST STV0910 DVB-S/S2 demodulator frontend driver commit
Add ST STV6111 DVB-S/S2 tuner frontend driver commit
i2c: Add Omnivision OV5670 5M sensor support commit
i2c: adv748x: add adv748x driver commit
omap3isp: add CSI1 support commit
ov5645: Add control to export CSI2 link frequency commit, add control to export pixel clock frequency commit
Add Amlogic Meson AO CEC Controller driver commit
- remote control
s5p-jpeg: Add support for resolution change event commit, decode 4:1:1 chroma subsampling format commit
smiapp: add CCP2 support commit
Add support for CSI-1 and CCP2 busses commit
vsp1: Add pipe index argument to the VSP-DU API commit, add support for header display lists in continuous mode commit, add support for multiple DRM pipelines commit, add support for multiple LIF instances commit, add support for new VSP2-BS, VSP2-DL and VSP2-D instances commit, add support for the BRS entity commit
11.8. Universal Serial Bus
serial: option: add support for D-Link DWM-157 C1 commit
chipidea: Add support for Tegra20/30/114/124 commit
gadget: add RNDIS configfs options for class/subclass/protocol commit, f_hid: {GET,SET} PROTOCOL Support commit, f_midi: add super speed support commit, udc: renesas_usb3: add support for R-Car M3-W commit, renesas_usb3: add debugfs to set the b-device mode commit, renesas_usb3: add support for R-Car H3 ES2.0 commit
xhci: rcar: Add support for R-Car H3 ES2.0 commit
mtu3: add a vbus debugfs interface commit
phy: Add USB charger support commit
xhci: Support enabling of compliance mode for xhci 1.1 commit
11.9. Serial Peripheral Interface (SPI)
loopback-test: implement testing with no CS commit
11.10. Watchdog
11.11. ACPI, EFI, cpufreq, thermal, Power Management
efi: Enable reset attack mitigation commit
- ACPI
- cpufreq
libnvdimm, nfit: export an 'ecc_unit_size' sysfs attribute commit
pm-graph: AnalyzeBoot v2.1 commit, AnalyzeSuspend v4.7 commit
- thermal
11.12. Real Time Clock (RTC)
Add Realtek RTD1295 commit
ds1307: add basic support for ds1341 chip commit
goldfish: Add RTC driver for Android emulator commit
m41t80: remove debug sysfs attribute commit
s35390a: implement ioctls commit
sun6i: Add support for the external oscillator gate commit
11.13. Voltage, current regulators, power capping, power supply
- power/supply:
power: wm831x_power: Support USB charger current limit management commit
- regulator
11.14. Pin Controllers (pinctrl)
Add pinctrl driver for the RK805 PMIC commit
add a Gemini SoC pin controller commit
aspeed: g4: Add USB device and host support commit, g5: Add USB device and host support commit
imx: add imx7ulp driver commit
intel: Add Intel Cannon Lake PCH-H pin controller support commit, add Intel Denverton pin controller support commit, add Intel Lewisburg GPIO support commit
rockchip: Add rk3128 pinctrl support commit
sprd: Add Spreadtrum pin control driver commit
sunxi: add support of R40 to A10 pinctrl driver commit
11.15. Multi Media Card (MMC)
renesas-sdhi: add support for R-Car Gen3 SDHI DMAC commit
dw_mmc-k3: add sd support for hi3660 commit
sdhci-xenon: Support HS400 Enhanced Strobe feature commit
sunxi: Add support for A83T eMMC (MMC2) commit
host: Add CQE interface commit
11.16. Memory Technology Devices (MTD)
create per-device and module-scope debugfs entries commit
nand: hynix: add support for 20nm NAND chips commit
nand: qcom: Support for IPQ8074 QPIC NAND controller commit, support for IPQ4019 QPIC NAND controller commit
spi-nor: add support for Microchip sst26vf064b QSPI memory commit, Add support for Intel Denverton SPI serial flash controller commit
11.17. Industrial I/O (iio)
Add LTC2471/LTC2473 driver commit
accel: st_accel_spi: add support to H3LIS331DL, LIS331DL, LIS3LV02DL commit
adc: Add support for DLN2 ADC commit
adc: New driver for Cirrus Logic EP93xx ADC commit
adc: at91-sama5d2_adc: add hw trigger and buffer support commit
adc: stm32: add optional st,min-sample-time-nsecs commit, add support for lptimer triggers commit
adc:ltc2497: Add support for board file based iio consumer mapping commit
adc: ti-ads1015: add threshold event support commit
chemical: ccs811: Add support for AMS CCS811 VOC sensor commit, add triggered buffer support commit
counter: Add support for STM32 LPTimer commit
dac: stm32: add support for stm32f4 commit
humidity: hts221: support active-low interrupts commit, support open drain mode commit
imu: st_lsm6dsx: support open drain mode commit
magnetometer: add support to LIS2MDL commit, ak8974: support AMI306 variant commit
srf08: add sensor type srf10 commit, add support for srf02 in i2c mode commit, add triggered buffer support commit
trigger: Add STM32 LPTimer trigger driver commit
trigger: stm32-timer: add support for STM32H7 commit
11.18. Multi Function Devices (MFD)
Add ROHM BD9571MWV-M MFD PMIC driver commit
Add STM32 LPTimer driver commit
axp20x: Add support for AXP813 PMIC commit
intel-lpss: Add missing PCI ID for Intel Sunrise Point LPSS devices commit
rk808: Add RK805 support commit
Add support for TPS68470 device commit
11.19. Pulse-Width Modulation (PWM)
Add STM32 LPTimer PWM driver commit
Add ZTE ZX PWM device driver commit
rockchip: Add rk3328 support commit
11.20. Inter-Integrated Circuit (I2C)
Add Intel Cherry Trail Whiskey Cove SMBUS controller driver commit
Add Spreadtrum I2C controller driver commit
altera: Add Altera I2C Controller driver commit
i2c-stm32f7: add driver commit
i801: Add support for Intel Cedar Fork commit
rk3x: add support for rv1108 commit
11.21. Hardware monitoring (hwmon)
aspeed-pwm-tacho) cooling device support commit
jc42: Add support for CAT34TS02C commit, add support for GT30TS00, GT34TS02, and CAT34TS04 commit
ltq-cputemp: add cpu temp sensor driver commit
pmbus: Add IBM Common Form Factor (CFF) power supply driver commit, add debugfs for status registers commit, add support for Intel VID protocol VR13 commit, add support for Texas Instruments tps53679 device commit, lm25066: Add support for TI LM5066I commit
da9052: Add support for TSI channel commit
11.22. General Purpose I/O (gpio)
vf610: add imx7ulp support commit
Add support for TPS68470 GPIOs commit
it87: add support for IT8772F Super I/O commit
Add gpio driver support for ThunderX and OCTEON-TX commit
11.23. Leds
11.24. DMA engines
sun6i: support V3s SoC variant commit
Add driver for Altera / Intel mSGDMA IP core commit
bcm-sba-raid: Add debugfs support commit
ioatdma: Add intr_coalesce sysfs entry commit
dmatest: add support for memset test commit
11.25. Cryptography hardware acceleration
nx: Add P9 NX support for 842 compression engine commit
atmel-ecc - introduce Microchip / Atmel ECC driver commit
axis - add ARTPEC-6/7 crypto accelerator driver commit
brcm - Support more FlexRM rings than SPU engines commit
caam/jr - add support for DPAA2 parts commit
ccp - Add XTS-AES-256 support for CCP version 5 commit, add support for RSA on the CCP commit, introduce the AMD Secure Processor device commit
stm32 - Support for STM32 HASH module commit
sun4i-ss - support the Security System PRNG commit
csrypto: ccp - Expand RSA support for a v5 ccp commit
11.26. PCI
mediatek: Add controller support for MT2712 and MT7622 commit, add MSI support for MT2712 and MT7622 commit
rockchip: Add per-lane PHY support commit
qcom: Add support for IPQ8074 PCIe controller commit
DPC: Add eDPC support commit
layerscape: Add support for ls1088a commit, add support for ls2088a commit
11.27. Clock
sunxi-ng: Add interface to query or configure MMC timing modes commit, support R40 SoC commit, add sun4i/sun7i CCU driver commit
meson: gxbb-aoclk: Add CEC 32k clock commit
axs10x: introduce AXS10X pll driver commit
renesas: rcar-usb2-clock-sel: Add R-Car USB 2.0 clock selector PHY commit, add support for SCCG/Clean peripheral clocks commit, cpg-mssr: Add R8A77995 support commit
ARC: clk: introduce HSDK pll driver commit
mb86s7x: Drop non-building driver commit
stm32h7: Add stm32h743 clock driver commit
at91: add audio pll clock drivers commit
imx-tpm: Add imx tpm timer support commit
11.28. Various
hwrng: mx-rngc - add a driver for Freescale RNGC commit
fpga manager: Add altera-ps-spi driver for Altera FPGAs commit
fpga manager: Add Altera CvP driver commit
iommu/mediatek: Add mt2712 IOMMU support commit
irqchip/armada-370-xp: Enable MSI-X support commit
irqchip/gic-v3: Advertise GICv4 support to KVM commit
irqchip/ls-scfg-msi: Add LS1043a v1.1 MSI support commit, add LS1046a MSI support commit, add MSI affinity support commit
mailbox: bcm-flexrm-mailbox: Add debugfs support commit
MCB: add support for SC31 to mcb-lpc commit
libnvdimm, pfn, dax: show supported dax/pfn region alignments in sysfs commit
of: overlay: add overlay symbols to live device tree commit
phy: phy-mt65xx-usb3: add SATA PHY support commit
phy: qcom-qmp: Add support for IPQ8074 commit
phy: rockchip-inno-usb2: add support of usb2-phy for rv1108 SoCs commit
phy: phy-mt65xx-usb3: add PCIe PHY support commit
phy: sun4i-usb: Support A83T USB PHYs commit
phy: ralink-usb: add driver for Mediatek/Ralink commit
phy: add the mvebu cp110 comphy driver commit
phy: Add an USB PHY driver for the Lantiq SoCs using the RCU module commit
remoteproc: qcom: Add support for SSR notifications commit
remoteproc: imx_rproc: add a NXP/Freescale imx_rproc driver commit
reset: uniphier: remove sLD3 SoC support commit
ARC: reset: introduce HSDKv1 reset driver commit
reset: Add a reset controller driver for the Lantiq XWAY based SoCs commit
rpmsg: glink: Add announce_create ops and preallocate intents commit, add support for transport version negotiation commit, introduce glink smem based transport commit, add rx done command commit, add support for TX intents commit
soc: qcom: GLINK SSR notifier commit
soc: mediatek: add SCPSYS power domain driver for MediaTek MT7622 SoC commit
soc: Add Amlogic SoC Information driver commit
spmi: pmic-arb: add support for HW version 5 commit
tty: serial: owl: Implement console driver commit
serial: stm32: add RTS support commit, add fifo support commit
Introduce 8250_men_mcb commit
tty: goldfish: Implement support for kernel 'earlycon' parameter commit
w1: add hwmon temp support for w1_therm commit, Add 1w slave driver for DS28E05 EEPROM commit
12. List of merges