Skip to content

Commit 17a584e

Browse files
committed
sle15: Add support for dependency count for modeset module
The DRM module is a dependency of the modeset module. Make sure to track this properly to ensure old drivers are fully unloaded. Signed-off-by: Egbert Eich <[email protected]>
1 parent b6a3f0c commit 17a584e

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

sle15/nvidia-driver

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,9 +268,11 @@ _load_driver() {
268268
_unload_driver() {
269269
local rmmod_args=()
270270
local nvidia_deps=0
271+
local nvidia_modeset_deps=0
271272
local nvidia_refs=0
272273
local nvidia_uvm_refs=0
273274
local nvidia_modeset_refs=0
275+
local nvidia_drm_refs=0
274276

275277
echo "Stopping NVIDIA persistence daemon..."
276278
if [ -f /var/run/nvidia-persistenced/nvidia-persistenced.pid ]; then
@@ -318,6 +320,11 @@ _unload_driver() {
318320
fi
319321

320322
echo "Unloading NVIDIA driver kernel modules..."
323+
if [ -f /sys/module/nvidia_drm/refcnt ]; then
324+
nvidia_drm_refs=$(< /sys/module/nvidia_drm/refcnt)
325+
rmmod_args+=("nvidia-drm")
326+
((++nvidia_modeset_deps))
327+
fi
321328
if [ -f /sys/module/nvidia_modeset/refcnt ]; then
322329
nvidia_modeset_refs=$(< /sys/module/nvidia_modeset/refcnt)
323330
rmmod_args+=("nvidia-modeset")
@@ -332,7 +339,7 @@ _unload_driver() {
332339
nvidia_refs=$(< /sys/module/nvidia/refcnt)
333340
rmmod_args+=("nvidia")
334341
fi
335-
if [ ${nvidia_refs} -gt ${nvidia_deps} ] || [ ${nvidia_uvm_refs} -gt 0 ] || [ ${nvidia_modeset_refs} -gt 0 ]; then
342+
if [ ${nvidia_refs} -gt ${nvidia_deps} ] || [ ${nvidia_uvm_refs} -gt 0 ] || [ ${nvidia_modeset_refs} -gt ${nvidia_modeset_deps} ] || [ ${nvidia_drm_refs} -gt 0 ]; then
336343
echo "Could not unload NVIDIA driver kernel modules, driver is in use" >&2
337344
return 1
338345
fi

0 commit comments

Comments
 (0)