# Calculate format=diff pkg(sys-kernel/calculate-sources)=>5.15,5.16&&merge(x11-drivers/nvidia-drivers)=>390,397
diff --git a/kernel/nvidia-drm/nvidia-drm-drv.c b/kernel/nvidia-drm/nvidia-drm-drv.c
index 54389be..16320d0 100644
--- a/kernel/nvidia-drm/nvidia-drm-drv.c
+++ b/kernel/nvidia-drm/nvidia-drm-drv.c
@@ -811,7 +811,6 @@ static void nv_drm_register_drm_device(const nv_gpu_info_t *gpu_info)
 
     dev->dev_private = nv_dev;
     nv_dev->dev = dev;
-    dev->pdev = pdev;
 
     /* Register DRM device to DRM sub-system */
 
diff --git a/kernel/nvidia/nvlink_linux.c b/kernel/nvidia/nvlink_linux.c
index 872bc90..434acd6 100644
--- a/kernel/nvidia/nvlink_linux.c
+++ b/kernel/nvidia/nvlink_linux.c
@@ -597,7 +597,7 @@ void NVLINK_API_CALL nvlink_sleep(unsigned int ms)
         // the requested timeout has expired, loop until less
         // than a jiffie of the desired delay remains.
         //
-        current->state = TASK_INTERRUPTIBLE;
+        WRITE_ONCE(current->__state, TASK_INTERRUPTIBLE);
         do
         {
             schedule_timeout(jiffies);
diff --git a/kernel/nvidia/os-interface.c b/kernel/nvidia/os-interface.c
index 3603a5a..5ac01c5 100644
--- a/kernel/nvidia/os-interface.c
+++ b/kernel/nvidia/os-interface.c
@@ -580,7 +580,7 @@ NV_STATUS NV_API_CALL os_delay(NvU32 MilliSeconds)
         // the requested timeout has expired, loop until less
         // than a jiffie of the desired delay remains.
         //
-        current->state = TASK_INTERRUPTIBLE;
+        WRITE_ONCE(current->__state, TASK_INTERRUPTIBLE);
         do
         {
             schedule_timeout(jiffies);
