From owner-svn-src-projects@FreeBSD.ORG Sun Aug 11 07:00:44 2013 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTP id 1DDA3A5D; Sun, 11 Aug 2013 07:00:44 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 0A2BE2652; Sun, 11 Aug 2013 07:00:44 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id r7B70hND008396; Sun, 11 Aug 2013 07:00:43 GMT (envelope-from mav@svn.freebsd.org) Received: (from mav@localhost) by svn.freebsd.org (8.14.7/8.14.5/Submit) id r7B70hnJ008393; Sun, 11 Aug 2013 07:00:43 GMT (envelope-from mav@svn.freebsd.org) Message-Id: <201308110700.r7B70hnJ008393@svn.freebsd.org> From: Alexander Motin Date: Sun, 11 Aug 2013 07:00:43 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r254208 - in projects/camlock/sys/cam: . ata scsi X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 11 Aug 2013 07:00:44 -0000 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