[SCSI] iscsi_ibft, be2iscsi, iscsi_boot: fix boot kobj data lifetime management
authorMike Christie <michaelc@cs.wisc.edu>
Fri, 24 Jun 2011 20:11:53 +0000 (15:11 -0500)
committerJames Bottomley <JBottomley@Parallels.com>
Wed, 29 Jun 2011 21:43:06 +0000 (16:43 -0500)
commitf457a46f179df41b0f6d80dee33b6e629945f276
treeacbeac8630b898610fe71295f11cbc71f956b8ba
parent9d04516310aaef3970c642a54531a52123001178
[SCSI] iscsi_ibft, be2iscsi, iscsi_boot: fix boot kobj data lifetime management

be2iscsi passes the boot functions its phba object which is
allocated in the shost, but iscsi_ibft passes in a object
allocated for each item to display. The problem is that
iscsi_boot_sysfs was managing the lifetime of the object
passed in and doing a kfree on release. This causes a double
free for be2iscsi which frees the shost in its pci_remove.

This patch fixes the problem by adding a release callback
which the drivers can call kfree or a put() type of function
(needed for be2iscsi which will do a get/put on the shost).

Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/firmware/iscsi_ibft.c
drivers/scsi/be2iscsi/be_main.c
drivers/scsi/iscsi_boot_sysfs.c
include/linux/iscsi_boot_sysfs.h