Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

displaylink-driver fails to understand kernel version correctly #1

Closed
LordWolfer opened this issue Aug 10, 2015 · 1 comment
Closed

Comments

@LordWolfer
Copy link

I'm not sure whether this is the right forum to report this, but when I tried to install the displaylink-driver (as per this guide: http://support.displaylink.com/knowledgebase/articles/615714#ubuntu) I'm getting a script error saying that my kernel is too old (even though it's a rather new one). Script output:

Verifying archive integrity... All good.
Uncompressing DisplayLink Linux Driver 1.0.68 100%
DisplayLink Linux Software 1.0.68 install script called: install
Distribution discovered: Debian GNU/Linux unstable (sid)
Unsatisfied dependencies. Missing component: Kernel version 4.1.0-1-amd64 is too old. At least 3.14 is required.
This is a fatal error, cannot install DisplayLink Linux Software.

It's probably because the script only checks minor versions instead of checking both major and minor, and should be easy to fix.

@displaylink-mlukaszek
Copy link
Contributor

Thanks for the report - we are aware of this problem and it will be fixed in next releases.

I am closing this issue - this project will only be accepting reports for open-source components of the driver - evdi and libevdi. To report issues in DisplayLink Ubuntu driver, please use our forum at http://displaylink.org/forum/forumdisplay.php?f=29

Thanks,
Michal

@sameehj sameehj mentioned this issue Jun 3, 2018
displaylink-emajewsk pushed a commit that referenced this issue Dec 22, 2021
On GEM prime import by another DRM driver, the get_sg_table() callback
is run. However, the backing pages for the object may not be allocated
because they are only allocated by evdi on an mmap() operation. Instead,
GEM provides the pin/unpin callback for the driver to take appropriate
steps before calling get_sg_table(). If get_sg_table() is run without
backing pacges allocated, a NULL pointer dereference, like below,
occurs.

[   76.567556] ---[ end trace 3e7da4724f156b13 ]---
[   76.576837] BUG: kernel NULL pointer dereference, address:
0000000000000000
[   76.576848] #PF: supervisor read access in kernel mode
[   76.576852] #PF: error_code(0x0000) - not-present page
[   76.576856] PGD 0 P4D 0
[   76.576863] Oops: 0000 [#1] PREEMPT SMP NOPTI
[   76.576871] CPU: 1 PID: 1447 Comm: chrome Tainted: G        W
5.10.76-12479-gbbd208452b20 #1 <HASH:14e4 13>
[   76.576875] Hardware name: Google Grunt/Grunt, BIOS
Google_Grunt.11031.115.0 11/15/2019
[   76.576883] RIP: 0010:__sg_alloc_table_from_pages+0xd0/0x362
[   76.576888] Code: 00 31 db 48 89 5d 90 83 fa 01 76 61 41 89 d7 41 bc
01 00 00 00 bb 01 00 00 00 31 f6 89 f6 48 81 c6 00 10 00 00 41 39 f1 76
1f <49> 8b 7c de f8 49 8b 0c de 48 29 c1 48 c1 f9 06 48 29 c7 48 c1 ff
[   76.576892] RSP: 0018:ffffbe93010efb90 EFLAGS: 00010286
[   76.576897] RAX: ffffe0fc00000000 RBX: 0000000000000001 RCX:
0000000000000000
[   76.576900] RDX: 0000000000000e10 RSI: 0000000000001000 RDI:
ffffa3cd5764a950
[   76.576903] RBP: ffffbe93010efc10 R08: 0000000000e10000 R09:
00000000fffff000
[   76.576907] R10: 0000000000000000 R11: 0000000000000000 R12:
0000000000000001
[   76.576910] R13: ffffa3ce0007f0b8 R14: 0000000000000000 R15:
0000000000000e10
[   76.576914] FS:  00007a3bad2993c0(0000) GS:ffffa3ce2ad00000(0000)
knlGS:0000000000000000
[   76.576918] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   76.576921] CR2: 0000000000000000 CR3: 0000000123c66000 CR4:
00000000001506e0
[   76.576925] Call Trace:
[   76.576937]  ? _raw_spin_unlock+0xe/0x20
[   76.576942]  ? amdgpu_bo_create+0x26e/0x49c
[   76.576948]  drm_prime_pages_to_sg+0x74/0xa3
[   76.576953]  drm_gem_map_dma_buf+0x38/0x94
[   76.576959]  dma_buf_dynamic_attach+0x14f/0x1ff
[   76.576964]  amdgpu_gem_prime_import+0x113/0x1b8
[   76.576969]  drm_gem_prime_fd_to_handle+0x92/0x19c
[   76.576973]  ? drm_prime_add_buf_handle+0xfd/0xfd
[   76.576977]  drm_ioctl_kernel+0x8d/0xf5
[   76.576981]  drm_ioctl+0x281/0x3bb
[   76.576985]  ? drm_prime_add_buf_handle+0xfd/0xfd
[   76.576991]  amdgpu_drm_ioctl+0x49/0x7d
[   76.576997]  __se_sys_ioctl+0x7c/0xb8
[   76.577002]  do_syscall_64+0x43/0x55
[   76.577007]  entry_SYSCALL_64_after_hwframe+0x44/0xa9

To resolve this, implement the pin/unpin operations using reference
counting. This is the same approach taken by the drm_gem_shmem helpers.

BUG=b:204816062
TEST=Deploy to grunt, plug in Displaylink adapter and use external
     display

Change-Id: I7f8f5b9cac12742938e83fd2f75cb42b4ed6f190
Signed-off-by: Anand K Mistry <[email protected]>

Style checks

fix

fix
moxvallix pushed a commit to steamdeck-linux/evdi-steamdeck that referenced this issue May 1, 2022
Improved install guide for those using secure boot
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants