--- nv.orig/nv.c 2004-12-27 11:38:13.298374416 +1100 +++ nv/nv.c 2004-12-27 11:42:48.876480176 +1100 @@ -2814,6 +2814,7 @@ int cpu; nvl = NV_GET_NVL_FROM_NV_STATE(nv); + preempt_disable(); cpu = get_cpu(); if (nvl->rm_lock_cpu == cpu) @@ -2829,6 +2830,7 @@ nvl->rm_lock_cpu = smp_processor_id(); nvl->rm_lock_count = 1; + preempt_enable(); } void NV_API_CALL nv_unlock_rm(