The CVS version of XFree SEGVs on FreeBSD-4.8 and DragonFly-CURRENT on my Asus A7V8X-VM (VIA KM400 using on board video). This happens after switching to a graphics mode but before the cross hatching. Also, I'm using a old monitor that doesn't do DDC.
It seems (even with the patched gdb for loadable modules and building with -g, I couldn't get symbol names in modules) the crash happens on line 8184 in via_bios.c (in VIAFindModeUseBIOSTable()):
pBIOSInfo->UserSetting->DefaultSetting = FALSE;
Thing is, I don't see where UserSetting is ever allocated! The attached patch allocates it in VIAGetRec() in via_driver.c.
Everything works fine otherwise.
James
? alloc-UserSetting.patch
Index: via_driver.c
===================================================================
RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/via/via_driver.c,v
retrieving revision 1.22
diff -u -u -r1.22 via_driver.c
--- via_driver.c 5 Jan 2004 00:34:17 -0000 1.22
+++ via_driver.c 14 Jan 2004 23:41:03 -0000
@@ -446,6 +446,8 @@
pScrn->driverPrivate = xnfcalloc(sizeof(VIARec), 1);
((VIARec *)(pScrn->driverPrivate))->pBIOSInfo =
xnfcalloc(sizeof(VIABIOSInfoRec), 1);
+ ((VIARec *)(pScrn->driverPrivate))->pBIOSInfo->UserSetting =
+ xnfcalloc(sizeof(VIAUserSettingRec), 1);
((VIARec *)(pScrn->driverPrivate))->pBIOSInfo->pModeTable =
xnfcalloc(sizeof(VIAModeTableRec), 1);
