diff options
author | mav <mav@FreeBSD.org> | 2014-12-18 08:28:44 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2014-12-18 08:28:44 +0000 |
commit | a4403fd4b3f51b6ad14f576c61dfc9c015337223 (patch) | |
tree | a84ddfbe43e9762388779febc299e05df84bf751 | |
parent | be8a5517586d640d8a83826d839dde0771c77cd7 (diff) | |
download | FreeBSD-src-a4403fd4b3f51b6ad14f576c61dfc9c015337223.zip FreeBSD-src-a4403fd4b3f51b6ad14f576c61dfc9c015337223.tar.gz |
MFC r275405: Convert persis_offset from global variable to softc field.
-rw-r--r-- | sys/cam/ctl/ctl.c | 21 | ||||
-rw-r--r-- | sys/cam/ctl/ctl_private.h | 1 |
2 files changed, 11 insertions, 11 deletions
diff --git a/sys/cam/ctl/ctl.c b/sys/cam/ctl/ctl.c index bec57b5..64b4fce 100644 --- a/sys/cam/ctl/ctl.c +++ b/sys/cam/ctl/ctl.c @@ -356,7 +356,6 @@ static struct ctl_logical_block_provisioning_page lbp_page_changeable = {{ * XXX KDM move these into the softc. */ static int rcv_sync_msg; -static int persis_offset; static uint8_t ctl_pause_rtr; SYSCTL_NODE(_kern_cam, OID_AUTO, ctl, CTLFLAG_RD, 0, "CAM Target Layer"); @@ -1076,7 +1075,7 @@ ctl_init(void) softc->port_offset = 0; } else softc->port_offset = (softc->ha_id - 1) * CTL_MAX_PORTS; - persis_offset = softc->port_offset * CTL_MAX_INIT_PER_PORT; + softc->persis_offset = softc->port_offset * CTL_MAX_INIT_PER_PORT; /* * XXX KDM need to figure out where we want to get our target ID @@ -7878,10 +7877,10 @@ retry: static void ctl_set_res_ua(struct ctl_lun *lun, uint32_t residx, ctl_ua_type ua) { + int off = lun->ctl_softc->persis_offset; - if (residx >= persis_offset && - residx < persis_offset + CTL_MAX_INITIATORS) - lun->pending_ua[residx - persis_offset] |= ua; + if (residx >= off && residx < off + CTL_MAX_INITIATORS) + lun->pending_ua[residx - off] |= ua; } /* @@ -8420,8 +8419,8 @@ ctl_persistent_reserve_out(struct ctl_scsiio *ctsio) */ for (i = 0; i < CTL_MAX_INITIATORS;i++){ - if (lun->pr_keys[ - i + persis_offset] == 0) + if (lun->pr_keys[i + + softc->persis_offset] == 0) continue; lun->pending_ua[i] |= CTL_UA_RES_RELEASE; @@ -8568,7 +8567,7 @@ ctl_persistent_reserve_out(struct ctl_scsiio *ctsio) && type != SPR_TYPE_WR_EX) { for (i = 0; i < CTL_MAX_INITIATORS; i++) { if (i == residx || - lun->pr_keys[i + persis_offset] == 0) + lun->pr_keys[i + softc->persis_offset] == 0) continue; lun->pending_ua[i] |= CTL_UA_RES_RELEASE; } @@ -8685,8 +8684,8 @@ ctl_hndl_per_res_out_on_other_sc(union ctl_ha_msg *msg) */ for (i = 0; i < CTL_MAX_INITIATORS; i++) { - if (lun->pr_keys[i+ - persis_offset] == 0) + if (lun->pr_keys[i + + softc->persis_offset] == 0) continue; lun->pending_ua[i] |= @@ -8719,7 +8718,7 @@ ctl_hndl_per_res_out_on_other_sc(union ctl_ha_msg *msg) if (lun->res_type != SPR_TYPE_EX_AC && lun->res_type != SPR_TYPE_WR_EX) { for (i = 0; i < CTL_MAX_INITIATORS; i++) - if (lun->pr_keys[i+persis_offset] != 0) + if (lun->pr_keys[i + softc->persis_offset] != 0) lun->pending_ua[i] |= CTL_UA_RES_RELEASE; } diff --git a/sys/cam/ctl/ctl_private.h b/sys/cam/ctl/ctl_private.h index 973dbbc..e28b4eb 100644 --- a/sys/cam/ctl/ctl_private.h +++ b/sys/cam/ctl/ctl_private.h @@ -450,6 +450,7 @@ struct ctl_softc { int ha_state; int is_single; int port_offset; + int persis_offset; int inquiry_pq_no_lun; struct sysctl_ctx_list sysctl_ctx; struct sysctl_oid *sysctl_tree; |