panic by unlocking of mutex in KLD
Alexej Sokolov
bsd.quest at googlemail.com
Mon Jan 12 05:48:00 PST 2009
Hello,
by unloading of folowing module I have kernel panic.
I would like to get any explanation about my mistake.
#include <sys/param.h>
#include <sys/module.h>
#include <sys/kernel.h>
#include <sys/systm.h>
#include <sys/queue.h>
#include <sys/kernel.h>
#include <sys/kobj.h>
#include <sys/malloc.h>
#include <sys/types.h>
#include <sys/lock.h>
#include <sys/mutex.h>
struct mtx my_mtx;
/* Load handler */
static int
load(struct module *mod, int cmd, void *arg)
{
int error = 0;
switch(cmd) {
case MOD_LOAD:
printf("Start! Addres of mutex = 0x%X \n",
&my_mtx);
mtx_init(&my_mtx, "My mutex name", "My mutex
type", MTX_DEF);
mtx_lock(&my_mtx);
break;
case MOD_UNLOAD:
printf("Stop! Addres of mutex = 0x%X \n",
&my_mtx);
mtx_unlock(&my_mtx);
break;
default:
error = EOPNOTSUPP;
break;
}
return (error);
}
/* Module structure */
static moduledata_t mod_data = {
"mymod",
load,
NULL
};
MODULE_VERSION (kld, 1);
DECLARE_MODULE (kld, mod_data, SI_SUB_DRIVERS, SI_ORDER_MIDDLE);
Thanx
--
Alexej Sokolov <bsd.quest at googlemail.com>
More information about the freebsd-hackers
mailing list