Commit 534284a0 authored by Pete Wyckoff's avatar Pete Wyckoff Committed by James Bottomley

[SCSI] iscsi: always release crypto

Unconditionally free crypto state, as it is always allocated during
TCP connection creation.  Without this, crypto structures leak and
crc32c module refcounts grow as connections are created and
destroyed.
Signed-off-by: default avatarPete Wyckoff <pw@osc.edu>
Signed-off-by: default avatarMike Christie <michaelc@cs.wisc.edu>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent 7ca63cb4
...@@ -1816,21 +1816,14 @@ iscsi_tcp_conn_destroy(struct iscsi_cls_conn *cls_conn) ...@@ -1816,21 +1816,14 @@ iscsi_tcp_conn_destroy(struct iscsi_cls_conn *cls_conn)
{ {
struct iscsi_conn *conn = cls_conn->dd_data; struct iscsi_conn *conn = cls_conn->dd_data;
struct iscsi_tcp_conn *tcp_conn = conn->dd_data; struct iscsi_tcp_conn *tcp_conn = conn->dd_data;
int digest = 0;
if (conn->hdrdgst_en || conn->datadgst_en)
digest = 1;
iscsi_tcp_release_conn(conn); iscsi_tcp_release_conn(conn);
iscsi_conn_teardown(cls_conn); iscsi_conn_teardown(cls_conn);
/* now free tcp_conn */ if (tcp_conn->tx_hash.tfm)
if (digest) { crypto_free_hash(tcp_conn->tx_hash.tfm);
if (tcp_conn->tx_hash.tfm) if (tcp_conn->rx_hash.tfm)
crypto_free_hash(tcp_conn->tx_hash.tfm); crypto_free_hash(tcp_conn->rx_hash.tfm);
if (tcp_conn->rx_hash.tfm)
crypto_free_hash(tcp_conn->rx_hash.tfm);
}
kfree(tcp_conn); kfree(tcp_conn);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment