git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge mulgrave-w:git/scsi-misc-2.6
[pandora-kernel.git]
/
drivers
/
scsi
/
iscsi_tcp.c
diff --git
a/drivers/scsi/iscsi_tcp.c
b/drivers/scsi/iscsi_tcp.c
index
d91e894
..
0a9dbc5
100644
(file)
--- a/
drivers/scsi/iscsi_tcp.c
+++ b/
drivers/scsi/iscsi_tcp.c
@@
-108,7
+108,7
@@
iscsi_hdr_digest(struct iscsi_conn *conn, struct iscsi_buf *buf,
{
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
{
struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
- crypto_
digest_digest(tcp_conn->tx_tfm, &buf->sg, 1
, crc);
+ crypto_
hash_digest(&tcp_conn->tx_hash, &buf->sg, buf->sg.length
, crc);
buf->sg.length = tcp_conn->hdr_size;
}
buf->sg.length = tcp_conn->hdr_size;
}
@@
-468,7
+468,8
@@
iscsi_tcp_hdr_recv(struct iscsi_conn *conn)
sg_init_one(&sg, (u8 *)hdr,
sizeof(struct iscsi_hdr) + ahslen);
sg_init_one(&sg, (u8 *)hdr,
sizeof(struct iscsi_hdr) + ahslen);
- crypto_digest_digest(tcp_conn->rx_tfm, &sg, 1, (u8 *)&cdgst);
+ crypto_hash_digest(&tcp_conn->rx_hash, &sg, sg.length,
+ (u8 *)&cdgst);
rdgst = *(uint32_t*)((char*)hdr + sizeof(struct iscsi_hdr) +
ahslen);
if (cdgst != rdgst) {
rdgst = *(uint32_t*)((char*)hdr + sizeof(struct iscsi_hdr) +
ahslen);
if (cdgst != rdgst) {
@@
-675,7
+676,7
@@
iscsi_tcp_copy(struct iscsi_conn *conn, int buf_size)
}
static inline void
}
static inline void
-partial_sg_digest_update(struct
crypto_tfm *tfm
, struct scatterlist *sg,
+partial_sg_digest_update(struct
hash_desc *desc
, struct scatterlist *sg,
int offset, int length)
{
struct scatterlist temp;
int offset, int length)
{
struct scatterlist temp;
@@
-683,7
+684,7
@@
partial_sg_digest_update(struct crypto_tfm *tfm, struct scatterlist *sg,
memcpy(&temp, sg, sizeof(struct scatterlist));
temp.offset = offset;
temp.length = length;
memcpy(&temp, sg, sizeof(struct scatterlist));
temp.offset = offset;
temp.length = length;
- crypto_
digest_update(tfm, &temp, 1
);
+ crypto_
hash_update(desc, &temp, length
);
}
static void
}
static void
@@
-692,7
+693,7
@@
iscsi_recv_digest_update(struct iscsi_tcp_conn *tcp_conn, char* buf, int len)
struct scatterlist tmp;
sg_init_one(&tmp, buf, len);
struct scatterlist tmp;
sg_init_one(&tmp, buf, len);
- crypto_
digest_update(tcp_conn->rx_tfm, &tmp, 1
);
+ crypto_
hash_update(&tcp_conn->rx_hash, &tmp, len
);
}
static int iscsi_scsi_data_in(struct iscsi_conn *conn)
}
static int iscsi_scsi_data_in(struct iscsi_conn *conn)
@@
-746,12
+747,12
@@
static int iscsi_scsi_data_in(struct iscsi_conn *conn)
if (!rc) {
if (conn->datadgst_en) {
if (!offset)
if (!rc) {
if (conn->datadgst_en) {
if (!offset)
- crypto_
digest
_update(
-
tcp_conn->rx_tfm
,
+ crypto_
hash
_update(
+
&tcp_conn->rx_hash
,
&sg[i], 1);
else
partial_sg_digest_update(
&sg[i], 1);
else
partial_sg_digest_update(
-
tcp_conn->rx_tfm
,
+
&tcp_conn->rx_hash
,
&sg[i],
sg[i].offset + offset,
sg[i].length - offset);
&sg[i],
sg[i].offset + offset,
sg[i].length - offset);
@@
-765,9
+766,10
@@
static int iscsi_scsi_data_in(struct iscsi_conn *conn)
/*
* data-in is complete, but buffer not...
*/
/*
* data-in is complete, but buffer not...
*/
- partial_sg_digest_update(tcp_conn->rx_tfm,
- &sg[i],
- sg[i].offset, sg[i].length-rc);
+ partial_sg_digest_update(&tcp_conn->rx_hash,
+ &sg[i],
+ sg[i].offset,
+ sg[i].length-rc);
rc = 0;
break;
}
rc = 0;
break;
}
@@
-885,7
+887,7
@@
more:
rc = iscsi_tcp_hdr_recv(conn);
if (!rc && tcp_conn->in.datalen) {
if (conn->datadgst_en)
rc = iscsi_tcp_hdr_recv(conn);
if (!rc && tcp_conn->in.datalen) {
if (conn->datadgst_en)
- crypto_
digest_init(tcp_conn->rx_tfm
);
+ crypto_
hash_init(&tcp_conn->rx_hash
);
tcp_conn->in_progress = IN_PROGRESS_DATA_RECV;
} else if (rc) {
iscsi_conn_failure(conn, rc);
tcp_conn->in_progress = IN_PROGRESS_DATA_RECV;
} else if (rc) {
iscsi_conn_failure(conn, rc);
@@
-942,11
+944,11
@@
more:
tcp_conn->in.padding);
memset(pad, 0, tcp_conn->in.padding);
sg_init_one(&sg, pad, tcp_conn->in.padding);
tcp_conn->in.padding);
memset(pad, 0, tcp_conn->in.padding);
sg_init_one(&sg, pad, tcp_conn->in.padding);
- crypto_
digest_update(tcp_conn->rx_tfm
,
-
&sg, 1
);
+ crypto_
hash_update(&tcp_conn->rx_hash
,
+
&sg, sg.length
);
}
}
- crypto_
digest_final(tcp_conn->rx_tfm
,
-
(u8 *) &tcp_conn->in.datadgst);
+ crypto_
hash_final(&tcp_conn->rx_hash
,
+ (u8 *) &tcp_conn->in.datadgst);
debug_tcp("rx digest 0x%x\n", tcp_conn->in.datadgst);
tcp_conn->in_progress = IN_PROGRESS_DDIGEST_RECV;
tcp_conn->data_copied = 0;
debug_tcp("rx digest 0x%x\n", tcp_conn->in.datadgst);
tcp_conn->in_progress = IN_PROGRESS_DDIGEST_RECV;
tcp_conn->data_copied = 0;
@@
-1191,7
+1193,7
@@
static inline void
iscsi_data_digest_init(struct iscsi_tcp_conn *tcp_conn,
struct iscsi_tcp_cmd_task *tcp_ctask)
{
iscsi_data_digest_init(struct iscsi_tcp_conn *tcp_conn,
struct iscsi_tcp_cmd_task *tcp_ctask)
{
- crypto_
digest_init(tcp_conn->tx_tfm
);
+ crypto_
hash_init(&tcp_conn->tx_hash
);
tcp_ctask->digest_count = 4;
}
tcp_ctask->digest_count = 4;
}
@@
-1447,8
+1449,9
@@
iscsi_send_padding(struct iscsi_conn *conn, struct iscsi_cmd_task *ctask)
iscsi_buf_init_iov(&tcp_ctask->sendbuf, (char*)&tcp_ctask->pad,
tcp_ctask->pad_count);
if (conn->datadgst_en)
iscsi_buf_init_iov(&tcp_ctask->sendbuf, (char*)&tcp_ctask->pad,
tcp_ctask->pad_count);
if (conn->datadgst_en)
- crypto_digest_update(tcp_conn->tx_tfm,
- &tcp_ctask->sendbuf.sg, 1);
+ crypto_hash_update(&tcp_conn->tx_hash,
+ &tcp_ctask->sendbuf.sg,
+ tcp_ctask->sendbuf.sg.length);
} else if (!(tcp_ctask->xmstate & XMSTATE_W_RESEND_PAD))
return 0;
} else if (!(tcp_ctask->xmstate & XMSTATE_W_RESEND_PAD))
return 0;
@@
-1480,7
+1483,7
@@
iscsi_send_digest(struct iscsi_conn *conn, struct iscsi_cmd_task *ctask,
tcp_conn = conn->dd_data;
if (!(tcp_ctask->xmstate & XMSTATE_W_RESEND_DATA_DIGEST)) {
tcp_conn = conn->dd_data;
if (!(tcp_ctask->xmstate & XMSTATE_W_RESEND_DATA_DIGEST)) {
- crypto_
digest_final(tcp_conn->tx_tfm
, (u8*)digest);
+ crypto_
hash_final(&tcp_conn->tx_hash
, (u8*)digest);
iscsi_buf_init_iov(buf, (char*)digest, 4);
}
tcp_ctask->xmstate &= ~XMSTATE_W_RESEND_DATA_DIGEST;
iscsi_buf_init_iov(buf, (char*)digest, 4);
}
tcp_ctask->xmstate &= ~XMSTATE_W_RESEND_DATA_DIGEST;
@@
-1514,7
+1517,7
@@
iscsi_send_data(struct iscsi_cmd_task *ctask, struct iscsi_buf *sendbuf,
rc = iscsi_sendpage(conn, sendbuf, count, &buf_sent);
*sent = *sent + buf_sent;
if (buf_sent && conn->datadgst_en)
rc = iscsi_sendpage(conn, sendbuf, count, &buf_sent);
*sent = *sent + buf_sent;
if (buf_sent && conn->datadgst_en)
- partial_sg_digest_update(
tcp_conn->tx_tfm
,
+ partial_sg_digest_update(
&tcp_conn->tx_hash
,
&sendbuf->sg, sendbuf->sg.offset + offset,
buf_sent);
if (!iscsi_buf_left(sendbuf) && *sg != tcp_ctask->bad_sg) {
&sendbuf->sg, sendbuf->sg.offset + offset,
buf_sent);
if (!iscsi_buf_left(sendbuf) && *sg != tcp_ctask->bad_sg) {
@@
-1768,18
+1771,22
@@
iscsi_tcp_conn_create(struct iscsi_cls_session *cls_session, uint32_t conn_idx)
/* initial operational parameters */
tcp_conn->hdr_size = sizeof(struct iscsi_hdr);
/* initial operational parameters */
tcp_conn->hdr_size = sizeof(struct iscsi_hdr);
- tcp_conn->tx_tfm = crypto_alloc_tfm("crc32c", 0);
- if (!tcp_conn->tx_tfm)
+ tcp_conn->tx_hash.tfm = crypto_alloc_hash("crc32c", 0,
+ CRYPTO_ALG_ASYNC);
+ tcp_conn->tx_hash.flags = 0;
+ if (!tcp_conn->tx_hash.tfm)
goto free_tcp_conn;
goto free_tcp_conn;
- tcp_conn->rx_tfm = crypto_alloc_tfm("crc32c", 0);
- if (!tcp_conn->rx_tfm)
+ tcp_conn->rx_hash.tfm = crypto_alloc_hash("crc32c", 0,
+ CRYPTO_ALG_ASYNC);
+ tcp_conn->rx_hash.flags = 0;
+ if (!tcp_conn->rx_hash.tfm)
goto free_tx_tfm;
return cls_conn;
free_tx_tfm:
goto free_tx_tfm;
return cls_conn;
free_tx_tfm:
- crypto_free_
tfm(tcp_conn->tx_
tfm);
+ crypto_free_
hash(tcp_conn->tx_hash.
tfm);
free_tcp_conn:
kfree(tcp_conn);
tcp_conn_alloc_fail:
free_tcp_conn:
kfree(tcp_conn);
tcp_conn_alloc_fail:
@@
-1819,10
+1826,10
@@
iscsi_tcp_conn_destroy(struct iscsi_cls_conn *cls_conn)
/* now free tcp_conn */
if (digest) {
/* now free tcp_conn */
if (digest) {
- if (tcp_conn->tx_tfm)
- crypto_free_
tfm(tcp_conn->tx_
tfm);
- if (tcp_conn->rx_tfm)
- crypto_free_
tfm(tcp_conn->rx_
tfm);
+ if (tcp_conn->tx_
hash.
tfm)
+ crypto_free_
hash(tcp_conn->tx_hash.
tfm);
+ if (tcp_conn->rx_
hash.
tfm)
+ crypto_free_
hash(tcp_conn->rx_hash.
tfm);
}
kfree(tcp_conn);
}
kfree(tcp_conn);