aboutsummaryrefslogtreecommitdiff
path: root/sys/cam/cam_periph.c
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2020-02-15 18:14:23 +0000
committerWarner Losh <imp@FreeBSD.org>2020-02-15 18:14:23 +0000
commit3750f5ff897fbfb07e35b921d0d6e86aba623cec (patch)
treedadbc209a2ab4bb6d0b2945bed747c023ec2213d /sys/cam/cam_periph.c
parentc44be5aa0a9e889c2ebde73986acabdaab952c65 (diff)
downloadsrc-3750f5ff897fbfb07e35b921d0d6e86aba623cec.tar.gz
src-3750f5ff897fbfb07e35b921d0d6e86aba623cec.zip
The KASSERT is too strict: revert r357897
It's valid for a periph to be removed with outstanding transactions on the device. In CAM, multiple periphs attach to a single device. There's no interlock to prevent one of these going away while other periphs have outstanding CCBs and it's not an error either. Remove this overly agressive KASSERT to prevent false-positive panics when devices depart.
Notes
Notes: svn path=/head/; revision=357969
Diffstat (limited to 'sys/cam/cam_periph.c')
-rw-r--r--sys/cam/cam_periph.c5
1 files changed, 0 insertions, 5 deletions
diff --git a/sys/cam/cam_periph.c b/sys/cam/cam_periph.c
index f4855b819301..7d8f671eecd3 100644
--- a/sys/cam/cam_periph.c
+++ b/sys/cam/cam_periph.c
@@ -57,7 +57,6 @@ __FBSDID("$FreeBSD$");
#include <cam/cam_periph.h>
#include <cam/cam_debug.h>
#include <cam/cam_sim.h>
-#include <cam/cam_xpt_internal.h> /* For KASSERTs only */
#include <cam/scsi/scsi_all.h>
#include <cam/scsi/scsi_message.h>
@@ -682,10 +681,6 @@ camperiphfree(struct cam_periph *periph)
cam_periph_assert(periph, MA_OWNED);
KASSERT(periph->periph_allocating == 0, ("%s%d: freed while allocating",
periph->periph_name, periph->unit_number));
- KASSERT(periph->path->device->ccbq.dev_active == 0,
- ("%s%d: freed with %d active CCBs\n",
- periph->periph_name, periph->unit_number,
- periph->path->device->ccbq.dev_active));
for (p_drv = periph_drivers; *p_drv != NULL; p_drv++) {
if (strcmp((*p_drv)->driver_name, periph->periph_name) == 0)
break;