aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDominik Brodowski <linux@dominikbrodowski.net>2010-01-15 17:55:21 -0500
committerDominik Brodowski <linux@dominikbrodowski.net>2010-03-03 02:37:41 -0500
commita3f916f2c84f2b9e1d32cc0dbfe326a9e380dbfb (patch)
tree3ed5c2697322f8c6ac1bb2fbec5cc463b2143578
parent6e83ee075ed74941ccaad4fec503f6b24646e7e0 (diff)
pcmcia: disable pcmcia ioctl for !ARM, prepare for removal
The PCMCIA ioctl -- deprecated for years -- suffers from insufficient locking. As it already has been deprecated for years, with its removal long overdue, limit it to !SMP and !PREEMPT. Furthermore, the last legitimate use of the ioctl to be reported relates to the ARM architecture in 2008.[1] Attempts to resolve this issue turned out unsuccessful so far.[2] Other usages have only been reported as hear-say. If there are any legitiate and necessary use-cases remaining, please speak out before the end of the grace period until 2.6.3{5,6}(-rc1). [1] http://lists.infradead.org/pipermail/linux-pcmcia/2008-April/005440.html see also: http://lkml.org/lkml/2008/2/27/291 [2] http://lists.infradead.org/pipermail/linux-pcmcia/2008-April/005450.html http://lists.infradead.org/pipermail/linux-pcmcia/2010-January/006740.html see also: http://lists.infradead.org/pipermail/linux-pcmcia/2008-April/005453.html CC: Russell King <rmk+kernel@arm.linux.org.uk> CC: Alan Cox <alan@lxorguk.ukuu.org.uk> CC: Robert P. J. Day <rpjday@crashcourse.ca> CC: Jaswinder Singh Rajput <jaswinder@kernel.org> CC: linux-kernel@vger.kernel.org Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
-rw-r--r--Documentation/feature-removal-schedule.txt12
-rw-r--r--drivers/pcmcia/Kconfig14
2 files changed, 19 insertions, 7 deletions
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index 732b1fa48cf..3e57a7502e8 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -138,19 +138,25 @@ Who: Mauro Carvalho Chehab <mchehab@infradead.org>
138--------------------------- 138---------------------------
139 139
140What: PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl]) 140What: PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl])
141When: November 2005 141When: 2.6.35/2.6.36
142Files: drivers/pcmcia/: pcmcia_ioctl.c 142Files: drivers/pcmcia/: pcmcia_ioctl.c
143Why: With the 16-bit PCMCIA subsystem now behaving (almost) like a 143Why: With the 16-bit PCMCIA subsystem now behaving (almost) like a
144 normal hotpluggable bus, and with it using the default kernel 144 normal hotpluggable bus, and with it using the default kernel
145 infrastructure (hotplug, driver core, sysfs) keeping the PCMCIA 145 infrastructure (hotplug, driver core, sysfs) keeping the PCMCIA
146 control ioctl needed by cardmgr and cardctl from pcmcia-cs is 146 control ioctl needed by cardmgr and cardctl from pcmcia-cs is
147 unnecessary, and makes further cleanups and integration of the 147 unnecessary and potentially harmful (it does not provide for
148 proper locking), and makes further cleanups and integration of the
148 PCMCIA subsystem into the Linux kernel device driver model more 149 PCMCIA subsystem into the Linux kernel device driver model more
149 difficult. The features provided by cardmgr and cardctl are either 150 difficult. The features provided by cardmgr and cardctl are either
150 handled by the kernel itself now or are available in the new 151 handled by the kernel itself now or are available in the new
151 pcmciautils package available at 152 pcmciautils package available at
152 http://kernel.org/pub/linux/utils/kernel/pcmcia/ 153 http://kernel.org/pub/linux/utils/kernel/pcmcia/
153Who: Dominik Brodowski <linux@brodo.de> 154
155 For all architectures except ARM, the associated config symbol
156 has been removed from kernel 2.6.34; for ARM, it will be likely
157 be removed from kernel 2.6.35. The actual code will then likely
158 be removed from kernel 2.6.36.
159Who: Dominik Brodowski <linux@dominikbrodowski.net>
154 160
155--------------------------- 161---------------------------
156 162
diff --git a/drivers/pcmcia/Kconfig b/drivers/pcmcia/Kconfig
index 0a6601c7680..d189e4743e6 100644
--- a/drivers/pcmcia/Kconfig
+++ b/drivers/pcmcia/Kconfig
@@ -51,17 +51,23 @@ config PCMCIA_LOAD_CIS
51 51
52config PCMCIA_IOCTL 52config PCMCIA_IOCTL
53 bool "PCMCIA control ioctl (obsolete)" 53 bool "PCMCIA control ioctl (obsolete)"
54 depends on PCMCIA 54 depends on PCMCIA && ARM && !SMP && !PREEMPT
55 default y 55 default y
56 help 56 help
57 If you say Y here, the deprecated ioctl interface to the PCMCIA 57 If you say Y here, the deprecated ioctl interface to the PCMCIA
58 subsystem will be built. It is needed by cardmgr and cardctl 58 subsystem will be built. It is needed by the deprecated pcmcia-cs
59 (pcmcia-cs) to function properly. 59 tools (cardmgr, cardctl) to function properly.
60 60
61 You should use the new pcmciautils package instead (see 61 You should use the new pcmciautils package instead (see
62 <file:Documentation/Changes> for location and details). 62 <file:Documentation/Changes> for location and details).
63 63
64 If unsure, say Y. 64 This config option will most likely be removed from kernel 2.6.35,
65 the associated code from kernel 2.6.36.
66
67 As the PCMCIA ioctl is not locking safe, it depends on !SMP and
68 !PREEMPT.
69
70 If unsure, say N.
65 71
66config CARDBUS 72config CARDBUS
67 bool "32-bit CardBus support" 73 bool "32-bit CardBus support"