On Thu, 03 Jan 2008 21:39:19 -0500
Dave Dillow <[EMAIL PROTECTED]> wrote:

> When removing the ib_srp module, srp_remove_one() does not release the
> SRP transport class when it is releasing the SCSI host. This leads to
> dangling references to kfree()'d memory, and an eventual oops.
> 
> Signed-off-by: David Dillow <[EMAIL PROTECTED]>

Thanks again!

Linus has already merged your previous patch:

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b0e47c8b79154772a436f25bf7646733e1d6194c

So please resend a patch to move srp_remove_host before
scsi_remove_host instead of adding srp_remove_host.


> ---
> On Fri, 2008-01-04 at 09:47 +0900, FUJITA Tomonori wrote:
> > I think that this is the root problem and the patch fixes it in the
> > right way. Please send this patch to [EMAIL PROTECTED] and a
> > patch to move srp_remove_host before scsi_remove_host in
> > srp_remove_one to Roland.
> > 
> > Acked-by: FUJITA Tomonori <[EMAIL PROTECTED]>
> 
> Not sure if your Acked-by was for this one as well, so I left it off.

Acked-by: FUJITA Tomonori <[EMAIL PROTECTED]>

> diff --git a/drivers/infiniband/ulp/srp/ib_srp.c 
> b/drivers/infiniband/ulp/srp/ib_srp.c
> index 950228f..bdb6f85 100644
> --- a/drivers/infiniband/ulp/srp/ib_srp.c
> +++ b/drivers/infiniband/ulp/srp/ib_srp.c
> @@ -2053,6 +2053,7 @@ static void srp_remove_one(struct ib_device *device)
>  
>               list_for_each_entry_safe(target, tmp_target,
>                                        &host->target_list, list) {
> +                     srp_remove_host(target->scsi_host);
>                       scsi_remove_host(target->scsi_host);
>                       srp_disconnect_target(target);
>                       ib_destroy_cm_id(target->cm_id);
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to