From 6c47d7332d4be921d1c62c040ff22be3096f78f4 Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Thu, 17 Dec 2020 19:53:46 +0000 Subject: [PATCH] scst_pres: Revert r9114 In contrast with the description of that commit, commit r9114 changes the functionality of the scst_pres code. Hence revert that commit. Reported-by: Chesnokov Gleb git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@9213 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- scst/src/scst_pres.c | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/scst/src/scst_pres.c b/scst/src/scst_pres.c index d539d200d..96f3d77df 100644 --- a/scst/src/scst_pres.c +++ b/scst/src/scst_pres.c @@ -795,7 +795,7 @@ static int scst_pr_do_load_device_file(struct scst_device *dev, tid = &buf[pos]; pos += scst_tid_size(tid); - key = get_unaligned_be64(&buf[pos]); + key = get_unaligned((__be64 *)&buf[pos]); pos += sizeof(key); rel_tgt_id = get_unaligned((uint16_t *)&buf[pos]); @@ -1294,7 +1294,7 @@ static int scst_pr_register_with_spec_i_pt(struct scst_cmd *cmd, scst_assert_pr_mutex_held(cmd->dev); - action_key = get_unaligned_be64(&buffer[8]); + action_key = get_unaligned((__be64 *)&buffer[8]); ext_size = get_unaligned_be32(&buffer[24]); if ((ext_size + 28) > buffer_size) { @@ -1505,7 +1505,7 @@ static int scst_pr_register_on_tgt_id(struct scst_cmd *cmd, __be64 action_key; struct scst_dev_registrant *reg; - action_key = get_unaligned_be64(&buffer[8]); + action_key = get_unaligned((__be64 *)&buffer[8]); reg = scst_pr_add_registrant(cmd->dev, cmd->sess->transport_id, rel_tgt_id, action_key, false); @@ -1680,8 +1680,8 @@ void scst_pr_register(struct scst_cmd *cmd, uint8_t *buffer, int buffer_size) aptpl = buffer[20] & 0x01; spec_i_pt = (buffer[20] >> 3) & 0x01; all_tg_pt = (buffer[20] >> 2) & 0x01; - key = get_unaligned_be64(&buffer[0]); - action_key = get_unaligned_be64(&buffer[8]); + key = get_unaligned((__be64 *)&buffer[0]); + action_key = get_unaligned((__be64 *)&buffer[8]); if (spec_i_pt == 0 && buffer_size != 24) { TRACE_PR("Invalid buffer size %d", buffer_size); @@ -1767,7 +1767,7 @@ void scst_pr_register_and_ignore(struct scst_cmd *cmd, uint8_t *buffer, aptpl = buffer[20] & 0x01; all_tg_pt = (buffer[20] >> 2) & 0x01; - action_key = get_unaligned_be64(&buffer[8]); + action_key = get_unaligned((__be64 *)&buffer[8]); if (buffer_size != 24) { TRACE_PR("Invalid buffer size %d", buffer_size); @@ -1838,8 +1838,8 @@ void scst_pr_register_and_move(struct scst_cmd *cmd, uint8_t *buffer, scst_assert_pr_mutex_held(cmd->dev); aptpl = buffer[17] & 0x01; - key = get_unaligned_be64(&buffer[0]); - action_key = get_unaligned_be64(&buffer[8]); + key = get_unaligned((__be64 *)&buffer[0]); + action_key = get_unaligned((__be64 *)&buffer[8]); unreg = (buffer[17] >> 1) & 0x01; tid_buffer_size = get_unaligned_be32(&buffer[20]); @@ -1980,7 +1980,7 @@ void scst_pr_reserve(struct scst_cmd *cmd, uint8_t *buffer, int buffer_size) scst_assert_pr_mutex_held(dev); - key = get_unaligned_be64(&buffer[0]); + key = get_unaligned((__be64 *)&buffer[0]); scope = cmd->cdb[2] >> 4; type = cmd->cdb[2] & 0x0f; @@ -2069,7 +2069,7 @@ void scst_pr_release(struct scst_cmd *cmd, uint8_t *buffer, int buffer_size) scst_assert_pr_mutex_held(dev); - key = get_unaligned_be64(&buffer[0]); + key = get_unaligned((__be64 *)&buffer[0]); scope = cmd->cdb[2] >> 4; type = cmd->cdb[2] & 0x0f; @@ -2146,7 +2146,7 @@ void scst_pr_clear(struct scst_cmd *cmd, uint8_t *buffer, int buffer_size) scst_assert_pr_mutex_held(dev); - key = get_unaligned_be64(&buffer[0]); + key = get_unaligned((__be64 *)&buffer[0]); if (buffer_size != 24) { TRACE_PR("Invalid buffer size %d", buffer_size); @@ -2207,8 +2207,8 @@ static void scst_pr_do_preempt(struct scst_cmd *cmd, uint8_t *buffer, goto out; } - key = get_unaligned_be64(&buffer[0]); - action_key = get_unaligned_be64(&buffer[8]); + key = get_unaligned((__be64 *)&buffer[0]); + action_key = get_unaligned((__be64 *)&buffer[8]); scope = cmd->cdb[2] >> 4; type = cmd->cdb[2] & 0x0f; @@ -2598,7 +2598,8 @@ void scst_pr_read_keys(struct scst_cmd *cmd, uint8_t *buffer, int buffer_size) WARN_ON(reg->key == 0); - put_unaligned_be64(reg->key, &buffer[offset]); + put_unaligned(reg->key, + (__be64 *)&buffer[offset]); offset += 8; } @@ -2655,7 +2656,7 @@ void scst_pr_read_reservation(struct scst_cmd *cmd, uint8_t *buffer, b[6] = 0; b[7] = 0x10; - put_unaligned_be64(key, &b[8]); + put_unaligned(key, (__be64 *)&b[8]); b[21] = dev->pr_scope << 4 | dev->pr_type; size = 24; @@ -2743,7 +2744,7 @@ void scst_pr_read_full_status(struct scst_cmd *cmd, uint8_t *buffer, if (size_max - size > rec_len) { memset(&buffer[offset], 0, rec_len); - put_unaligned_be64(reg->key, &buffer[offset]); + put_unaligned(reg->key, (__be64 *)(&buffer[offset])); if (dev->pr_is_set && scst_pr_is_holder(dev, reg)) { buffer[offset + 12] = 1;