scsi: target: core: pr: Initialize arrays at declaration time
authorChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Sun, 28 Feb 2021 05:56:42 +0000 (21:56 -0800)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 10 Mar 2021 04:47:18 +0000 (23:47 -0500)
Avoids calling memset().

Link: https://lore.kernel.org/r/20210228055645.22253-21-chaitanya.kulkarni@wdc.com
Link: https://lore.kernel.org/r/20210228055645.22253-22-chaitanya.kulkarni@wdc.com
Link: https://lore.kernel.org/r/20210228055645.22253-23-chaitanya.kulkarni@wdc.com
Reviewed-by: Mike Christie <michael.christie@oracle.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/target/target_core_pr.c

index d4cc43a..d61dc16 100644 (file)
@@ -896,9 +896,8 @@ static void core_scsi3_aptpl_reserve(
        struct se_node_acl *node_acl,
        struct t10_pr_registration *pr_reg)
 {
-       char i_buf[PR_REG_ISID_ID_LEN];
+       char i_buf[PR_REG_ISID_ID_LEN] = { };
 
-       memset(i_buf, 0, PR_REG_ISID_ID_LEN);
        core_pr_dump_initiator_port(pr_reg, i_buf, PR_REG_ISID_ID_LEN);
 
        spin_lock(&dev->dev_reservation_lock);
@@ -928,12 +927,10 @@ static int __core_scsi3_check_aptpl_registration(
 {
        struct t10_pr_registration *pr_reg, *pr_reg_tmp;
        struct t10_reservation *pr_tmpl = &dev->t10_pr;
-       unsigned char i_port[PR_APTPL_MAX_IPORT_LEN];
-       unsigned char t_port[PR_APTPL_MAX_TPORT_LEN];
+       unsigned char i_port[PR_APTPL_MAX_IPORT_LEN] = { };
+       unsigned char t_port[PR_APTPL_MAX_TPORT_LEN] = { };
        u16 tpgt;
 
-       memset(i_port, 0, PR_APTPL_MAX_IPORT_LEN);
-       memset(t_port, 0, PR_APTPL_MAX_TPORT_LEN);
        /*
         * Copy Initiator Port information from struct se_node_acl
         */
@@ -1023,9 +1020,8 @@ static void __core_scsi3_dump_registration(
        enum register_type register_type)
 {
        struct se_portal_group *se_tpg = nacl->se_tpg;
-       char i_buf[PR_REG_ISID_ID_LEN];
+       char i_buf[PR_REG_ISID_ID_LEN] = { };
 
-       memset(&i_buf[0], 0, PR_REG_ISID_ID_LEN);
        core_pr_dump_initiator_port(pr_reg, i_buf, PR_REG_ISID_ID_LEN);
 
        pr_debug("SPC-3 PR [%s] Service Action: REGISTER%s Initiator"
@@ -1204,10 +1200,10 @@ static struct t10_pr_registration *core_scsi3_locate_pr_reg(
        struct se_session *sess)
 {
        struct se_portal_group *tpg = nacl->se_tpg;
-       unsigned char buf[PR_REG_ISID_LEN], *isid_ptr = NULL;
+       unsigned char buf[PR_REG_ISID_LEN] = { };
+       unsigned char *isid_ptr = NULL;
 
        if (tpg->se_tpg_tfo->sess_get_initiator_sid != NULL) {
-               memset(&buf[0], 0, PR_REG_ISID_LEN);
                tpg->se_tpg_tfo->sess_get_initiator_sid(sess, &buf[0],
                                        PR_REG_ISID_LEN);
                isid_ptr = &buf[0];
@@ -1285,11 +1281,10 @@ static void __core_scsi3_free_registration(
        struct t10_reservation *pr_tmpl = &dev->t10_pr;
        struct se_node_acl *nacl = pr_reg->pr_reg_nacl;
        struct se_dev_entry *deve;
-       char i_buf[PR_REG_ISID_ID_LEN];
+       char i_buf[PR_REG_ISID_ID_LEN] = { };
 
        lockdep_assert_held(&pr_tmpl->registration_lock);
 
-       memset(i_buf, 0, PR_REG_ISID_ID_LEN);
        core_pr_dump_initiator_port(pr_reg, i_buf, PR_REG_ISID_ID_LEN);
 
        if (!list_empty(&pr_reg->pr_reg_list))
@@ -2059,7 +2054,8 @@ core_scsi3_emulate_pro_register(struct se_cmd *cmd, u64 res_key, u64 sa_res_key,
        struct se_portal_group *se_tpg;
        struct t10_pr_registration *pr_reg, *pr_reg_p, *pr_reg_tmp;
        struct t10_reservation *pr_tmpl = &dev->t10_pr;
-       unsigned char isid_buf[PR_REG_ISID_LEN], *isid_ptr = NULL;
+       unsigned char isid_buf[PR_REG_ISID_LEN] = { };
+       unsigned char *isid_ptr = NULL;
        sense_reason_t ret = TCM_NO_SENSE;
        int pr_holder = 0, type;
 
@@ -2070,7 +2066,6 @@ core_scsi3_emulate_pro_register(struct se_cmd *cmd, u64 res_key, u64 sa_res_key,
        se_tpg = se_sess->se_tpg;
 
        if (se_tpg->se_tpg_tfo->sess_get_initiator_sid) {
-               memset(&isid_buf[0], 0, PR_REG_ISID_LEN);
                se_tpg->se_tpg_tfo->sess_get_initiator_sid(se_sess, &isid_buf[0],
                                PR_REG_ISID_LEN);
                isid_ptr = &isid_buf[0];
@@ -2282,11 +2277,9 @@ core_scsi3_pro_reserve(struct se_cmd *cmd, int type, int scope, u64 res_key)
        struct se_lun *se_lun = cmd->se_lun;
        struct t10_pr_registration *pr_reg, *pr_res_holder;
        struct t10_reservation *pr_tmpl = &dev->t10_pr;
-       char i_buf[PR_REG_ISID_ID_LEN];
+       char i_buf[PR_REG_ISID_ID_LEN] = { };
        sense_reason_t ret;
 
-       memset(i_buf, 0, PR_REG_ISID_ID_LEN);
-
        if (!se_sess || !se_lun) {
                pr_err("SPC-3 PR: se_sess || struct se_lun is NULL!\n");
                return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE;
@@ -2457,12 +2450,11 @@ static void __core_scsi3_complete_pro_release(
        int unreg)
 {
        const struct target_core_fabric_ops *tfo = se_nacl->se_tpg->se_tpg_tfo;
-       char i_buf[PR_REG_ISID_ID_LEN];
+       char i_buf[PR_REG_ISID_ID_LEN] = { };
        int pr_res_type = 0, pr_res_scope = 0;
 
        lockdep_assert_held(&dev->dev_reservation_lock);
 
-       memset(i_buf, 0, PR_REG_ISID_ID_LEN);
        core_pr_dump_initiator_port(pr_reg, i_buf, PR_REG_ISID_ID_LEN);
        /*
         * Go ahead and release the current PR reservation holder.
@@ -2768,11 +2760,10 @@ static void __core_scsi3_complete_pro_preempt(
 {
        struct se_node_acl *nacl = pr_reg->pr_reg_nacl;
        const struct target_core_fabric_ops *tfo = nacl->se_tpg->se_tpg_tfo;
-       char i_buf[PR_REG_ISID_ID_LEN];
+       char i_buf[PR_REG_ISID_ID_LEN] = { };
 
        lockdep_assert_held(&dev->dev_reservation_lock);
 
-       memset(i_buf, 0, PR_REG_ISID_ID_LEN);
        core_pr_dump_initiator_port(pr_reg, i_buf, PR_REG_ISID_ID_LEN);
        /*
         * Do an implicit RELEASE of the existing reservation.
@@ -3158,7 +3149,7 @@ core_scsi3_emulate_pro_register_and_move(struct se_cmd *cmd, u64 res_key,
        struct t10_reservation *pr_tmpl = &dev->t10_pr;
        unsigned char *buf;
        const unsigned char *initiator_str;
-       char *iport_ptr = NULL, i_buf[PR_REG_ISID_ID_LEN];
+       char *iport_ptr = NULL, i_buf[PR_REG_ISID_ID_LEN] = { };
        u32 tid_len, tmp_tid_len;
        int new_reg = 0, type, scope, matching_iname;
        sense_reason_t ret;
@@ -3170,7 +3161,6 @@ core_scsi3_emulate_pro_register_and_move(struct se_cmd *cmd, u64 res_key,
                return TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE;
        }
 
-       memset(i_buf, 0, PR_REG_ISID_ID_LEN);
        se_tpg = se_sess->se_tpg;
        tf_ops = se_tpg->se_tpg_tfo;
        /*