The branch main has been updated by imp:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=5ac5ebfa7533d9c3d2b7dd0443a2dba04bf0c687

commit 5ac5ebfa7533d9c3d2b7dd0443a2dba04bf0c687
Author:     Warner Losh <i...@freebsd.org>
AuthorDate: 2025-07-07 20:04:24 +0000
Commit:     Warner Losh <i...@freebsd.org>
CommitDate: 2025-07-07 23:17:00 +0000

    cam/scsi: Use xpt_path_inq() instead of hand-rolled expansion
    
    Use xpt_path_inq() for all XPT_PATH_INQ requests. They all should be
    CAM_PRIORITY_NONE since XPT_PATH_INQ is an unqueued command, so the
    minor changes here from _NORMAL to _NONE don't matter. And the one place
    we preseve the priority doesn't matter either: It's an allocated CCB,
    true, but it only ever stores the CPI from XPT_PATH_INQ.
    
    Sponsored by:           Netflix
    Reviewed by:            jhb
    Differential Revision:  https://reviews.freebsd.org/D51121
---
 sys/cam/scsi/scsi_xpt.c | 25 +++++--------------------
 1 file changed, 5 insertions(+), 20 deletions(-)

diff --git a/sys/cam/scsi/scsi_xpt.c b/sys/cam/scsi/scsi_xpt.c
index 439dd2050a95..175716ca6a67 100644
--- a/sys/cam/scsi/scsi_xpt.c
+++ b/sys/cam/scsi/scsi_xpt.c
@@ -1945,10 +1945,7 @@ scsi_scan_bus(struct cam_periph *periph, union ccb 
*request_ccb)
                        xpt_done(request_ccb);
                        return;
                }
-               xpt_setup_ccb(&work_ccb->ccb_h, request_ccb->ccb_h.path,
-                             request_ccb->ccb_h.pinfo.priority);
-               work_ccb->ccb_h.func_code = XPT_PATH_INQ;
-               xpt_action(work_ccb);
+               xpt_path_inq(&work_ccb->cpi, request_ccb->ccb_h.path);
                if (work_ccb->ccb_h.status != CAM_REQ_CMP) {
                        request_ccb->ccb_h.status = work_ccb->ccb_h.status;
                        xpt_free_ccb(work_ccb);
@@ -2294,10 +2291,7 @@ scsi_scan_lun(struct cam_periph *periph, struct cam_path 
*path,
 
        CAM_DEBUG(path, CAM_DEBUG_TRACE, ("scsi_scan_lun\n"));
 
-       memset(&cpi, 0, sizeof(cpi));
-       xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NONE);
-       cpi.ccb_h.func_code = XPT_PATH_INQ;
-       xpt_action((union ccb *)&cpi);
+       xpt_path_inq(&cpi, path);
 
        if (cpi.ccb_h.status != CAM_REQ_CMP) {
                if (request_ccb != NULL) {
@@ -2421,10 +2415,7 @@ scsi_devise_transport(struct cam_path *path)
        struct scsi_inquiry_data *inq_buf;
 
        /* Get transport information from the SIM */
-       memset(&cpi, 0, sizeof(cpi));
-       xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NONE);
-       cpi.ccb_h.func_code = XPT_PATH_INQ;
-       xpt_action((union ccb *)&cpi);
+       xpt_path_inq(&cpi, path);
 
        inq_buf = NULL;
        if ((path->device->flags & CAM_DEV_INQUIRY_DATA_VALID) != 0)
@@ -2732,10 +2723,7 @@ scsi_set_transfer_settings(struct ccb_trans_settings 
*cts, struct cam_path *path
 
        inq_data = &device->inq_data;
        scsi = &cts->proto_specific.scsi;
-       memset(&cpi, 0, sizeof(cpi));
-       xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NONE);
-       cpi.ccb_h.func_code = XPT_PATH_INQ;
-       xpt_action((union ccb *)&cpi);
+       xpt_path_inq(&cpi, path);
 
        /* SCSI specific sanity checking */
        if ((cpi.hba_inquiry & PI_TAG_ABLE) == 0
@@ -3046,10 +3034,7 @@ _scsi_announce_periph(struct cam_periph *periph, u_int 
*speed, u_int *freq, stru
                return;
 
        /* Ask the SIM for its base transfer speed */
-       memset(&cpi, 0, sizeof(cpi));
-       xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NORMAL);
-       cpi.ccb_h.func_code = XPT_PATH_INQ;
-       xpt_action((union ccb *)&cpi);
+       xpt_path_inq(&cpi, path);
 
        /* Report connection speed */
        *speed = cpi.base_transfer_speed;

Reply via email to