| The following is a list of files and features that are going to be | 
 | removed in the kernel source tree.  Every entry should contain what | 
 | exactly is going away, why it is happening, and who is going to be doing | 
 | the work.  When the feature is removed from the kernel, it should also | 
 | be removed from this file. | 
 |  | 
 | --------------------------- | 
 |  | 
 | What:	old static regulatory information and ieee80211_regdom module parameter | 
 | When:	2.6.29 | 
 | Why:	The old regulatory infrastructure has been replaced with a new one | 
 | 	which does not require statically defined regulatory domains. We do | 
 | 	not want to keep static regulatory domains in the kernel due to the | 
 | 	the dynamic nature of regulatory law and localization. We kept around | 
 | 	the old static definitions for the regulatory domains of: | 
 | 		* US | 
 | 		* JP | 
 | 		* EU | 
 | 	and used by default the US when CONFIG_WIRELESS_OLD_REGULATORY was | 
 | 	set. We also kept around the ieee80211_regdom module parameter in case | 
 | 	some applications were relying on it. Changing regulatory domains | 
 | 	can now be done instead by using nl80211, as is done with iw. | 
 | Who:	Luis R. Rodriguez <lrodriguez@atheros.com> | 
 |  | 
 | --------------------------- | 
 |  | 
 | What:	dev->power.power_state | 
 | When:	July 2007 | 
 | Why:	Broken design for runtime control over driver power states, confusing | 
 | 	driver-internal runtime power management with:  mechanisms to support | 
 | 	system-wide sleep state transitions; event codes that distinguish | 
 | 	different phases of swsusp "sleep" transitions; and userspace policy | 
 | 	inputs.  This framework was never widely used, and most attempts to | 
 | 	use it were broken.  Drivers should instead be exposing domain-specific | 
 | 	interfaces either to kernel or to userspace. | 
 | Who:	Pavel Machek <pavel@suse.cz> | 
 |  | 
 | --------------------------- | 
 |  | 
 | What:	Video4Linux API 1 ioctls and video_decoder.h from Video devices. | 
 | When:	December 2008 | 
 | Files:	include/linux/video_decoder.h include/linux/videodev.h | 
 | Check:	include/linux/video_decoder.h include/linux/videodev.h | 
 | Why:	V4L1 AP1 was replaced by V4L2 API during migration from 2.4 to 2.6 | 
 | 	series. The old API have lots of drawbacks and don't provide enough | 
 | 	means to work with all video and audio standards. The newer API is | 
 | 	already available on the main drivers and should be used instead. | 
 | 	Newer drivers should use v4l_compat_translate_ioctl function to handle | 
 | 	old calls, replacing to newer ones. | 
 | 	Decoder iocts are using internally to allow video drivers to | 
 | 	communicate with video decoders. This should also be improved to allow | 
 | 	V4L2 calls being translated into compatible internal ioctls. | 
 | 	Compatibility ioctls will be provided, for a while, via  | 
 | 	v4l1-compat module.  | 
 | Who:	Mauro Carvalho Chehab <mchehab@infradead.org> | 
 |  | 
 | --------------------------- | 
 |  | 
 | What:	PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl]) | 
 | When:	November 2005 | 
 | Files:	drivers/pcmcia/: pcmcia_ioctl.c | 
 | Why:	With the 16-bit PCMCIA subsystem now behaving (almost) like a | 
 | 	normal hotpluggable bus, and with it using the default kernel | 
 | 	infrastructure (hotplug, driver core, sysfs) keeping the PCMCIA | 
 | 	control ioctl needed by cardmgr and cardctl from pcmcia-cs is | 
 | 	unnecessary, and makes further cleanups and integration of the | 
 | 	PCMCIA subsystem into the Linux kernel device driver model more | 
 | 	difficult. The features provided by cardmgr and cardctl are either | 
 | 	handled by the kernel itself now or are available in the new | 
 | 	pcmciautils package available at | 
 | 	http://kernel.org/pub/linux/utils/kernel/pcmcia/ | 
 | Who:	Dominik Brodowski <linux@brodo.de> | 
 |  | 
 | --------------------------- | 
 |  | 
 | What:	sys_sysctl | 
 | When:	September 2010 | 
 | Option: CONFIG_SYSCTL_SYSCALL | 
 | Why:	The same information is available in a more convenient from | 
 | 	/proc/sys, and none of the sysctl variables appear to be | 
 | 	important performance wise. | 
 |  | 
 | 	Binary sysctls are a long standing source of subtle kernel | 
 | 	bugs and security issues. | 
 |  | 
 | 	When I looked several months ago all I could find after | 
 | 	searching several distributions were 5 user space programs and | 
 | 	glibc (which falls back to /proc/sys) using this syscall. | 
 |  | 
 | 	The man page for sysctl(2) documents it as unusable for user | 
 | 	space programs. | 
 |  | 
 | 	sysctl(2) is not generally ABI compatible to a 32bit user | 
 | 	space application on a 64bit and a 32bit kernel. | 
 |  | 
 | 	For the last several months the policy has been no new binary | 
 | 	sysctls and no one has put forward an argument to use them. | 
 |  | 
 | 	Binary sysctls issues seem to keep happening appearing so | 
 | 	properly deprecating them (with a warning to user space) and a | 
 | 	2 year grace warning period will mean eventually we can kill | 
 | 	them and end the pain. | 
 |  | 
 | 	In the mean time individual binary sysctls can be dealt with | 
 | 	in a piecewise fashion. | 
 |  | 
 | Who:	Eric Biederman <ebiederm@xmission.com> | 
 |  | 
 | --------------------------- | 
 |  | 
 | What:	remove EXPORT_SYMBOL(kernel_thread) | 
 | When:	August 2006 | 
 | Files:	arch/*/kernel/*_ksyms.c | 
 | Check:	kernel_thread | 
 | Why:	kernel_thread is a low-level implementation detail.  Drivers should | 
 |         use the <linux/kthread.h> API instead which shields them from | 
 | 	implementation details and provides a higherlevel interface that | 
 | 	prevents bugs and code duplication | 
 | Who:	Christoph Hellwig <hch@lst.de> | 
 |  | 
 | --------------------------- | 
 |  | 
 | What:   eepro100 network driver | 
 | When:   January 2007 | 
 | Why:    replaced by the e100 driver | 
 | Who:    Adrian Bunk <bunk@stusta.de> | 
 |  | 
 | --------------------------- | 
 |  | 
 | What:	Unused EXPORT_SYMBOL/EXPORT_SYMBOL_GPL exports | 
 | 	(temporary transition config option provided until then) | 
 | 	The transition config option will also be removed at the same time. | 
 | When:	before 2.6.19 | 
 | Why:	Unused symbols are both increasing the size of the kernel binary | 
 | 	and are often a sign of "wrong API" | 
 | Who:	Arjan van de Ven <arjan@linux.intel.com> | 
 |  | 
 | --------------------------- | 
 |  | 
 | What:	PHYSDEVPATH, PHYSDEVBUS, PHYSDEVDRIVER in the uevent environment | 
 | When:	October 2008 | 
 | Why:	The stacking of class devices makes these values misleading and | 
 | 	inconsistent. | 
 | 	Class devices should not carry any of these properties, and bus | 
 | 	devices have SUBSYTEM and DRIVER as a replacement. | 
 | Who:	Kay Sievers <kay.sievers@suse.de> | 
 |  | 
 | --------------------------- | 
 |  | 
 | What:	ACPI procfs interface | 
 | When:	July 2008 | 
 | Why:	ACPI sysfs conversion should be finished by January 2008. | 
 | 	ACPI procfs interface will be removed in July 2008 so that | 
 | 	there is enough time for the user space to catch up. | 
 | Who:	Zhang Rui <rui.zhang@intel.com> | 
 |  | 
 | --------------------------- | 
 |  | 
 | What:	/proc/acpi/button | 
 | When:	August 2007 | 
 | Why:	/proc/acpi/button has been replaced by events to the input layer | 
 | 	since 2.6.20. | 
 | Who:	Len Brown <len.brown@intel.com> | 
 |  | 
 | --------------------------- | 
 |  | 
 | What:	/proc/acpi/event | 
 | When:	February 2008 | 
 | Why:	/proc/acpi/event has been replaced by events via the input layer | 
 | 	and netlink since 2.6.23. | 
 | Who:	Len Brown <len.brown@intel.com> | 
 |  | 
 | --------------------------- | 
 |  | 
 | What: libata spindown skipping and warning | 
 | When: Dec 2008 | 
 | Why:  Some halt(8) implementations synchronize caches for and spin | 
 |       down libata disks because libata didn't use to spin down disk on | 
 |       system halt (only synchronized caches). | 
 |       Spin down on system halt is now implemented.  sysfs node | 
 |       /sys/class/scsi_disk/h:c:i:l/manage_start_stop is present if | 
 |       spin down support is available. | 
 |       Because issuing spin down command to an already spun down disk | 
 |       makes some disks spin up just to spin down again, libata tracks | 
 |       device spindown status to skip the extra spindown command and | 
 |       warn about it. | 
 |       This is to give userspace tools the time to get updated and will | 
 |       be removed after userspace is reasonably updated. | 
 | Who:  Tejun Heo <htejun@gmail.com> | 
 |  | 
 | --------------------------- | 
 |  | 
 | What:	i386/x86_64 bzImage symlinks | 
 | When:	April 2010 | 
 |  | 
 | Why:	The i386/x86_64 merge provides a symlink to the old bzImage | 
 | 	location so not yet updated user space tools, e.g. package | 
 | 	scripts, do not break. | 
 | Who:	Thomas Gleixner <tglx@linutronix.de> | 
 |  | 
 | --------------------------- | 
 |  | 
 | What (Why): | 
 | 	- include/linux/netfilter_ipv4/ipt_TOS.h ipt_tos.h header files | 
 | 	  (superseded by xt_TOS/xt_tos target & match) | 
 |  | 
 | 	- "forwarding" header files like ipt_mac.h in | 
 | 	  include/linux/netfilter_ipv4/ and include/linux/netfilter_ipv6/ | 
 |  | 
 | 	- xt_CONNMARK match revision 0 | 
 | 	  (superseded by xt_CONNMARK match revision 1) | 
 |  | 
 | 	- xt_MARK target revisions 0 and 1 | 
 | 	  (superseded by xt_MARK match revision 2) | 
 |  | 
 | 	- xt_connmark match revision 0 | 
 | 	  (superseded by xt_connmark match revision 1) | 
 |  | 
 | 	- xt_conntrack match revision 0 | 
 | 	  (superseded by xt_conntrack match revision 1) | 
 |  | 
 | 	- xt_iprange match revision 0, | 
 | 	  include/linux/netfilter_ipv4/ipt_iprange.h | 
 | 	  (superseded by xt_iprange match revision 1) | 
 |  | 
 | 	- xt_mark match revision 0 | 
 | 	  (superseded by xt_mark match revision 1) | 
 |  | 
 | 	- xt_recent: the old ipt_recent proc dir | 
 | 	  (superseded by /proc/net/xt_recent) | 
 |  | 
 | When:	January 2009 or Linux 2.7.0, whichever comes first | 
 | Why:	Superseded by newer revisions or modules | 
 | Who:	Jan Engelhardt <jengelh@computergmbh.de> | 
 |  | 
 | --------------------------- | 
 |  | 
 | What:	b43 support for firmware revision < 410 | 
 | When:	July 2008 | 
 | Why:	The support code for the old firmware hurts code readability/maintainability | 
 | 	and slightly hurts runtime performance. Bugfixes for the old firmware | 
 | 	are not provided by Broadcom anymore. | 
 | Who:	Michael Buesch <mb@bu3sch.de> | 
 |  | 
 | --------------------------- | 
 |  | 
 | What:	init_mm export | 
 | When:	2.6.26 | 
 | Why:	Not used in-tree. The current out-of-tree users used it to | 
 | 	work around problems in the CPA code which should be resolved | 
 | 	by now. One usecase was described to provide verification code | 
 | 	of the CPA operation. That's a good idea in general, but such | 
 | 	code / infrastructure should be in the kernel and not in some | 
 | 	out-of-tree driver. | 
 | Who:	Thomas Gleixner <tglx@linutronix.de> | 
 |  | 
 | ---------------------------- | 
 |  | 
 | What:	usedac i386 kernel parameter | 
 | When:	2.6.27 | 
 | Why:	replaced by allowdac and no dac combination | 
 | Who:	Glauber Costa <gcosta@redhat.com> | 
 |  | 
 | --------------------------- | 
 |  | 
 | What:	remove HID compat support | 
 | When:	2.6.29 | 
 | Why:	needed only as a temporary solution until distros fix themselves up | 
 | Who:	Jiri Slaby <jirislaby@gmail.com> | 
 |  | 
 | --------------------------- | 
 |  | 
 | What: print_fn_descriptor_symbol() | 
 | When: October 2009 | 
 | Why:  The %pF vsprintf format provides the same functionality in a | 
 |       simpler way.  print_fn_descriptor_symbol() is deprecated but | 
 |       still present to give out-of-tree modules time to change. | 
 | Who:  Bjorn Helgaas <bjorn.helgaas@hp.com> | 
 |  | 
 | --------------------------- | 
 |  | 
 | What:	/sys/o2cb symlink | 
 | When:	January 2010 | 
 | Why:	/sys/fs/o2cb is the proper location for this information - /sys/o2cb | 
 | 	exists as a symlink for backwards compatibility for old versions of | 
 | 	ocfs2-tools. 2 years should be sufficient time to phase in new versions | 
 | 	which know to look in /sys/fs/o2cb. | 
 | Who:	ocfs2-devel@oss.oracle.com | 
 |  | 
 | --------------------------- | 
 |  | 
 | What:	SCTP_GET_PEER_ADDRS_NUM_OLD, SCTP_GET_PEER_ADDRS_OLD, | 
 | 	SCTP_GET_LOCAL_ADDRS_NUM_OLD, SCTP_GET_LOCAL_ADDRS_OLD | 
 | When: 	June 2009 | 
 | Why:    A newer version of the options have been introduced in 2005 that | 
 | 	removes the limitions of the old API.  The sctp library has been | 
 |         converted to use these new options at the same time.  Any user | 
 | 	space app that directly uses the old options should convert to using | 
 | 	the new options. | 
 | Who:	Vlad Yasevich <vladislav.yasevich@hp.com> | 
 |  | 
 | --------------------------- | 
 |  | 
 | What:	CONFIG_THERMAL_HWMON | 
 | When:	January 2009 | 
 | Why:	This option was introduced just to allow older lm-sensors userspace | 
 | 	to keep working over the upgrade to 2.6.26. At the scheduled time of | 
 | 	removal fixed lm-sensors (2.x or 3.x) should be readily available. | 
 | Who:	Rene Herman <rene.herman@gmail.com> | 
 |  | 
 | --------------------------- | 
 |  | 
 | What:	Code that is now under CONFIG_WIRELESS_EXT_SYSFS | 
 | 	(in net/core/net-sysfs.c) | 
 | When:	After the only user (hal) has seen a release with the patches | 
 | 	for enough time, probably some time in 2010. | 
 | Why:	Over 1K .text/.data size reduction, data is available in other | 
 | 	ways (ioctls) | 
 | Who:	Johannes Berg <johannes@sipsolutions.net> | 
 |  | 
 | --------------------------- | 
 |  | 
 | What: CONFIG_NF_CT_ACCT | 
 | When: 2.6.29 | 
 | Why:  Accounting can now be enabled/disabled without kernel recompilation. | 
 |       Currently used only to set a default value for a feature that is also | 
 |       controlled by a kernel/module/sysfs/sysctl parameter. | 
 | Who:  Krzysztof Piotr Oledzki <ole@ans.pl> | 
 |  | 
 | --------------------------- | 
 |  | 
 | What: ide-scsi (BLK_DEV_IDESCSI) | 
 | When: 2.6.29 | 
 | Why:  The 2.6 kernel supports direct writing to ide CD drives, which | 
 |       eliminates the need for ide-scsi. The new method is more | 
 |       efficient in every way. | 
 | Who:  FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> | 
 |  | 
 | --------------------------- | 
 |  | 
 | What:	i2c_attach_client(), i2c_detach_client(), i2c_driver->detach_client() | 
 | When:	2.6.29 (ideally) or 2.6.30 (more likely) | 
 | Why:	Deprecated by the new (standard) device driver binding model. Use | 
 | 	i2c_driver->probe() and ->remove() instead. | 
 | Who:	Jean Delvare <khali@linux-fr.org> |