> On Thu, Oct 28, 2010 at 9:55 AM, Mike Christie <[email protected]>
> wrote:
> > On 10/27/2010 08:24 PM, Robert Love wrote:
> >>
> >> On Mon, 2010-10-25 at 20:37 +0800, Hillf Danton wrote:
> >>>
> >>> There seems frame should get freed against memory leakage.
> >>>
> >>> Signed-off-by: Hillf Danton<[email protected]>
> >>> ---
> >>>
> >>> --- a/drivers/scsi/libfc/fc_fcp.c 2010-09-13 07:07:38.000000000
> >>> +0800
> >>> +++ b/drivers/scsi/libfc/fc_fcp.c 2010-10-25 20:31:04.000000000
> >>> +0800
> >>> @@ -1294,6 +1294,7 @@ static void fc_tm_done(struct fc_seq *se
> >>> */
> >>> if (!fsp->seq_ptr || !fsp->wait_for_comp) {
> >>> spin_unlock_bh(&fsp->scsi_pkt_lock);
> >>
> >> I wonder if this should be a fc_fcp_unlock_pkt(fsp) since we get the
> >> lock with the fc_fcp_lock_pkt(fsp) call above.
> >>
> According to one question a patch, two were delivered, please check them.
>
> Here I want frame get freed. //Hillf
>
> >
> > Did I do that. I think you are right. Not sure what happened if it was
> me.
> >
I would think fc_frame_free() be called on all the if () { ..return } cases, the
caller won't do that from fc_exch_recv(), also, frame should be freed after
unlock
the fsp:
{
if (IS_ERR(fp))
goto out;
if (fc_fcp_lock_pkt(fsp))
goto out;
if (!fsp->seq_ptr || !fsp->wait_for_comp)
goto out_unlock;
...
out_unlock:
fc_fcp_unlock_pkt(fsp);
out:
fc_frame_free(fp);
}
yi
_______________________________________________
devel mailing list
[email protected]
http://www.open-fcoe.org/mailman/listinfo/devel