Subject: Re: aperture, broken again?
To: Sean Davis <dive@endersgame.net>
From: Stephen Ma <stephenm@employees.org>
List: current-users
Date: 10/10/2002 22:51:38
Julio> after successfully building an 1.6I kernel, aperture has
Julio> stopped working.

Below is a quick patch for the aperture driver that includes the
previous change for the devsw stuff. It should be used in place of
pkgsrc/sysutils/aperture/patches/patch-ab (assuming you're building
from pkgsrc). This patch has been extensively untested.

- S

-- 

--- module/xf86_mod.c.orig	Fri Jul  5 01:36:35 2002
+++ module/xf86_mod.c	Thu Oct 10 22:37:41 2002
@@ -17,9 +17,15 @@
 #include "memrange.h"
 
 /* Pull in the cpuid values from locore.s */
+#if __NetBSD_Version__ >= 106080000
+extern struct cpu_info cpu_info_primary;
+#define cpu_vendor ((char *)cpu_info_primary.ci_vendor)
+#define cpu_id cpu_info_primary.ci_signature
+#else
 extern int cpu_id;
 extern int cpu_feature;
 extern char cpu_vendor[];
+#endif
 
 extern struct mem_range_ops i686_mrops, k6_mrops;
 
@@ -31,7 +37,11 @@
 	0,
 	seltrue, xf86mmap, 0};
 
+#if __NetBSD_Version__ >= 106080000
+MOD_DEV("xf86", "xf86ap", NULL, -1, &newdev, -1)
+#else
 MOD_DEV("xf86", LM_DT_CHAR, -1, &newdev)
+#endif
 
 char *xf86_major_version = "2";
 char *xf86_minor_version = "0";
@@ -76,7 +86,10 @@
 		
 	case LKM_E_UNLOAD:
 		/* Free allocated memory */
-		free(mem_range_softc.mr_desc, M_MEMDESC);
+		if (mem_range_softc.mr_desc != NULL) {
+			free(mem_range_softc.mr_desc, M_MEMDESC);
+			mem_range_softc.mr_desc = NULL;
+		}
 		break;
 		
 	case LKM_E_STAT: