About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / feature-removal-schedule.txt




Custom Search

Based on kernel version 3.2. Page generated on 2012-01-05 23:28 EST.

1	The following is a list of files and features that are going to be
2	removed in the kernel source tree.  Every entry should contain what
3	exactly is going away, why it is happening, and who is going to be doing
4	the work.  When the feature is removed from the kernel, it should also
5	be removed from this file.
6	
7	---------------------------
8	
9	What:	x86 floppy disable_hlt
10	When:	2012
11	Why:	ancient workaround of dubious utility clutters the
12		code used by everybody else.
13	Who:	Len Brown <len.brown@intel.com>
14	
15	---------------------------
16	
17	What:	CONFIG_APM_CPU_IDLE, and its ability to call APM BIOS in idle
18	When:	2012
19	Why:	This optional sub-feature of APM is of dubious reliability,
20		and ancient APM laptops are likely better served by calling HLT.
21		Deleting CONFIG_APM_CPU_IDLE allows x86 to stop exporting
22		the pm_idle function pointer to modules.
23	Who:	Len Brown <len.brown@intel.com>
24	
25	----------------------------
26	
27	What:	x86_32 "no-hlt" cmdline param
28	When:	2012
29	Why:	remove a branch from idle path, simplify code used by everybody.
30		This option disabled the use of HLT in idle and machine_halt()
31		for hardware that was flakey 15-years ago.  Today we have
32		"idle=poll" that removed HLT from idle, and so if such a machine
33		is still running the upstream kernel, "idle=poll" is likely sufficient.
34	Who:	Len Brown <len.brown@intel.com>
35	
36	----------------------------
37	
38	What:	x86 "idle=mwait" cmdline param
39	When:	2012
40	Why:	simplify x86 idle code
41	Who:	Len Brown <len.brown@intel.com>
42	
43	----------------------------
44	
45	What:	PRISM54
46	When:	2.6.34
47	
48	Why:	prism54 FullMAC PCI / Cardbus devices used to be supported only by the
49		prism54 wireless driver. After Intersil stopped selling these
50		devices in preference for the newer more flexible SoftMAC devices
51		a SoftMAC device driver was required and prism54 did not support
52		them. The p54pci driver now exists and has been present in the kernel for
53		a while. This driver supports both SoftMAC devices and FullMAC devices.
54		The main difference between these devices was the amount of memory which
55		could be used for the firmware. The SoftMAC devices support a smaller
56		amount of memory. Because of this the SoftMAC firmware fits into FullMAC
57		devices's memory. p54pci supports not only PCI / Cardbus but also USB
58		and SPI. Since p54pci supports all devices prism54 supports
59		you will have a conflict. I'm not quite sure how distributions are
60		handling this conflict right now. prism54 was kept around due to
61		claims users may experience issues when using the SoftMAC driver.
62		Time has passed users have not reported issues. If you use prism54
63		and for whatever reason you cannot use p54pci please let us know!
64		E-mail us at: linux-wireless@vger.kernel.org
65	
66		For more information see the p54 wiki page:
67	
68		http://wireless.kernel.org/en/users/Drivers/p54
69	
70	Who:	Luis R. Rodriguez <lrodriguez@atheros.com>
71	
72	---------------------------
73	
74	What:	IRQF_SAMPLE_RANDOM
75	Check:	IRQF_SAMPLE_RANDOM
76	When:	July 2009
77	
78	Why:	Many of IRQF_SAMPLE_RANDOM users are technically bogus as entropy
79		sources in the kernel's current entropy model. To resolve this, every
80		input point to the kernel's entropy pool needs to better document the
81		type of entropy source it actually is. This will be replaced with
82		additional add_*_randomness functions in drivers/char/random.c
83	
84	Who:	Robin Getz <rgetz@blackfin.uclinux.org> & Matt Mackall <mpm@selenic.com>
85	
86	---------------------------
87	
88	What:	Deprecated snapshot ioctls
89	When:	2.6.36
90	
91	Why:	The ioctls in kernel/power/user.c were marked as deprecated long time
92		ago. Now they notify users about that so that they need to replace
93		their userspace. After some more time, remove them completely.
94	
95	Who:	Jiri Slaby <jirislaby@gmail.com>
96	
97	---------------------------
98	
99	What:	The ieee80211_regdom module parameter
100	When:	March 2010 / desktop catchup
101	
102	Why:	This was inherited by the CONFIG_WIRELESS_OLD_REGULATORY code,
103		and currently serves as an option for users to define an
104		ISO / IEC 3166 alpha2 code for the country they are currently
105		present in. Although there are userspace API replacements for this
106		through nl80211 distributions haven't yet caught up with implementing
107		decent alternatives through standard GUIs. Although available as an
108		option through iw or wpa_supplicant its just a matter of time before
109		distributions pick up good GUI options for this. The ideal solution
110		would actually consist of intelligent designs which would do this for
111		the user automatically even when travelling through different countries.
112		Until then we leave this module parameter as a compromise.
113	
114		When userspace improves with reasonable widely-available alternatives for
115		this we will no longer need this module parameter. This entry hopes that
116		by the super-futuristically looking date of "March 2010" we will have
117		such replacements widely available.
118	
119	Who:	Luis R. Rodriguez <lrodriguez@atheros.com>
120	
121	---------------------------
122	
123	What:	dev->power.power_state
124	When:	July 2007
125	Why:	Broken design for runtime control over driver power states, confusing
126		driver-internal runtime power management with:  mechanisms to support
127		system-wide sleep state transitions; event codes that distinguish
128		different phases of swsusp "sleep" transitions; and userspace policy
129		inputs.  This framework was never widely used, and most attempts to
130		use it were broken.  Drivers should instead be exposing domain-specific
131		interfaces either to kernel or to userspace.
132	Who:	Pavel Machek <pavel@ucw.cz>
133	
134	---------------------------
135	
136	What:	/proc/<pid>/oom_adj
137	When:	August 2012
138	Why:	/proc/<pid>/oom_adj allows userspace to influence the oom killer's
139		badness heuristic used to determine which task to kill when the kernel
140		is out of memory.
141	
142		The badness heuristic has since been rewritten since the introduction of
143		this tunable such that its meaning is deprecated.  The value was
144		implemented as a bitshift on a score generated by the badness()
145		function that did not have any precise units of measure.  With the
146		rewrite, the score is given as a proportion of available memory to the
147		task allocating pages, so using a bitshift which grows the score
148		exponentially is, thus, impossible to tune with fine granularity.
149	
150		A much more powerful interface, /proc/<pid>/oom_score_adj, was
151		introduced with the oom killer rewrite that allows users to increase or
152		decrease the badness score linearly.  This interface will replace
153		/proc/<pid>/oom_adj.
154	
155		A warning will be emitted to the kernel log if an application uses this
156		deprecated interface.  After it is printed once, future warnings will be
157		suppressed until the kernel is rebooted.
158	
159	---------------------------
160	
161	What:	remove EXPORT_SYMBOL(kernel_thread)
162	When:	August 2006
163	Files:	arch/*/kernel/*_ksyms.c
164	Check:	kernel_thread
165	Why:	kernel_thread is a low-level implementation detail.  Drivers should
166	        use the <linux/kthread.h> API instead which shields them from
167		implementation details and provides a higherlevel interface that
168		prevents bugs and code duplication
169	Who:	Christoph Hellwig <hch@lst.de>
170	
171	---------------------------
172	
173	What:	Unused EXPORT_SYMBOL/EXPORT_SYMBOL_GPL exports
174		(temporary transition config option provided until then)
175		The transition config option will also be removed at the same time.
176	When:	before 2.6.19
177	Why:	Unused symbols are both increasing the size of the kernel binary
178		and are often a sign of "wrong API"
179	Who:	Arjan van de Ven <arjan@linux.intel.com>
180	
181	---------------------------
182	
183	What:	PHYSDEVPATH, PHYSDEVBUS, PHYSDEVDRIVER in the uevent environment
184	When:	October 2008
185	Why:	The stacking of class devices makes these values misleading and
186		inconsistent.
187		Class devices should not carry any of these properties, and bus
188		devices have SUBSYTEM and DRIVER as a replacement.
189	Who:	Kay Sievers <kay.sievers@suse.de>
190	
191	---------------------------
192	
193	What:	ACPI procfs interface
194	When:	July 2008
195	Why:	ACPI sysfs conversion should be finished by January 2008.
196		ACPI procfs interface will be removed in July 2008 so that
197		there is enough time for the user space to catch up.
198	Who:	Zhang Rui <rui.zhang@intel.com>
199	
200	---------------------------
201	
202	What:	CONFIG_ACPI_PROCFS_POWER
203	When:	2.6.39
204	Why:	sysfs I/F for ACPI power devices, including AC and Battery,
205	        has been working in upstream kernel since 2.6.24, Sep 2007.
206		In 2.6.37, we make the sysfs I/F always built in and this option
207		disabled by default.
208		Remove this option and the ACPI power procfs interface in 2.6.39.
209	Who:	Zhang Rui <rui.zhang@intel.com>
210	
211	---------------------------
212	
213	What:	/proc/acpi/event
214	When:	February 2008
215	Why:	/proc/acpi/event has been replaced by events via the input layer
216		and netlink since 2.6.23.
217	Who:	Len Brown <len.brown@intel.com>
218	
219	---------------------------
220	
221	What:	i386/x86_64 bzImage symlinks
222	When:	April 2010
223	
224	Why:	The i386/x86_64 merge provides a symlink to the old bzImage
225		location so not yet updated user space tools, e.g. package
226		scripts, do not break.
227	Who:	Thomas Gleixner <tglx@linutronix.de>
228	
229	---------------------------
230	
231	What:	GPIO autorequest on gpio_direction_{input,output}() in gpiolib
232	When:	February 2010
233	Why:	All callers should use explicit gpio_request()/gpio_free().
234		The autorequest mechanism in gpiolib was provided mostly as a
235		migration aid for legacy GPIO interfaces (for SOC based GPIOs).
236		Those users have now largely migrated.  Platforms implementing
237		the GPIO interfaces without using gpiolib will see no changes.
238	Who:	David Brownell <dbrownell@users.sourceforge.net>
239	---------------------------
240	
241	What:	b43 support for firmware revision < 410
242	When:	The schedule was July 2008, but it was decided that we are going to keep the
243	        code as long as there are no major maintanance headaches.
244		So it _could_ be removed _any_ time now, if it conflicts with something new.
245	Why:	The support code for the old firmware hurts code readability/maintainability
246		and slightly hurts runtime performance. Bugfixes for the old firmware
247		are not provided by Broadcom anymore.
248	Who:	Michael Buesch <m@bues.ch>
249	
250	---------------------------
251	
252	What:	Ability for non root users to shm_get hugetlb pages based on mlock
253		resource limits
254	When:	2.6.31
255	Why:	Non root users need to be part of /proc/sys/vm/hugetlb_shm_group or
256		have CAP_IPC_LOCK to be able to allocate shm segments backed by
257		huge pages.  The mlock based rlimit check to allow shm hugetlb is
258		inconsistent with mmap based allocations.  Hence it is being
259		deprecated.
260	Who:	Ravikiran Thirumalai <kiran@scalex86.org>
261	
262	---------------------------
263	
264	What:	Code that is now under CONFIG_WIRELESS_EXT_SYSFS
265		(in net/core/net-sysfs.c)
266	When:	After the only user (hal) has seen a release with the patches
267		for enough time, probably some time in 2010.
268	Why:	Over 1K .text/.data size reduction, data is available in other
269		ways (ioctls)
270	Who:	Johannes Berg <johannes@sipsolutions.net>
271	
272	---------------------------
273	
274	What:	sysfs ui for changing p4-clockmod parameters
275	When:	September 2009
276	Why:	See commits 129f8ae9b1b5be94517da76009ea956e89104ce8 and
277		e088e4c9cdb618675874becb91b2fd581ee707e6.
278		Removal is subject to fixing any remaining bugs in ACPI which may
279		cause the thermal throttling not to happen at the right time.
280	Who:	Dave Jones <davej@redhat.com>, Matthew Garrett <mjg@redhat.com>
281	
282	-----------------------------
283	
284	What:	fakephp and associated sysfs files in /sys/bus/pci/slots/
285	When:	2011
286	Why:	In 2.6.27, the semantics of /sys/bus/pci/slots was redefined to
287		represent a machine's physical PCI slots. The change in semantics
288		had userspace implications, as the hotplug core no longer allowed
289		drivers to create multiple sysfs files per physical slot (required
290		for multi-function devices, e.g.). fakephp was seen as a developer's
291		tool only, and its interface changed. Too late, we learned that
292		there were some users of the fakephp interface.
293	
294		In 2.6.30, the original fakephp interface was restored. At the same
295		time, the PCI core gained the ability that fakephp provided, namely
296		function-level hot-remove and hot-add.
297	
298		Since the PCI core now provides the same functionality, exposed in:
299	
300			/sys/bus/pci/rescan
301			/sys/bus/pci/devices/.../remove
302			/sys/bus/pci/devices/.../rescan
303	
304		there is no functional reason to maintain fakephp as well.
305	
306		We will keep the existing module so that 'modprobe fakephp' will
307		present the old /sys/bus/pci/slots/... interface for compatibility,
308		but users are urged to migrate their applications to the API above.
309	
310		After a reasonable transition period, we will remove the legacy
311		fakephp interface.
312	Who:	Alex Chiang <achiang@hp.com>
313	
314	---------------------------
315	
316	What:	CONFIG_RFKILL_INPUT
317	When:	2.6.33
318	Why:	Should be implemented in userspace, policy daemon.
319	Who:	Johannes Berg <johannes@sipsolutions.net>
320	
321	----------------------------
322	
323	What:	sound-slot/service-* module aliases and related clutters in
324		sound/sound_core.c
325	When:	August 2010
326	Why:	OSS sound_core grabs all legacy minors (0-255) of SOUND_MAJOR
327		(14) and requests modules using custom sound-slot/service-*
328		module aliases.  The only benefit of doing this is allowing
329		use of custom module aliases which might as well be considered
330		a bug at this point.  This preemptive claiming prevents
331		alternative OSS implementations.
332	
333		Till the feature is removed, the kernel will be requesting
334		both sound-slot/service-* and the standard char-major-* module
335		aliases and allow turning off the pre-claiming selectively via
336		CONFIG_SOUND_OSS_CORE_PRECLAIM and soundcore.preclaim_oss
337		kernel parameter.
338	
339		After the transition phase is complete, both the custom module
340		aliases and switches to disable it will go away.  This removal
341		will also allow making ALSA OSS emulation independent of
342		sound_core.  The dependency will be broken then too.
343	Who:	Tejun Heo <tj@kernel.org>
344	
345	----------------------------
346	
347	What:	sysfs-class-rfkill state file
348	When:	Feb 2014
349	Files:	net/rfkill/core.c
350	Why: 	Documented as obsolete since Feb 2010. This file is limited to 3
351		states while the rfkill drivers can have 4 states.
352	Who: 	anybody or Florian Mickler <florian@mickler.org>
353	
354	----------------------------
355	
356	What: 	sysfs-class-rfkill claim file
357	When:	Feb 2012
358	Files:	net/rfkill/core.c
359	Why:	It is not possible to claim an rfkill driver since 2007. This is
360		Documented as obsolete since Feb 2010.
361	Who: 	anybody or Florian Mickler <florian@mickler.org>
362	
363	----------------------------
364	
365	What:	KVM paravirt mmu host support
366	When:	January 2011
367	Why:	The paravirt mmu host support is slower than non-paravirt mmu, both
368		on newer and older hardware.  It is already not exposed to the guest,
369		and kept only for live migration purposes.
370	Who:	Avi Kivity <avi@redhat.com>
371	
372	----------------------------
373	
374	What:	iwlwifi 50XX module parameters
375	When:	3.0
376	Why:	The "..50" modules parameters were used to configure 5000 series and
377		up devices; different set of module parameters also available for 4965
378		with same functionalities. Consolidate both set into single place
379		in drivers/net/wireless/iwlwifi/iwl-agn.c
380	
381	Who:	Wey-Yi Guy <wey-yi.w.guy@intel.com>
382	
383	----------------------------
384	
385	What:	iwl4965 alias support
386	When:	3.0
387	Why:	Internal alias support has been present in module-init-tools for some
388		time, the MODULE_ALIAS("iwl4965") boilerplate aliases can be removed
389		with no impact.
390	
391	Who:	Wey-Yi Guy <wey-yi.w.guy@intel.com>
392	
393	---------------------------
394	
395	What:	xt_NOTRACK
396	Files:	net/netfilter/xt_NOTRACK.c
397	When:	April 2011
398	Why:	Superseded by xt_CT
399	Who:	Netfilter developer team <netfilter-devel@vger.kernel.org>
400	
401	----------------------------
402	
403	What:	IRQF_DISABLED
404	When:	2.6.36
405	Why:	The flag is a NOOP as we run interrupt handlers with interrupts disabled
406	Who:	Thomas Gleixner <tglx@linutronix.de>
407	
408	----------------------------
409	
410	What: 	PCI DMA unmap state API
411	When:	August 2012
412	Why:	PCI DMA unmap state API (include/linux/pci-dma.h) was replaced
413		with DMA unmap state API (DMA unmap state API can be used for
414		any bus).
415	Who:	FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
416	
417	----------------------------
418	
419	What:	iwlwifi disable_hw_scan module parameters
420	When:	3.0
421	Why:	Hareware scan is the prefer method for iwlwifi devices for
422		scanning operation. Remove software scan support for all the
423		iwlwifi devices.
424	
425	Who:	Wey-Yi Guy <wey-yi.w.guy@intel.com>
426	
427	----------------------------
428	
429	What:	Legacy, non-standard chassis intrusion detection interface.
430	When:	June 2011
431	Why:	The adm9240, w83792d and w83793 hardware monitoring drivers have
432		legacy interfaces for chassis intrusion detection. A standard
433		interface has been added to each driver, so the legacy interface
434		can be removed.
435	Who:	Jean Delvare <khali@linux-fr.org>
436	
437	----------------------------
438	
439	What:	xt_connlimit rev 0
440	When:	2012
441	Who:	Jan Engelhardt <jengelh@medozas.de>
442	Files:	net/netfilter/xt_connlimit.c
443	
444	----------------------------
445	
446	What:	ipt_addrtype match include file
447	When:	2012
448	Why:	superseded by xt_addrtype
449	Who:	Florian Westphal <fw@strlen.de>
450	Files:	include/linux/netfilter_ipv4/ipt_addrtype.h
451	
452	----------------------------
453	
454	What:	i2c_driver.attach_adapter
455		i2c_driver.detach_adapter
456	When:	September 2011
457	Why:	These legacy callbacks should no longer be used as i2c-core offers
458		a variety of preferable alternative ways to instantiate I2C devices.
459	Who:	Jean Delvare <khali@linux-fr.org>
460	
461	----------------------------
462	
463	What:	Support for driver specific ioctls in the pwc driver (everything
464		defined in media/pwc-ioctl.h)
465	When:	3.3
466	Why:	This stems from the v4l1 era, with v4l2 everything can be done with
467		standardized v4l2 API calls
468	Who:	Hans de Goede <hdegoede@redhat.com>
469	
470	----------------------------
471	
472	What:	Driver specific sysfs API in the pwc driver
473	When:	3.3
474	Why:	Setting pan/tilt should be done with v4l2 controls, like with other
475		cams. The button is available as a standard input device
476	Who:	Hans de Goede <hdegoede@redhat.com>
477	
478	----------------------------
479	
480	What:	Driver specific use of pixfmt.priv in the pwc driver
481	When:	3.3
482	Why:	The .priv field never was intended for this, setting a framerate is
483		support using the standardized S_PARM ioctl
484	Who:	Hans de Goede <hdegoede@redhat.com>
485	
486	----------------------------
487	
488	What:	Software emulation of arbritary resolutions in the pwc driver
489	When:	3.3
490	Why:	The pwc driver claims to support any resolution between 160x120
491		and 640x480, but emulates this by simply drawing a black border
492		around the image. Userspace can draw its own black border if it
493		really wants one.
494	Who:	Hans de Goede <hdegoede@redhat.com>
495	
496	----------------------------
497	
498	What:	For VIDIOC_S_FREQUENCY the type field must match the device node's type.
499		If not, return -EINVAL.
500	When:	3.2
501	Why:	It makes no sense to switch the tuner to radio mode by calling
502		VIDIOC_S_FREQUENCY on a video node, or to switch the tuner to tv mode by
503		calling VIDIOC_S_FREQUENCY on a radio node. This is the first step of a
504		move to more consistent handling of tv and radio tuners.
505	Who:	Hans Verkuil <hans.verkuil@cisco.com>
506	
507	----------------------------
508	
509	What:	Opening a radio device node will no longer automatically switch the
510		tuner mode from tv to radio.
511	When:	3.3
512	Why:	Just opening a V4L device should not change the state of the hardware
513		like that. It's very unexpected and against the V4L spec. Instead, you
514		switch to radio mode by calling VIDIOC_S_FREQUENCY. This is the second
515		and last step of the move to consistent handling of tv and radio tuners.
516	Who:	Hans Verkuil <hans.verkuil@cisco.com>
517	
518	----------------------------
519	
520	What:	g_file_storage driver
521	When:	3.8
522	Why:	This driver has been superseded by g_mass_storage.
523	Who:	Alan Stern <stern@rowland.harvard.edu>
524	
525	----------------------------
526	
527	What:   threeg and interface sysfs files in /sys/devices/platform/acer-wmi
528	When:   2012
529	Why:    In 3.0, we can now autodetect internal 3G device and already have
530		the threeg rfkill device. So, we plan to remove threeg sysfs support
531		for it's no longer necessary.
532	
533		We also plan to remove interface sysfs file that exposed which ACPI-WMI
534		interface that was used by acer-wmi driver. It will replaced by
535		information log when acer-wmi initial.
536	Who:    Lee, Chun-Yi <jlee@novell.com>
537	
538	----------------------------
539	
540	What:	The XFS nodelaylog mount option
541	When:	3.3
542	Why:	The delaylog mode that has been the default since 2.6.39 has proven
543		stable, and the old code is in the way of additional improvements in
544		the log code.
545	Who:	Christoph Hellwig <hch@lst.de>
546	
547	----------------------------
548	
549	What:	iwlagn alias support
550	When:	3.5
551	Why:	The iwlagn module has been renamed iwlwifi.  The alias will be around
552		for backward compatibility for several cycles and then dropped.
553	Who:	Don Fry <donald.h.fry@intel.com>
Hide Line Numbers
About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Information is copyright its respective author. All material is available from the Linux Kernel Source distributed under a GPL License. This page is provided as a free service by mjmwired.net.