WSL2-Linux-Kernel/drivers/gpu/drm/i915
Chris Wilson e8616b6ced drm/i915: Initialise ring vfuncs for old DRI paths
We weren't setting up the vfunc table when initialising the old DRI
ringbuffer, leading to such OOPSes as:

BUG: unable to handle kernel NULL pointer dereference at (null)
IP: [<(null)>] (null)
PGD 10c441067 PUD 1185e5067 PMD 0
Oops: 0010 [#1] PREEMPT SMP
last sysfs file: /sys/class/dmi/id/chassis_asset_tag
CPU 3
Modules linked in: i915 drm_kms_helper drm fb fbdev i2c_algo_bit
cfbcopyarea video backlight output cfbimgblt cfbfillrect autofs4 ipv6
nfs lockd fscache nfs_acl auth_rpcgss sunrpc coretemp hwmon_vid mousedev
usbhid hid option usb_wwan snd_hda_codec_via asus_atk0110 atl1e
usbserial snd_hda_intel snd_hda_codec firmware_class snd_hwdep snd_pcm
snd_seq snd_timer snd_seq_device processor parport_pc thermal snd
thermal_sys parport 8250_pnp button rng_core rtc_cmos shpchp hwmon
rtc_core ehci_hcd pci_hotplug uhci_hcd soundcore tpm_tis i2c_i801
rtc_lib tpm serio_raw snd_page_alloc tpm_bios i2c_core usbcore psmouse
intel_agp sg pcspkr sr_mod evdev cdrom ext3 jbd mbcache dm_mod sd_mod
ata_piix libata scsi_mod unix
Jan 18 15:49:29 lithui kernel:
Pid: 3605, comm: Xorg Not tainted 2.6.36.2 #5 P5KPL-CM/System Product
Name
RIP: 0010:[<0000000000000000>]  [<(null)>] (null)
RSP: 0018:ffff8801150d1d40  EFLAGS: 00010202
RAX: 000000000001ffff RBX: ffff88011a011b00 RCX: 000000000001a704
RDX: ffff880118566028 RSI: ffff880118566028 RDI: ffff880117876800
RBP: ffff8801150d1d48 R08: ffff8801195fe300 R09: 00000000c0086444
R10: 0000000000000001 R11: 0000000000003206 R12: ffff880117876800
R13: ffff880118566000 R14: ffff880117876820 R15: ffff8801150d1df8
FS:  00007f1038d456e0(0000) GS:ffff880001780000(0000)
knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000000 CR3: 00000001187e7000 CR4: 00000000000006e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Process Xorg (pid: 3605, threadinfo ffff8801150d0000, task
ffff88011b016e40)
Stack:
ffffffffa043b8e6 ffff8801150d1d98 ffffffffa041768b dead000000000000
<0> 0000000000000048 00007f1023f2a000 0000000000000044 0000000000000008
<0> ffff88010d26bd80 ffff880117876800 ffff8801150d1df8 ffff8801150d1ea8
Call Trace:
[<ffffffffa043b8e6>] ? intel_ring_advance+0x16/0x20 [i915]
[<ffffffffa041768b>] i915_irq_emit+0x15b/0x240 [i915]
[<ffffffffa03ea7b1>] drm_ioctl+0x1f1/0x460 [drm]
[<ffffffffa0417530>] ? i915_irq_emit+0x0/0x240 [i915]
[<ffffffff810dd8f1>] ? do_sync_read+0xd1/0x120
[<ffffffff81025b1f>] ? do_page_fault+0x1df/0x3d0
[<ffffffff810ed5c7>] do_vfs_ioctl+0x97/0x550
[<ffffffff8115c2ea>] ? security_file_permission+0x7a/0x90
[<ffffffff810edb19>] sys_ioctl+0x99/0xa0
[<ffffffff810024ab>] system_call_fastpath+0x16/0x1b
Code:  Bad RIP value.
RIP  [<(null)>] (null)
RSP <ffff8801150d1d40>
CR2: 0000000000000000

Reported-by: Herbert Xu <herbert@gondor.apana.org.au>
Tested-by: Herbert Xu <herbert@gondor.apana.org.au>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=29153
Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=23172
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: stable@kernel.org
2011-01-20 11:20:53 +00:00
..
Makefile drm/i915: Split i915_gem_execbuffer into its own file. 2010-11-25 21:19:25 +00:00
dvo.h drm/i915: Subclass intel_encoder. 2010-08-09 11:24:28 -07:00
dvo_ch7xxx.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
dvo_ch7017.c drm/i915/dvo: Report LVDS attached to ch701x as connected 2010-12-30 13:50:43 +00:00
dvo_ivch.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
dvo_sil164.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
dvo_tfp410.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
i915_debugfs.c drm/i915/debugfs: Correct format after changing type of err object 'size' 2011-01-12 20:24:50 +00:00
i915_dma.c drm/i915: Initialise ring vfuncs for old DRI paths 2011-01-20 11:20:53 +00:00
i915_drv.c drm/i915: Add a module option to override the use of SSC 2011-01-13 16:05:58 +00:00
i915_drv.h drm/i915: Add a module option to override the use of SSC 2011-01-13 16:05:58 +00:00
i915_gem.c drm/i915: If we hit OOM when allocating GTT pages, clear the aperture 2011-01-11 22:55:48 +00:00
i915_gem_debug.c drm/i915: Use drm_i915_gem_object as the preferred type 2010-11-23 20:19:10 +00:00
i915_gem_evict.c drm/i915/evict: Ensure we completely cleanup on failure 2011-01-11 22:55:39 +00:00
i915_gem_execbuffer.c drm/i915: Disable GPU semaphores on SandyBridge mobile 2011-01-14 09:51:05 +00:00
i915_gem_gtt.c drm/i915/gtt: Unmap the PCI pages after unbinding them from the GTT 2011-01-11 20:44:56 +00:00
i915_gem_tiling.c drm/i915: Pipelined fencing [infrastructure] 2010-12-02 10:07:05 +00:00
i915_ioc32.c drm: convert drm_ioctl to unlocked_ioctl 2009-12-18 11:22:31 +10:00
i915_irq.c drm/i915: Fix error handler to capture the first batch after the seqno 2011-01-13 16:06:05 +00:00
i915_mem.c drm: Remove memory debugging infrastructure. 2009-06-18 13:00:33 -07:00
i915_reg.h drm/i915: make the blitter report buffer modifications to the FBC unit 2011-01-18 19:30:24 +00:00
i915_suspend.c drm/i915: cleanup rc6 code 2011-01-11 20:43:59 +00:00
i915_trace.h drm/i915: Kill the get_fence tracepoint 2010-12-02 10:20:47 +00:00
i915_trace_points.c drm/i915: Add tracepoints 2009-09-23 01:05:21 +01:00
intel_acpi.c drm/i915: i915 cannot provide switcher services. 2010-12-08 15:40:44 +10:00
intel_bios.c drm/i915: Add a module option to override the use of SSC 2011-01-13 16:05:58 +00:00
intel_bios.h drm/i915: Initialize panel timing registers if VBIOS did not 2010-10-19 09:17:24 +01:00
intel_crt.c drm/i915/crt: Check for a analog monitor in case of DVI-I 2011-01-11 20:26:33 +00:00
intel_display.c drm/i915: make the blitter report buffer modifications to the FBC unit 2011-01-18 19:30:24 +00:00
intel_dp.c drm/i915: fix calculation of eDP signal levels on Sandybridge 2011-01-11 20:26:54 +00:00
intel_drv.h drm/i915/panel: Only record the backlight level when it is enabled 2011-01-11 20:27:04 +00:00
intel_dvo.c drm/i915/dvo: Fix panel and DDC i2c pins 2010-09-28 23:34:44 +01:00
intel_fb.c Revert "drm: Update fbdev fb_fix_screeninfo" 2011-01-14 16:10:28 -08:00
intel_hdmi.c i915: enable AVI infoframe for intel_hdmi.c [v4] 2010-10-22 09:14:30 +01:00
intel_i2c.c Merge branch 'drm-intel-fixes' into drm-intel-next 2010-11-15 06:49:30 +00:00
intel_lvds.c drm/i915/lvds: Add AOpen i915GMm-HFS to the list of false-positive LVDS 2011-01-14 16:36:20 +00:00
intel_modes.c drm/i915: use GMBUS to manage i2c links 2010-09-18 15:46:19 +01:00
intel_opregion.c drm/i915: Implement GPU semaphores for inter-ring synchronisation on SNB 2010-12-05 00:37:38 +00:00
intel_overlay.c drm/i915: Implement GPU semaphores for inter-ring synchronisation on SNB 2010-12-05 00:37:38 +00:00
intel_panel.c drm/i915/panel: The backlight is enabled if the current value is non-zero 2011-01-12 20:24:50 +00:00
intel_ringbuffer.c drm/i915: Initialise ring vfuncs for old DRI paths 2011-01-20 11:20:53 +00:00
intel_ringbuffer.h drm/i915: Initialise ring vfuncs for old DRI paths 2011-01-20 11:20:53 +00:00
intel_sdvo.c drm/i915/sdvo: Defer detection of output capabilities until probing 2011-01-11 20:26:55 +00:00
intel_sdvo_regs.h drm/i915/sdvo: Add missing TV filters 2010-08-09 11:24:29 -07:00
intel_tv.c drm/i915: Implement GPU semaphores for inter-ring synchronisation on SNB 2010-12-05 00:37:38 +00:00