--- src/nvidia_subr.c.orig 2015-11-09 11:14:41.000000000 +0500 +++ src/nvidia_subr.c 2016-05-20 11:23:23.950632000 +0500 @@ -489,6 +489,8 @@ nv_stack_t *sp; sp = sc->api_sp; + /* /!\ CAUSE CRASH /!\ */ + sp = NULL; rm_free_unused_clients(sp, nv, filep); if (--sc->refcnt == 0) { @@ -594,6 +598,10 @@ sc = nv->os_state; sp = sc->api_sp; + /* If nvidia_open_dev failed and we're called from nvidia_dev_dtor, we + * already released api_sp. */ + if (sp == NULL) + return 0; NV_PCI_CHECK_CONFIG_SPACE(sp, nv, TRUE, TRUE, TRUE); rm_free_unused_clients(sp, nv, filep);