From: Leif D. <lde...@re...> - 2002-05-28 21:25:39
|
On Tue, 28 May 2002, Leif Delgass wrote: > On Tue, 28 May 2002, Jos=E9 Fonseca wrote: >=20 > > On 2002.05.28 21:18 Jos=E9 Fonseca wrote: > > > On 2002.05.28 19:56 Jos=E9 Fonseca wrote: > > >> ... > > >>=20 > > >> I'm already updating the CVS tree and rebuilding it, ... > > >>=20 > > >=20 > > > I've started the server and got a kernel oops on=20 > > > mach64_destroy_freelist. I've been trying to debug this but since y= ou=20 > > > wrote the code you can give me some hints. The result of ksymoops i= s=20 > > > attached. > > >=20 > > > I think that what's happening is that one of the several checks to = the=20 > > > DMA init functions being made have failed, and called=20 > > > mach64_destroy_freelist via mach64_do_cleanup_dma, _before_ the lis= ts=20 > > > have been initialized - which isn't accounted. > > >=20 > > > It's necessary to add a check in mach64_destroy_freelist to determi= ne if=20 > > > the lists were or not initlized before attempting to free them. I t= hink=20 > > > that a check for a NULL head should be enough. > > >=20 > > > Jos=E9 Fonseca > >=20 > > Ok. This has been taken care of and is already commited. > >=20 > > The error that started this all was a old libdrm.a installed in my sy= stem. > >=20 >=20 > Actually the INIT_LIST_HEAD macro just initializes the head pointers. = You=20 > need to move mach64_init_freelist, that's where the memory for the list= =20 > entries is allocated. Nevermind. Initializing the list head should ensure that the list=20 iterators are never entered.=20 --=20 Leif Delgass=20 http://www.retinalburn.net |