summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2014-12-18 08:28:44 +0000
committermav <mav@FreeBSD.org>2014-12-18 08:28:44 +0000
commita4403fd4b3f51b6ad14f576c61dfc9c015337223 (patch)
treea84ddfbe43e9762388779febc299e05df84bf751
parentbe8a5517586d640d8a83826d839dde0771c77cd7 (diff)
downloadFreeBSD-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.c21
-rw-r--r--sys/cam/ctl/ctl_private.h1
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;
OpenPOWER on IntegriCloud