Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 05 Nov 2015 00:34:15 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-bugs@FreeBSD.org
Subject:   [Bug 204298] xpt_release_device() panic: mutex CAM queue lock not owned
Message-ID:  <bug-204298-8@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=204298

            Bug ID: 204298
           Summary: xpt_release_device() panic: mutex CAM queue lock not
                    owned
           Product: Base System
           Version: 11.0-CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: kern
          Assignee: freebsd-bugs@FreeBSD.org
          Reporter: smferris@gmail.com

Created attachment 162793
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=162793&action=edit
cam_xpt.c device callout patch

xpt_release_device() calls callout_stop() without holding the callout mutex
(devq->send_mtx).

When testing large-scale repeated FC device removal, we ran into panics where
xpt_release_device() was reaching refcount 0 while the callout was pending (or
at least active).

The attached patch will give the device callout a ref on the device while the
device callout is active, to ensure the device can't be destroyed until the
callout is either stopped or finishes executing.

Sponsored by: EMC / Isilon Storage Division

-- 
You are receiving this mail because:
You are the assignee for the bug.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-204298-8>