linux_dsm_epyc7002/drivers/char
Thomas Gleixner 3c80fe4ac9 audit: Call tty_audit_push_task() outside preempt disabled
While auditing all tasklist_lock read_lock sites I stumbled over the
following call chain:

audit_prepare_user_tty()
  read_lock(&tasklist_lock);
  tty_audit_push_task();
     mutex_lock(&buf->mutex);

     --> buf->mutex is locked with preemption disabled.

Solve this by acquiring a reference to the task struct under
rcu_read_lock and call tty_audit_push_task outside of the preempt
disabled region.

Move all code which needs to be protected by sighand lock into
tty_audit_push_task() and use lock/unlock_sighand as we do not hold
tasklist_lock.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Eric Paris <eparis@redhat.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
2010-10-30 08:45:25 -04:00
..
agp parisc-agp: fix missing slab.h include 2010-10-29 13:26:48 -04:00
hw_random
ip2 drivers/char/ip2/Makefile: replace the use of <module>-objs with <module>-y 2010-10-27 18:03:14 -07:00
ipmi drivers/char/ipmi/Makefile: replace the use of <module>-objs with <module>-y 2010-10-27 18:03:14 -07:00
mwave drivers/char/mwave/Makefile: clean up 2010-10-27 18:03:15 -07:00
pcmcia drivers/char/pcmcia/ipwireless/Makefile: Makefile: replace the use of <module>-objs with <module>-y 2010-10-27 18:03:15 -07:00
rio drivers/char/rio/Makefile: replace the use of <module>-objs with <module>-y 2010-10-27 18:03:15 -07:00
tpm Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-10-24 13:41:39 -07:00
xilinx_hwicap Merge branch 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl 2010-10-22 10:52:56 -07:00
.gitignore
amiserial.c tty: icount changeover for other main devices 2010-10-22 10:20:05 -07:00
apm-emulation.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-10-24 13:41:39 -07:00
applicom.c drivers/char/applicom.c: fix information leak to userland 2010-10-27 18:03:14 -07:00
applicom.h
bfin_jtag_comm.c
bfin-otp.c
briq_panel.c
bsr.c
cd1865.h
consolemap.c
cp437.uni
cs5535_gpio.c
cyclades.c tty: icount changeover for other main devices 2010-10-22 10:20:05 -07:00
defkeymap.c_shipped
defkeymap.map
digi1.h
digiFep1.h
digiPCI.h
ds1302.c Merge branch 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl 2010-10-22 10:52:56 -07:00
ds1620.c Merge branch 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl 2010-10-22 10:52:56 -07:00
dsp56k.c Merge branch 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl 2010-10-22 10:52:56 -07:00
dtlk.c Merge branch 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl 2010-10-22 10:52:56 -07:00
efirtc.c
epca.c
epca.h
epcaconfig.h
generic_nvram.c
generic_serial.c
genrtc.c Merge branch 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl 2010-10-22 10:52:56 -07:00
hangcheck-timer.c
hpet.c drivers/char/hpet.c: fix information leak to userland 2010-10-26 16:52:11 -07:00
hvc_beat.c
hvc_console.c drivers/char/hvc_console.c: remove unneeded __set_current_state(TASK_RUNNING) 2010-10-27 18:03:14 -07:00
hvc_console.h
hvc_irq.c
hvc_iseries.c
hvc_iucv.c [S390] hvc_iucv: do not call iucv_unregister if iucv_register failed 2010-10-25 16:10:17 +02:00
hvc_rtas.c
hvc_tile.c
hvc_udbg.c
hvc_vio.c
hvc_xen.c Merge branch 'stable/xen-pcifront-0.8.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen 2010-10-28 17:11:17 -07:00
hvcs.c
hvsi.c
i8k.c
isicom.c
istallion.c
Kconfig add ttyprintk driver 2010-10-22 10:20:02 -07:00
keyboard.c
lp.c Merge branch 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl 2010-10-22 10:52:56 -07:00
Makefile add ttyprintk driver 2010-10-22 10:20:02 -07:00
mbcs.c
mbcs.h
mem.c vfs: introduce FMODE_UNSIGNED_OFFSET for allowing negative f_pos 2010-10-25 21:18:21 -04:00
misc.c
mmtimer.c SGI Altix IA64 mmtimer: eliminate long interval timer holdoffs 2010-10-27 18:03:14 -07:00
moxa.c
moxa.h
mspec.c
mxser.c drivers/char/mxser.c: fix compilation warning in mxser.c 2010-10-27 18:03:15 -07:00
mxser.h
n_gsm.c
n_hdlc.c
n_r3964.c
n_tty.c
nozomi.c tty: icount changeover for other main devices 2010-10-22 10:20:05 -07:00
nsc_gpio.c
nvram.c
nwbutton.c
nwbutton.h
nwflash.c
pc8736x_gpio.c
ppdev.c drivers/char/ppdev.c: fix information leak to userland 2010-10-27 18:03:14 -07:00
ps3flash.c
pty.c tty: Remove __GFP_NOFAIL from tty_add_file() 2010-10-22 10:19:58 -07:00
ramoops.c ramoops: use the platform data structure instead of module params 2010-10-27 18:03:18 -07:00
random.c
raw.c Merge branch 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl 2010-10-22 10:52:56 -07:00
riscom8_reg.h
riscom8.c
riscom8.h
rocket_int.h
rocket.c drivers/char/rocket.c: release_region or error path 2010-10-27 18:03:14 -07:00
rocket.h
rtc.c
scc.h
scx200_gpio.c
selection.c
ser_a2232.c
ser_a2232.h
ser_a2232fw.ax
ser_a2232fw.h
serial167.c
snsc_event.c
snsc.c Merge branch 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl 2010-10-22 10:52:56 -07:00
snsc.h
sonypi.c
specialix_io8.h
specialix.c
stallion.c Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2010-10-24 13:41:39 -07:00
sx.c
sx.h
sxboards.h
sxwindow.h
synclink_gt.c drivers/char/synclink_gt.c: add extended sync feature 2010-10-27 18:03:14 -07:00
synclink.c tty: icount changeover for other main devices 2010-10-22 10:20:05 -07:00
synclinkmp.c tty: icount changeover for other main devices 2010-10-22 10:20:05 -07:00
sysrq.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2010-10-25 07:59:01 -07:00
tb0219.c
tlclk.c Merge branch 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl 2010-10-22 10:52:56 -07:00
toshiba.c Merge branch 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl 2010-10-22 10:52:56 -07:00
tty_audit.c audit: Call tty_audit_push_task() outside preempt disabled 2010-10-30 08:45:25 -04:00
tty_buffer.c
tty_io.c tty: Make tiocgicount a handler 2010-10-22 10:20:04 -07:00
tty_ioctl.c
tty_ldisc.c
tty_mutex.c
tty_port.c
ttyprintk.c add ttyprintk driver 2010-10-22 10:20:02 -07:00
uv_mmtimer.c
vc_screen.c vcs: invoke the vt update callback when /dev/vcs* is written to 2010-10-22 10:20:06 -07:00
viotape.c Merge branch 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl 2010-10-22 10:52:56 -07:00
virtio_console.c virtio: console: Disable lseek(2) for port file operations 2010-10-21 17:44:04 +10:30
vme_scc.c
vt_ioctl.c drivers/char/vt_ioctl.c: fix VT_OPENQRY error value 2010-10-27 18:03:05 -07:00
vt.c vcs: invoke the vt update callback when /dev/vcs* is written to 2010-10-22 10:20:06 -07:00