Chris Wilson
5b5ffff0d2
drm/i915: Hold the table lock whilst walking the file's idr and counting the objects in debugfs
Fixes an issue whereby we may race with the table updates (before the
core takes the struct_mutex) and so risk dereferencing a stale pointer in
the iterator for /debugfs/.../i915_gem_objects. For example,
[ 1524.757545] BUG: unable to handle kernel paging request at f53af748
[ 1524.757572] IP: [<c1406982>] per_file_stats+0x12/0x100
[ 1524.757599] *pdpt = 0000000001b13001 *pde = 00000000379fb067 *pte = 80000000353af060
[ 1524.757621] Oops: 0000 [#1] SMP DEBUG_PAGEALLOC
[ 1524.757637] Modules linked in: ctr ccm arc4 ath9k ath9k_common ath9k_hw ath snd_hda_codec_conexant mac80211 snd_hda_codec_generic snd_hda_intel snd_hda_controller snd_hda_codec bnep snd_hwdep rfcomm snd_pcm gpio_ich dell_wmi sparse_keymap snd_seq_midi hid_multitouch uvcvideo snd_seq_midi_event dell_laptop snd_rawmidi dcdbas snd_seq videobuf2_vmalloc videobuf2_memops videobuf2_core usbhid videodev snd_seq_device coretemp snd_timer hid joydev kvm_intel cfg80211 ath3k kvm btusb bluetooth serio_raw snd microcode soundcore lpc_ich wmi mac_hid parport_pc ppdev lp parport psmouse ahci libahci
[ 1524.757825] CPU: 3 PID: 1911 Comm: intel-gpu-overl Tainted: G W OE 3.15.0-rc3+ #96
[ 1524.757840] Hardware name: Dell Inc. Inspiron 1090/Inspiron 1090, BIOS A06 08/23/2011
[ 1524.757855] task: f52f36c0 ti: f4cbc000 task.ti: f4cbc000
[ 1524.757869] EIP: 0060:[<c1406982>] EFLAGS: 00210202 CPU: 3
[ 1524.757884] EIP is at per_file_stats+0x12/0x100
[ 1524.757896] EAX: 0000002d EBX: 00000000 ECX: f4cbdefc EDX: f53af700
[ 1524.757909] ESI: c1406970 EDI: f53af700 EBP: f4cbde6c ESP: f4cbde5c
[ 1524.757922] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
[ 1524.757934] CR0: 80050033 CR2: f53af748 CR3: 356af000 CR4: 000007f0
[ 1524.757945] Stack:
[ 1524.757957] f4cbdefc 00000000 c1406970 f53af700 f4cbdea8 c12e5f15 f4cbdefc c1406970
[ 1524.757993] 0000ffff f4cbde90 0000002d f5dc5cd0 e4e80438 c1181d59 f4cbded8 f4d89900
[ 1524.758027] f5631b40 e5131074 c1903f37 f4cbdf28 c14068e6 f52648a0 c1927748 c1903f37
[ 1524.758062] Call Trace:
[ 1524.758084] [<c1406970>] ? i915_gem_object_info+0x510/0x510
[ 1524.758106] [<c12e5f15>] idr_for_each+0xa5/0x100
[ 1524.758126] [<c1406970>] ? i915_gem_object_info+0x510/0x510
[ 1524.758148] [<c1181d59>] ? seq_vprintf+0x29/0x50
[ 1524.758168] [<c14068e6>] i915_gem_object_info+0x486/0x510
[ 1524.758189] [<c11823a6>] seq_read+0xd6/0x380
[ 1524.758208] [<c116d11d>] ? final_putname+0x1d/0x40
[ 1524.758227] [<c11822d0>] ? seq_hlist_next_percpu+0x90/0x90
[ 1524.758246] [<c1163e52>] vfs_read+0x82/0x150
[ 1524.758265] [<c11645d6>] SyS_read+0x46/0x90
[ 1524.758285] [<c16b8d8c>] sysenter_do_call+0x12/0x22
[ 1524.758298] Code: f5 8f 2a 00 83 c4 6c 31 c0 5b 5e 5f 5d c3 8d 74 26 00 8d bc 27 00 00 00 00 55 89 e5 57 56 53 83 ec 04 3e 8d 74 26 00 83 41 04 01 <8b> 42 48 01 41 08 8b 42 4c 89 d7 85 c0 75 07 8b 42 60 85 c0 74
[ 1524.758461] EIP: [<c1406982>] per_file_stats+0x12/0x100 SS:ESP 0068:f4cbde5c
[ 1524.758485] CR2: 00000000f53af748
Reported-by: Sam Jansen <sam.jansen@starleaf.com>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Sam Jansen <sam.jansen@starleaf.com>
Cc: stable@vger.kernel.org
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
|
2014-06-24 15:00:48 +03:00 |
| .. |
|
accessibility
|
|
|
|
acpi
|
Merge branches 'acpi-general', 'acpi-processor', 'acpi-lpss' and 'acpi-battery'
|
2014-06-19 14:40:48 +02:00 |
|
amba
|
|
|
|
ata
|
Merge branch 'for-3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata
|
2014-06-09 14:58:36 -07:00 |
|
atm
|
atm: fore200e.c: Cleaning up uninitialized variables
|
2014-06-02 17:11:03 -07:00 |
|
auxdisplay
|
|
|
|
base
|
More ACPI and power management updates for 3.16-rc1
|
2014-06-12 13:14:19 -07:00 |
|
bcma
|
|
|
|
block
|
Merge branch 'for-linus' of git://git.kernel.dk/linux-block
|
2014-06-19 17:56:43 -10:00 |
|
bluetooth
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
|
2014-06-12 14:27:40 -07:00 |
|
bus
|
bus/arm-cci: add dependency on OF && CPU_V7
|
2014-06-17 17:09:35 +02:00 |
|
cdrom
|
Merge branch 'for-linus' of git://git.kernel.dk/linux-block
|
2014-06-11 08:41:17 -07:00 |
|
char
|
random: fix entropy accounting bug introduced in v3.15
|
2014-06-17 14:23:14 -10:00 |
|
clk
|
This pull request contains the second half the of the clk changes for
|
2014-06-15 16:02:20 -10:00 |
|
clocksource
|
Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next
|
2014-06-04 15:57:20 -07:00 |
|
connector
|
Char / misc driver patches for 3.16-rc1
|
2014-06-03 08:06:56 -07:00 |
|
cpufreq
|
cpufreq: unlock when failing cpufreq_update_policy()
|
2014-06-18 21:52:20 +02:00 |
|
cpuidle
|
cpuidle: mvebu: Fix the name of the states
|
2014-06-18 21:54:46 +02:00 |
|
crypto
|
crypto/nx: disable NX on little endian builds
|
2014-06-11 17:03:19 +10:00 |
|
dca
|
|
|
|
devfreq
|
|
|
|
dio
|
|
|
|
dma
|
Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma
|
2014-06-10 10:28:45 -07:00 |
|
edac
|
PCI changes for the v3.16 merge window:
|
2014-06-02 12:15:19 -07:00 |
|
eisa
|
|
|
|
extcon
|
|
|
|
firewire
|
sound updates for 3.16-rc1
|
2014-06-04 09:08:25 -07:00 |
|
firmware
|
Merge branch 'arm64-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next
|
2014-06-05 13:15:32 -07:00 |
|
fmc
|
|
|
|
gpio
|
gpio: of: Fix handling for deferred probe for -gpio suffix
|
2014-06-12 09:57:00 +02:00 |
|
gpu
|
drm/i915: Hold the table lock whilst walking the file's idr and counting the objects in debugfs
|
2014-06-24 15:00:48 +03:00 |
|
hid
|
Most of this is cleaning up various driver sysfs permissions so we can
|
2014-06-11 16:09:14 -07:00 |
|
hsi
|
hsi: omap_ssi_port: use normal module refcounting
|
2014-06-05 00:59:05 +02:00 |
|
hv
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
|
2014-06-12 14:27:40 -07:00 |
|
hwmon
|
hwmon: vexpress: Use devm helper for hwmon device registration
|
2014-06-12 08:36:50 -07:00 |
|
hwspinlock
|
|
|
|
i2c
|
i2c: sun6-p2wi: fix call to snprintf
|
2014-06-17 14:28:04 +02:00 |
|
ide
|
|
|
|
idle
|
|
|
|
iio
|
First set of IIO fixes for the 3.16 cycle.
|
2014-06-18 10:41:08 -07:00 |
|
infiniband
|
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
|
2014-06-12 22:38:32 -07:00 |
|
input
|
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
|
2014-06-09 18:46:02 -07:00 |
|
iommu
|
IOMMU Updates for Linux v3.16
|
2014-06-06 11:48:46 -07:00 |
|
ipack
|
|
|
|
irqchip
|
Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into next
|
2014-06-04 15:59:13 -07:00 |
|
isdn
|
isdn/capi: fix (middleware) device nodes
|
2014-06-04 23:13:41 -07:00 |
|
leds
|
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds
|
2014-06-12 13:08:09 -07:00 |
|
lguest
|
|
|
|
macintosh
|
|
|
|
mailbox
|
|
|
|
mcb
|
|
|
|
md
|
. Add dm_accept_partial_bio interface to DM core to allow DM targets
|
2014-06-12 13:33:29 -07:00 |
|
media
|
Merge branch 'topic/omap3isp' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
|
2014-06-12 23:04:28 -07:00 |
|
memory
|
|
|
|
memstick
|
|
|
|
message
|
|
|
|
mfd
|
This pull-request contains some misplaced patches from Tony
|
2014-06-12 12:42:32 -07:00 |
|
misc
|
Char / Misc driver fixes for 3.16-rc2
|
2014-06-21 06:43:19 -10:00 |
|
mmc
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
|
2014-06-12 14:27:40 -07:00 |
|
mtd
|
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
|
2014-06-12 10:30:18 -07:00 |
|
net
|
vxlan: Checksum fixes
|
2014-06-15 01:00:50 -07:00 |
|
nfc
|
|
|
|
ntb
|
|
|
|
nubus
|
kernel/printk: use symbolic defines for console loglevels
|
2014-06-04 16:54:17 -07:00 |
|
of
|
OF: fix of_find_node_by_path() assumption that of_allnodes is root
|
2014-06-16 13:31:44 -05:00 |
|
oprofile
|
|
|
|
parisc
|
|
|
|
parport
|
parport: convert use of typedef ctl_table to struct ctl_table
|
2014-06-06 16:08:15 -07:00 |
|
pci
|
PCI changes for the v3.16 merge window (part 2):
|
2014-06-12 13:20:24 -07:00 |
|
pcmcia
|
|
|
|
phy
|
|
|
|
pinctrl
|
This is the bulk of pin control changes for the v3.16
|
2014-06-03 11:20:32 -07:00 |
|
platform
|
Merge branch 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86
|
2014-06-10 16:58:32 -07:00 |
|
pnp
|
Merge branches 'pnp', 'powercap', 'pm-runtime' and 'pm-opp'
|
2014-06-03 23:13:00 +02:00 |
|
power
|
ACPI and power management updates for 3.16-rc1
|
2014-06-04 08:57:16 -07:00 |
|
powercap
|
|
|
|
pps
|
|
|
|
ps3
|
|
|
|
ptp
|
|
|
|
pwm
|
pwm: Changes for v3.16-rc1
|
2014-06-11 14:06:55 -07:00 |
|
rapidio
|
rapidio/tsi721: use pci_enable_msix_exact() instead of pci_enable_msix()
|
2014-06-06 16:08:13 -07:00 |
|
regulator
|
Merge remote-tracking branches 'regulator/fix/as3722', 'regulator/fix/ltc3589' and 'regulator/fix/palmas' into regulator-linus
|
2014-06-16 16:05:57 +01:00 |
|
remoteproc
|
remoteproc: da8xx: don't select CMA on no-MMU
|
2014-06-17 17:09:36 +02:00 |
|
reset
|
ARM: SoC driver changes
|
2014-06-02 16:35:49 -07:00 |
|
rpmsg
|
|
|
|
rtc
|
drivers/rtc/rtc-puv3.c: remove "&dev->" for typo issue MIME-Version: 1.0
|
2014-06-20 08:22:39 +08:00 |
|
s390
|
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
|
2014-06-21 06:47:01 -10:00 |
|
sbus
|
|
|
|
scsi
|
drivers: scsi: mvsas: fix compiling issue by adding 'MVS_' for "enum pci_interrupt_cause"
|
2014-06-20 08:22:39 +08:00 |
|
sfi
|
|
|
|
sh
|
SH Driver Update for v3.16
|
2014-06-06 11:44:09 -07:00 |
|
sn
|
|
|
|
soc
|
|
|
|
spi
|
spi/pxa2xx: change default supported DMA burst size to 1
|
2014-06-06 10:52:46 +01:00 |
|
spmi
|
|
|
|
ssb
|
|
|
|
staging
|
imx-drm: parallel-display: Fix DPMS default state.
|
2014-06-19 17:33:37 -07:00 |
|
target
|
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
|
2014-06-12 22:38:32 -07:00 |
|
tc
|
|
|
|
thermal
|
Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux
|
2014-06-11 14:26:21 -07:00 |
|
tty
|
TTY/Serial bugfixes for 3.16-rc2
|
2014-06-21 06:41:42 -10:00 |
|
uio
|
Revert "uio: fix vma io range check in mmap"
|
2014-06-17 16:07:08 -07:00 |
|
usb
|
USB: usbtest: add a timeout for scatter-gather tests
|
2014-06-17 17:05:50 -07:00 |
|
uwb
|
|
|
|
vfio
|
A handful of VFIO bug fixes for v3.16
|
2014-06-07 20:12:15 -07:00 |
|
vhost
|
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending
|
2014-06-12 22:38:32 -07:00 |
|
video
|
Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux
|
2014-06-19 18:40:36 -10:00 |
|
virt
|
|
|
|
virtio
|
|
|
|
vlynq
|
|
|
|
vme
|
|
|
|
w1
|
w1: mxc_w1: Fix incorrect "presence" status
|
2014-06-19 17:51:46 -07:00 |
|
watchdog
|
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
|
2014-06-21 06:47:01 -10:00 |
|
xen
|
xen: regression and PVH fixes for 3.16-rc1
|
2014-06-19 07:53:27 -10:00 |
|
zorro
|
|
|
|
Kconfig
|
|
|
|
Makefile
|
Char / misc driver patches for 3.16-rc1
|
2014-06-03 08:06:56 -07:00 |