]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/scsi/libiscsi_tcp.c
Merge remote-tracking branch 'regulator/for-next'
[karo-tx-linux.git] / drivers / scsi / libiscsi_tcp.c
index 60cb6dc3c6f09a405fdc9dc157cc8d0716295134..63a1d69ff5154df7992098ce7e5e7fd4117c8a33 100644 (file)
  *     Zhenyu Wang
  */
 
+#include <crypto/hash.h>
 #include <linux/types.h>
 #include <linux/list.h>
 #include <linux/inet.h>
 #include <linux/slab.h>
 #include <linux/file.h>
 #include <linux/blkdev.h>
-#include <linux/crypto.h>
 #include <linux/delay.h>
 #include <linux/kfifo.h>
 #include <linux/scatterlist.h>
@@ -214,7 +214,8 @@ int iscsi_tcp_segment_done(struct iscsi_tcp_conn *tcp_conn,
                } else
                        sg_init_one(&sg, segment->data + segment->copied,
                                    copied);
-               crypto_hash_update(segment->hash, &sg, copied);
+               ahash_request_set_crypt(segment->hash, &sg, NULL, copied);
+               crypto_ahash_update(segment->hash);
        }
 
        segment->copied += copied;
@@ -260,7 +261,9 @@ int iscsi_tcp_segment_done(struct iscsi_tcp_conn *tcp_conn,
         * is completely handled in hdr done function.
         */
        if (segment->hash) {
-               crypto_hash_final(segment->hash, segment->digest);
+               ahash_request_set_crypt(segment->hash, NULL,
+                                       segment->digest, 0);
+               crypto_ahash_final(segment->hash);
                iscsi_tcp_segment_splice_digest(segment,
                                 recv ? segment->recv_digest : segment->digest);
                return 0;
@@ -310,13 +313,14 @@ iscsi_tcp_segment_recv(struct iscsi_tcp_conn *tcp_conn,
 }
 
 inline void
-iscsi_tcp_dgst_header(struct hash_desc *hash, const void *hdr, size_t hdrlen,
-                     unsigned char digest[ISCSI_DIGEST_SIZE])
+iscsi_tcp_dgst_header(struct ahash_request *hash, const void *hdr,
+                     size_t hdrlen, unsigned char digest[ISCSI_DIGEST_SIZE])
 {
        struct scatterlist sg;
 
        sg_init_one(&sg, hdr, hdrlen);
-       crypto_hash_digest(hash, &sg, hdrlen, digest);
+       ahash_request_set_crypt(hash, &sg, digest, hdrlen);
+       crypto_ahash_digest(hash);
 }
 EXPORT_SYMBOL_GPL(iscsi_tcp_dgst_header);
 
@@ -341,7 +345,7 @@ iscsi_tcp_dgst_verify(struct iscsi_tcp_conn *tcp_conn,
  */
 static inline void
 __iscsi_segment_init(struct iscsi_segment *segment, size_t size,
-                    iscsi_segment_done_fn_t *done, struct hash_desc *hash)
+                    iscsi_segment_done_fn_t *done, struct ahash_request *hash)
 {
        memset(segment, 0, sizeof(*segment));
        segment->total_size = size;
@@ -349,14 +353,14 @@ __iscsi_segment_init(struct iscsi_segment *segment, size_t size,
 
        if (hash) {
                segment->hash = hash;
-               crypto_hash_init(hash);
+               crypto_ahash_init(hash);
        }
 }
 
 inline void
 iscsi_segment_init_linear(struct iscsi_segment *segment, void *data,
                          size_t size, iscsi_segment_done_fn_t *done,
-                         struct hash_desc *hash)
+                         struct ahash_request *hash)
 {
        __iscsi_segment_init(segment, size, done, hash);
        segment->data = data;
@@ -368,7 +372,8 @@ inline int
 iscsi_segment_seek_sg(struct iscsi_segment *segment,
                      struct scatterlist *sg_list, unsigned int sg_count,
                      unsigned int offset, size_t size,
-                     iscsi_segment_done_fn_t *done, struct hash_desc *hash)
+                     iscsi_segment_done_fn_t *done,
+                     struct ahash_request *hash)
 {
        struct scatterlist *sg;
        unsigned int i;
@@ -431,7 +436,7 @@ static void
 iscsi_tcp_data_recv_prep(struct iscsi_tcp_conn *tcp_conn)
 {
        struct iscsi_conn *conn = tcp_conn->iscsi_conn;
-       struct hash_desc *rx_hash = NULL;
+       struct ahash_request *rx_hash = NULL;
 
        if (conn->datadgst_en &&
            !(conn->session->tt->caps & CAP_DIGEST_OFFLOAD))
@@ -686,7 +691,7 @@ iscsi_tcp_hdr_dissect(struct iscsi_conn *conn, struct iscsi_hdr *hdr)
 
                if (tcp_conn->in.datalen) {
                        struct iscsi_tcp_task *tcp_task = task->dd_data;
-                       struct hash_desc *rx_hash = NULL;
+                       struct ahash_request *rx_hash = NULL;
                        struct scsi_data_buffer *sdb = scsi_in(task->sc);
 
                        /*