1
linux/drivers/char
Frederic Weisbecker 205153aa40 mem_class: Drop the bkl from memory_open()
The generic open callback for the mem class devices is "protected" by
the bkl.

Let's look at the datas manipulated inside memory_open:

- inode and file: safe
- the devlist: safe because it is constant
- the memdev classes inside this array are safe too (constant)

After we find out which memdev file operation we need to use, we call
its open callback. Depending on the targeted memdev, we call either
open_port() that doesn't manipulate any racy data (just a capable()
check), or we call nothing.

So it's safe to remove the big kernel lock there.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <1255113062-5835-1-git-send-email-fweisbec@gmail.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2009-10-14 17:36:49 +02:00
..
agp agp: parisc-agp.c - use correct page_mask function 2009-10-03 01:27:56 -04:00
hw_random omap: rng: Use resource_size instead of manual calculation 2009-09-24 16:23:18 -07:00
ip2
ipmi headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
mwave mwave: fix read buffer overflow 2009-09-24 07:21:03 -07:00
pcmcia pcmcia: fix read buffer overflow 2009-09-22 07:17:42 -07:00
rio headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
tpm TPM: fix pcrread 2009-10-09 12:18:18 +11:00
xilinx_hwicap const: constify remaining file_operations 2009-10-01 16:11:11 -07:00
.gitignore
amiserial.c
apm-emulation.c const: constify remaining file_operations 2009-10-01 16:11:11 -07:00
applicom.c headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
applicom.h
bfin_jtag_comm.c
bfin-otp.c const: constify remaining file_operations 2009-10-01 16:11:11 -07:00
briq_panel.c
bsr.c
cd1865.h
ChangeLog
consolemap.c
cp437.uni
cs5535_gpio.c drivers: Remove BKL from cs5535_gpio 2009-10-14 17:36:48 +02:00
cyclades.c cyclades: fix read buffer overflow 2009-10-01 16:11:16 -07:00
defkeymap.c_shipped
defkeymap.map
digi1.h
digiFep1.h
digiPCI.h
ds1302.c
ds1620.c
dsp56k.c
dtlk.c headers: remove sched.h from poll.h 2009-10-04 15:05:10 -07:00
efirtc.c
epca.c headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
epca.h
epcaconfig.h
esp.c serial: move delta_msr_wait into the tty_port 2009-09-19 13:13:31 -07:00
generic_nvram.c powerpc/nvram: Enable use Generic NVRAM driver for different size chips 2009-09-11 16:02:11 +10:00
generic_serial.c headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
genrtc.c headers: Fix build after <linux/sched.h> removal 2009-10-13 10:20:16 -07:00
hangcheck-timer.c
hpet.c hpet: hpet driver periodic timer setup bug fixes 2009-09-24 07:21:03 -07:00
hvc_beat.c
hvc_console.c hvc_console: Provide (un)locked version for hvc_resize() 2009-09-24 15:12:47 +10:00
hvc_console.h hvc_console: Provide (un)locked version for hvc_resize() 2009-09-24 15:12:47 +10:00
hvc_irq.c
hvc_iseries.c
hvc_iucv.c hvc_console: Provide (un)locked version for hvc_resize() 2009-09-24 15:12:47 +10:00
hvc_rtas.c
hvc_udbg.c
hvc_vio.c hvc_console: Add __init and __exit to hvc_vio 2009-08-28 14:24:11 +10:00
hvc_xen.c
hvcs.c
hvsi.c powerpc/hvsi: Avoid calculating possibly-invalid address 2009-08-20 10:29:28 +10:00
i8k.c
isicom.c isicom: split the open method for the isicom device 2009-09-19 13:13:27 -07:00
istallion.c headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
Kconfig drivers/char/uv_mmtimer.c: add memory mapped RTC driver for UV 2009-09-24 07:21:03 -07:00
keyboard.c
lp.c
Makefile drivers/char/uv_mmtimer.c: add memory mapped RTC driver for UV 2009-09-24 07:21:03 -07:00
mbcs.c [IA64] mbcs: fix printk format warnings 2009-09-15 08:42:00 -07:00
mbcs.h
mem.c mem_class: Drop the bkl from memory_open() 2009-10-14 17:36:49 +02:00
misc.c drivers: Remove BKL from misc_open 2009-10-14 17:33:32 +02:00
mmtimer.c
moxa.c
moxa.h
mspec.c const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
mxser.c tty: Char: mxser, use THRE for ASPP_OQUEUE ioctl 2009-09-19 13:13:38 -07:00
mxser.h
n_hdlc.c
n_r3964.c
n_tty.c n_tty: move echoctl check and clean up logic 2009-09-19 13:13:34 -07:00
nozomi.c headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
nsc_gpio.c
nvram.c
nwbutton.c
nwbutton.h
nwflash.c
pc8736x_gpio.c
ppdev.c
ps3flash.c
pty.c headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
random.c sysctl: remove "struct file *" argument of ->proc_handler 2009-09-24 07:21:04 -07:00
raw.c Driver-Core: extend devnode callbacks to provide permissions 2009-09-19 12:50:38 -07:00
riscom8_reg.h
riscom8.c tty: riscom8, fix tty refcnt 2009-09-19 13:13:37 -07:00
riscom8.h
rocket_int.h
rocket.c
rocket.h
rtc.c headers: Fix build after <linux/sched.h> removal 2009-10-13 10:20:16 -07:00
scc.h
scx200_gpio.c
selection.c
ser_a2232.c headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
ser_a2232.h
ser_a2232fw.ax
ser_a2232fw.h
serial167.c serial167: fix read buffer overflow 2009-10-01 16:11:16 -07:00
snsc_event.c
snsc.c
snsc.h
sonypi.c headers: Fix build after <linux/sched.h> removal 2009-10-13 10:20:16 -07:00
specialix_io8.h
specialix.c
stallion.c headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
sx.c
sx.h
sxboards.h
sxwindow.h
synclink_gt.c hdlc: convert to netdev_tx_t 2009-09-01 01:13:31 -07:00
synclink.c hdlc: convert to netdev_tx_t 2009-09-01 01:13:31 -07:00
synclinkmp.c hdlc: convert to netdev_tx_t 2009-09-01 01:13:31 -07:00
sysrq.c perf: Do the big rename: Performance Counters -> Performance Events 2009-09-21 14:28:04 +02:00
tb0219.c
tlclk.c headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
toshiba.c
tty_audit.c
tty_buffer.c
tty_io.c tty: Fix regressions caused by commit b50989dc 2009-09-27 13:35:16 -07:00
tty_ioctl.c tty: vt: use printk_once 2009-09-19 13:13:35 -07:00
tty_ldisc.c tty: Avoid dropping ldisc_mutex over hangup tty re-initialization 2009-10-03 21:44:21 -07:00
tty_port.c TTY: fix typos 2009-09-19 13:13:36 -07:00
uv_mmtimer.c drivers/char/uv_mmtimer.c: add memory mapped RTC driver for UV 2009-09-24 07:21:03 -07:00
vc_screen.c
viotape.c
virtio_console.c virtio: add virtio IDs file 2009-09-23 22:26:32 +09:30
vme_scc.c
vt_ioctl.c Char: vt_ioctl, fix BKL imbalance 2009-10-01 16:11:12 -07:00
vt.c tty: vt: use printk_once 2009-09-19 13:13:35 -07:00