Created attachment 114235 [details]
Add ".get_vblank_counter = drm_vblank_count," to DisplayLink drm_driver functions
[This is an edit of an email that I sent yesterday to linux-fbdev at vger.kernel.org and the Linux kernel udlfb maintainer.]
In Linux-4.0-rc3, the DisplayLink driver gets a kernel memory fault when its USB device is unplugged, specifically when vblank_disable_and_save in linux-4.0-rc3/drivers/gpu/drm/drm_irq.c attempts to call the NULL function pointer dev->driver_get_vblank_counter.
linux-4.0-rc3/Documentation/DocBook/drm.tmpl says of that field, "Otherwise drivers can use the drm_vblank_count helper function to handle this operation." Trying that seems to have eliminated the oops when I unplug the device, although I do see these lines in the console log at device driver initialization time that I think are probably fine, but which I should mention in case the indicate that I did the wrong the thing:
[drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[drm] No driver support for vblank timestamp query.
If that doesn't look like a problem, then please apply the attached patch and push it upstream. The patch just adds one line that appears in six other framebuffer drivers to initialize the driver_get_vblank_counter drm_driver function.
Thanks in advance for your attention to this problem.