svn commit: r254208 - in projects/camlock/sys/cam: . ata scsi
Alexander Motin
mav at FreeBSD.org
Sun Aug 11 07:00:44 UTC 2013
Author: mav
Date: Sun Aug 11 07:00:43 2013
New Revision: 254208
URL: http://svnweb.freebsd.org/changeset/base/254208
Log:
Reduce number of SIM entry points via sim_action() method call.
Modified:
projects/camlock/sys/cam/ata/ata_xpt.c
projects/camlock/sys/cam/cam_xpt.c
projects/camlock/sys/cam/scsi/scsi_xpt.c
Modified: projects/camlock/sys/cam/ata/ata_xpt.c
==============================================================================
--- projects/camlock/sys/cam/ata/ata_xpt.c Sun Aug 11 06:57:57 2013 (r254207)
+++ projects/camlock/sys/cam/ata/ata_xpt.c Sun Aug 11 07:00:43 2013 (r254208)
@@ -1779,7 +1779,7 @@ ata_get_transfer_settings(struct ccb_tra
device = cts->ccb_h.path->device;
sim = cts->ccb_h.path->bus->sim;
- (*(sim->sim_action))(sim, (union ccb *)cts);
+ xpt_action_default((union ccb *)cts);
if (cts->protocol == PROTO_UNKNOWN ||
cts->protocol == PROTO_UNSPECIFIED) {
@@ -1941,7 +1941,7 @@ ata_set_transfer_settings(struct ccb_tra
}
if (async_update == FALSE)
- (*(sim->sim_action))(sim, (union ccb *)cts);
+ xpt_action_default((union ccb *)cts);
}
/*
Modified: projects/camlock/sys/cam/cam_xpt.c
==============================================================================
--- projects/camlock/sys/cam/cam_xpt.c Sun Aug 11 06:57:57 2013 (r254207)
+++ projects/camlock/sys/cam/cam_xpt.c Sun Aug 11 07:00:43 2013 (r254208)
@@ -2408,6 +2408,7 @@ void
xpt_action_default(union ccb *start_ccb)
{
struct cam_path *path;
+ struct cam_sim *sim;
path = start_ccb->ccb_h.path;
CAM_DEBUG(path, CAM_DEBUG_TRACE, ("xpt_action_default\n"));
@@ -2468,9 +2469,6 @@ xpt_action_default(union ccb *start_ccb)
break;
}
case XPT_CALC_GEOMETRY:
- {
- struct cam_sim *sim;
-
/* Filter out garbage */
if (start_ccb->ccg.block_size == 0
|| start_ccb->ccg.volume_size == 0) {
@@ -2498,10 +2496,7 @@ xpt_action_default(union ccb *start_ccb)
break;
}
#endif
- sim = path->bus->sim;
- (*(sim->sim_action))(sim, start_ccb);
- break;
- }
+ goto call_sim;
case XPT_ABORT:
{
union ccb* abort_ccb;
@@ -2562,21 +2557,13 @@ xpt_action_default(union ccb *start_ccb)
case XPT_NOTIFY_ACKNOWLEDGE:
case XPT_GET_SIM_KNOB:
case XPT_SET_SIM_KNOB:
- {
- struct cam_sim *sim;
-
- sim = path->bus->sim;
- (*(sim->sim_action))(sim, start_ccb);
- break;
- }
+ case XPT_GET_TRAN_SETTINGS:
+ case XPT_SET_TRAN_SETTINGS:
case XPT_PATH_INQ:
- {
- struct cam_sim *sim;
-
+call_sim:
sim = path->bus->sim;
(*(sim->sim_action))(sim, start_ccb);
break;
- }
case XPT_PATH_STATS:
start_ccb->cpis.last_reset = path->bus->last_reset;
start_ccb->ccb_h.status = CAM_REQ_CMP;
Modified: projects/camlock/sys/cam/scsi/scsi_xpt.c
==============================================================================
--- projects/camlock/sys/cam/scsi/scsi_xpt.c Sun Aug 11 06:57:57 2013 (r254207)
+++ projects/camlock/sys/cam/scsi/scsi_xpt.c Sun Aug 11 07:00:43 2013 (r254208)
@@ -2525,14 +2525,6 @@ scsi_action(union ccb *start_ccb)
start_ccb->ccb_h.path, start_ccb->crcn.flags,
start_ccb);
break;
- case XPT_GET_TRAN_SETTINGS:
- {
- struct cam_sim *sim;
-
- sim = start_ccb->ccb_h.path->bus->sim;
- (*(sim->sim_action))(sim, start_ccb);
- break;
- }
case XPT_DEV_ADVINFO:
{
scsi_dev_advinfo(start_ccb);
@@ -2620,7 +2612,7 @@ scsi_set_transfer_settings(struct ccb_tr
*/
if (cts->protocol != PROTO_SCSI) {
if (async_update == FALSE)
- (*(sim->sim_action))(sim, (union ccb *)cts);
+ xpt_action_default((union ccb *)cts);
return;
}
@@ -2810,7 +2802,7 @@ scsi_set_transfer_settings(struct ccb_tr
}
}
if (async_update == FALSE)
- (*(sim->sim_action))(sim, (union ccb *)cts);
+ xpt_action_default((union ccb *)cts);
}
static void
More information about the svn-src-projects
mailing list