summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2009-10-21 13:00:01 +0000
committermav <mav@FreeBSD.org>2009-10-21 13:00:01 +0000
commitbd4f73fc0abdb59490f3f82c92ba4ff5399aa64a (patch)
treeadc74b2227944ef377ea398f15bb3dc8ad1ffa3c
parent42d3f7f160a6dc4382765006c3f35ceb76f8d4aa (diff)
downloadFreeBSD-src-bd4f73fc0abdb59490f3f82c92ba4ff5399aa64a.zip
FreeBSD-src-bd4f73fc0abdb59490f3f82c92ba4ff5399aa64a.tar.gz
MFp4:
Report real max_target = 15. SIM doesn't need to know that target 15 is PMP. It is XPT business.
-rw-r--r--sys/cam/ata/ata_xpt.c3
-rw-r--r--sys/dev/ahci/ahci.c2
-rw-r--r--sys/dev/siis/siis.c2
3 files changed, 4 insertions, 3 deletions
diff --git a/sys/cam/ata/ata_xpt.c b/sys/cam/ata/ata_xpt.c
index 5acb9a3..0d37b06 100644
--- a/sys/cam/ata/ata_xpt.c
+++ b/sys/cam/ata/ata_xpt.c
@@ -1212,7 +1212,8 @@ ata_scan_bus(struct cam_periph *periph, union ccb *request_ccb)
take_next:
/* Take next device. Wrap from 15 (PM) to 0. */
scan_info->counter = (scan_info->counter + 1 ) & 0x0f;
- if (scan_info->counter >= scan_info->cpi->max_target+1) {
+ if (scan_info->counter > scan_info->cpi->max_target -
+ ((scan_info->cpi->hba_inquiry & PI_SATAPM) ? 1 : 0)) {
xpt_free_ccb(work_ccb);
xpt_free_ccb((union ccb *)scan_info->cpi);
request_ccb = scan_info->request_ccb;
diff --git a/sys/dev/ahci/ahci.c b/sys/dev/ahci/ahci.c
index 86c1f16..485ac3d 100644
--- a/sys/dev/ahci/ahci.c
+++ b/sys/dev/ahci/ahci.c
@@ -1967,7 +1967,7 @@ ahciaction(struct cam_sim *sim, union ccb *ccb)
cpi->hba_misc = PIM_SEQSCAN;
cpi->hba_eng_cnt = 0;
if (ch->caps & AHCI_CAP_SPM)
- cpi->max_target = 14;
+ cpi->max_target = 15;
else
cpi->max_target = 0;
cpi->max_lun = 0;
diff --git a/sys/dev/siis/siis.c b/sys/dev/siis/siis.c
index 3344bc0..2077137 100644
--- a/sys/dev/siis/siis.c
+++ b/sys/dev/siis/siis.c
@@ -1584,7 +1584,7 @@ siisaction(struct cam_sim *sim, union ccb *ccb)
cpi->target_sprt = 0;
cpi->hba_misc = PIM_SEQSCAN;
cpi->hba_eng_cnt = 0;
- cpi->max_target = 14;
+ cpi->max_target = 15;
cpi->max_lun = 0;
cpi->initiator_id = 0;
cpi->bus_id = cam_sim_bus(sim);
OpenPOWER on IntegriCloud