<html>
<head>
<title>Rusty Russell's Linux Kernel Page</title>
</head>


<body text="#000000" bgcolor="#fffff0" link="#800000" vlink="#400000" alink="#993399">

<h1>Rusty's Linux Kernel Page</h1>

<h2>Module Utilities for 2.6</h2>

<a href="../../../utils/kernel/module-init-tools/">Here is the source for
"module-init-tools"</a> which replaces modutils for modern kernels.
Your distribution will probably have it in a convenient package by
now.

<h2>Kernel Patches</h2>

This is a page for many of my kernel patches: an increasing number of
them apply on top of the others, so I decided to split them up and
host them somewhere appropriate (thanks HPA!).

<p>
<table width="100%" border=2>
<tr><td colspan=10 align=center> Patch Compatibility Chart </td></tr>
<tr>
<td><strong>Patch name</strong></td>
<td><strong>Status</strong></td>
<td> <strong> v2.6.10-rc1-bk12 </strong> </td>
<td> <strong> v2.6.10-rc1-mm2 </strong> </td>
<td> <strong> vppc64-2.5 </strong> </td>
</tr>
<tr><td><strong><a href="patches/all-EarlyParam.patch.gz">EarlyParam section:</a></strong></td></tr>
<a name="early_param-setup-overlap.patch.gz"><tr>
<td><a href="Handle___early_param_and___setup_Collision.html"> Handle __early_param and __setup Collision</a>
</td>
<td> Booted on 2.6.7-rc2-bk7</td>
<td bgcolor="#FF3F3F"><a href="patches/EarlyParam/early_param-setup-overlap.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/EarlyParam/early_param-setup-overlap.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/EarlyParam/early_param-setup-overlap.patch.gz">BROKEN</td>
</tr></a>
<tr><td><strong><a href="patches/all-Hotcpu.patch.gz">Hotcpu section:</a></strong></td></tr>
<a name="task-put-after-schedule.patch.gz"><tr>
<td><a href="Don_t_Sleep_After_We_re_Out_Of_Task_List.html"> Don't Sleep After We're Out Of Task List</a>
</td>
<td> Booted on 2.6.8.1-mm2</td>
<td bgcolor="#FF3F3F"><a href="patches/Hotcpu/task-put-after-schedule.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Hotcpu/task-put-after-schedule.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Hotcpu/task-put-after-schedule.patch.gz">BROKEN</td>
</tr></a>
<a name="stop_machine-sched-debug.patch.gz"><tr>
<td><a href="Debug_Checks_for_CPU_Hotplug_and_stop_machine.html"> Debug Checks for CPU Hotplug and stop_machine</a>
</td>
<td> Booted on 2.6.7-bk8</td>
<td bgcolor="#3FFF3F"><a href="patches/Hotcpu/stop_machine-sched-debug.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Hotcpu/stop_machine-sched-debug.patch.gz">APPLIES</td>
<td bgcolor="#FF3F3F"><a href="patches/Hotcpu/stop_machine-sched-debug.patch.gz">BROKEN</td>
</tr></a>
<a name="set_task_cpu-optimize.patch.gz"><tr>
<td><a href="Centralize_Calls_to_set_task_cpu___on_Fork.html"> Centralize Calls to set_task_cpu() on Fork</a>
</td>
<td> Booted on 2.6.6-rc2-mm2</td>
<td bgcolor="#FF3F3F"><a href="patches/Hotcpu/set_task_cpu-optimize.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Hotcpu/set_task_cpu-optimize.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Hotcpu/set_task_cpu-optimize.patch.gz">BROKEN</td>
</tr></a>
<a name="release_task-after-final-put.patch.gz"><tr>
<td><a href="Don_t_Sleep_After_We_re_Out_Of_Task_List.html"> Don't Sleep After We're Out Of Task List</a>
</td>
<td> Booted on 2.6.8.1-mm1</td>
<td bgcolor="#FF3F3F"><a href="patches/Hotcpu/release_task-after-final-put.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Hotcpu/release_task-after-final-put.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Hotcpu/release_task-after-final-put.patch.gz">BROKEN</td>
</tr></a>
<a name="neaten-migrate_all_tasks.patch.gz"><tr>
<td><a href="Neaten_migrate_all_tasks.html"> Neaten migrate_all_tasks</a>
</td>
<td> Tested on 2.6.8.1-mm4</td>
<td bgcolor="#FF3F3F"><a href="patches/Hotcpu/neaten-migrate_all_tasks.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Hotcpu/neaten-migrate_all_tasks.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Hotcpu/neaten-migrate_all_tasks.patch.gz">BROKEN</td>
</tr></a>
<a name="kthread-test.patch.gz"><tr>
<td><a href="Simplified_Kthread_Tests.html"> Simplified Kthread Tests</a>
</td>
<td> Booted on 2.6.1-rc2-bk1</td>
<td bgcolor="#FF3F3F"><a href="patches/Hotcpu/kthread-test.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Hotcpu/kthread-test.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Hotcpu/kthread-test.patch.gz">BROKEN</td>
</tr></a>
<a name="hotcpu-ia64-cpu-topology.patch.gz"><tr>
<td><a href="Create_sysfs_Nodes_For_IA64_CPUs.html"> Create sysfs Nodes For IA64 CPUs</a>
</td>
<td></td>
<td bgcolor="#FF3F3F"><a href="patches/Hotcpu/hotcpu-ia64-cpu-topology.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Hotcpu/hotcpu-ia64-cpu-topology.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Hotcpu/hotcpu-ia64-cpu-topology.patch.gz">BROKEN</td>
</tr></a>
<a name="debug-checks.patch.gz"><tr>
<td><a href="Extra_Debugging_Checks_for_Hotplug_CPU.html"> Extra Debugging Checks for Hotplug CPU</a>
<br>Needs: <a href="#Misc/ppc64-debug-spinlock.patch.gz"> Spinlock debugging for PPC64</a>
</td>
<td> Experimental</td>
<td bgcolor="#FFFFFF"><a href="patches/Hotcpu/debug-checks.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Hotcpu/debug-checks.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Hotcpu/debug-checks.patch.gz">UNKNOWN</td>
</tr></a>
<a name="dead-tasks-off-tasklist.patch.gz"><tr>
<td><a href="Hotplug_CPU_vs_TASK_ZOMBIEs__The_Sequel_to_Hotplug_CPU_vs_TASK_DEAD.html"> Hotplug CPU vs TASK_ZOMBIEs: The Sequel to Hotplug CPU vs TASK_DEAD</a>
<br>Needs: <a href="#Hotcpu/neaten-migrate_all_tasks.patch.gz"> Neaten migrate_all_tasks</a>
</td>
<td> Tested on 2.6.8.1-mm4</td>
<td bgcolor="#FFFFFF"><a href="patches/Hotcpu/dead-tasks-off-tasklist.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Hotcpu/dead-tasks-off-tasklist.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Hotcpu/dead-tasks-off-tasklist.patch.gz">UNKNOWN</td>
</tr></a>
<a name="hotcpu-ia64.patch.gz"><tr>
<td><a href="Add_basic_support_to_enable_CPU_hotplug_for_IA64.html"> Add basic support to enable CPU hotplug for IA64</a>
<br>Needs: <a href="#Hotcpu/hotcpu-ia64-cpu-topology.patch.gz"> Create sysfs Nodes For IA64 CPUs</a>
</td>
<td></td>
<td bgcolor="#FFFFFF"><a href="patches/Hotcpu/hotcpu-ia64.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Hotcpu/hotcpu-ia64.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Hotcpu/hotcpu-ia64.patch.gz">UNKNOWN</td>
</tr></a>
<a name="atomic-cpudown-i386.patch.gz"><tr>
<td><a href="x86_code.html"> x86 code</a>
<br>Needs: <a href="#Hotcpu/dead-tasks-off-tasklist.patch.gz"> Hotplug CPU vs TASK_ZOMBIEs: The Sequel to Hotplug CPU vs TASK_DEAD</a>
</td>
<td> Booted on 2.6.6-rc3-bk7</td>
<td bgcolor="#FFFFFF"><a href="patches/Hotcpu/atomic-cpudown-i386.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Hotcpu/atomic-cpudown-i386.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Hotcpu/atomic-cpudown-i386.patch.gz">UNKNOWN</td>
</tr></a>
<a name="i386-apic.patch.gz"><tr>
<td><a href="Suspend_And_Resume_APIC_for_x86.html"> Suspend And Resume APIC for x86</a>
<br>Needs: <a href="#Hotcpu/atomic-cpudown-i386.patch.gz"> x86 code</a>
</td>
<td> Untested</td>
<td bgcolor="#FFFFFF"><a href="patches/Hotcpu/i386-apic.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Hotcpu/i386-apic.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Hotcpu/i386-apic.patch.gz">UNKNOWN</td>
</tr></a>
<tr><td><strong><a href="patches/all-Hotmem.patch.gz">Hotmem section:</a></strong></td></tr>
<a name="mem_remap.patch.gz"><tr>
<td><a href="Prototype_Absolute_Memory_Indirection_Layer_for_PPC64.html"> Prototype Absolute Memory Indirection Layer for PPC64</a>
</td>
<td> Untested</td>
<td bgcolor="#FF3F3F"><a href="patches/Hotmem/mem_remap.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Hotmem/mem_remap.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Hotmem/mem_remap.patch.gz">BROKEN</td>
</tr></a>
<tr><td><strong><a href="patches/all-Kmod.patch.gz">Kmod section:</a></strong></td></tr>
<a name="kmod.patch.gz"><tr>
<td><a href="Enhanced_kmod_macros.html"> Enhanced kmod macros</a>
</td>
<td> Simple</td>
<td bgcolor="#FF3F3F"><a href="patches/Kmod/kmod.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Kmod/kmod.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Kmod/kmod.patch.gz">BROKEN</td>
</tr></a>
<a name="kmod-includes.patch.gz"><tr>
<td><a href="include_kmod.h.html"> include kmod.h</a>
</td>
<td> Simple</td>
<td bgcolor="#FF3F3F"><a href="patches/Kmod/kmod-includes.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Kmod/kmod-includes.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Kmod/kmod-includes.patch.gz">BROKEN</td>
</tr></a>
<a name="kmod-applied.patch.gz"><tr>
<td><a href="CONFIG_KMOD_cleanup.html"> CONFIG_KMOD cleanup</a>
<br>Needs: <a href="#Kmod/kmod.patch.gz"> Enhanced kmod macros</a>
</td>
<td> Experimental</td>
<td bgcolor="#FFFFFF"><a href="patches/Kmod/kmod-applied.patch.ac.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Kmod/kmod-applied.patch.ac.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Kmod/kmod-applied.patch.ac.gz">UNKNOWN</td>
</tr></a>
<tr><td><strong><a href="patches/all-Misc.patch.gz">Misc section:</a></strong></td></tr>
<a name="xbug.patch.gz"><tr>
<td><a href="XBUG_macro.html"> XBUG macro</a>
</td>
<td> Tested in 2.5.17</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/xbug.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/xbug.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/xbug.patch.gz">BROKEN</td>
</tr></a>
<a name="workqueue-singlethread-test.patch.gz"><tr>
<td><a href="Test_Single_Threaded_Workqueues.html"> Test Single-Threaded Workqueues</a>
</td>
<td> Booted on 2.6.6-rc1-bk3</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/workqueue-singlethread-test.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/workqueue-singlethread-test.patch.gz">BROKEN</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/workqueue-singlethread-test.patch.gz">APPLIES</td>
</tr></a>
<a name="typecheck.patch.gz"><tr>
<td><a href="typecheck.h_Addition_.html"> typecheck.h Addition </a>
</td>
<td> Simple</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/typecheck.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/typecheck.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/typecheck.patch.gz">APPLIES</td>
</tr></a>
<a name="try_dev_hold.patch.gz"><tr>
<td><a href="try_dev_hold.html"> try_dev_hold</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/try_dev_hold.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/try_dev_hold.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/try_dev_hold.patch.gz">BROKEN</td>
</tr></a>
<a name="test.patch.gz"><tr>
<td><a href="Simple_Dynamic_Allocation_of_groups_array.html"> Simple Dynamic Allocation of groups array</a>
</td>
<td> Experimental</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/test.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/test.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/test.patch.gz">APPLIES</td>
</tr></a>
<a name="task_t-removal.patch.gz"><tr>
<td><a href="task_t_removal_patch.html"> task_t removal patch</a>
</td>
<td> Trivial</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/task_t-removal.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/task_t-removal.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/task_t-removal.patch.gz">BROKEN</td>
</tr></a>
<a name="streq.patch.gz"><tr>
<td><a href="streq_implementation.html"> streq implementation</a>
</td>
<td> Trivial</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/streq.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/streq.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/streq.patch.gz">APPLIES</td>
</tr></a>
<a name="stop_machine-nicksched-yield.patch.gz"><tr>
<td><a href="Fix_stop_machine___For_Nick_Sched.html"> Fix stop_machine() For Nick Sched</a>
</td>
<td> Tested on 2.6.8.1-mm4</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/stop_machine-nicksched-yield.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/stop_machine-nicksched-yield.patch.gz">APPLIES</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/stop_machine-nicksched-yield.patch.gz">BROKEN</td>
</tr></a>
<a name="start_cpu_timer-cleanup.patch.gz"><tr>
<td><a href="Remove_Strange_start_cpu_timer_Code.html"> Remove Strange start_cpu_timer Code</a>
</td>
<td> Booted on 2.6.5-rc2-bk1</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/start_cpu_timer-cleanup.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/start_cpu_timer-cleanup.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/start_cpu_timer-cleanup.patch.gz">BROKEN</td>
</tr></a>
<a name="softirq-early-misuse.patch.gz"><tr>
<td><a href="Debug_Too_Early_Use_of_softirqs.html"> Debug Too-Early Use of softirqs</a>
</td>
<td> Untested</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/softirq-early-misuse.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/softirq-early-misuse.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/softirq-early-misuse.patch.gz">APPLIES</td>
</tr></a>
<a name="serial-network.patch.gz"><tr>
<td><a href="Serialize_Network_Packets_for_PPPoE.html"> Serialize Network Packets for PPPoE</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/serial-network.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/serial-network.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/serial-network.patch.gz">BROKEN</td>
</tr></a>
<a name="sched_runqueue_vs_cpu.patch.gz"><tr>
<td><a href="Split_Scheduler_Structure_into_Per_CPU_and_Per_Runqueue_Parts.html"> Split Scheduler Structure into Per-CPU and Per-Runqueue Parts</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/sched_runqueue_vs_cpu.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/sched_runqueue_vs_cpu.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/sched_runqueue_vs_cpu.patch.gz">BROKEN</td>
</tr></a>
<a name="sched-domain-init-reversion.patch.gz"><tr>
<td><a href="Revert_Sched_Domain_Lockup_Fix.html"> Revert Sched Domain Lockup Fix</a>
</td>
<td> Untested</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/sched-domain-init-reversion.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/sched-domain-init-reversion.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/sched-domain-init-reversion.patch.gz">BROKEN</td>
</tr></a>
<a name="sched-dead-task-optimize.patch.gz"><tr>
<td><a href="Don_t_Check_for_Dead_Tasks_on_Every_Schedule.html"> Don't Check for Dead Tasks on Every Schedule</a>
</td>
<td> Booted on 2.6.7-rc2-bk3</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/sched-dead-task-optimize.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/sched-dead-task-optimize.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/sched-dead-task-optimize.patch.gz">BROKEN</td>
</tr></a>
<a name="rwlock-removal.patch.gz"><tr>
<td><a href="Remove_rwlocks.html"> Remove rwlocks</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/rwlock-removal.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/rwlock-removal.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/rwlock-removal.patch.gz">BROKEN</td>
</tr></a>
<a name="rtas_syscall.patch.gz"><tr>
<td><a href="RTAS_System_Call.html"> RTAS System Call</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/rtas_syscall.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/rtas_syscall.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/rtas_syscall.patch.gz">BROKEN</td>
</tr></a>
<a name="remove_config_proc.patch.gz"><tr>
<td><a href="Remove_CONFIG_PROC_FS_Where_Compiler_Will_Discard_Anyway.html"> Remove CONFIG_PROC_FS Where Compiler Will Discard Anyway</a>
</td>
<td> Experimental</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/remove_config_proc.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/remove_config_proc.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/remove_config_proc.patch.gz">APPLIES</td>
</tr></a>
<a name="remove-inter-module.patch.gz"><tr>
<td><a href="Removed_inter_module_functions.html"> Removed inter_module functions</a>
</td>
<td> Untested</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/remove-inter-module.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/remove-inter-module.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/remove-inter-module.patch.gz">BROKEN</td>
</tr></a>
<a name="rcu-bh.patch.gz"><tr>
<td><a href="RCU_For_Softirqs_and_Hard_IRQs.html"> RCU For Softirqs and Hard IRQs</a>
<br>Needs: <a href="#Percpu/percpu-rcu.patch.gz"> Use __get_per_cpu instead of per_cpu in RCU.</a>
</td>
<td> Experimental</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/rcu-bh.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/rcu-bh.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/rcu-bh.patch.gz">UNKNOWN</td>
</tr></a>
<a name="qemu-page-offset.patch.gz"><tr>
<td><a href="QEMU_CONFIG_Patch.html"> QEMU CONFIG Patch</a>
</td>
<td> Booted on 2.6.4-rc1-bk3</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/qemu-page-offset.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/qemu-page-offset.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/qemu-page-offset.patch.gz">APPLIES</td>
</tr></a>
<a name="putusercheck.patch.gz"><tr>
<td><a href="put_user_get_user_extra_checks__x86_only_.html"> put_user/get_user extra checks (x86 only)</a>
</td>
<td> Trivial</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/putusercheck.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/putusercheck.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/putusercheck.patch.gz">BROKEN</td>
</tr></a>
<a name="prom-compress.patch.gz"><tr>
<td><a href="Merge_Duplicate_Names_in_prom.c_Device_Tree.html"> Merge Duplicate Names in prom.c Device Tree</a>
</td>
<td> Tested on Ameslab 19-May-2004</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/prom-compress.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/prom-compress.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/prom-compress.patch.gz">BROKEN</td>
</tr></a>
<a name="ppc64_per-cpu-node.patch.gz"><tr>
<td><a href="Per_CPU_Memory_On_Right_Nodes.html"> Per-CPU Memory On Right Nodes</a>
</td>
<td> Untested</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/ppc64_per-cpu-node.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/ppc64_per-cpu-node.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/ppc64_per-cpu-node.patch.gz">APPLIES</td>
</tr></a>
<a name="ppc64-debug-spinlock.patch.gz"><tr>
<td><a href="Spinlock_debugging_for_PPC64.html"> Spinlock debugging for PPC64</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/ppc64-debug-spinlock.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/ppc64-debug-spinlock.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/ppc64-debug-spinlock.patch.gz">BROKEN</td>
</tr></a>
<a name="ordered-module-initcalls.patch.gz"><tr>
<td><a href="Module_initcall_depends.html"> Module initcall depends</a>
</td>
<td> Tested on 2.5.34</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/ordered-module-initcalls.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/ordered-module-initcalls.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/ordered-module-initcalls.patch.gz">BROKEN</td>
</tr></a>
<a name="optional.patch.gz"><tr>
<td><a href="__keep_and___optional_attributes.html"> __keep and __optional attributes</a>
</td>
<td> Trivial</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/optional.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/optional.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/optional.patch.gz">BROKEN</td>
</tr></a>
<a name="oopser.patch.gz"><tr>
<td><a href="IDE_Oops_Dumper_for_x86.html"> IDE Oops Dumper for x86</a>
</td>
<td> Tested on 2.5.34 i386 SMP</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/oopser.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/oopser.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/oopser.patch.gz">BROKEN</td>
</tr></a>
<a name="on_one_cpu.patch.gz"><tr>
<td><a href="on_one_cpu_function.html"> on_one_cpu function</a>
</td>
<td> Booted on 2.6.5</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/on_one_cpu.patch.gz">APPLIES</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/on_one_cpu.patch.gz">BROKEN</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/on_one_cpu.patch.gz">APPLIES</td>
</tr></a>
<a name="notifier_unregister.patch.gz"><tr>
<td><a href="notifier_unregister_should_return_void.html"> notifier_unregister should return void</a>
</td>
<td> Tested on 2.5.66-bk2</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/notifier_unregister.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/notifier_unregister.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/notifier_unregister.patch.gz">BROKEN</td>
</tr></a>
<a name="node-migration_direct.patch.gz"><tr>
<td><a href="Directed_Migration__Don_t_Change_cpumask_in_sched_balance_exec__.html"> Directed Migration: Don't Change cpumask in sched_balance_exec()</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/node-migration_direct.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/node-migration_direct.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/node-migration_direct.patch.gz">BROKEN</td>
</tr></a>
<a name="more_groups_simple.patch.gz"><tr>
<td><a href="Simple_Dynamic_Allocation_of_groups_array.html"> Simple Dynamic Allocation of groups array</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/more_groups_simple.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/more_groups_simple.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/more_groups_simple.patch.gz">BROKEN</td>
</tr></a>
<a name="module_proc.patch.gz"><tr>
<td><a href="Automagic_Proc_Entry_Creation.html"> Automagic Proc Entry Creation</a>
<br>Needs: <a href="#Module/init_exit.patch.gz"> Allow Arbitrary Number of Init and Exit Functions</a>
</td>
<td> Tested on 2.5.71-bk2</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/module_proc.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/module_proc.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/module_proc.patch.gz">UNKNOWN</td>
</tr></a>
<a name="mandocs.patch.gz"><tr>
<td><a href="mandocs_target.html"> mandocs target</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/mandocs.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/mandocs.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/mandocs.patch.gz">BROKEN</td>
</tr></a>
<a name="lrdr-capacity-maxcpus.patch.gz"><tr>
<td><a href="Interpret_ibm_lrdr_capacity_Property_Correctly.html"> Interpret ibm,lrdr-capacity Property Correctly</a>
</td>
<td> Trivial</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/lrdr-capacity-maxcpus.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/lrdr-capacity-maxcpus.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/lrdr-capacity-maxcpus.patch.gz">BROKEN</td>
</tr></a>
<a name="locking-guide-recursive-locks.patch.gz"><tr>
<td><a href="Add_Al_Viro_s_Recursive_Lock_Warning_to_Locking_Guide.html"> Add Al Viro's Recursive Lock Warning to Locking Guide</a>
</td>
<td> Trivial</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/locking-guide-recursive-locks.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/locking-guide-recursive-locks.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/locking-guide-recursive-locks.patch.gz">APPLIES</td>
</tr></a>
<a name="lock-debug.patch.gz"><tr>
<td><a href="Spinlock_Data_Debugging.html"> Spinlock Data Debugging</a>
</td>
<td> Untested</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/lock-debug.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/lock-debug.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/lock-debug.patch.gz">BROKEN</td>
</tr></a>
<a name="kstrdup.patch.gz"><tr>
<td><a href="kstrdup.html"> kstrdup</a>
</td>
<td> Trivial</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/kstrdup.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/kstrdup.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/kstrdup.patch.gz">BROKEN</td>
</tr></a>
<a name="kprobes.patch.gz"><tr>
<td><a href="Kprobes_for_i386.html"> Kprobes for i386</a>
</td>
<td> Tested on 2.5.44 SMP</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/kprobes.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/kprobes.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/kprobes.patch.gz">BROKEN</td>
</tr></a>
<a name="kobject-style.patch.gz"><tr>
<td><a href="Kobject_Whitespace_Style_Patch.html"> Kobject Whitespace Style Patch</a>
</td>
<td> Trivial</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/kobject-style.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/kobject-style.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/kobject-style.patch.gz">BROKEN</td>
</tr></a>
<a name="kallsyms-valid-identifiers-only.patch.gz"><tr>
<td><a href="Make_kallsyms_filter_out_all_non_C_symbols.html"> Make kallsyms filter out all non-C symbols</a>
</td>
<td> Booted on 2.6.7-bk6</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/kallsyms-valid-identifiers-only.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/kallsyms-valid-identifiers-only.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/kallsyms-valid-identifiers-only.patch.gz">BROKEN</td>
</tr></a>
<a name="kallsyms-sort.patch.gz"><tr>
<td><a href="Sort_Kallsyms_for_Stem_Compression.html"> Sort Kallsyms for Stem Compression</a>
</td>
<td> Booted on 2.6.6</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/kallsyms-sort.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/kallsyms-sort.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/kallsyms-sort.patch.gz">BROKEN</td>
</tr></a>
<a name="kallsyms-__sched.patch.gz"><tr>
<td><a href="in_sched_functions__.html"> in_sched_functions()</a>
</td>
<td> Booted on 2.6.5-mm4</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/kallsyms-__sched.patch.gz">BROKEN</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/kallsyms-__sched.patch.gz">INCLUDED</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/kallsyms-__sched.patch.gz">BROKEN</td>
</tr></a>
<a name="init_poison.patch.gz"><tr>
<td><a href="Poison___init_regions.html"> Poison __init regions</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/init_poison.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/init_poison.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/init_poison.patch.gz">BROKEN</td>
</tr></a>
<a name="init-bootoption-quotes.patch.gz"><tr>
<td><a href="Remove_quotes_around_environment_variables.html"> Remove quotes around environment variables</a>
</td>
<td> Booted on 2.6-bk</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/init-bootoption-quotes.patch.gz">INCLUDED</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/init-bootoption-quotes.patch.gz">INCLUDED</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/init-bootoption-quotes.patch.gz">BROKEN</td>
</tr></a>
<a name="i386_constant_cleanup.patch.gz"><tr>
<td><a href="i386_Constant_Cleanup.html"> i386 Constant Cleanup</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/i386_constant_cleanup.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/i386_constant_cleanup.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/i386_constant_cleanup.patch.gz">BROKEN</td>
</tr></a>
<a name="ht-sched.patch.gz"><tr>
<td><a href="Hyperthread_Scheduler_Modifications.html"> Hyperthread Scheduler Modifications</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/ht-sched.patch.2.5.33.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/ht-sched.patch.2.5.33.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/ht-sched.patch.2.5.33.gz">BROKEN</td>
</tr></a>
<a name="hacking-guide-2.6.patch.gz"><tr>
<td><a href="Update_Hacking_Guide_For_2.6.html"> Update Hacking Guide For 2.6</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/hacking-guide-2.6.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/hacking-guide-2.6.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/hacking-guide-2.6.patch.gz">BROKEN</td>
</tr></a>
<a name="group_debug.patch.gz"><tr>
<td><a href="Group_Reference_Counting_Debug_Patch.html"> Group Reference Counting Debug Patch</a>
</td>
<td> Tested on 21 May 2004</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/group_debug.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/group_debug.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/group_debug.patch.gz">APPLIES</td>
</tr></a>
<a name="gfp_t.patch.gz"><tr>
<td><a href="gfp_t.html"> gfp_t</a>
</td>
<td> Tested against 2.5.43</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/gfp_t.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/gfp_t.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/gfp_t.patch.gz">BROKEN</td>
</tr></a>
<a name="generated-removal.patch.gz"><tr>
<td><a href="generated_file_removal.html"> generated file removal</a>
</td>
<td> Trivial</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/generated-removal.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/generated-removal.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/generated-removal.patch.gz">BROKEN</td>
</tr></a>
<a name="futex-task_state.patch.gz"><tr>
<td><a href="Clean_up_futex_task_state_setting.html"> Clean up futex task state setting</a>
</td>
<td> Trivial</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/futex-task_state.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/futex-task_state.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/futex-task_state.patch.gz">BROKEN</td>
</tr></a>
<a name="futex-jamie-cleanups3.patch.gz"><tr>
<td><a href="Resolve_Race_Between_Requeue_and_Wakeup_Futex_Requeue_Race.html"> Resolve Race Between Requeue and Wakeup
 Futex Requeue Race</a>
</td>
<td> Experimental
 Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/futex-jamie-cleanups3.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/futex-jamie-cleanups3.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/futex-jamie-cleanups3.patch.gz">BROKEN</td>
</tr></a>
<a name="futex-jamie-cleanups2.patch.gz"><tr>
<td><a href="Futexes_Hold_Reference_Counts_on_Page_or_MM.html"> Futexes Hold Reference Counts on Page or MM</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/futex-jamie-cleanups2.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/futex-jamie-cleanups2.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/futex-jamie-cleanups2.patch.gz">BROKEN</td>
</tr></a>
<a name="futex-jamie-cleanups1.patch.gz"><tr>
<td><a href="Minor_Futex_Tweaks.html"> Minor Futex Tweaks</a>
</td>
<td> Trivial</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/futex-jamie-cleanups1.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/futex-jamie-cleanups1.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/futex-jamie-cleanups1.patch.gz">BROKEN</td>
</tr></a>
<a name="futex-debug.patch.gz"><tr>
<td><a href="Who_s_Spuriously_Waking_Futexes_.html"> Who's Spuriously Waking Futexes?</a>
</td>
<td> Tested on 2.6.3-bk1</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/futex-debug.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/futex-debug.patch.gz">BROKEN</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/futex-debug.patch.gz">APPLIES</td>
</tr></a>
<a name="fix-cmdline-parse-crash.patch.gz"><tr>
<td><a href="Fix_cmdline_parsing_crash.html"> Fix cmdline parsing crash</a>
</td>
<td> Untested</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/fix-cmdline-parse-crash.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/fix-cmdline-parse-crash.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/fix-cmdline-parse-crash.patch.gz">BROKEN</td>
</tr></a>
<a name="file-logging.patch.gz"><tr>
<td><a href="File_Logging_Patch.html"> File Logging Patch</a>
</td>
<td> Untested</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/file-logging.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/file-logging.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Misc/file-logging.patch.gz">APPLIES</td>
</tr></a>
<a name="fake-schedule.patch.gz"><tr>
<td><a href="Fake_Schedule_for_Another_CPU.html"> Fake Schedule for Another CPU</a>
</td>
<td> Works for Me</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/fake-schedule.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/fake-schedule.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/fake-schedule.patch.gz">BROKEN</td>
</tr></a>
<a name="evlog-macro.patch.gz"><tr>
<td><a href="Event_Logging_Macros_II.html"> Event Logging Macros II</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/evlog-macro.patch.2.5.38.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/evlog-macro.patch.2.5.38.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/evlog-macro.patch.2.5.38.gz">BROKEN</td>
</tr></a>
<a name="eliminate_unused_functions.patch.gz"><tr>
<td><a href="Eliminate_Unused_Functions.html"> Eliminate Unused Functions</a>
</td>
<td> Tested on 2.5.70-bk16</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/eliminate_unused_functions.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/eliminate_unused_functions.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/eliminate_unused_functions.patch.gz">BROKEN</td>
</tr></a>
<a name="early_param-with-setup.patch.gz"><tr>
<td><a href="Merge___early_param___with___setup_code.html"> Merge __early_param() with __setup code</a>
</td>
<td> Tested on 2.6.5-rc3</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/early_param-with-setup.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/early_param-with-setup.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/early_param-with-setup.patch.gz">BROKEN</td>
</tr></a>
<a name="die-oss-die.patch.gz"><tr>
<td><a href="Die_OSS__die.html"> Die OSS, die</a>
</td>
<td> Relatively Trivial</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/die-oss-die.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/die-oss-die.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/die-oss-die.patch.gz">BROKEN</td>
</tr></a>
<a name="detect-posix-lock-close.patch.gz"><tr>
<td><a href="Detect_POSIX_Lock_Surprises.html"> Detect POSIX Lock Surprises</a>
</td>
<td> Booted on 2.6.7-rc3-bk7</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/detect-posix-lock-close.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/detect-posix-lock-close.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/detect-posix-lock-close.patch.gz">BROKEN</td>
</tr></a>
<a name="derived-smp_processor_id.patch.gz"><tr>
<td><a href="Put___per_cpu_offset_in_the_thread_struct__remove_cpu.html"> Put __per_cpu_offset in the thread struct, remove cpu</a>
</td>
<td> Tested on 2.5.69-bk15, dual x86</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/derived-smp_processor_id.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/derived-smp_processor_id.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/derived-smp_processor_id.patch.gz">BROKEN</td>
</tr></a>
<a name="deprecate_cli.patch.gz"><tr>
<td><a href="Deprecate_cli_sti_restore_flags_etc..html"> Deprecate cli/sti/restore_flags etc.</a>
</td>
<td> Tested on 2.5.54</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/deprecate_cli.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/deprecate_cli.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/deprecate_cli.patch.gz">BROKEN</td>
</tr></a>
<a name="current_pure.patch.gz"><tr>
<td><a href="Make_current_an_attribute_const_function.html"> Make current an attribute const function</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/current_pure.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/current_pure.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/current_pure.patch.gz">BROKEN</td>
</tr></a>
<a name="cpumask_simple_cleanup.patch.gz"><tr>
<td><a href="Simple_Cleanup_of_Uses_of_cpumask_t.html"> Simple Cleanup of Uses of cpumask_t</a>
</td>
<td> Booted on 2.6.5</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/cpumask_simple_cleanup.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/cpumask_simple_cleanup.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/cpumask_simple_cleanup.patch.gz">BROKEN</td>
</tr></a>
<a name="cpumask.patch.gz"><tr>
<td><a href="CPU_mask_patch.html"> CPU mask patch</a>
</td>
<td> Tested on 2.5.44 SMP</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/cpumask.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/cpumask.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/cpumask.patch.gz">BROKEN</td>
</tr></a>
<a name="cpumask-remove-inits.patch.gz"><tr>
<td><a href="Remove_Useless_cpumask_Initializers.html"> Remove Useless cpumask Initializers</a>
</td>
<td> Untested</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/cpumask-remove-inits.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/cpumask-remove-inits.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/cpumask-remove-inits.patch.gz">BROKEN</td>
</tr></a>
<a name="cpu-iterators.patch.gz"><tr>
<td><a href="CPU_iterator_patch.html"> CPU iterator patch</a>
</td>
<td> Trivial</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/cpu-iterators.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/cpu-iterators.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/cpu-iterators.patch.gz">BROKEN</td>
</tr></a>
<a name="copy_device_tree-claim.patch.gz"><tr>
<td><a href="copy_device_tree_to_use_Open_Firmware_claim_call.html"> copy_device_tree to use Open Firmware claim call</a>
</td>
<td> Untested</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/copy_device_tree-claim.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/copy_device_tree-claim.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/copy_device_tree-claim.patch.gz">BROKEN</td>
</tr></a>
<a name="check_smp_processor_id.patch.gz"><tr>
<td><a href="Check_Calls_to_smp_processor_id__.html"> Check Calls to smp_processor_id()</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/check_smp_processor_id.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/check_smp_processor_id.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/check_smp_processor_id.patch.gz">BROKEN</td>
</tr></a>
<a name="bigrefs2.patch.gz"><tr>
<td><a href="Bigrefs_Implementation_using___alloc_percpu.html"> Bigrefs Implementation using __alloc_percpu</a>
<br>Needs: <a href="#Percpu/kmalloc_percpu-full.patch.gz"> Dynamic per-cpu allocation using static per-cpu mechanism (old version)</a>
</td>
<td> Experimental</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/bigrefs2.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/bigrefs2.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/bigrefs2.patch.gz">UNKNOWN</td>
</tr></a>
<a name="bigrefs.patch.gz"><tr>
<td><a href="Bigrefs_Implementation.html"> Bigrefs Implementation</a>
</td>
<td> Tested on 2.5.38</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/bigrefs.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/bigrefs.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/bigrefs.patch.gz">BROKEN</td>
</tr></a>
<a name="align.patch.gz"><tr>
<td><a href="Cache_Align_Cleanup_Patch.html"> Cache Align Cleanup Patch</a>
</td>
<td> Relatively Trivial</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/align.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/align.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/align.patch.gz">BROKEN</td>
</tr></a>
<a name="2.4_module_param.patch.gz"><tr>
<td><a href="2.4_module_param_Forward_Compatibility_Macros.html"> 2.4 module_param Forward Compatibility Macros</a>
</td>
<td> Tested on 2.5.24-pre6</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/2.4_module_param.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/2.4_module_param.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/2.4_module_param.patch.gz">BROKEN</td>
</tr></a>
<a name="ordered-core-initcalls.patch.gz"><tr>
<td><a href="Core_initcall_depends.html"> Core initcall depends</a>
<br>Needs: <a href="#Misc/ordered-module-initcalls.patch.gz"> Module initcall depends</a>
</td>
<td> Experimental</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/ordered-core-initcalls.patch.2.5.30.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/ordered-core-initcalls.patch.2.5.30.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/ordered-core-initcalls.patch.2.5.30.gz">UNKNOWN</td>
</tr></a>
<a name="i386-cpuid-msr-offline-cpu.patch.gz"><tr>
<td><a href="Neater_returns_for_i386_x86_64_cpuid_msr_on_Offline_CPUs.html"> Neater returns for i386/x86_64 cpuid/msr on Offline CPUs</a>
<br>Needs: <a href="#Misc/on_one_cpu.patch.gz"> on_one_cpu function</a>
</td>
<td> Untested</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/i386-cpuid-msr-offline-cpu.patch.gz">BROKEN</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/i386-cpuid-msr-offline-cpu.patch.gz">UNKNOWN</td>
<td bgcolor="#FF3F3F"><a href="patches/Misc/i386-cpuid-msr-offline-cpu.patch.gz">BROKEN</td>
</tr></a>
<a name="kobject-sanity.patch.gz"><tr>
<td><a href="Kobject_Devpath_Sanity_Patch.html"> Kobject Devpath Sanity Patch</a>
<br>Needs: <a href="#Misc/kobject-style.patch.gz"> Kobject Whitespace Style Patch</a>
</td>
<td> Tested in userspace.</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/kobject-sanity.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/kobject-sanity.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/kobject-sanity.patch.gz">UNKNOWN</td>
</tr></a>
<a name="ht-sched-rusty.patch.gz"><tr>
<td><a href="Rusty_s_Hyperthread_Scheduler_Modifications.html"> Rusty's Hyperthread Scheduler Modifications</a>
<br>Needs: <a href="#Misc/ht-sched.patch.gz"> Hyperthread Scheduler Modifications</a>
</td>
<td> Experimental</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/ht-sched-rusty.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/ht-sched-rusty.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/ht-sched-rusty.patch.gz">UNKNOWN</td>
</tr></a>
<a name="futex-hugh-requeue.patch.gz"><tr>
<td><a href="FUTEX_REQUEUE_simplification.html"> FUTEX_REQUEUE simplification</a>
<br>Needs: <a href="#Misc/futex-jamie-cleanups1.patch.gz"> Minor Futex Tweaks</a>
</td>
<td> Booted on 2.6.0-test4-bk9</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/futex-hugh-requeue.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/futex-hugh-requeue.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/futex-hugh-requeue.patch.gz">UNKNOWN</td>
</tr></a>
<a name="cpu_cleanup.patch.gz"><tr>
<td><a href="cpumask_t_Removal.html"> cpumask_t Removal</a>
<br>Needs: <a href="#Misc/cpumask_simple_cleanup.patch.gz"> Simple Cleanup of Uses of cpumask_t</a>
</td>
<td> Untested</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/cpu_cleanup.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/cpu_cleanup.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/cpu_cleanup.patch.gz">UNKNOWN</td>
</tr></a>
<a name="kobject-export.patch.gz"><tr>
<td><a href="Expose_kobject_hotplug_function..html"> Expose kobject_hotplug function.</a>
<br>Needs: <a href="#Misc/kobject-sanity.patch.gz"> Kobject Devpath Sanity Patch</a>
</td>
<td> Trivial.</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/kobject-export.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/kobject-export.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Misc/kobject-export.patch.gz">UNKNOWN</td>
</tr></a>
<tr><td><strong><a href="patches/all-Module.patch.gz">Module section:</a></strong></td></tr>
<a name="MODULE_PARM-x86.patch.gz"><tr>
<td><a href=".html"></a>
</td>
<td></td>
<td bgcolor="#3FFF3F"><a href="patches/Module/MODULE_PARM-x86.patch.*gz">APPLIES</td>
<td bgcolor="#FFFFFF"><a href="">INCLUDED</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/MODULE_PARM-x86.patch.*gz">APPLIES</td>
</tr></a>
<a name="simplify-refcounts.patch.gz"><tr>
<td><a href=".html"></a>
</td>
<td></td>
<td bgcolor="#3FFF3F"><a href="patches/Module/simplify-refcounts.patch.*gz">APPLIES</td>
<td bgcolor="#FF3F3F"><a href="">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="">BROKEN</td>
</tr></a>
<a name="what-module.patch.gz"><tr>
<td><a href="Figure_Out_Who_Is_Inserting_Bogus_Modules.html"> Figure Out Who Is Inserting Bogus Modules</a>
</td>
<td> Booted on 2.6.9-rc3-mm3</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/what-module.patch.gz">APPLIES</td>
<td bgcolor="#FFFFFF"><a href="patches/Module/what-module.patch.gz">INCLUDED</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/what-module.patch.gz">APPLIES</td>
</tr></a>
<a name="unique_id.patch.gz"><tr>
<td><a href="Centralize_token_pasting_and_generation_of_unique_IDs.html"> Centralize token pasting and generation of unique IDs</a>
</td>
<td> Tested on 2.5.70-bk13</td>
<td bgcolor="#FF3F3F"><a href="patches/Module/unique_id.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Module/unique_id.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Module/unique_id.patch.gz">BROKEN</td>
</tr></a>
<a name="request_module-mtd.patch.gz"><tr>
<td><a href="try_then_request_module___in_MTD_code.html"> try_then_request_module() in MTD code</a>
</td>
<td> Trivial</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/request_module-mtd.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/request_module-mtd.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/request_module-mtd.patch.gz">APPLIES</td>
</tr></a>
<a name="remove-inter-module.patch.gz"><tr>
<td><a href="Remove_inter_module_functions_.html"> Remove inter_module functions </a>
</td>
<td> Compiled on 2.6.10-rc1-bk10</td>
<td bgcolor="#FF3F3F"><a href="patches/Module/remove-inter-module.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Module/remove-inter-module.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Module/remove-inter-module.patch.gz">BROKEN</td>
</tr></a>
<a name="remove-inter-module-mtd.patch.gz"><tr>
<td><a href="Remove_inter_module_functions_from_mtd_drivers..html"> Remove inter_module functions from mtd drivers.</a>
</td>
<td> Compiled on 2.6.10-rc1-bk10</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/remove-inter-module-mtd.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/remove-inter-module-mtd.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/remove-inter-module-mtd.patch.gz">APPLIES</td>
</tr></a>
<a name="remove-inter-module-drm.patch.gz"><tr>
<td><a href="Removed_inter_module_functions_from_DRM.html"> Removed inter_module functions from DRM</a>
</td>
<td> Compiles</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/remove-inter-module-drm.patch.gz">APPLIES</td>
<td bgcolor="#FF3F3F"><a href="patches/Module/remove-inter-module-drm.patch.gz">BROKEN</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/remove-inter-module-drm.patch.gz">APPLIES</td>
</tr></a>
<a name="param-perm-check.patch.gz"><tr>
<td><a href="Check_Permission_Are_Sane_on_module_param_Usage.html"> Check Permission Are Sane on module_param Usage</a>
</td>
<td> Tested on 2.6.8-rc6-bk1</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/param-perm-check.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/param-perm-check.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/param-perm-check.patch.gz">APPLIES</td>
</tr></a>
<a name="obsolete-init_module-cleanup_module.patch.gz"><tr>
<td><a href="Eliminate_Obsolete_init_module_and_cleanup_module_Uses.html"> Eliminate Obsolete init_module and cleanup_module Uses</a>
</td>
<td> Compiled on linux-2.6.9-bk6</td>
<td bgcolor="#FF3F3F"><a href="patches/Module/obsolete-init_module-cleanup_module.patch.gz">BROKEN</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/obsolete-init_module-cleanup_module.patch.gz">APPLIES</td>
<td bgcolor="#FF3F3F"><a href="patches/Module/obsolete-init_module-cleanup_module.patch.gz">BROKEN</td>
</tr></a>
<a name="module_more_notifiers.patch.gz"><tr>
<td><a href="More_Module_Notifiers.html"> More Module Notifiers</a>
</td>
<td> Trivial</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/module_more_notifiers.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/module_more_notifiers.patch.gz">APPLIES</td>
<td bgcolor="#FF3F3F"><a href="patches/Module/module_more_notifiers.patch.gz">BROKEN</td>
</tr></a>
<a name="module_modules-txt.patch.gz"><tr>
<td><a href="Remove_alias_references.html"> Remove alias references</a>
</td>
<td> Trivial</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/module_modules-txt.patch.gz">APPLIES</td>
<td bgcolor="#FF3F3F"><a href="patches/Module/module_modules-txt.patch.gz">BROKEN</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/module_modules-txt.patch.gz">APPLIES</td>
</tr></a>
<a name="module-signing-core.patch.gz"><tr>
<td><a href="Module_Signature_Core_Code.html"> Module Signature Core Code</a>
</td>
<td> Booted on 2.6.9-rc3</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/module-signing-core.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/module-signing-core.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/module-signing-core.patch.gz">APPLIES</td>
</tr></a>
<a name="input_aliases.patch.gz"><tr>
<td><a href="Alias_support_for_input_device_id_tables.html"> Alias support for input_device_id tables</a>
</td>
<td> Experimental</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/input_aliases.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/input_aliases.patch.gz">APPLIES</td>
<td bgcolor="#FF3F3F"><a href="patches/Module/input_aliases.patch.gz">BROKEN</td>
</tr></a>
<a name="init_exit.patch.gz"><tr>
<td><a href="Allow_Arbitrary_Number_of_Init_and_Exit_Functions.html"> Allow Arbitrary Number of Init and Exit Functions</a>
<br>Needs: <a href="#Misc/unique_id.patch.gz"></a>
</td>
<td> Tested on 2.5.73-bk1</td>
<td bgcolor="#FFFFFF"><a href="patches/Module/init_exit.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Module/init_exit.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Module/init_exit.patch.gz">UNKNOWN</td>
</tr></a>
<a name="fix-remove-module-return.patch.gz"><tr>
<td><a href="Fix_Module_Removal__Don_t_Ignore_try_stop_module_Return.html"> Fix Module Removal: Don't Ignore try_stop_module Return</a>
</td>
<td> Trivial</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/fix-remove-module-return.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/fix-remove-module-return.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/fix-remove-module-return.patch.gz">APPLIES</td>
</tr></a>
<a name="MODULE_PARM-allyes.patch.gz"><tr>
<td><a href="Remove_MODULE_PARM_from_allyesconfig.html"> Remove MODULE_PARM from allyesconfig</a>
<br>Needs: <a href="#Module/MODULE_PARM-x86.patch.gz"></a>
</td>
<td> Compiled on 2.6.9-bk6</td>
<td bgcolor="#FFFFFF"><a href="patches/Module/MODULE_PARM-allyes.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Module/MODULE_PARM-allyes.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Module/MODULE_PARM-allyes.patch.gz">UNKNOWN</td>
</tr></a>
<a name="twostage.patch.gz"><tr>
<td><a href="Module_init_race_fix.html"> Module init race fix</a>
<br>Needs: <a href="#Module/simplify-refcounts.patch.gz"></a>
</td>
<td> Experimental</td>
<td bgcolor="#FFFFFF"><a href="patches/Module/twostage.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Module/twostage.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Module/twostage.patch.gz">UNKNOWN</td>
</tr></a>
<a name="obsolete-init_module-removal.patch.gz"><tr>
<td><a href="Eliminate_init_module_and_cleanup_module_Magic.html"> Eliminate init_module and cleanup_module Magic</a>
<br>Needs: <a href="#Module/obsolete-init_module-cleanup_module.patch.gz"> Eliminate Obsolete init_module and cleanup_module Uses</a>
</td>
<td> Compiled on linux-2.6.9-bk6</td>
<td bgcolor="#FFFFFF"><a href="patches/Module/obsolete-init_module-removal.patch.gz">UNKNOWN</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/obsolete-init_module-removal.patch.gz">APPLIES</td>
<td bgcolor="#FFFFFF"><a href="patches/Module/obsolete-init_module-removal.patch.gz">UNKNOWN</td>
</tr></a>
<a name="module-signing-script.patch.gz"><tr>
<td><a href="Module_Signature_Signing_Script.html"> Module Signature Signing Script</a>
<br>Needs: <a href="#Module/module-signing-core.patch.gz"> Module Signature Core Code</a>
</td>
<td> Booted on 2.6.9-rc3</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/module-signing-script.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/module-signing-script.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Module/module-signing-script.patch.gz">APPLIES</td>
</tr></a>
<a name="init_exit-test.patch.gz"><tr>
<td><a href="Test_Arbitrary_Number_of_Init_and_Exit_Functions.html"> Test Arbitrary Number of Init and Exit Functions</a>
<br>Needs: <a href="#Module/init_exit.patch.gz"> Allow Arbitrary Number of Init and Exit Functions</a>
</td>
<td> Tested on 2.5.73-bk1</td>
<td bgcolor="#FFFFFF"><a href="patches/Module/init_exit-test.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Module/init_exit-test.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Module/init_exit-test.patch.gz">UNKNOWN</td>
</tr></a>
<a name="MODULE_PARM-broken.patch.gz"><tr>
<td><a href="Mark_broken_MODULE_PARM_uses.html"> Mark broken MODULE_PARM uses</a>
<br>Needs: <a href="#Module/MODULE_PARM-allyes.patch.gz"> Remove MODULE_PARM from allyesconfig</a>
</td>
<td> Trivial</td>
<td bgcolor="#FFFFFF"><a href="patches/Module/MODULE_PARM-broken.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Module/MODULE_PARM-broken.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Module/MODULE_PARM-broken.patch.gz">UNKNOWN</td>
</tr></a>
<tr><td><strong><a href="patches/all-Netfilter.patch.gz">Netfilter section:</a></strong></td></tr>
<a name="skb_walk.patch.gz"><tr>
<td><a href="skb_walk_Function.html"> skb_walk Function</a>
</td>
<td> Untested</td>
<td bgcolor="#3FFF3F"><a href="patches/Netfilter/skb_walk.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Netfilter/skb_walk.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Netfilter/skb_walk.patch.gz">APPLIES</td>
</tr></a>
<a name="skb_iter.patch.gz"><tr>
<td><a href="skb_iter_Functions.html"> skb_iter Functions</a>
</td>
<td> Tested on 2.6.8-rc2-bk12</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/skb_iter.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/skb_iter.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/skb_iter.patch.gz">BROKEN</td>
</tr></a>
<a name="masquerade-output-fix.patch.gz"><tr>
<td><a href="Change_MASQUERADE_to_Use_Device_Address_Directly.html"> Change MASQUERADE to Use Device Address Directly</a>
</td>
<td> Untested</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/masquerade-output-fix.patch.gz">INCLUDED</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/masquerade-output-fix.patch.gz">INCLUDED</td>
<td bgcolor="#3FFF3F"><a href="patches/Netfilter/masquerade-output-fix.patch.gz">APPLIES</td>
</tr></a>
<a name="listhelp.patch.gz"><tr>
<td><a href="Remove_list_macro_usage_from_ip_conntrack..html"> Remove list macro usage from ip_conntrack.</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/listhelp.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/listhelp.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/listhelp.patch.gz">BROKEN</td>
</tr></a>
<a name="ip_tables-mem-leak.patch.gz"><tr>
<td><a href="ip_tables_Stack_Leakage.html"> ip_tables Stack Leakage</a>
</td>
<td> Trivial</td>
<td bgcolor="#3FFF3F"><a href="patches/Netfilter/ip_tables-mem-leak.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Netfilter/ip_tables-mem-leak.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Netfilter/ip_tables-mem-leak.patch.gz">APPLIES</td>
</tr></a>
<a name="ip_crossover.patch.gz"><tr>
<td><a href="CONFIG_IP_NF_CROSSOVER.html"> CONFIG_IP_NF_CROSSOVER</a>
</td>
<td> Experimental</td>
<td bgcolor="#3FFF3F"><a href="patches/Netfilter/ip_crossover.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Netfilter/ip_crossover.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Netfilter/ip_crossover.patch.gz">APPLIES</td>
</tr></a>
<a name="hardware_loopback.patch.gz"><tr>
<td><a href="Hardware_Loopback_Module.html"> Hardware Loopback Module</a>
</td>
<td> Tested on 2.5.74-bk5</td>
<td bgcolor="#3FFF3F"><a href="patches/Netfilter/hardware_loopback.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Netfilter/hardware_loopback.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Netfilter/hardware_loopback.patch.gz">APPLIES</td>
</tr></a>
<a name="ftp_nat-anastasov-change.patch.gz"><tr>
<td><a href="ip_nat_ftp___manip_at_the_right_place.html"> ip_nat_ftp - manip at the right place</a>
</td>
<td> Untested</td>
<td bgcolor="#3FFF3F"><a href="patches/Netfilter/ftp_nat-anastasov-change.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Netfilter/ftp_nat-anastasov-change.patch.gz">APPLIES</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/ftp_nat-anastasov-change.patch.gz">BROKEN</td>
</tr></a>
<a name="fix-source-matching.patch.gz"><tr>
<td><a href="Fix_find_appropriate_src___To_Actually_Work.html"> Fix find_appropriate_src() To Actually Work</a>
</td>
<td> Tested under nfsim</td>
<td bgcolor="#3FFF3F"><a href="patches/Netfilter/fix-source-matching.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Netfilter/fix-source-matching.patch.gz">APPLIES</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/fix-source-matching.patch.gz">BROKEN</td>
</tr></a>
<a name="drop.patch.gz"><tr>
<td><a href="Fix_Early_Drop_Code.html"> Fix Early Drop Code</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/drop.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/drop.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/drop.patch.gz">BROKEN</td>
</tr></a>
<a name="direct_nat_expect.patch.gz"><tr>
<td><a href="Call_NAT_Helper_Modules_Directly_from_Conntrack_Modules.html"> Call NAT Helper Modules Directly from Conntrack Modules</a>
<br>Needs: <a href="#Module/module_more_notifiers.patch.gz"> More Module Notifiers</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/direct_nat_expect.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/direct_nat_expect.patch.gz">BROKEN</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/direct_nat_expect.patch.gz">UNKNOWN</td>
</tr></a>
<a name="conntrack_proto_lock.patch.gz"><tr>
<td><a href="Connection_Tracking_Protocol_Lock_optimization.html"> Connection Tracking Protocol Lock optimization</a>
</td>
<td> Trivial</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/conntrack_proto_lock.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/conntrack_proto_lock.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/conntrack_proto_lock.patch.gz">BROKEN</td>
</tr></a>
<a name="conntrack_hashsize.patch.gz"><tr>
<td><a href="Conntrack_Hash_Allocation_using___get_free_pages.html"> Conntrack Hash Allocation using __get_free_pages</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/conntrack_hashsize.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/conntrack_hashsize.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/conntrack_hashsize.patch.gz">BROKEN</td>
</tr></a>
<a name="conntrack_hashing.patch.gz"><tr>
<td><a href="Conntrack_Hashing_Patch_Rewrite.html"> Conntrack Hashing Patch Rewrite</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/conntrack_hashing.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/conntrack_hashing.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/conntrack_hashing.patch.gz">BROKEN</td>
</tr></a>
<a name="conntrack_expect_lock_removal.patch.gz"><tr>
<td><a href="Removes_ip_conntrack_expect_tuple_lock.html"> Removes ip_conntrack_expect_tuple_lock</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/conntrack_expect_lock_removal.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/conntrack_expect_lock_removal.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/conntrack_expect_lock_removal.patch.gz">BROKEN</td>
</tr></a>
<a name="compatiblity_target_match.patch.gz"><tr>
<td><a href="Change_iptables_Targets_and_Matches_to_Take_Whole_Struct.html"> Change iptables Targets and Matches to Take Whole Struct</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/compatiblity_target_match.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/compatiblity_target_match.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/compatiblity_target_match.patch.gz">BROKEN</td>
</tr></a>
<a name="alter_reply_fix.patch.gz"><tr>
<td><a href="ip_conntrack_alter_reply_thinko_fix.html"> ip_conntrack_alter_reply thinko fix</a>
</td>
<td> Booted on 2.6.0-test5-bk1</td>
<td bgcolor="#3FFF3F"><a href="patches/Netfilter/alter_reply_fix.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Netfilter/alter_reply_fix.patch.gz">APPLIES</td>
<td bgcolor="#3FFF3F"><a href="patches/Netfilter/alter_reply_fix.patch.gz">APPLIES</td>
</tr></a>
<a name="CONNTRACK_STAT_INC-death_by_timeout2.patch.gz"><tr>
<td><a href="Avoid_warning_on_CONNTRACK_STAT_INC_in_destroy_conntrack__.html"> Avoid warning on CONNTRACK_STAT_INC in destroy_conntrack()</a>
</td>
<td> Trivial</td>
<td bgcolor="#3FFF3F"><a href="patches/Netfilter/CONNTRACK_STAT_INC-death_by_timeout2.patch.gz">APPLIES</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/CONNTRACK_STAT_INC-death_by_timeout2.patch.gz">INCLUDED</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/CONNTRACK_STAT_INC-death_by_timeout2.patch.gz">BROKEN</td>
</tr></a>
<a name="CONNTRACK_STAT_INC-death_by_timeout.patch.gz"><tr>
<td><a href="Avoid_warning_on_CONNTRACK_STAT_INC_in_death_by_timeout__.html"> Avoid warning on CONNTRACK_STAT_INC in death_by_timeout()</a>
</td>
<td> Trivial</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/CONNTRACK_STAT_INC-death_by_timeout.patch.gz">INCLUDED</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/CONNTRACK_STAT_INC-death_by_timeout.patch.gz">INCLUDED</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/CONNTRACK_STAT_INC-death_by_timeout.patch.gz">BROKEN</td>
</tr></a>
<a name="fragment-dynamic-timeout.patch.gz"><tr>
<td><a href="Fragment_ID_Wrap_Workaround.html"> Fragment ID Wrap Workaround</a>
<br>Needs: <a href="#Netfilter/skb_iter.patch.gz"> skb_iter Functions</a>
</td>
<td> Untested</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/fragment-dynamic-timeout.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/fragment-dynamic-timeout.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/fragment-dynamic-timeout.patch.gz">UNKNOWN</td>
</tr></a>
<a name="remove-multiple-ranges.patch.gz"><tr>
<td><a href="Remove_NAT_to_multiple_ranges.html"> Remove NAT to multiple ranges</a>
<br>Needs: <a href="#Netfilter/masquerade-output-fix.patch.gz"> Change MASQUERADE to Use Device Address Directly</a>
<br>Needs: <a href="#Netfilter/fix-source-matching.patch.gz"> Fix find_appropriate_src() To Actually Work</a>
</td>
<td> Untested</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/remove-multiple-ranges.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Netfilter/remove-multiple-ranges.patch.gz">BROKEN</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/remove-multiple-ranges.patch.gz">UNKNOWN</td>
</tr></a>
<a name="conntrack_expect_alloc.patch.gz"><tr>
<td><a href="ip_conntrack_expect_alloc.html"> ip_conntrack_expect_alloc</a>
<br>Needs: <a href="#Netfilter/conntrack_expect_lock_removal.patch.gz"> Removes ip_conntrack_expect_tuple_lock</a>
</td>
<td> Experimental</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/conntrack_expect_alloc.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/conntrack_expect_alloc.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/conntrack_expect_alloc.patch.gz">UNKNOWN</td>
</tr></a>
<a name="conntrack_helper_lock.patch.gz"><tr>
<td><a href="Connection_Tracking_Helper_Lock_optimization.html"> Connection Tracking Helper Lock optimization</a>
<br>Needs: <a href="#Netfilter/conntrack_proto_lock.patch.gz"> Connection Tracking Protocol Lock optimization</a>
<br>Needs: <a href="#Netfilter/alter_reply_fix.patch.gz"> ip_conntrack_alter_reply thinko fix</a>
<br>Needs: <a href="#Netfilter/conntrack_expect_lock_removal.patch.gz"> Removes ip_conntrack_expect_tuple_lock</a>
</td>
<td> Trivial</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/conntrack_helper_lock.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/conntrack_helper_lock.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/conntrack_helper_lock.patch.gz">UNKNOWN</td>
</tr></a>
<a name="remove-double-nat.patch.gz"><tr>
<td><a href="Remove_Double_NAT_on_LOCAL_OUT.html"> Remove Double NAT on LOCAL_OUT</a>
<br>Needs: <a href="#Netfilter/remove-multiple-ranges.patch.gz"> Remove NAT to multiple ranges</a>
</td>
<td> Untested</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/remove-double-nat.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/remove-double-nat.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/remove-double-nat.patch.gz">UNKNOWN</td>
</tr></a>
<a name="compulsory_timers.patch.gz"><tr>
<td><a href="Make_Expectations_Timeouts_Compulsory_.html"> Make Expectations Timeouts Compulsory </a>
<br>Needs: <a href="#Netfilter/conntrack_expect_alloc.patch.gz"> ip_conntrack_expect_alloc</a>
</td>
<td> Experimental</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/compulsory_timers.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/compulsory_timers.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/compulsory_timers.patch.gz">UNKNOWN</td>
</tr></a>
<a name="conntrack-speed-locking.patch.gz"><tr>
<td><a href="Speed_up_locking_for_connection_tracking.html"> Speed up locking for connection tracking</a>
<br>Needs: <a href="#Netfilter/conntrack_helper_lock.patch.gz"> Connection Tracking Helper Lock optimization</a>
</td>
<td> Experimental</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/conntrack-speed-locking.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/conntrack-speed-locking.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/conntrack-speed-locking.patch.gz">UNKNOWN</td>
</tr></a>
<a name="conntrack_expect_fix.patch.gz"><tr>
<td><a href="Connection_Tracking_Expect_Fix.html"> Connection Tracking Expect Fix</a>
<br>Needs: <a href="#Netfilter/conntrack_expect_lock_removal.patch.gz"> Removes ip_conntrack_expect_tuple_lock</a>
<br>Needs: <a href="#Netfilter/conntrack_expect_alloc.patch.gz"> ip_conntrack_expect_alloc</a>
<br>Needs: <a href="#Netfilter/compulsory_timers.patch.gz"> Make Expectations Timeouts Compulsory </a>
</td>
<td> Experimental</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/conntrack_expect_fix.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/conntrack_expect_fix.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Netfilter/conntrack_expect_fix.patch.gz">UNKNOWN</td>
</tr></a>
<tr><td><strong><a href="patches/all-Percpu.patch.gz">Percpu section:</a></strong></td></tr>
<a name="timer-remove_smp_processor_id.patch.gz"><tr>
<td><a href="Remove_gratuitous_cpu_arg_in_kernel_timer.c.html"> Remove gratuitous cpu arg in kernel/timer.c</a>
</td>
<td> Trivial</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/timer-remove_smp_processor_id.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/timer-remove_smp_processor_id.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/timer-remove_smp_processor_id.patch.gz">BROKEN</td>
</tr></a>
<a name="softirq-parameter-removal.patch.gz"><tr>
<td><a href="Softirq_callback_parameter_removal.html"> Softirq callback parameter removal</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/softirq-parameter-removal.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/softirq-parameter-removal.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/softirq-parameter-removal.patch.gz">BROKEN</td>
</tr></a>
<a name="ppc64-use-__thread.patch.gz"><tr>
<td><a href="Make_PPC64_Use_r14_For_Per_Cpu_Data.html"> Make PPC64 Use r14 For Per-Cpu Data</a>
</td>
<td> Untested</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/ppc64-use-__thread.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/ppc64-use-__thread.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/ppc64-use-__thread.patch.gz">BROKEN</td>
</tr></a>
<a name="ppc64-custom-thread.patch.gz"><tr>
<td><a href="Make_PPC64_Use_r14_For_Per_Cpu_Data.html"> Make PPC64 Use r14 For Per-Cpu Data</a>
</td>
<td> Untested</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/ppc64-custom-thread.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/ppc64-custom-thread.patch.gz">BROKEN</td>
<td bgcolor="#3FFF3F"><a href="patches/Percpu/ppc64-custom-thread.patch.gz">APPLIES</td>
</tr></a>
<a name="percpu-up-unify.patch.gz"><tr>
<td><a href="Unification_of_per_cpu_headers_for_non_SMP.html"> Unification of per-cpu headers for non-SMP</a>
</td>
<td> Trivial</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/percpu-up-unify.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/percpu-up-unify.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/percpu-up-unify.patch.gz">BROKEN</td>
</tr></a>
<a name="percpu-section-align.patch.gz"><tr>
<td><a href="Align_per_cpu_Section_Correctly.html"> Align per-cpu Section Correctly</a>
</td>
<td> Booted on 2.6.9-rc4-bk2</td>
<td bgcolor="#3FFF3F"><a href="patches/Percpu/percpu-section-align.patch.gz">APPLIES</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/percpu-section-align.patch.gz">BROKEN</td>
<td bgcolor="#3FFF3F"><a href="patches/Percpu/percpu-section-align.patch.gz">APPLIES</td>
</tr></a>
<a name="percpu-scsi_done_q.patch.gz"><tr>
<td><a href="Make_scsi_user_per_cpu_variables.html"> Make scsi user per-cpu variables</a>
</td>
<td> Trivial</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/percpu-scsi_done_q.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/percpu-scsi_done_q.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/percpu-scsi_done_q.patch.gz">BROKEN</td>
</tr></a>
<a name="percpu-rcu.patch.gz"><tr>
<td><a href="Use___get_per_cpu_instead_of_per_cpu_in_RCU..html"> Use __get_per_cpu instead of per_cpu in RCU.</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/percpu-rcu.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/percpu-rcu.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/percpu-rcu.patch.gz">BROKEN</td>
</tr></a>
<a name="percpu-cpu_tlbstate.patch.gz"><tr>
<td><a href="Make_cpu_tlbstate_a_per_cpu_variable_on_i386..html"> Make cpu_tlbstate a per-cpu variable on i386.</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/percpu-cpu_tlbstate.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/percpu-cpu_tlbstate.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/percpu-cpu_tlbstate.patch.gz">BROKEN</td>
</tr></a>
<a name="net_local_t.patch.gz"><tr>
<td><a href="Use_local_t_for_linux_mib_network_counters.html"> Use local_t for linux_mib network counters</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/net_local_t.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/net_local_t.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/net_local_t.patch.gz">BROKEN</td>
</tr></a>
<a name="module-refs.patch.gz"><tr>
<td><a href="Use_per_cpu_allocated_module_references.html"> Use per-cpu-allocated module references</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/module-refs.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/module-refs.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/module-refs.patch.gz">BROKEN</td>
</tr></a>
<a name="local_t-test.patch.gz"><tr>
<td><a href="local_t_test_code..html"> local_t test code.</a>
<br>Needs: <a href="#Misc/qemu-page-offset.patch.gz"> QEMU CONFIG Patch</a>
</td>
<td> Booted on 2.6.0-test1</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/local_t-test.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/local_t-test.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/local_t-test.patch.gz">BROKEN</td>
</tr></a>
<a name="local_t-ia64.patch.gz"><tr>
<td><a href="local_t_ia64_support.html"> local_t ia64 support</a>
</td>
<td> Tested on 2.6.0-test1</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/local_t-ia64.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/local_t-ia64.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/local_t-ia64.patch.gz">BROKEN</td>
</tr></a>
<a name="local_softirq_pending.patch.gz"><tr>
<td><a href="Remove_softirq_pending..html"> Remove softirq_pending.</a>
</td>
<td> Tested on 2.5.74</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/local_softirq_pending.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/local_softirq_pending.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/local_softirq_pending.patch.gz">BROKEN</td>
</tr></a>
<a name="kmalloc_percpu-full.patch.gz"><tr>
<td><a href="Dynamic_per_cpu_allocation_using_static_per_cpu_mechanism__old_version_.html"> Dynamic per-cpu allocation using static per-cpu mechanism (old version)</a>
</td>
<td> Tested on 2.5.69-bk13</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/kmalloc_percpu-full.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/kmalloc_percpu-full.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/kmalloc_percpu-full.patch.gz">BROKEN</td>
</tr></a>
<a name="kmalloc_percpu-efficient.patch.gz"><tr>
<td><a href="Dynamic_per_cpu_allocation_using_static_per_cpu_mechanism.html"> Dynamic per-cpu allocation using static per-cpu mechanism</a>
</td>
<td> Experimental</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/kmalloc_percpu-efficient.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/kmalloc_percpu-efficient.patch.gz">BROKEN</td>
<td bgcolor="#FF3F3F"><a href="patches/Percpu/kmalloc_percpu-efficient.patch.gz">BROKEN</td>
</tr></a>
<a name="percpu-smp-unify.patch.gz"><tr>
<td><a href="Unification_of_per_cpu_headers_for_SMP.html"> Unification of per-cpu headers for SMP</a>
<br>Needs: <a href="#Percpu/percpu-up-unify.patch.gz"> Unification of per-cpu headers for non-SMP</a>
</td>
<td> Trivial</td>
<td bgcolor="#FFFFFF"><a href="patches/Percpu/percpu-smp-unify.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Percpu/percpu-smp-unify.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Percpu/percpu-smp-unify.patch.gz">UNKNOWN</td>
</tr></a>
<a name="irqstat-percpu.patch.gz"><tr>
<td><a href="Make_Generic_irq_stat_Structure_Use_per_cpu_.html"> Make Generic irq_stat Structure Use per-cpu </a>
<br>Needs: <a href="#Percpu/local_softirq_pending.patch.gz"> Remove softirq_pending.</a>
</td>
<td> Tested on 2.5.74</td>
<td bgcolor="#FFFFFF"><a href="patches/Percpu/irqstat-percpu.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Percpu/irqstat-percpu.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Percpu/irqstat-percpu.patch.gz">UNKNOWN</td>
</tr></a>
<a name="kmalloc_percpu-debug.patch.gz"><tr>
<td><a href="kmalloc_testing_patch.html"> kmalloc testing patch</a>
<br>Needs: <a href="#Percpu/kmalloc_percpu-efficient.patch.gz"> Dynamic per-cpu allocation using static per-cpu mechanism</a>
</td>
<td> Tested on 2.5.69-bk13</td>
<td bgcolor="#FFFFFF"><a href="patches/Percpu/kmalloc_percpu-debug.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Percpu/kmalloc_percpu-debug.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Percpu/kmalloc_percpu-debug.patch.gz">UNKNOWN</td>
</tr></a>
<a name="softnet-percpu.patch.gz"><tr>
<td><a href="Make_Softirq_Structure_Use_per_cpu_.html"> Make Softirq Structure Use per-cpu </a>
<br>Needs: <a href="#Percpu/irqstat-percpu.patch.gz"> Make Generic irq_stat Structure Use per-cpu </a>
</td>
<td> Tested on 2.5.74-bk1</td>
<td bgcolor="#FFFFFF"><a href="patches/Percpu/softnet-percpu.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Percpu/softnet-percpu.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Percpu/softnet-percpu.patch.gz">UNKNOWN</td>
</tr></a>
<a name="percpu-stats.patch.gz"><tr>
<td><a href="Gather_Stats_on_per_cpu_Usage.html"> Gather Stats on per-cpu Usage</a>
<br>Needs: <a href="#Percpu/irqstat-percpu.patch.gz"> Make Generic irq_stat Structure Use per-cpu </a>
<br>Needs: <a href="#Percpu/percpu-rcu.patch.gz"> Use __get_per_cpu instead of per_cpu in RCU.</a>
<br>Needs: <a href="#Percpu/softnet-percpu.patch.gz"> Make Softirq Structure Use per-cpu </a>
</td>
<td> Experimental</td>
<td bgcolor="#FFFFFF"><a href="patches/Percpu/percpu-stats.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Percpu/percpu-stats.patch.gz">UNKNOWN</td>
<td bgcolor="#FFFFFF"><a href="patches/Percpu/percpu-stats.patch.gz">UNKNOWN</td>
</tr></a>
</table>
<!-- table-here -->

<p>

<h2>Key</h2>
Increasing levels reflect increased amounts of testing...
<table border=2>
<tr>
<td><strong>UNKNOWN</strong></td>
<td><strong>APPLIES</strong></td>
<td><strong>ALMOST</strong></td>
<td><strong>BROKEN</strong></td>
<td><strong>COMPILES</strong></td>
<td><strong>NOCOMPILE</strong></td>
<td><strong>RUNS</strong></td>
<td><strong>NORUN</strong></td>
</tr>
<tr>
<td>Untested.</td>
<td>Patches cleanly.</td>
<td>Almost patches: <a href="scripts/lkpatch"> lkpatch
  is OK </a></td>
<td>Doesn't patch.</td>
<td>Compiled OK.</td>
<td>Did not compile.</td>
<td>Boots OK.</td>
<td>Did not boot.</td>
</tr>
</table>

<a name="Kmod"><h3>Kmod Section</h3></a>

These are my kmod enhancements, mainly concerned with removing the
messy code which is required for the 2.4 kernels to do autoloading.

<a name="Module"><h3>Module Section</h3></a>

These is my module rewrite, which has the following goals:
<ul>
<li> Allow more of the kernel (eg. IPv4 networking) to be modular
     without unacceptable penalty if not modular.

<li> Remove any requirement for #ifdef MODULE in common code
     (eg. boot parameters vs. insmod parameters).

<li> Solve any remaining races/warts in the module code (eg. cleanup()
     functions which wait, registrations in the wrong order, etc).

<li> Remove and ugly code I find along the way.
</ul>

<a name="Hotcpu"><h3>Hotplug CPU Section</h3></a>

This is the Hot Plug CPU section: see also
<a href="http://sourceforge.net/projects/lhcs"> the SourceForge Page</a>.

<p>
The idea is to use Read Copy Update to safely and unintrusively
support addition and removal of CPUs.  Of course, once CPUs can appear
and disappear, the attempts to keep CPU numbers linear become
meaningless, so this patch also removes the distinction between
"logical" and "physical" CPU numbers (which were already the same for
some ports).

<a name="Proc"><h3>Proc Section</h3></a>

This is my proc rewrite, which has the following goals:
<ul>
<li> Supply the simplest possible interface for exporting information
     to/from userspace (ie. simplicity for kernel hackers).

<li> Provide the infrastructure for a logical, predictable user
     interface for kernel information (ie. simplicity for admins).

<li> Migrate away from uncontrolled, randomly-formatted proc entries.

<li> Allow backward compatibility so we don't break userspace.
</ul>

<a name="Initializers"><h3>Initializer Revision Section</h3></a>

The old form of designated initializers used in the kernel (".foo =")
are obsolete: we need to replace them with the ISO C forms before 2.6,
otherwise a future gcc change will bury us in warnings.  Gcc has
always supported both forms anyway, we just chose the wrong one.

<p>This started as a trivial patch effort by Art Haas, but people
complained about his patches messing up whitespace, so I wrote my own
script to start submitting them.

<a name="Misc"><h3>Misc Section</h3></a>

This section is for patches which don't fit anywhere else.

<hr>
Rusty Russell. (Yes, you can reach me via kernel org.  No spam please.).
</body>
</html>