mirror of
https://git.FreeBSD.org/src.git
synced 2024-11-24 07:40:52 +00:00
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.
This commit is contained in:
parent
c44be5aa0a
commit
3750f5ff89
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=357969
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user