[EMAIL PROTECTED] wrote:
> @@ -1051,11 +1039,9 @@ static int fc_fcp_pkt_abort(struct fc_lport *lp, 
> struct fc_fcp_pkt *fsp)
>               rc = SUCCESS;
>       }
>  
> -     if (timer_pending(&fsp->timer)) {
> -             spin_unlock(&fsp->scsi_pkt_lock);
> -             del_timer_sync(&fsp->timer);
> -             spin_lock(&fsp->scsi_pkt_lock);
> -     }
> +     spin_unlock(&fsp->scsi_pkt_lock);
> +     del_timer_sync(&fsp->timer);
> +     spin_lock(&fsp->scsi_pkt_lock);
>       return rc;
>  }
>  

Oh yeah, if look closely, the del_timer_sync usage in the abort path is 
  broken. This use and the one before fc_fcp_pkt_abort is called is 
broken, because it does not handle the timer rearming itself. But we 
will not hit a issue with this becuase of a another bug in the abort 
code where we do not process the abort response correctly and so the 
abort code will never free the fsp from under a timer. When I fix the 
abort response code I will fix its timer handling so I can test it in 
one shot. I am still reading fc-ls anf fcp4 on the ABTS stuff though.
_______________________________________________
devel mailing list
[email protected]
http://www.open-fcoe.org/mailman/listinfo/devel

Reply via email to