SCSI fixes on 20161208
One small fix for a regression in a prior fix (again). This time the condition in the prior fix BUG_ON proved to be wrong under certain circumstances causing a BUG to trigger where it shouldn't in the lpfc driver. Signed-off-by: James E.J. Bottomley <jejb@linux.vnet.ibm.com> -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAABAgAGBQJYSa3UAAoJEAVr7HOZEZN4FUAP/isxcXSZCvg1zPR4PJjL0n0F c5lGdXlP0YCH51d/qK6STtrrSbSL0m/2N8TLEj5AzR7BrEgZntoaYYHiIyDtPWuG zRgGTTJ8dnCSKxkd1GVavHsLEmHsd64MR7CwhjCh313a2DgFGPgQ/UGoNeWKsgRY 1EWKilaaZw5MMxnvpJJrKy0+eHXUTPIYTXMbpwKUMQ2aDox6mY6Rmgzf6YVDbUeK G9JLGL+H6v4PKmdXktH+J4J6akLob5eCchHrX6eaet3Bo8M+qbhkpqw+4jAUINnc +1lA3FzoKNGEBW/ByHQSi0Yvab/WjU1MNPLznN+DAjs/tyk1o17p/k/JSWvfGgDx AhvFVCUcxc06isvWRn3cqfB1QZfVCyRfiEPi5B7UJfdKrbiZ7XoAJkiK2g+Z7qsC nelGi5FDmrS6S+6jD505HY5SuwP+T/eQ0WV1nqEEK+klgkjk92NJv8m8UJ31lIly Y26SO4lyQ/QmoB0cotktg1nJlQD0CDu/HZ9Woo2OCo8PzFf0+q95yn5ywyNKbrGP MWayudgpX2ZwEM1AzZWYdpj8lgjUOZ0jGHLEuwo91W8LenjfhJhKHt6qsKknvF9K HEqdnlGupV6aGR+OS3QXPZun9/Jc2EyIYNEZgjNp+43X2SvKvfbEbqI7H3XF61G/ QzmTMnerHbRX+RZ3pTkN =cyir -----END PGP SIGNATURE----- Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI fix from James Bottomley: "One small fix for a regression in a prior fix (again). This time the condition in the prior fix BUG_ON proved to be wrong under certain circumstances causing a BUG to trigger where it shouldn't in the lpfc driver" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: lpfc: fix oops/BUG in lpfc_sli_ringtxcmpl_put()
This commit is contained in:
commit
b4aafe77ec
|
@ -1323,18 +1323,20 @@ lpfc_sli_ringtxcmpl_put(struct lpfc_hba *phba, struct lpfc_sli_ring *pring,
|
||||||
{
|
{
|
||||||
lockdep_assert_held(&phba->hbalock);
|
lockdep_assert_held(&phba->hbalock);
|
||||||
|
|
||||||
BUG_ON(!piocb || !piocb->vport);
|
BUG_ON(!piocb);
|
||||||
|
|
||||||
list_add_tail(&piocb->list, &pring->txcmplq);
|
list_add_tail(&piocb->list, &pring->txcmplq);
|
||||||
piocb->iocb_flag |= LPFC_IO_ON_TXCMPLQ;
|
piocb->iocb_flag |= LPFC_IO_ON_TXCMPLQ;
|
||||||
|
|
||||||
if ((unlikely(pring->ringno == LPFC_ELS_RING)) &&
|
if ((unlikely(pring->ringno == LPFC_ELS_RING)) &&
|
||||||
(piocb->iocb.ulpCommand != CMD_ABORT_XRI_CN) &&
|
(piocb->iocb.ulpCommand != CMD_ABORT_XRI_CN) &&
|
||||||
(piocb->iocb.ulpCommand != CMD_CLOSE_XRI_CN) &&
|
(piocb->iocb.ulpCommand != CMD_CLOSE_XRI_CN)) {
|
||||||
(!(piocb->vport->load_flag & FC_UNLOADING)))
|
BUG_ON(!piocb->vport);
|
||||||
mod_timer(&piocb->vport->els_tmofunc,
|
if (!(piocb->vport->load_flag & FC_UNLOADING))
|
||||||
jiffies +
|
mod_timer(&piocb->vport->els_tmofunc,
|
||||||
msecs_to_jiffies(1000 * (phba->fc_ratov << 1)));
|
jiffies +
|
||||||
|
msecs_to_jiffies(1000 * (phba->fc_ratov << 1)));
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue