diff options
author | mav <mav@FreeBSD.org> | 2009-10-21 13:00:01 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2009-10-21 13:00:01 +0000 |
commit | bd4f73fc0abdb59490f3f82c92ba4ff5399aa64a (patch) | |
tree | adc74b2227944ef377ea398f15bb3dc8ad1ffa3c | |
parent | 42d3f7f160a6dc4382765006c3f35ceb76f8d4aa (diff) | |
download | FreeBSD-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.c | 3 | ||||
-rw-r--r-- | sys/dev/ahci/ahci.c | 2 | ||||
-rw-r--r-- | sys/dev/siis/siis.c | 2 |
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); |