diff options
author | Matthew Wilcox <matthew@wil.cx> | 2007-08-15 14:56:54 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.localdomain> | 2007-10-12 14:51:29 -0400 |
commit | a60ebc52cbfafc291c6b0b89e41ecaf3685c8e2a (patch) | |
tree | 55b512e8de7ac38df5115b854890d82344070633 /arch/ia64 | |
parent | c131993b4cbfb6d564619e609b3d0b471ec52c5d (diff) |
[SCSI] simscsi: Free scsi host on error
If scsi_add_host returned an error, the host would never be freed.
We need to call scsi_host_put() if an error happens.
Signed-off-by: Matthew Wilcox <matthew@wil.cx>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'arch/ia64')
-rw-r--r-- | arch/ia64/hp/sim/simscsi.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/ia64/hp/sim/simscsi.c b/arch/ia64/hp/sim/simscsi.c index e62694f8ef75..a43e1e1822ad 100644 --- a/arch/ia64/hp/sim/simscsi.c +++ b/arch/ia64/hp/sim/simscsi.c | |||
@@ -373,8 +373,13 @@ simscsi_init(void) | |||
373 | return -ENOMEM; | 373 | return -ENOMEM; |
374 | 374 | ||
375 | error = scsi_add_host(host, NULL); | 375 | error = scsi_add_host(host, NULL); |
376 | if (!error) | 376 | if (error) |
377 | scsi_scan_host(host); | 377 | goto free_host; |
378 | scsi_scan_host(host); | ||
379 | return 0; | ||
380 | |||
381 | free_host: | ||
382 | scsi_host_put(host); | ||
378 | return error; | 383 | return error; |
379 | } | 384 | } |
380 | 385 | ||