Lines Matching refs:ptgt

246 static void mptsas_cmd_timeout(mptsas_t *mpt, mptsas_target_t *ptgt);
296 mptsas_target_t *ptgt, uchar_t *cdb, int cdblen, struct buf *data_bp,
350 static int mptsas_inquiry(mptsas_t *mpt, mptsas_target_t *ptgt, int lun,
357 static int mptsas_send_sep(mptsas_t *mpt, mptsas_target_t *ptgt,
363 static int mptsas_flush_led_status(mptsas_t *mpt, mptsas_target_t *ptgt);
375 static int mptsas_config_target(dev_info_t *pdip, mptsas_target_t *ptgt);
381 static int mptsas_config_luns(dev_info_t *pdip, mptsas_target_t *ptgt);
383 dev_info_t **dip, mptsas_target_t *ptgt);
386 dev_info_t **dip, mptsas_target_t *ptgt, int lun);
389 char *guid, dev_info_t **dip, mptsas_target_t *ptgt, int lun);
391 char *guid, dev_info_t **dip, mdi_pathinfo_t **pip, mptsas_target_t *ptgt,
395 uint16_t *repluns, int lun_cnt, mptsas_target_t *ptgt);
3026 mptsas_target_t *ptgt = NULL;
3089 ptgt = refhash_lookup(mpt->m_targets, &addr);
3091 if (ptgt == NULL) {
3101 tgt_private->t_private = ptgt;
3110 if (ptgt->m_deviceinfo &
3129 rval = mptsas_inquiry(mpt, ptgt, 0, 0x89,
3138 "0x89 for SATA target:%x failed!", ptgt->m_devhdl);
3213 mptsas_target_t *ptgt = cmd->cmd_tgt_addr;
3216 ASSERT(ptgt);
3217 if (ptgt == NULL)
3277 * ptgt->m_dr_flag is protected by m_mutex or
3281 if (ptgt->m_dr_flag == MPTSAS_DR_INTRANSITION) {
3318 * ptgt->m_dr_flag is protected by m_mutex or m_tx_waitq_mutex
3321 if (ptgt->m_dr_flag == MPTSAS_DR_INTRANSITION) {
3354 mptsas_target_t *ptgt = cmd->cmd_tgt_addr;
3365 * ptgt->m_dr_flag is protected by m_mutex or m_tx_waitq_mutex
3368 if (ptgt->m_dr_flag == MPTSAS_DR_INTRANSITION) {
3394 mptsas_target_t *ptgt = cmd->cmd_tgt_addr;
3411 if ((ptgt->m_t_ncmds == 0) &&
3412 (ptgt->m_t_throttle == DRAIN_THROTTLE)) {
3414 ASSERT(ptgt->m_reset_delay == 0);
3415 mptsas_set_throttle(mpt, ptgt, MAX_THROTTLE);
3425 if ((ptgt->m_devhdl == MPTSAS_INVALID_DEVHDL) && mpt->m_in_reset) {
3443 if (ptgt->m_devhdl == MPTSAS_INVALID_DEVHDL) {
3462 (ptgt->m_t_throttle > HOLD_THROTTLE) &&
3463 (ptgt->m_t_ncmds < ptgt->m_t_throttle) &&
3464 (ptgt->m_reset_delay == 0) &&
3465 (ptgt->m_t_nwait == 0) &&
3499 mptsas_target_t *ptgt = cmd->cmd_tgt_addr;
3544 ptgt->m_t_ncmds++;
3622 mptsas_target_t *ptgt = NULL;
3635 ptgt = tgt_private->t_private;
3636 ASSERT(ptgt != NULL);
3637 if (ptgt == NULL)
3639 ap->a_target = ptgt->m_devhdl;
3675 cmd->cmd_tgt_addr = ptgt;
5435 mptsas_target_t *ptgt = cmd->cmd_tgt_addr;
5450 sas_wwn = ptgt->m_addr.mta_wwn;
5451 phy = ptgt->m_phynum;
5487 if (ptgt->m_reset_delay == 0) {
5488 mptsas_set_throttle(mpt, ptgt,
5578 topo_node->un.phymask = ptgt->m_addr.mta_phymask;
5579 topo_node->devhdl = ptgt->m_devhdl;
5580 topo_node->object = (void *)ptgt;
5600 if (ptgt->m_reset_delay == 0) {
5601 mptsas_set_throttle(mpt, ptgt, DRAIN_THROTTLE);
5656 for (ptgt = refhash_first(mpt->m_targets); ptgt != NULL;
5657 ptgt = refhash_next(mpt->m_targets, ptgt)) {
5658 mptsas_set_throttle(mpt, ptgt, DRAIN_THROTTLE);
5943 mptsas_target_t *ptgt = cmd->cmd_tgt_addr;
5945 if ((++cmd->cmd_qfull_retries > ptgt->m_qfull_retries) ||
5946 (ptgt->m_qfull_retries == 0)) {
5956 mptsas_set_throttle(mpt, ptgt, DRAIN_THROTTLE);
5958 if (ptgt->m_reset_delay == 0) {
5959 ptgt->m_t_throttle =
5960 max((ptgt->m_t_ncmds - 2), 0);
5976 if (ptgt->m_t_throttle == HOLD_THROTTLE) {
5983 mptsas_set_throttle(mpt, ptgt, QFULL_THROTTLE);
5987 ptgt->m_qfull_retry_interval);
6321 mptsas_target_t *ptgt = NULL;
6352 ptgt = refhash_linear_search(mpt->m_targets,
6354 if (ptgt == NULL)
6357 ptgt = (void *)topo_node->object;
6360 if (ptgt == NULL) {
6376 &devhdl, &ptgt);
6401 ASSERT(ptgt->m_devhdl == topo_node->devhdl);
6407 phymask = ptgt->m_addr.mta_phymask;
6432 rval = mptsas_config_target(parent, ptgt);
6446 ptgt->m_addr.mta_wwn);
6503 "phymask:%x.", mpt->m_instance, ptgt->m_devhdl,
6504 ptgt->m_addr.mta_phymask));
6510 ptgt = refhash_linear_search(mpt->m_targets,
6512 if (ptgt == NULL)
6515 sas_wwn = ptgt->m_addr.mta_wwn;
6516 phy = ptgt->m_phynum;
6525 ASSERT(ptgt->m_devhdl == devhdl);
6543 mpt->m_instance, ptgt->m_devhdl,
6544 ptgt->m_addr.mta_phymask, rval));
6556 ptgt->m_devhdl, ptgt->m_addr.mta_phymask, rval));
6596 ptgt->m_led_status = 0;
6597 (void) mptsas_flush_led_status(mpt, ptgt);
6599 refhash_remove(mpt->m_targets, ptgt);
6600 ptgt = NULL;
6607 ptgt->m_devhdl = MPTSAS_INVALID_DEVHDL;
6608 ptgt->m_tgt_unconfigured = 0;
6610 ptgt->m_dr_flag = MPTSAS_DR_INACTIVE;
6904 mptsas_target_t *ptgt;
7121 ptgt = refhash_linear_search(mpt->m_targets,
7124 * If ptgt is NULL here, it means that the
7136 if (ptgt == NULL) {
7167 ptgt->m_dr_flag = MPTSAS_DR_INTRANSITION;
7175 ptgt->m_addr.mta_phymask;
7356 mptsas_target_t *ptgt;
7408 ptgt = refhash_linear_search(mpt->m_targets,
7410 if (ptgt == NULL)
7422 ptgt->m_dr_flag = MPTSAS_DR_INTRANSITION;
7430 ptgt->m_addr.mta_phymask;
7436 topo_node->object = (void *)ptgt;
7448 ptgt = refhash_linear_search(mpt->m_targets,
7450 if (ptgt == NULL)
7457 ptgt->m_dr_flag = MPTSAS_DR_INTRANSITION;
7465 ptgt->m_addr.mta_phymask;
7471 topo_node->object = (void *)ptgt;
8120 mptsas_target_t *ptgt = NULL;
8126 for (ptgt = refhash_first(mpt->m_targets); ptgt != NULL;
8127 ptgt = refhash_next(mpt->m_targets, ptgt)) {
8128 if (ptgt->m_reset_delay == 0) {
8129 if (ptgt->m_t_throttle == QFULL_THROTTLE) {
8130 mptsas_set_throttle(mpt, ptgt,
8144 mptsas_target_t *ptgt = cmd->cmd_tgt_addr;
8173 ptgt->m_t_ncmds--;
8178 if ((ptgt->m_t_ncmds == 0) &&
8180 mptsas_set_throttle(mpt, ptgt, MAX_THROTTLE);
8187 TAILQ_REMOVE(&ptgt->m_active_cmdq, cmd,
8234 mptsas_target_t *ptgt = NULL;
8290 ptgt = cmd->cmd_tgt_addr;
8291 if (ptgt && (ptgt->m_t_throttle == DRAIN_THROTTLE) &&
8292 (ptgt->m_t_ncmds == 0)) {
8293 mptsas_set_throttle(mpt, ptgt, MAX_THROTTLE);
8296 (ptgt && (ptgt->m_reset_delay == 0)) &&
8297 (ptgt && (ptgt->m_t_ncmds <
8298 ptgt->m_t_throttle))) {
8360 mptsas_target_t *ptgt = cmd->cmd_tgt_addr;
8382 ASSERT(ptgt->m_reset_delay == 0);
8391 (ptgt->m_t_ncmds > 1) &&
8396 ptgt->m_devhdl));
8398 if (ptgt->m_reset_delay == 0) {
8399 mptsas_set_throttle(mpt, ptgt, DRAIN_THROTTLE);
8430 ptgt->m_t_throttle = 1;
8464 mptsas_init_std_hdr(acc_hdl, io_request, ptgt->m_devhdl, Lun(cmd), 0,
8472 ptgt->m_io_flags & MPI25_SAS_DEVICE0_FLAGS_ENABLED_FAST_PATH) {
8511 request_desc |= (uint64_t)ptgt->m_devhdl << 48;
8526 c = TAILQ_FIRST(&ptgt->m_active_cmdq);
8533 TAILQ_INSERT_HEAD(&ptgt->m_active_cmdq, cmd, cmd_active_link);
8551 TAILQ_INSERT_TAIL(&ptgt->m_active_cmdq, cmd,
8777 mptsas_target_t *ptgt = cmd->cmd_tgt_addr;
8779 if (ptgt)
8780 ptgt->m_t_nwait++;
8797 mptsas_target_t *ptgt;
8804 ptgt = cmd->cmd_tgt_addr;
8805 if (ptgt) {
8806 ptgt->m_t_nwait--;
8807 ASSERT(ptgt->m_t_nwait >= 0);
8820 mptsas_target_t *ptgt = cmd->cmd_tgt_addr;
8824 if (ptgt) {
8825 ptgt->m_t_nwait--;
8826 ASSERT(ptgt->m_t_nwait >= 0);
8920 mptsas_target_t *ptgt = NULL;
8923 ptgt = tgt_private->t_private;
8924 if (ptgt == NULL) {
8927 NDBG22(("mptsas_scsi_reset: target=%d level=%d", ptgt->m_devhdl,
8939 rval = mptsas_do_scsi_reset(mpt, ptgt->m_devhdl);
9023 mptsas_set_throttle(mptsas_t *mpt, mptsas_target_t *ptgt, int what)
9040 ptgt->m_t_throttle = HOLD_THROTTLE;
9041 } else if (ptgt->m_reset_delay == 0) {
9042 ptgt->m_t_throttle = what;
9331 mptsas_target_t *ptgt = NULL;
9336 for (ptgt = refhash_first(mpt->m_targets); ptgt != NULL;
9337 ptgt = refhash_next(mpt->m_targets, ptgt)) {
9338 mptsas_set_throttle(mpt, ptgt, HOLD_THROTTLE);
9339 ptgt->m_reset_delay = mpt->m_scsi_reset_delay;
9385 mptsas_target_t *ptgt = NULL;
9391 for (ptgt = refhash_first(mpt->m_targets); ptgt != NULL;
9392 ptgt = refhash_next(mpt->m_targets, ptgt)) {
9393 if (ptgt->m_reset_delay != 0) {
9394 ptgt->m_reset_delay -=
9396 if (ptgt->m_reset_delay <= 0) {
9397 ptgt->m_reset_delay = 0;
9398 mptsas_set_throttle(mpt, ptgt,
9417 mptsas_target_t *ptgt = NULL;
9898 mptsas_watchsubr_tgt(mptsas_t *mpt, mptsas_target_t *ptgt, hrtime_t timestamp)
9906 if ((ptgt->m_t_throttle < MAX_THROTTLE) &&
9907 (ptgt->m_t_throttle > HOLD_THROTTLE) &&
9908 (ptgt->m_t_ncmds < ptgt->m_t_throttle)) {
9909 mptsas_set_throttle(mpt, ptgt, MAX_THROTTLE);
9913 cmd = TAILQ_LAST(&ptgt->m_active_cmdq, mptsas_active_cmdq);
9921 mptsas_set_throttle(mpt, ptgt, DRAIN_THROTTLE);
9926 cmd = TAILQ_FIRST(&ptgt->m_active_cmdq);
9941 cmd->cmd_pkt->pkt_time, ptgt->m_t_ncmds,
9942 ptgt->m_devhdl, Lun(cmd));
9944 mptsas_cmd_timeout(mpt, ptgt);
9948 mptsas_set_throttle(mpt, ptgt, DRAIN_THROTTLE);
9957 mptsas_target_t *ptgt = NULL;
10001 for (ptgt = refhash_first(mpt->m_targets); ptgt != NULL;
10002 ptgt = refhash_next(mpt->m_targets, ptgt)) {
10003 mptsas_watchsubr_tgt(mpt, ptgt, timestamp);
10006 for (ptgt = refhash_first(mpt->m_tmp_targets); ptgt != NULL;
10007 ptgt = refhash_next(mpt->m_tmp_targets, ptgt)) {
10008 mptsas_watchsubr_tgt(mpt, ptgt, timestamp);
10016 mptsas_cmd_timeout(mptsas_t *mpt, mptsas_target_t *ptgt)
10023 devhdl = ptgt->m_devhdl;
10024 sas_wwn = ptgt->m_addr.mta_wwn;
10025 phy = ptgt->m_phynum;
10035 ptgt->m_enclosure);
10079 mptsas_target_t *ptgt = NULL;
10085 for (ptgt = refhash_first(mpt->m_targets); ptgt != NULL;
10086 ptgt = refhash_next(mpt->m_targets, ptgt)) {
10087 mptsas_set_throttle(mpt, ptgt, HOLD_THROTTLE);
10100 for (ptgt = refhash_first(mpt->m_targets); ptgt != NULL;
10101 ptgt = refhash_next(mpt->m_targets, ptgt)) {
10102 mptsas_set_throttle(mpt, ptgt, MAX_THROTTLE);
10132 mptsas_target_t *ptgt = NULL;
10137 for (ptgt = refhash_first(mpt->m_targets); ptgt != NULL;
10138 ptgt = refhash_next(mpt->m_targets, ptgt)) {
10139 mptsas_set_throttle(mpt, ptgt, MAX_THROTTLE);
10150 mptsas_target_t *ptgt = NULL;
10163 for (ptgt = refhash_first(mpt->m_targets); ptgt != NULL;
10164 ptgt = refhash_next(mpt->m_targets, ptgt)) {
10165 mptsas_set_throttle(mpt, ptgt, HOLD_THROTTLE);
12371 mptsas_target_t *ptgt;
12392 ptgt = refhash_linear_search(mpt->m_targets,
12394 if (ptgt == NULL) {
12402 ptgt->m_led_status &= ~(1 << (lc.Led - 1));
12403 ptgt->m_led_status |= lc.LedStatus << (lc.Led - 1);
12406 ret = mptsas_flush_led_status(mpt, ptgt);
12412 lc.LedStatus = (ptgt->m_led_status >> (lc.Led - 1)) & 1;
12428 mptsas_target_t *ptgt;
12444 for (ptgt = refhash_first(mpt->m_targets); ptgt != NULL;
12445 ptgt = refhash_next(mpt->m_targets, ptgt)) {
12471 for (ptgt = refhash_first(mpt->m_targets); ptgt != NULL;
12472 ptgt = refhash_next(mpt->m_targets, ptgt)) {
12478 refhash_rele(mpt->m_targets, ptgt);
12484 di[i].Enclosure = ptgt->m_enclosure;
12485 di[i].Slot = ptgt->m_slot_num;
12486 di[i].SasAddress = ptgt->m_addr.mta_wwn;
12526 mptsas_target_t *ptgt = NULL;
12582 ptgt = mptsas_addr_to_ptgt(mpt, addr, phymask);
12583 if (ptgt == NULL) {
12591 ptgt->m_tgt_unconfigured = 0;
12593 ptgt->m_tgt_unconfigured = 1;
12596 ptgt->m_led_status |=
12599 ptgt->m_led_status &=
12602 (void) mptsas_flush_led_status(mpt, ptgt);
12776 mptsas_target_t *ptgt = NULL;
12792 for (ptgt = refhash_first(mpt->m_targets); ptgt != NULL;
12793 ptgt = refhash_next(mpt->m_targets, ptgt)) {
12794 mptsas_set_throttle(mpt, ptgt, HOLD_THROTTLE);
12830 for (ptgt = refhash_first(mpt->m_targets); ptgt != NULL;
12831 ptgt = refhash_next(mpt->m_targets, ptgt)) {
12832 mptsas_set_throttle(mpt, ptgt, MAX_THROTTLE);
13630 mptsas_get_sata_guid(mptsas_t *mpt, mptsas_target_t *ptgt, int lun)
13633 int target = ptgt->m_devhdl;
13643 rval = mptsas_inquiry(mpt, ptgt, lun, 0x83, inq83,
13680 mptsas_inquiry(mptsas_t *mpt, mptsas_target_t *ptgt, int lun, uchar_t page,
13708 ret = mptsas_send_scsi_cmd(mpt, &ap, ptgt, &cdb[0], CDB_GROUP0, data_bp,
13724 mptsas_target_t *ptgt, uchar_t *cdb, int cdblen, struct buf *data_bp,
13750 tgt_private->t_private = ptgt;
13988 mptsas_target_t *ptgt)
13996 rval = mptsas_inquiry(mpt, ptgt, lun, 0, (uchar_t *)sd_inq,
14000 rval = mptsas_create_lun(pdip, sd_inq, dip, ptgt, lun);
14016 mptsas_target_t *ptgt = NULL;
14024 ptgt = mptsas_wwid_to_ptgt(mpt, phymask, sasaddr);
14025 if (ptgt == NULL) {
14045 * tgt_private->t_private != ptgt
14047 if (sasaddr != ptgt->m_addr.mta_wwn) {
14062 rval = mptsas_config_raid(pdip, ptgt->m_devhdl, lundip);
14065 rval = mptsas_probe_lun(pdip, lun, lundip, ptgt);
14077 mptsas_target_t *ptgt = NULL;
14085 ptgt = mptsas_phy_to_tgt(mpt, phymask, phy);
14086 if (ptgt == NULL) {
14105 rval = mptsas_probe_lun(pdip, lun, lundip, ptgt);
14147 mptsas_config_luns(dev_info_t *pdip, mptsas_target_t *ptgt)
14169 sas_wwn = ptgt->m_addr.mta_wwn;
14170 phy = ptgt->m_phynum;
14171 dev_info = ptgt->m_deviceinfo;
14222 ret = mptsas_send_scsi_cmd(mpt, &ap, ptgt, &cdb[0], CDB_GROUP5,
14263 ptgt);
14269 mptsas_offline_missed_luns(pdip, saved_repluns, lun_total, ptgt);
14281 mptsas_target_t *ptgt = NULL;
14284 ptgt = refhash_linear_search(mpt->m_targets,
14287 if (ptgt == NULL) {
14294 rval = mptsas_inquiry(mpt, ptgt, 0, 0, (uchar_t *)sd_inq,
14298 rval = mptsas_create_phys_lun(pdip, sd_inq, NULL, dip, ptgt,
14342 int lun_cnt, mptsas_target_t *ptgt)
14356 wwid = ptgt->m_addr.mta_wwn;
14443 mptsas_target_t *ptgt = NULL;
14474 ptgt = NULL;
14480 &dev_handle, &ptgt);
14541 mptsas_target_t *ptgt = NULL;
14575 for (ptgt = refhash_first(mpt->m_targets); ptgt != NULL;
14576 ptgt = refhash_next(mpt->m_targets, ptgt)) {
14577 phy_mask = ptgt->m_addr.mta_phymask;
14580 (void) mptsas_config_target(pdip, ptgt);
14588 mptsas_config_target(dev_info_t *pdip, mptsas_target_t *ptgt)
14593 rval = mptsas_config_luns(pdip, ptgt);
14600 rval = mptsas_probe_lun(pdip, 0, &tdip, ptgt);
14888 dev_info_t **lun_dip, mptsas_target_t *ptgt, int lun)
14897 int target = ptgt->m_devhdl;
14922 rval = mptsas_inquiry(mpt, ptgt, lun, 0x83, inq83,
14991 ptgt, lun);
14995 ptgt, lun);
15012 dev_info_t **lun_dip, mdi_pathinfo_t **pip, mptsas_target_t *ptgt, int lun)
15043 target = ptgt->m_devhdl;
15044 sas_wwn = ptgt->m_addr.mta_wwn;
15045 devinfo = ptgt->m_deviceinfo;
15046 phy = ptgt->m_phynum;
15068 (ptgt->m_tgt_unconfigured == 0)) {
15071 ptgt->m_led_status = 0;
15073 ptgt);
15213 (uint32_t)ptgt->m_devhdl;
15244 if ((ptgt->m_deviceinfo & DEVINFO_DIRECT_ATTACHED)
15319 ptgt->m_phynum) != DDI_SUCCESS) {
15330 ptgt->m_led_status = 0;
15331 (void) mptsas_flush_led_status(mpt, ptgt);
15361 char *guid, dev_info_t **lun_dip, mptsas_target_t *ptgt, int lun)
15392 target = ptgt->m_devhdl;
15393 sas_wwn = ptgt->m_addr.mta_wwn;
15394 devinfo = ptgt->m_deviceinfo;
15395 phy = ptgt->m_phynum;
15512 if (ptgt->m_addr.mta_phymask == 0)
15519 (uint32_t)ptgt->m_devhdl;
15551 if ((ptgt->m_deviceinfo & DEVINFO_DIRECT_ATTACHED)
15666 if (ptgt->m_addr.mta_phymask != 0) {
15668 *lun_dip, "phy-num", ptgt->m_phynum) !=
15689 ptgt->m_led_status = 0;
15690 (void) mptsas_flush_led_status(mpt, ptgt);
16113 mptsas_target_t *ptgt = NULL;
16139 ptgt = refhash_linear_search(mpt->m_targets, mptsas_target_eval_nowwn,
16141 if (ptgt != NULL) {
16143 return (ptgt);
16154 ptgt = NULL;
16158 &cur_handle, &ptgt);
16170 if ((ptgt->m_addr.mta_wwn == 0) && (ptgt->m_phynum == phy)) {
16176 return (ptgt);
16180 * The ptgt->m_addr.mta_wwn contains the wwid for each disk.
16394 mptsas_target_t *ptgt = NULL;
16400 ptgt = mptsas_wwid_to_ptgt(mpt, (int)phymask, wwn);
16402 ptgt = mptsas_phy_to_tgt(mpt, (int)phymask, phynum);
16404 return (ptgt);
16408 mptsas_flush_led_status(mptsas_t *mpt, mptsas_target_t *ptgt)
16413 if (ptgt->m_led_status & (1 << (MPTSAS_LEDCTL_LED_IDENT - 1)))
16415 if (ptgt->m_led_status & (1 << (MPTSAS_LEDCTL_LED_FAIL - 1)))
16417 if (ptgt->m_led_status & (1 << (MPTSAS_LEDCTL_LED_OK2RM - 1)))
16422 slotstatus, ptgt->m_slot_num));
16423 return (mptsas_send_sep(mpt, ptgt, &slotstatus,
16431 mptsas_send_sep(mptsas_t *mpt, mptsas_target_t *ptgt,
16453 if (!(ptgt->m_deviceinfo & DEVINFO_DIRECT_ATTACHED) ||
16454 ptgt->m_addr.mta_phymask == 0) {
16464 req.EnclosureHandle = LE_16(ptgt->m_enclosure);
16465 req.Slot = LE_16(ptgt->m_slot_num);