Checking for other kernel modules on load

Chris Rees utisoft at gmail.com
Wed Dec 28 14:54:13 UTC 2011


2011/12/28 Kostik Belousov <kostikbel at gmail.com>:
> On Wed, Dec 28, 2011 at 12:23:58PM +0000, Chris Rees wrote:
>> On 28 December 2011 12:21, Daniel O'Connor <doconnor at gsoft.com.au> wrote:
>> >
>> > On 28/12/2011, at 22:07, Chris Rees wrote:
>> >> Is there a simple way to check for existence of a driver?  I could
>> >> even check for /dev/sndstat, though that doesn't seem elegant to me...
>> >
>> > kldstat -v, but really /dev/sndstat seems simpler and just as effective.
>> >
>>
>> Cheers-- I was thinking of a kernel-level function though.
>>
>> cognet@ suggested using modfind("sound"), I'll go with that.
> Obvious question is what the panic is. Checking for modules loaded is
> papering over some issue.

True, although I figured that it was a simple conflict, possibly to do
with sndstat.

Also, I'm getting panics with the following patch, whether sound is
loaded or not :)

+  if (modfind("sound") >= 0)
+    {
+      cmn_err (CE_WARN, "A conflicting sound driver is already loaded");
+      return EBUSY;
+    }
+

Is there a better way to handle such conflicts?

Chris


More information about the freebsd-hackers mailing list