diff options
author | Konrad Rzeszutek Wilk <konrad@kernel.org> | 2010-08-11 16:35:40 -0400 |
---|---|---|
committer | Konrad Rzeszutek Wilk <konrad@kernel.org> | 2010-08-11 16:35:40 -0400 |
commit | a12415ff589ac5106e6b489f44c947b565fcb963 (patch) | |
tree | 9cdcd205ed63e79e68a280160c9f21426ca804c2 /drivers/firmware/iscsi_ibft.c | |
parent | 5abd9ccced7a726c817dd6b5b96bc933859138d1 (diff) |
ibft: Kernel oops when rmmoding iscsi_ibft with no iBFT present.
We failed to check to see if actually allocated structures
to contain the iBFT structure and went ahead to dereference it.
This patch fixes the OOPS.
Reported-by: "Jayamohan Kalickal" <jayamohank@serverengines.com>
Tested-by: "Jayamohan Kalickal" <jayamohank@serverengines.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad@kernel.org>
Signed-off-by: Peter Jones <pjones@redhat.com>
Diffstat (limited to 'drivers/firmware/iscsi_ibft.c')
-rw-r--r-- | drivers/firmware/iscsi_ibft.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/firmware/iscsi_ibft.c b/drivers/firmware/iscsi_ibft.c index 4f04ec0410a0..6148a1c67895 100644 --- a/drivers/firmware/iscsi_ibft.c +++ b/drivers/firmware/iscsi_ibft.c | |||
@@ -727,8 +727,10 @@ static void ibft_unregister(void) | |||
727 | 727 | ||
728 | static void ibft_cleanup(void) | 728 | static void ibft_cleanup(void) |
729 | { | 729 | { |
730 | ibft_unregister(); | 730 | if (boot_kset) { |
731 | iscsi_boot_destroy_kset(boot_kset); | 731 | ibft_unregister(); |
732 | iscsi_boot_destroy_kset(boot_kset); | ||
733 | } | ||
732 | } | 734 | } |
733 | 735 | ||
734 | static void __exit ibft_exit(void) | 736 | static void __exit ibft_exit(void) |