To all
Had this same problem with the 7300GS on Suse 10.1-10.3 but found this solution 
at NV using the text of the following file. When you run the first run file 
with the --apply-patch qualilfier it creates a patched "custom" that can now be 
run normally. What I think the patch might be doing is shutting off agp in 
order to run the newer style of card PCI Express. (guessing) 

Check out this thread about halfway down.
http://www.nvnews.net/vbulletin/showthread.php?t=87918&page=7&highlight=freezes

Note: I did have to change the names to match the downloaded run file
from Nvidia. Since running this patch I haven't had a lockup other than
with k3b and its 'second burn lockup'. Any glx app like GoogleEarth or
Blender froze the system for sure before the patch. Now I am really
enjoying these apps. Hope this helps you others with the problem.

I did try the patch on the latest 100.14.19 without success. Seems that
even though the author is at Nvidia the patch is not standard to the
driver.

In the middle of a piece of music the old driver (100.14.11) Started a 1
second loop of the song and if I tried to use the keyboard to rescue
myself out of X I couldn't even use the 5sec holddown of the off button
to turn off and restart the system. I had to go to the back of the
machine and toggle the machine off and back on which is the same as
pulling the plug out of the wall. Really locked to be sure. ZANDER is
the contact person at NVIDIA.

If the patch process works, let others know, If it doesn't also let us know 
though it does work for me.
To apply the patch, use:
# sh /path/to/NVIDIA-Linux-x86-100.14.11-pkg2.run --apply-patch 
/path/to/NVIDIA_kernel-100.14.11-336672.diff.txt
 # sh NVIDIA-Linux-x86-100.14.11-pkg0-custom.run
---------------------------------------------------------------------------snip------------------------------------------------------
diff -ru usr/src/nv/nv-linux.h usr/src/nv.336672/nv-linux.h
--- usr/src/nv/nv-linux.h       2007-06-13 18:59:58.000000000 -0700
+++ usr/src/nv.336672/nv-linux.h        2007-07-27 19:04:39.174241056 -0700
@@ -1075,6 +1075,7 @@
 
     nv_stack_t *timer_sp;
     nv_stack_t *isr_sp;
+    nv_stack_t *pci_cfgchk_sp;
     nv_stack_t *isr_bh_sp;
 
     /* keep track of any pending bottom halfes */
@@ -1172,7 +1173,7 @@
         if (nv->flags & NV_FLAG_USE_BAR0_CFG)                       \
             rm_check_pci_config_space(sp, nv, do_the_bars, NULL);   \
         else                                                        \
-            nv_verify_pci_config(nv, do_the_bars);                  \
+            nv_check_pci_config_space(nv, do_the_bars);             \
     }
 
 /*
diff -ru usr/src/nv/nv.c usr/src/nv.336672/nv.c
--- usr/src/nv/nv.c     2007-06-13 18:59:58.000000000 -0700
+++ usr/src/nv.336672/nv.c      2007-07-27 19:04:39.178241284 -0700
@@ -215,7 +215,7 @@
 }
 
 
-void NV_API_CALL nv_verify_pci_config(nv_state_t *nv, BOOL do_the_bars)
+static void nv_check_pci_config_space(nv_state_t *nv, BOOL do_the_bars)
 {
     nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
     unsigned short cmd, flag = 0;
@@ -246,6 +246,14 @@
         verify_pci_bars(nv, nvl->dev);
 }
 
+void NV_API_CALL nv_verify_pci_config(nv_state_t *nv, BOOL do_the_bars)
+{
+    nv_linux_state_t *nvl = NV_GET_NVL_FROM_NV_STATE(nv);
+    nv_stack_t *sp = nvl->pci_cfgchk_sp;
+
+    NV_CHECK_PCI_CONFIG_SPACE(sp, nv, do_the_bars);
+}
+
 /***
  *** STATIC functions, only in this file
  ***/
@@ -1959,6 +1967,14 @@
             goto failed;
         }
 
+        NV_KMEM_CACHE_ALLOC_STACK(nvl->pci_cfgchk_sp);
+        if (nvl->pci_cfgchk_sp == NULL)
+        {
+            rc = -ENOMEM;
+            nv_printf(NV_DBG_ERRORS, "NVRM: failed to allocate stack!\n");
+            goto failed;
+        }
+
         NV_KMEM_CACHE_ALLOC_STACK(nvl->isr_bh_sp);
         if (nvl->isr_bh_sp == NULL)
         {
@@ -2045,6 +2061,12 @@
             nvl->isr_bh_sp = NULL;
         }
 
+        if (nvl->pci_cfgchk_sp != NULL)
+        {
+            NV_KMEM_CACHE_FREE_STACK(nvl->pci_cfgchk_sp);
+            nvl->pci_cfgchk_sp = NULL;
+        }
+
         if (nvl->isr_sp != NULL)
         {
             NV_KMEM_CACHE_FREE_STACK(nvl->isr_sp);
@@ -2126,6 +2148,7 @@
 
         NV_KMEM_CACHE_FREE_STACK(nvl->timer_sp);
         NV_KMEM_CACHE_FREE_STACK(nvl->isr_bh_sp);
+        NV_KMEM_CACHE_FREE_STACK(nvl->pci_cfgchk_sp);
         NV_KMEM_CACHE_FREE_STACK(nvl->isr_sp);
 
         /*


** Attachment added: "showpost.html"
   http://launchpadlibrarian.net/10298582/showpost.html

-- 
Random NVidia Proprietary Driver Lock-Ups with dual core + 7300
https://bugs.launchpad.net/bugs/145112
You received this bug notification because you are a member of Ubuntu
Bugs, which is the bug contact for Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to