tree c7ba34b77658151f0c56db47e9e1f4a617a3171c
parent 661134ad3765348ecd6150a92e736bf28ba40f80
author Bart Van Assche <bart.vanassche@gmail.com> 1251628608 +0200
committer James Bottomley <James.Bottomley@suse.de> 1252766134 -0500

[SCSI] libsrp: fix memory leak in srp_ring_free()

This patch fixes a memory leak in the libsrp function srp_ring_free().
It is not documented whether or not this function should free the ring
pointer itself. But the source code of the callers of this function
(srp_target_alloc() and srp_target_free()) makes it clear that
srp_ring_free() should deallocate the ring pointer itself. Furthermore,
the patch below makes srp_ring_free() deallocate all memory allocated by
srp_ring_alloc().

This patch affects the ibmvstgt driver, which is the only in-tree driver
that calls the srp_ring_free() function (indirectly).

Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com>
Acked-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Cc: Stable Tree <stable@kernel.org>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
