linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* NVIDIA binary-only driver patch for 2.5.40
@ 2002-10-02 16:10 Bob McElrath
       [not found] ` <3D9B1AD4.3030407@scssoft.com>
       [not found] ` <20021002224913.GA3438@gnuppy.monkey.org>
  0 siblings, 2 replies; 4+ messages in thread
From: Bob McElrath @ 2002-10-02 16:10 UTC (permalink / raw)
  To: linux-kernel


[-- Attachment #1.1: Type: text/plain, Size: 953 bytes --]

Here is an updated patch to the binary-only drivers provided by NVIDIA
(version 1.0-3123) for kernel 2.5.40.  I have tested it for both 2D and
3D and it seems to work fine.  (Warcraft III under linux 2.5.40 should
be a good enough test, no?)

I have not tested their NVAGP under 2.5.40.  If in doubt use the
kernel's agpgart driver and:
    Option "NvAGP" "2"
to tell the NVIDIA driver not to use its internal NVAGP driver.

This patch is based on a patch previously posted by Roberto Nibali.  I
place my contributions to this patch under the GPL.  NVIDIA may not use
this code without prior written consent from me.

Cheers,
-- Bob

Bob McElrath (bob+linux-kernel@mcelrath.org) 
Univ. of Wisconsin at Madison, Department of Physics

    "The purpose of separation of church and state is to keep forever from
    these shores the ceaseless strife that has soaked the soil of Europe in
    blood for centuries." -- James Madison


[-- Attachment #1.2: nvidia.2.5.40.patch --]
[-- Type: text/plain, Size: 7094 bytes --]

diff -ur NVIDIA_kernel-1.0-3123/nv-linux.h NVIDIA_kernel-1.0-3123.bob/nv-linux.h
--- NVIDIA_kernel-1.0-3123/nv-linux.h	Tue Aug 27 18:36:53 2002
+++ NVIDIA_kernel-1.0-3123.bob/nv-linux.h	Wed Oct  2 10:25:19 2002
@@ -36,11 +36,6 @@
 #  error This driver does not support 2.3.x development kernels!
 #elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
 #  define KERNEL_2_4
-#elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
-#  error This driver does not support 2.5.x development kernels!
-#  define KERNEL_2_5
-#else
-#  error This driver does not support 2.6.x or newer kernels!
 #endif
 
 #if defined (CONFIG_SMP) && !defined (__SMP__)
diff -ur NVIDIA_kernel-1.0-3123/nv.c NVIDIA_kernel-1.0-3123.bob/nv.c
--- NVIDIA_kernel-1.0-3123/nv.c	Tue Aug 27 18:36:52 2002
+++ NVIDIA_kernel-1.0-3123.bob/nv.c	Wed Oct  2 10:47:03 2002
@@ -1068,11 +1068,22 @@
 
     /* for control device, just jump to its open routine */
     /* after setting up the private data */
+
+    /* I don't really know the correct kernel version since when it changed */ 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0) 
     if (NV_DEVICE_IS_CONTROL_DEVICE(inode->i_rdev))
         return nv_kern_ctl_open(inode, file);
-
+#else
+    if (NV_DEVICE_IS_CONTROL_DEVICE(kdev_val(inode->i_rdev)))
+        return nv_kern_ctl_open(inode, file);
+#endif
     /* what device are we talking about? */
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
     devnum = NV_DEVICE_NUMBER(inode->i_rdev);
+#else
+    devnum = NV_DEVICE_NUMBER(kdev_val(inode->i_rdev));
+#endif
     if (devnum >= NV_MAX_DEVICES)
     {
         rc = -ENODEV;
@@ -1178,9 +1189,14 @@
 
     /* for control device, just jump to its open routine */
     /* after setting up the private data */
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
     if (NV_DEVICE_IS_CONTROL_DEVICE(inode->i_rdev))
+       return nv_kern_ctl_close(inode, file);
+#else
+    if(NV_DEVICE_IS_CONTROL_DEVICE(kdev_val(inode->i_rdev)))
         return nv_kern_ctl_close(inode, file);
-
+#endif
     NV_DMSG(nv, "close");
 
     rm_free_unused_clients(nv, current->pid, (void *) file);
@@ -1299,11 +1315,21 @@
 #if defined(NVCPU_IA64)
         vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
 #endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
         if (remap_page_range(vma->vm_start,
                              (u32)(nv->regs.address) + LINUX_VMA_OFFS(vma) - NV_MMAP_REG_OFFSET,
                              vma->vm_end - vma->vm_start,
                              vma->vm_page_prot))
             return -EAGAIN;
+#else
+        if (remap_page_range(vma,
+                            vma->vm_start,
+                             (u32) (nv->regs.address) + LINUX_VMA_OFFS(vma) - NV_MMAP_REG_OFFSET,
+                             vma->vm_end - vma->vm_start,
+                             vma->vm_page_prot))
+            return -EAGAIN;
+#endif
 
         /* mark it as IO so that we don't dump it on core dump */
         vma->vm_flags |= VM_IO;
@@ -1316,11 +1342,20 @@
 #if defined(NVCPU_IA64)
         vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
 #endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
         if (remap_page_range(vma->vm_start,
                              (u32)(nv->fb.address) + LINUX_VMA_OFFS(vma) - NV_MMAP_FB_OFFSET,
                              vma->vm_end - vma->vm_start,
                              vma->vm_page_prot))
             return -EAGAIN;
+#else
+        if (remap_page_range(vma,
+                            vma->vm_start,
+                             (u32) (nv->fb.address) + LINUX_VMA_OFFS(vma) - NV_MMAP_FB_OFFSET,
+                             vma->vm_end - vma->vm_start,
+                             vma->vm_page_prot))
+            return -EAGAIN;
+#endif
 
         // mark it as IO so that we don't dump it on core dump
         vma->vm_flags |= VM_IO;
@@ -1350,8 +1385,13 @@
         while (pages--)
         {
             page = (unsigned long) at->page_table[i++];
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
             if (remap_page_range(start, page, PAGE_SIZE, PAGE_SHARED))
               	return -EAGAIN;
+#else
+            if (remap_page_range(vma, start, page, PAGE_SIZE, PAGE_SHARED))
+                 return -EAGAIN;
+#endif
             start += PAGE_SIZE;
             pos += PAGE_SIZE;
        	}
@@ -1627,8 +1667,12 @@
         nv_lock_bh(nv);
         nv->bh_count++;
         nvl->bh->data = nv->pdev;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
         queue_task(nvl->bh, &tq_immediate);
         mark_bh(IMMEDIATE_BH);
+#else
+        schedule_task(nvl->bh);
+#endif
         nv_unlock_bh(nv);
     }
 }
@@ -2179,7 +2223,11 @@
     pte_kunmap(pte__);
 #else
     pte__ = NULL;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
     pte = *pte_offset(pg_mid_dir, address);
+#else
+    pte = *pte_offset_map(pg_mid_dir, address);
+#endif
 #endif
 
     if (!pte_present(pte)) 
diff -ur NVIDIA_kernel-1.0-3123/os-interface.c NVIDIA_kernel-1.0-3123.bob/os-interface.c
--- NVIDIA_kernel-1.0-3123/os-interface.c	Tue Aug 27 18:36:52 2002
+++ NVIDIA_kernel-1.0-3123.bob/os-interface.c	Wed Oct  2 10:25:19 2002
@@ -27,7 +27,10 @@
 
 BOOL os_is_administrator(PHWINFO pDev)
 {
-    return suser();
+    /* Actually suser() wasn't really a bool, but since the
+       nvidia guys want it as a bool, let's give them a bool.
+    */
+    return (!capable(CAP_SYS_ADMIN)?1:0);
 }
 
 U032 os_get_page_size(VOID)
@@ -1141,9 +1144,14 @@
     uaddr = *priv;
 
     /* finally, let's do it! */
-    err = remap_page_range( (size_t) uaddr, (size_t) paddr, size_bytes, 
+    
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
+    err = remap_page_range( (size_t) uaddr, (size_t) paddr, size_bytes,
+                           PAGE_SHARED);
+#else
+    err = remap_page_range( kaddr, (size_t) uaddr, (size_t) paddr, size_bytes,
                             PAGE_SHARED);
-
+#endif
     if (err != 0)
     {
         return (void *) NULL;
@@ -1176,10 +1184,14 @@
 
     uaddr = *priv;
 
-    /* finally, let's do it! */
-    err = remap_page_range( (size_t) uaddr, (size_t) start, size_bytes, 
+    /* finally, let's do it! */ 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
+    err = remap_page_rage( (size_t) uaddr, (size_t) start, size_bytes,
+                          PAGE_SHARED);    
+#else
+    err = remap_page_range( *priv, (size_t) uaddr, (size_t) start, size_bytes, 
                             PAGE_SHARED);
-
+#endif
     if (err != 0)
     {
         return (void *) NULL;
@@ -1593,7 +1605,8 @@
 
     agp_addr = agpinfo.aper_base + (agp_data->offset << PAGE_SHIFT);
 
-    err = remap_page_range(vma->vm_start, (size_t) agp_addr, 
+    err = remap_page_range(vma,
+			   vma->vm_start, (size_t) agp_addr, 
                            agp_data->num_pages << PAGE_SHIFT,
 #if defined(NVCPU_IA64)
                            vma->vm_page_prot);

[-- Attachment #2: Type: application/pgp-signature, Size: 240 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: NVIDIA binary-only driver patch for 2.5.40
       [not found] ` <3D9B1AD4.3030407@scssoft.com>
@ 2002-10-02 16:43   ` Bob McElrath
  2002-10-02 17:19     ` Roberto Nibali
  0 siblings, 1 reply; 4+ messages in thread
From: Bob McElrath @ 2002-10-02 16:43 UTC (permalink / raw)
  To: Petr Sebor, linux-kernel


[-- Attachment #1.1: Type: text/plain, Size: 753 bytes --]

Petr Sebor [petr@scssoft.com] wrote:
> Bob McElrath wrote:
> >Here is an updated patch to the binary-only drivers provided by NVIDIA
> >+    err = remap_page_rage( (size_t) uaddr, (size_t) start, size_bytes,
> 
> Hello,
> 
> isn't this a typo? Shouldn't this be 'remap_page_range' as well?

Whoops, thought I fixed that one...

Revised patch attached.

P.S. It's not my fault.  That typo was in Roberto's patch.  ;)

Cheers,
-- Bob

Bob McElrath (bob+linux-kernel@mcelrath.org) 
Univ. of Wisconsin at Madison, Department of Physics

    "The purpose of separation of church and state is to keep forever from
    these shores the ceaseless strife that has soaked the soil of Europe in
    blood for centuries." -- James Madison


[-- Attachment #1.2: nvidia.2.5.40.patch --]
[-- Type: text/plain, Size: 7095 bytes --]

diff -ur NVIDIA_kernel-1.0-3123/nv-linux.h NVIDIA_kernel-1.0-3123.bob/nv-linux.h
--- NVIDIA_kernel-1.0-3123/nv-linux.h	Tue Aug 27 18:36:53 2002
+++ NVIDIA_kernel-1.0-3123.bob/nv-linux.h	Wed Oct  2 10:25:19 2002
@@ -36,11 +36,6 @@
 #  error This driver does not support 2.3.x development kernels!
 #elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
 #  define KERNEL_2_4
-#elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
-#  error This driver does not support 2.5.x development kernels!
-#  define KERNEL_2_5
-#else
-#  error This driver does not support 2.6.x or newer kernels!
 #endif
 
 #if defined (CONFIG_SMP) && !defined (__SMP__)
diff -ur NVIDIA_kernel-1.0-3123/nv.c NVIDIA_kernel-1.0-3123.bob/nv.c
--- NVIDIA_kernel-1.0-3123/nv.c	Tue Aug 27 18:36:52 2002
+++ NVIDIA_kernel-1.0-3123.bob/nv.c	Wed Oct  2 10:47:03 2002
@@ -1068,11 +1068,22 @@
 
     /* for control device, just jump to its open routine */
     /* after setting up the private data */
+
+    /* I don't really know the correct kernel version since when it changed */ 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0) 
     if (NV_DEVICE_IS_CONTROL_DEVICE(inode->i_rdev))
         return nv_kern_ctl_open(inode, file);
-
+#else
+    if (NV_DEVICE_IS_CONTROL_DEVICE(kdev_val(inode->i_rdev)))
+        return nv_kern_ctl_open(inode, file);
+#endif
     /* what device are we talking about? */
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
     devnum = NV_DEVICE_NUMBER(inode->i_rdev);
+#else
+    devnum = NV_DEVICE_NUMBER(kdev_val(inode->i_rdev));
+#endif
     if (devnum >= NV_MAX_DEVICES)
     {
         rc = -ENODEV;
@@ -1178,9 +1189,14 @@
 
     /* for control device, just jump to its open routine */
     /* after setting up the private data */
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
     if (NV_DEVICE_IS_CONTROL_DEVICE(inode->i_rdev))
+       return nv_kern_ctl_close(inode, file);
+#else
+    if(NV_DEVICE_IS_CONTROL_DEVICE(kdev_val(inode->i_rdev)))
         return nv_kern_ctl_close(inode, file);
-
+#endif
     NV_DMSG(nv, "close");
 
     rm_free_unused_clients(nv, current->pid, (void *) file);
@@ -1299,11 +1315,21 @@
 #if defined(NVCPU_IA64)
         vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
 #endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
         if (remap_page_range(vma->vm_start,
                              (u32)(nv->regs.address) + LINUX_VMA_OFFS(vma) - NV_MMAP_REG_OFFSET,
                              vma->vm_end - vma->vm_start,
                              vma->vm_page_prot))
             return -EAGAIN;
+#else
+        if (remap_page_range(vma,
+                            vma->vm_start,
+                             (u32) (nv->regs.address) + LINUX_VMA_OFFS(vma) - NV_MMAP_REG_OFFSET,
+                             vma->vm_end - vma->vm_start,
+                             vma->vm_page_prot))
+            return -EAGAIN;
+#endif
 
         /* mark it as IO so that we don't dump it on core dump */
         vma->vm_flags |= VM_IO;
@@ -1316,11 +1342,20 @@
 #if defined(NVCPU_IA64)
         vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
 #endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
         if (remap_page_range(vma->vm_start,
                              (u32)(nv->fb.address) + LINUX_VMA_OFFS(vma) - NV_MMAP_FB_OFFSET,
                              vma->vm_end - vma->vm_start,
                              vma->vm_page_prot))
             return -EAGAIN;
+#else
+        if (remap_page_range(vma,
+                            vma->vm_start,
+                             (u32) (nv->fb.address) + LINUX_VMA_OFFS(vma) - NV_MMAP_FB_OFFSET,
+                             vma->vm_end - vma->vm_start,
+                             vma->vm_page_prot))
+            return -EAGAIN;
+#endif
 
         // mark it as IO so that we don't dump it on core dump
         vma->vm_flags |= VM_IO;
@@ -1350,8 +1385,13 @@
         while (pages--)
         {
             page = (unsigned long) at->page_table[i++];
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
             if (remap_page_range(start, page, PAGE_SIZE, PAGE_SHARED))
               	return -EAGAIN;
+#else
+            if (remap_page_range(vma, start, page, PAGE_SIZE, PAGE_SHARED))
+                 return -EAGAIN;
+#endif
             start += PAGE_SIZE;
             pos += PAGE_SIZE;
        	}
@@ -1627,8 +1667,12 @@
         nv_lock_bh(nv);
         nv->bh_count++;
         nvl->bh->data = nv->pdev;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
         queue_task(nvl->bh, &tq_immediate);
         mark_bh(IMMEDIATE_BH);
+#else
+        schedule_task(nvl->bh);
+#endif
         nv_unlock_bh(nv);
     }
 }
@@ -2179,7 +2223,11 @@
     pte_kunmap(pte__);
 #else
     pte__ = NULL;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
     pte = *pte_offset(pg_mid_dir, address);
+#else
+    pte = *pte_offset_map(pg_mid_dir, address);
+#endif
 #endif
 
     if (!pte_present(pte)) 
diff -ur NVIDIA_kernel-1.0-3123/os-interface.c NVIDIA_kernel-1.0-3123.bob/os-interface.c
--- NVIDIA_kernel-1.0-3123/os-interface.c	Tue Aug 27 18:36:52 2002
+++ NVIDIA_kernel-1.0-3123.bob/os-interface.c	Wed Oct  2 11:26:51 2002
@@ -27,7 +27,10 @@
 
 BOOL os_is_administrator(PHWINFO pDev)
 {
-    return suser();
+    /* Actually suser() wasn't really a bool, but since the
+       nvidia guys want it as a bool, let's give them a bool.
+    */
+    return (!capable(CAP_SYS_ADMIN)?1:0);
 }
 
 U032 os_get_page_size(VOID)
@@ -1141,9 +1144,14 @@
     uaddr = *priv;
 
     /* finally, let's do it! */
-    err = remap_page_range( (size_t) uaddr, (size_t) paddr, size_bytes, 
+    
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
+    err = remap_page_range( (size_t) uaddr, (size_t) paddr, size_bytes,
+                           PAGE_SHARED);
+#else
+    err = remap_page_range( kaddr, (size_t) uaddr, (size_t) paddr, size_bytes,
                             PAGE_SHARED);
-
+#endif
     if (err != 0)
     {
         return (void *) NULL;
@@ -1176,10 +1184,14 @@
 
     uaddr = *priv;
 
-    /* finally, let's do it! */
-    err = remap_page_range( (size_t) uaddr, (size_t) start, size_bytes, 
+    /* finally, let's do it! */ 
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
+    err = remap_page_range( (size_t) uaddr, (size_t) start, size_bytes,
+                          PAGE_SHARED);    
+#else
+    err = remap_page_range( *priv, (size_t) uaddr, (size_t) start, size_bytes, 
                             PAGE_SHARED);
-
+#endif
     if (err != 0)
     {
         return (void *) NULL;
@@ -1593,7 +1605,8 @@
 
     agp_addr = agpinfo.aper_base + (agp_data->offset << PAGE_SHIFT);
 
-    err = remap_page_range(vma->vm_start, (size_t) agp_addr, 
+    err = remap_page_range(vma,
+			   vma->vm_start, (size_t) agp_addr, 
                            agp_data->num_pages << PAGE_SHIFT,
 #if defined(NVCPU_IA64)
                            vma->vm_page_prot);

[-- Attachment #2: Type: application/pgp-signature, Size: 240 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: NVIDIA binary-only driver patch for 2.5.40
  2002-10-02 16:43   ` Bob McElrath
@ 2002-10-02 17:19     ` Roberto Nibali
  0 siblings, 0 replies; 4+ messages in thread
From: Roberto Nibali @ 2002-10-02 17:19 UTC (permalink / raw)
  To: Bob McElrath; +Cc: Petr Sebor, linux-kernel

Hi,

 > This patch is based on a patch previously posted by Roberto Nibali.  I
 > place my contributions to this patch under the GPL.  NVIDIA may not
 > use this code without prior written consent from me.

You're a funny guy. While I don't care what happens to this patch 
because I took it from Andrea Arcangeli (IIRC), I am not so sure what 
exactly you mean by "I place my contributions to this patch under the 
GPL". But I don't care either. I only hope people are not bugging you 
for any breakage. ;)

I think NVIDIA would have the right to take portions of this patch 
wheter you like it or not. I don't think they want to, however.

> Revised patch attached.
> 
> P.S. It's not my fault.  That typo was in Roberto's patch.  ;)

It doesn't really matter, it's for 2.5.x anyway. Besides that it should 
actually be called rage ;).

Best regards,
Roberto Nibali, ratz
-- 
echo '[q]sa[ln0=aln256%Pln256/snlbx]sb3135071790101768542287578439snlbxq'|dc


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: NVIDIA binary-only driver patch for 2.5.40
       [not found] ` <20021002224913.GA3438@gnuppy.monkey.org>
@ 2002-10-02 22:56   ` Bob McElrath
  0 siblings, 0 replies; 4+ messages in thread
From: Bob McElrath @ 2002-10-02 22:56 UTC (permalink / raw)
  To: Bill Huey, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 1907 bytes --]

Bill Huey [billh@gnuppy.monkey.org] wrote:
> On Wed, Oct 02, 2002 at 11:10:06AM -0500, Bob McElrath wrote:
> > Here is an updated patch to the binary-only drivers provided by NVIDIA
> > (version 1.0-3123) for kernel 2.5.40.  I have tested it for both 2D and
> > 3D and it seems to work fine.  (Warcraft III under linux 2.5.40 should
> > be a good enough test, no?)
> 
> It doesn't exactly compile correctly:
> 
> root@gnuppy> /linux1/NVIDIA/NVIDIA_kernel-1.0-3123% 21# make
> echo \#define NV_COMPILER \"`cc -v 2>&1 | tail -1`\" > nv_compiler.h
> cc -c -Wall -Wimplicit -Wreturn-type -Wswitch -Wformat -Wchar-subscripts -Wparentheses -Wpointer-arith -Wcast-qual -Wno-
> D_LOOSE_KERNEL_NAMES -DNTRM -D_GNU_SOURCE -DRM_HEAPMGR -D_LOOSE_KERNEL_NAMES -D__KERNEL__ -DMODULE  -DNV_MAJOR_VERSION=1
> 3  -DNV_UNIX   -DNV_LINUX   -DNVCPU_X86       -I. -I/lib/modules/2.5.40/build/include -Wno-cast-qual nv.c
> In file included from /lib/modules/2.5.40/build/include/linux/irq.h:19,
> 		from /lib/modules/2.5.40/build/include/asm/hardirq.h:6,
> 		from /lib/modules/2.5.40/build/include/linux/interrupt.h:25,
> 		from nv-linux.h:59,
> 		from nv.c:14:
> /lib/modules/2.5.40/build/include/asm/irq.h:16: irq_vectors.h: No such file or directory
> make: *** [nv.o] Error 1
> root@gnuppy> /linux1/NVIDIA/NVIDIA_kernel-1.0-3123% 22# 

oh yeah...that...

I forgot I made a link from arch/i386/mach-generic/irq_vectors.h to
include/asm/irq_vectors.h.

The above error is in include/asm/irq.h and not a problem with the
nvidia driver itself.  (poke poke kernel maintainers)

Cheers,
-- Bob

Bob McElrath (bob+linux-kernel@mcelrath.org) 
Univ. of Wisconsin at Madison, Department of Physics

    "The purpose of separation of church and state is to keep forever from
    these shores the ceaseless strife that has soaked the soil of Europe in
    blood for centuries." -- James Madison


[-- Attachment #2: Type: application/pgp-signature, Size: 240 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2002-10-02 22:51 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-10-02 16:10 NVIDIA binary-only driver patch for 2.5.40 Bob McElrath
     [not found] ` <3D9B1AD4.3030407@scssoft.com>
2002-10-02 16:43   ` Bob McElrath
2002-10-02 17:19     ` Roberto Nibali
     [not found] ` <20021002224913.GA3438@gnuppy.monkey.org>
2002-10-02 22:56   ` Bob McElrath

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).