diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/scsi/iscsi_tcp.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/drivers/scsi/iscsi_tcp.c b/drivers/scsi/iscsi_tcp.c index 0a9dbc59663f..c0b8b33e935c 100644 --- a/drivers/scsi/iscsi_tcp.c +++ b/drivers/scsi/iscsi_tcp.c | |||
@@ -1816,21 +1816,14 @@ iscsi_tcp_conn_destroy(struct iscsi_cls_conn *cls_conn) | |||
1816 | { | 1816 | { |
1817 | struct iscsi_conn *conn = cls_conn->dd_data; | 1817 | struct iscsi_conn *conn = cls_conn->dd_data; |
1818 | struct iscsi_tcp_conn *tcp_conn = conn->dd_data; | 1818 | struct iscsi_tcp_conn *tcp_conn = conn->dd_data; |
1819 | int digest = 0; | ||
1820 | |||
1821 | if (conn->hdrdgst_en || conn->datadgst_en) | ||
1822 | digest = 1; | ||
1823 | 1819 | ||
1824 | iscsi_tcp_release_conn(conn); | 1820 | iscsi_tcp_release_conn(conn); |
1825 | iscsi_conn_teardown(cls_conn); | 1821 | iscsi_conn_teardown(cls_conn); |
1826 | 1822 | ||
1827 | /* now free tcp_conn */ | 1823 | if (tcp_conn->tx_hash.tfm) |
1828 | if (digest) { | 1824 | crypto_free_hash(tcp_conn->tx_hash.tfm); |
1829 | if (tcp_conn->tx_hash.tfm) | 1825 | if (tcp_conn->rx_hash.tfm) |
1830 | crypto_free_hash(tcp_conn->tx_hash.tfm); | 1826 | crypto_free_hash(tcp_conn->rx_hash.tfm); |
1831 | if (tcp_conn->rx_hash.tfm) | ||
1832 | crypto_free_hash(tcp_conn->rx_hash.tfm); | ||
1833 | } | ||
1834 | 1827 | ||
1835 | kfree(tcp_conn); | 1828 | kfree(tcp_conn); |
1836 | } | 1829 | } |