mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-23 21:51:27 +00:00
qla2x00t-32gbit: Move free of fcport out of interrupt context
This patch moves freeing of fcport out of interrupt context. Link: https://lore.kernel.org/r/20200212214436.25532-3-hmadhani@marvell.com Signed-off-by: Joe Carnuccio <joe.carnuccio@cavium.com> Signed-off-by: Himanshu Madhani <hmadhani@marvell.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> [ commit 054f4382417098b4d0028f8145fa214d448792d7 upstream ] git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@8787 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
@@ -32,6 +32,14 @@ static inline void bsg_job_done_backport(struct fc_bsg_job *job, int result,
|
||||
#define bsg_job_done bsg_job_done_backport
|
||||
#endif
|
||||
|
||||
static void qla2xxx_free_fcport_work(struct work_struct *work)
|
||||
{
|
||||
struct fc_port *fcport = container_of(work, typeof(*fcport),
|
||||
free_work);
|
||||
|
||||
qla2x00_free_fcport(fcport);
|
||||
}
|
||||
|
||||
/* BSG support for ELS/CT pass through */
|
||||
void qla2x00_bsg_job_done(srb_t *sp, int res)
|
||||
{
|
||||
@@ -82,8 +90,10 @@ void qla2x00_bsg_sp_free(srb_t *sp)
|
||||
|
||||
if (sp->type == SRB_CT_CMD ||
|
||||
sp->type == SRB_FXIOCB_BCMD ||
|
||||
sp->type == SRB_ELS_CMD_HST)
|
||||
qla2x00_free_fcport(sp->fcport);
|
||||
sp->type == SRB_ELS_CMD_HST) {
|
||||
INIT_WORK(&sp->fcport->free_work, qla2xxx_free_fcport_work);
|
||||
queue_work(ha->wq, &sp->fcport->free_work);
|
||||
}
|
||||
|
||||
qla2x00_rel_sp(sp);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user