git: 770498cf8bdc - stable/13 - pvscsi: maximum target number is one less than number of targets

From: Zhenlei Huang <zlei_at_FreeBSD.org>
Date: Tue, 26 Nov 2024 15:35:29 UTC
The branch stable/13 has been updated by zlei:

URL: https://cgit.FreeBSD.org/src/commit/?id=770498cf8bdce4d0909093a4ebd4cab104fa0ff2

commit 770498cf8bdce4d0909093a4ebd4cab104fa0ff2
Author:     Yuri Pankov <yuripv@FreeBSD.org>
AuthorDate: 2023-05-05 09:48:57 +0000
Commit:     Zhenlei Huang <zlei@FreeBSD.org>
CommitDate: 2024-11-26 15:32:47 +0000

    pvscsi: maximum target number is one less than number of targets
    
    Fix the number of targets we inquiry to be one less than the maximum
    number of targets adapter reports.  This gets rid of the errors reported
    on VMware Workstation:
    
    (probe36:pvscsi0:0:65:0): INQUIRY. CDB: 12 00 00 00 24 00
    (probe36:pvscsi0:0:65:0): CAM status: CCB request completed with an error
    
    While here, print the maximum number of targets.
    
    Reviewed by:    imp
    Differential Revision:  https://reviews.freebsd.org/D39867
    
    (cherry picked from commit 6abf81b3d6747da0baa90860d5a6e929c97c9bb9)
---
 sys/dev/vmware/pvscsi/pvscsi.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/sys/dev/vmware/pvscsi/pvscsi.c b/sys/dev/vmware/pvscsi/pvscsi.c
index f7d49c62372e..b3be2280eb5e 100644
--- a/sys/dev/vmware/pvscsi/pvscsi.c
+++ b/sys/dev/vmware/pvscsi/pvscsi.c
@@ -1410,7 +1410,7 @@ finish_ccb:
 		cpi->hba_misc = PIM_NOBUSRESET | PIM_UNMAPPED;
 		cpi->hba_eng_cnt = 0;
 		/* cpi->vuhba_flags = 0; */
-		cpi->max_target = sc->max_targets;
+		cpi->max_target = sc->max_targets - 1;
 		cpi->max_lun = 0;
 		cpi->async_flags = 0;
 		cpi->hpath_id = 0;
@@ -1682,6 +1682,7 @@ pvscsi_attach(device_t dev)
 	    PVSCSI_MAX_REQ_QUEUE_DEPTH);
 
 	device_printf(sc->dev, "Use Msg: %d\n", sc->use_msg);
+	device_printf(sc->dev, "Max targets: %d\n", sc->max_targets);
 	device_printf(sc->dev, "REQ num pages: %d\n", sc->req_ring_num_pages);
 	device_printf(sc->dev, "CMP num pages: %d\n", sc->cmp_ring_num_pages);
 	device_printf(sc->dev, "MSG num pages: %d\n", sc->msg_ring_num_pages);