Jonathan Corbet
0b28067688
Add cycle_kernel_lock()
...
A number of driver functions are so obviously trivial that they do not need
the big kernel lock - at least not overtly. It turns out that the
acquisition of the BKL in driver open() functions can perform a sort of
poor-hacker's serialization function, delaying the open operation until the
driver is certain to have completed its initialization. Add a simple
cycle_kernel_lock() function for these cases to make it clear that there is
no need to *hold* the BKL, just to be sure that we can acquire it.
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:53 -06:00
Jonathan Corbet
6606470dd1
videodev: BKL pushdown
...
Put explicit lock_kernel() calls into videodev_open(). That function
itself seems OK, but one never knows about all the open() functions
provided by underlying video drivers.
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:53 -06:00
Jonathan Corbet
b5b4aa67da
usbdev: BKL pushdown
...
Add explicit lock_kernel() calls to usbdev_open()
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:53 -06:00
Jonathan Corbet
1af46fd72d
USB Monitor: BKL pushdown
...
Add explicit lock_kernel() calls to mon_bin_open()
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:53 -06:00
Jonathan Corbet
b2f2ba01b2
printer gadget: BKL pushdown
...
Add explicit lock_kernel() calls to printer_open()
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:52 -06:00
Jonathan Corbet
26ce4f0684
adb: BKL pushdown
...
Put explicit lock_kernel() calls in adb_open(). The fact that
adb_release() already has them suggests this is necessary.
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:52 -06:00
Jonathan Corbet
3462032d66
divamnt: BKL pushdown
...
Put explicit lock_kernel() calls into maint_open().
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:52 -06:00
Jonathan Corbet
a237f3bbaa
CAPI: BKL pushdown
...
Put explicit lock_kernel() calls into capi_open()
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:52 -06:00
Jonathan Corbet
b0061a0ec4
changer: BKL pushdown
...
Add lock_kernel() calls to ch_open(), though the existing locking looks
adequate.
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:52 -06:00
Jonathan Corbet
dea3f665d6
dpt_i20: BKL pushdown
...
Add lock_kernel() calls to adpt_open()
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:52 -06:00
Jonathan Corbet
9aaf20cbf5
videopix: BKL pushdown
...
Add explicit lock_kernel() calls to vfc_open().
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:52 -06:00
Jonathan Corbet
5e9829ad38
bpp: bkl pushdown
...
Put explicit lock_kernel() calls into bpp_open(). It has locking, but I'm
not convinced it won't race with ioctl().
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:51 -06:00
Jonathan Corbet
4541b5ec9f
phantom: BKL pushdown
...
Add explicit lock_kernel calls to phantom_open().
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:51 -06:00
Jonathan Corbet
057e7c7ff9
infiniband: more BKL pushdown
...
Be extra-cautious and protect the remaining open() functions.
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:51 -06:00
Jonathan Corbet
65f37b790b
dsp56k: BKL pushdown
...
Put explicit lock_kernel calls into dsp56k_open().
[Stupid missing label error fixed]
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:51 -06:00
Jonathan Corbet
c0bed680f0
raw: BKL pushdown
...
Put explicit lock_kernel() calls into raw_open(), even though the existing
locking looks adequate.
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:51 -06:00
Jonathan Corbet
b8c71d7ae2
tlckl: BKL pushdown
...
Put explicit lock_kernel calls into tlclk_open()
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:51 -06:00
Jonathan Corbet
f4943db14f
xilinx icap: BKL pushdown
...
Add explicit lock_kernel() calls to hwicap_open() even though the existing
locking looks adequate.
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:51 -06:00
Jonathan Corbet
f97259e35d
vcs: BKL pushdown
...
Add explicit BKL to vcs_open().
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:51 -06:00
Jonathan Corbet
609f9e92b5
spidev: BKL pushdown
...
Add the BKL to spidev_open(), even though the existing locking looks
adequate.
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:50 -06:00
Jonathan Corbet
d21c95c569
Add "no BKL needed" comments to several drivers
...
This documents the fact that somebody looked at the relevant open()
functions and concluded that, due to their trivial nature, no locking was
needed.
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:50 -06:00
Jonathan Corbet
39d95b9d85
tty: cdev lock_kernel() pushdown
...
Parts of the serial code actually BUG() if we don't do this.
2008-06-20 14:05:50 -06:00
Jonathan Corbet
c43ef17450
snsc: cdev lock_kernel() pushdown
...
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:50 -06:00
Jonathan Corbet
78a3c3d7c6
sound: cdev lock_kernel() pushdown
...
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:50 -06:00
Jonathan Corbet
fc7f687a68
fbmem: cdev lock_kernel() pushdown
...
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:50 -06:00
Jonathan Corbet
5794e1b14b
dvb: cdev lock_kernel() pushdown
...
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:50 -06:00
Jonathan Corbet
20613f24bc
usbcore: cdev lock_kernel() pushdown
...
usb_open() is protected by a down_read(&minor_rwsem), but I'm not sure I
trust it to protect everything including subsidiary open() functions.
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:49 -06:00
Jonathan Corbet
1bcaa0bd6f
isdn: cdev lock_kernel() pushdown
...
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:49 -06:00
Jonathan Corbet
46787b481b
gdth: cdev lock_kernel() pushdown
...
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:49 -06:00
Jonathan Corbet
b3369c68bf
st: cdev lock_kernel() pushdown
...
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:49 -06:00
Jonathan Corbet
d4514d1bed
aacraid: cdev lock_kernel() pushdown
...
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:49 -06:00
Jonathan Corbet
647d87bd1b
osst: cdev lock_kernel() pushdown.
...
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:49 -06:00
Jonathan Corbet
eb09d3d4ee
sg: cdev lock_kernel() pushdown
...
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:49 -06:00
Jonathan Corbet
04f4ac9d1b
ide-tape: cdev lock_kernel() pushdown
...
->release() already has explicit lock_kernel() calls...
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:49 -06:00
Jonathan Corbet
16750c2f32
phonedev: cdev lock_kernel() pushdown
...
phone_open() looks OK, but I don't trust the subsidiary drivers (and ixj in
particular).
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:48 -06:00
Jonathan Corbet
70ffa16e60
drm: cdev lock_kernel() pushdown
...
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:48 -06:00
Jonathan Corbet
abedd296e9
lp: cdev lock_kernel() pushdown
...
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:48 -06:00
Jonathan Corbet
12ead6b098
mbcs: cdev lock_kernel() pushdown
...
This driver would appear to have no internal locking at all.
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:48 -06:00
Jonathan Corbet
2d863e92ec
viotape: cdev lock_kernel pushdown ()
...
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:48 -06:00
Jonathan Corbet
309c4551c0
misc: cdev lock_kernel() pushdown
...
misc_open() looks fine, but who knows what all of the misc drivers are
doing in their open() functions?
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:48 -06:00
Jonathan Corbet
1f439647a4
mem: cdev lock_kernel() pushdown
...
It's really hard to tell if this is necessary - lots of weird
magic happens by way of map_devmem()
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:48 -06:00
Jonathan Corbet
ecc38983f6
ipmi: cdev lock_kernel() pushdown
...
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:47 -06:00
Jonathan Corbet
fbc8a81d66
UIO: cdev lock_kernel() pushdown
...
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:47 -06:00
Jonathan Corbet
2edbf8537e
Input: cdev lock_kernel() pushdown
...
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:47 -06:00
Jonathan Corbet
702e57d9ef
HID: cdev lock_kernel() pushdown
...
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:05:47 -06:00
Jonathan Corbet
72b67048f5
UBI: cdev lock_kernel() pushdown
...
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:03:43 -06:00
Jonathan Corbet
6071239ef1
mtdchar: cdev lock_kernel() pushdown
...
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:03:43 -06:00
Jonathan Corbet
ea2959a297
paride: cdev lock_kernel() pushdown
...
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:03:43 -06:00
Jonathan Corbet
579174a55f
AoE: cdev lock_kernel() pushdown
...
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:03:43 -06:00
Jonathan Corbet
764a4a8e54
drivers/s390: cdev lock_kernel() pushdown
...
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
2008-06-20 14:03:43 -06:00