From owner-freebsd-hackers@FreeBSD.ORG Mon Jan 12 14:10:31 2009 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C64DD1065675 for ; Mon, 12 Jan 2009 14:10:31 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: from fg-out-1718.google.com (fg-out-1718.google.com [72.14.220.158]) by mx1.freebsd.org (Postfix) with ESMTP id 518958FC17 for ; Mon, 12 Jan 2009 14:10:30 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: by fg-out-1718.google.com with SMTP id l26so3690518fgb.35 for ; Mon, 12 Jan 2009 06:10:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:date:from:to:cc:subject :message-id:references:mime-version:content-type:content-disposition :in-reply-to:user-agent; bh=INpZ7Ad0T7DwtLQqINwdSdLXxhz4rYJ+CdOkf6nSLLI=; b=QqV49TvifOxqmAtF4WC9r1fYX/paMT3vg/H/zb1DSKlTSVgix2ww3BbQ/OxNp+0zWm Wc03KQHWuJRj6P8g8mzWOfHkyNT2RWb5ESr+H9yAdtoxjWj27M4ECDRj+nD1HGlweNzl PhmhfcjTC04IldQgIaHFaZUC6ud++GTFmi1cI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; b=QgsYKxN3L1rkIfsEY6w+WV+jDF8miDsUNCZtSYAGaXDP9zW9UMSTGS1ZksGXrcpWGl V3zmlJVVPFyZ94js8t2Z1RUykgsdLHJi8PW68a65yyUHtfk8q2WL7sVjOIQFfS3+rMn6 RQjquYX4BXIj5pScsoA4fe8rWxj7GJvLyx1+4= Received: by 10.86.54.3 with SMTP id c3mr15345153fga.75.1231769430178; Mon, 12 Jan 2009 06:10:30 -0800 (PST) Received: from gmail.com (sdferwer192.net.autocom.pl [77.236.1.49]) by mx.google.com with ESMTPS id d6sm9155459fga.20.2009.01.12.06.10.29 (version=TLSv1/SSLv3 cipher=RC4-MD5); Mon, 12 Jan 2009 06:10:29 -0800 (PST) Date: Mon, 12 Jan 2009 15:10:29 +0100 From: Mateusz Guzik To: Alexej Sokolov Message-ID: <20090112141029.GA31108@skucha> References: <20090112134726.GA2988@debian.samsung.router> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-2 Content-Disposition: inline In-Reply-To: <20090112134726.GA2988@debian.samsung.router> User-Agent: Mutt/1.5.18 (2008-05-17) Cc: freebsd-hackers@freebsd.org Subject: Re: panic by unlocking of mutex in KLD X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Jan 2009 14:10:32 -0000 On Mon, Jan 12, 2009 at 02:47:26PM +0100, Alexej Sokolov wrote: > Hello, > > by unloading of folowing module I have kernel panic. > > I would like to get any explanation about my mistake. > > #include > #include > #include > #include > #include > #include > #include > #include > #include > #include > #include > > > 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); > > Acutally it panics even on loading. :) Mutexes have owners. It panics on loading because processes cannot return to userland with locks held. It panics on unloading (in your case) because curproc != my_mtx's owner. -- Mateusz Guzik