summaryrefslogtreecommitdiffstats
path: root/sys/cam
diff options
context:
space:
mode:
Diffstat (limited to 'sys/cam')
-rw-r--r--sys/cam/cam_xpt.c47
1 files changed, 18 insertions, 29 deletions
diff --git a/sys/cam/cam_xpt.c b/sys/cam/cam_xpt.c
index 27f3bc0..628a128 100644
--- a/sys/cam/cam_xpt.c
+++ b/sys/cam/cam_xpt.c
@@ -2688,36 +2688,25 @@ call_sim:
}
case XPT_GDEV_STATS:
{
- struct cam_ed *dev;
-
- dev = path->device;
- if ((dev->flags & CAM_DEV_UNCONFIGURED) != 0) {
- start_ccb->ccb_h.status = CAM_DEV_NOT_THERE;
- } else {
- struct ccb_getdevstats *cgds;
- struct cam_eb *bus;
- struct cam_et *tar;
- struct cam_devq *devq;
+ struct ccb_getdevstats *cgds = &start_ccb->cgds;
+ struct cam_ed *dev = path->device;
+ struct cam_eb *bus = path->bus;
+ struct cam_et *tar = path->target;
+ struct cam_devq *devq = bus->sim->devq;
- cgds = &start_ccb->cgds;
- bus = path->bus;
- tar = path->target;
- devq = bus->sim->devq;
- mtx_lock(&devq->send_mtx);
- cgds->dev_openings = dev->ccbq.dev_openings;
- cgds->dev_active = dev->ccbq.dev_active;
- cgds->allocated = dev->ccbq.allocated;
- cgds->queued = cam_ccbq_pending_ccb_count(&dev->ccbq);
- cgds->held = cgds->allocated - cgds->dev_active -
- cgds->queued;
- cgds->last_reset = tar->last_reset;
- cgds->maxtags = dev->maxtags;
- cgds->mintags = dev->mintags;
- if (timevalcmp(&tar->last_reset, &bus->last_reset, <))
- cgds->last_reset = bus->last_reset;
- mtx_unlock(&devq->send_mtx);
- cgds->ccb_h.status = CAM_REQ_CMP;
- }
+ mtx_lock(&devq->send_mtx);
+ cgds->dev_openings = dev->ccbq.dev_openings;
+ cgds->dev_active = dev->ccbq.dev_active;
+ cgds->allocated = dev->ccbq.allocated;
+ cgds->queued = cam_ccbq_pending_ccb_count(&dev->ccbq);
+ cgds->held = cgds->allocated - cgds->dev_active - cgds->queued;
+ cgds->last_reset = tar->last_reset;
+ cgds->maxtags = dev->maxtags;
+ cgds->mintags = dev->mintags;
+ if (timevalcmp(&tar->last_reset, &bus->last_reset, <))
+ cgds->last_reset = bus->last_reset;
+ mtx_unlock(&devq->send_mtx);
+ cgds->ccb_h.status = CAM_REQ_CMP;
break;
}
case XPT_GDEVLIST:
OpenPOWER on IntegriCloud