linux/drivers
Daniel Vetter 4bc9d43015 drm/i915: fix locking around ironlake_enable|disable_display_irq
The haswell unclaimed register handling code forgot to take the
spinlock. Since this is in the context of the non-rentrant interupt
handler and we only have one interrupt handler it is sufficient to
just grab the spinlock - we do not need to exclude any other
interrupts from running on the same cpu.

To prevent such gaffles in the future sprinkle assert_spin_locked over
these functions. Unfornately this requires us to hold the spinlock in
the ironlake postinstall hook where it is not strictly required:
Currently that is run in single-threaded context and with userspace
exlcuded from running concurrent ioctls. Add a comment explaining
this.

v2: ivb_can_enable_err_int also needs to be protected by the spinlock.
To ensure this won't happen in the future again also sprinkle a
spinlock assert in there.

v3: Kill the 2nd call to ivb_can_enable_err_int I've accidentally left
behind, spotted by Paulo.

Cc: Paulo Zanoni <przanoni@gmail.com>
Reviewed-by: Paulo Zanoni <przanoni@gmail.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2013-07-01 11:14:55 +02:00
..
accessibility
acpi ACPI / LPSS: Power up LPSS devices during enumeration 2013-06-20 00:49:06 +02:00
amba
ata
atm
auxdisplay
base reservation: cross-device reservation support, v4 2013-06-28 12:02:15 +10:00
bcma
block Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client 2013-06-21 06:27:40 -10:00
bluetooth
bus
cdrom
char char/agp: replace numeric with standard PM state macros 2013-06-28 08:15:33 +10:00
clk ARM: tegra30: clocks: Fix pciex clock registration 2013-06-16 11:25:45 -07:00
clocksource
connector
cpufreq
cpuidle
crypto
dca
devfreq
dio
dma
edac
eisa
extcon
firewire
firmware
gpio
gpu drm/i915: fix locking around ironlake_enable|disable_display_irq 2013-07-01 11:14:55 +02:00
hid
hsi
hv
hwmon
hwspinlock
i2c
ide
idle
iio
infiniband
input Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2013-06-23 16:12:46 -10:00
iommu
ipack
irqchip ARM: SoC fixes for 3.10-rc 2013-06-22 09:44:45 -10:00
isdn
leds
lguest
macintosh
mailbox
md A few bugfixes for md 2013-06-13 10:13:29 -07:00
media Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media 2013-06-22 08:43:17 -10:00
memory
memstick
message
mfd
misc Char / Misc fixes for 3.10-rc6 2013-06-14 19:15:36 -10:00
mmc
mtd
net lseek(fd, n, SEEK_END) does *not* go to eof - n 2013-06-16 08:10:53 -10:00
nfc
ntb
nubus
of of: Fix locking vs. interrupts 2013-06-13 22:12:14 +01:00
oprofile
parisc parisc: fix serial ports on C8000 workstation 2013-06-18 20:29:07 +02:00
parport
pci
pcmcia
pinctrl
platform
pnp
power
pps
ps3
ptp
pwm
rapidio
regulator
remoteproc
reset
rpmsg
rtc rtc-at91rm9200: use shadow IMR on at91sam9x5 2013-06-12 16:29:46 -07:00
s390 netiucv: Hold rtnl between name allocation and device registration. 2013-06-13 17:41:18 -07:00
sbus
scsi Merge git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2013-06-22 08:54:06 -10:00
sfi
sh
sn
spi Merge remote-tracking branch 'spi/fix/s3c64xx' into spi-linus 2013-06-24 12:28:29 +01:00
ssb
ssbi
staging Linux 3.10-rc7 2013-06-27 20:40:44 +10:00
target iscsi-target: Remove left over v3.10-rc debug printks 2013-06-20 16:47:41 -07:00
tc
thermal
tty TTY fixes for 3.10-rc7 2013-06-22 09:00:28 -10:00
uio
usb USB: serial: ti_usb_3410_5052: new device id for Abbot strip port cable 2013-06-19 15:54:45 -07:00
uwb
vfio
vhost
video Linux 3.10-rc7 2013-06-27 20:40:44 +10:00
virt
virtio
vlynq
vme
w1
watchdog
xen
zorro
Kconfig
Makefile