return;
        }
        for (i = 0; i < nk; i++)
-               w_ring[i] = be32_to_cpu(*(u32 *)&key[4 * i]);
+               w_ring[i] = get_unaligned_be32(&key[i * 4]);
 
        i = 0;
        temp = w_ring[nk - 1];
        }
        i--;
        for (k = 0, j = i % nk; k < nk; k++) {
-               *((u32 *)dec_key + k) = htonl(w_ring[j]);
+               put_unaligned_be32(w_ring[j], &dec_key[k * 4]);
                j--;
                if (j < 0)
                        j += nk;
                memcpy(ivptr, req->iv, 16);
        }
        if (assoclen)
-               *((unsigned short *)(reqctx->scratch_pad + 16)) =
-                               htons(assoclen);
+               put_unaligned_be16(assoclen, &reqctx->scratch_pad[16]);
 
        rc = generate_b0(req, ivptr, op_type);
        /* zero the ctr value */
        } else {
                memcpy(ivptr, req->iv, GCM_AES_IV_SIZE);
        }
-       *((unsigned int *)(ivptr + 12)) = htonl(0x01);
-
+       put_unaligned_be32(0x01, &ivptr[12]);
        ulptx = (struct ulptx_sgl *)(ivptr + 16);
 
        chcr_add_aead_dst_ent(req, phys_cpl, qid);
 
        xo = xfrm_offload(skb);
 
        aadiv->spi = (esphdr->spi);
-       seqlo = htonl(esphdr->seq_no);
+       seqlo = ntohl(esphdr->seq_no);
        seqno = cpu_to_be64(seqlo + ((u64)xo->seq.hi << 32));
        memcpy(aadiv->seq_no, &seqno, 8);
        iv = skb_transport_header(skb) + sizeof(struct ip_esp_hdr);