Date: Wed, 26 Sep 2012 10:14:13 -0400 From: John Baldwin <jhb@freebsd.org> To: freebsd-stable@freebsd.org Cc: Steven Hartland <killing@multiplay.co.uk> Subject: Re: Lock MFI config not exclusively locked - panic Message-ID: <201209261014.13064.jhb@freebsd.org> In-Reply-To: <ED06B1F69D4042FBA4604BFE48121E23@multiplay.co.uk> References: <F623D1F9C19F4D4DB525E9E0B2102B1A@multiplay.co.uk> <ED06B1F69D4042FBA4604BFE48121E23@multiplay.co.uk>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday, September 25, 2012 9:37:41 pm Steven Hartland wrote: > ----- Original Message ----- > > I've been testing some enhancements to mfiutil so compiled > > kernel in debug with:- > > options INVARIANTS > > options INVARIANT_SUPPORT > > options DDB > > options MFI_DEBUG > > > > After doing that and running mfiutil to import a foreign > > config I get a panic with:- > > Lock MFI config not exclusively locked @ /usr/src/sys/dev/mfi/mfi.c:1001 > > > > Looking at the code this was trigged by the mfi_ldprobe from > > mfi_check_command_post which doesn't do any locking. > > > > Is the correct fix for this to wrap all the calls to mfi_ldprobe > > with config and io lock as per mfi_startup e.g. > > sx_xlock(&sc->mfi_config_lock); > > mtx_lock(&sc->mfi_io_lock); > > mfi_ldprobe(sc); > > mtx_unlock(&sc->mfi_io_lock); > > sx_xunlock(&sc->mfi_config_lock); > > Replying to my own posts again, but just spotted mfi_config_lock > method and seems its just missing MFI_DCMD_CFG_FOREIGN_IMPORT > which is required for user commands. > > Adding it fixes this panic :) Committed, thanks! -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201209261014.13064.jhb>