Date: Fri, 23 Mar 2001 14:00:03 -0800 (PST) From: Peter Wemm <peter@netplex.com.au> To: freebsd-bugs@FreeBSD.org Subject: Re: kern/26034: kldload() panics if error code is returned from <module_name>_load(). Message-ID: <200103232200.f2NM03q36535@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/26034; it has been noted by GNATS. From: Peter Wemm <peter@netplex.com.au> To: jtrainor@fastekintl.com Cc: freebsd-gnats-submit@FreeBSD.ORG Subject: Re: kern/26034: kldload() panics if error code is returned from <module_name>_load(). Date: Fri, 23 Mar 2001 13:50:52 -0800 jtrainor@fastekintl.com wrote: > > >Number: 26034 > >Category: kern > >Synopsis: kldload() panics if error code is returned from <module_name >_load(). > >Description: > panic trap 12 (page fault) in kldload while attempting to return an error fro m <module_name>_load. If I set the return value prior to entering the case statement, proper behavior is observed. If I set the return value inside the case statement, panic occurs. See code below. This is because if you fail on the MOD_LOAD case, the linker calls all the MOD_UNLOADs for the modules in the kld file. In your case, you are calling "destroy_dev(sdev);" on MOD_UNLOAD, which is panicing since sdev is uninitialized. This is actually a bug in your module due to the existing module load/unload semantics. Remember, there can be more than one module inside a .ko kld file. One could argue that a MOD_UNLOAD event should be skipped for modules that have failed to load successfully.. I think this change needs to happen. Cheers, -Peter -- Peter Wemm - peter@FreeBSD.org; peter@yahoo-inc.com; peter@netplex.com.au "All of this is for nothing if we don't go to the stars" - JMS/B5 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200103232200.f2NM03q36535>