From: Luben Tuikov <luben_tuikov@adaptec.com>
To: "Moore, Eric Dean" <Emoore@lsil.com>
Cc: Christoph Hellwig <hch@lst.de>,
linux-scsi@vger.kernel.org, fukuchi.masao@jp.fujitsu.com
Subject: Re: [PATCH] fix dma mapping leak in fusion
Date: Tue, 17 Aug 2004 14:18:01 -0400 [thread overview]
Message-ID: <41224BD9.9060808@adaptec.com> (raw)
In-Reply-To: <0E3FA95632D6D047BA649F95DAB60E5704DE66BB@exa-atlanta>
Moore, Eric Dean wrote:
> Ok - your proposed change will Opps the driver.
>
> Sequence to oops:
> 1.SCSI midlayer detects command timeout and issue abort
> message to fusion MPT driver.
> 2.Fusion MPT driver issues abort message to IOC and returns
> SCSI midlayer with FAILED status.
> 3.SCSI midlayer gives up the operation and call
> scsi_release_buffers()to free buffers; this
> routine does "cmd->request_buffer=NULL;"
> 4.Fusion MPT driver initiates IOC reset and calls
> mptscsih_flush_running_cmds() to cancel SCSI command.
> 5.Oops - occurs when calling pci_unmap_sg when request_buffer=NULL.
Points 2 and 4 -- once ABORT TASK is sent, the device server
should NOT return status of the aborted task, regardless
of the service response of the TMF. (SAM, 7.2)
Luben
>
> The current fix testing for scsi_device_online
> was provided last April by Fukuchi Masao.
>
> Eric Moore
>
>
> On Tuesday, August 17, 2004 10:17 AM, Christoph Hellwig wrote:
> >
> > stop fusion from leaking dma maps when the device has been offlined
> >
> >
> > --- 1.13/drivers/message/fusion/linux_compat.h
> > 2004-06-23 16:48:43 +02:00
> > +++ edited/drivers/message/fusion/linux_compat.h
> > 2004-08-17 20:09:21 +02:00
> > @@ -3,16 +3,4 @@
> > #ifndef FUSION_LINUX_COMPAT_H
> > #define FUSION_LINUX_COMPAT_H
> >
> > -#include <linux/version.h>
> > -#include <scsi/scsi_device.h>
> > -
> > -#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,6))
> > -static int inline scsi_device_online(struct scsi_device *sdev)
> > -{
> > - return sdev->online;
> > -}
> > -#endif
> > -
> > -
> > -/*}-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> > -=-=-=-=-=-=-=-=*/
> > #endif /* _LINUX_COMPAT_H */
> > ===== drivers/message/fusion/mptscsih.c 1.45 vs edited =====
> > --- 1.45/drivers/message/fusion/mptscsih.c 2004-08-03
> > 01:01:01 +02:00
> > +++ edited/drivers/message/fusion/mptscsih.c 2004-08-17
> > 20:02:54 +02:00
> > @@ -1019,19 +1019,18 @@
> > * Do OS callback
> > * Free driver resources (chain, msg buffers)
> > */
> > - if (scsi_device_online(SCpnt->device)) {
> > - if (SCpnt->use_sg) {
> > - pci_unmap_sg(ioc->pcidev,
> > - (struct
> > scatterlist *) SCpnt->request_buffer,
> > - SCpnt->use_sg,
> > -
> > SCpnt->sc_data_direction);
> > - } else if (SCpnt->request_bufflen) {
> > - pci_unmap_single(ioc->pcidev,
> > - SCpnt->SCp.dma_handle,
> > - SCpnt->request_bufflen,
> > -
> > SCpnt->sc_data_direction);
> > - }
> > + if (SCpnt->use_sg) {
> > + pci_unmap_sg(ioc->pcidev,
> > + (struct scatterlist *)
> > SCpnt->request_buffer,
> > + SCpnt->use_sg,
> > + SCpnt->sc_data_direction);
> > + } else if (SCpnt->request_bufflen) {
> > + pci_unmap_single(ioc->pcidev,
> > + SCpnt->SCp.dma_handle,
> > + SCpnt->request_bufflen,
> > + SCpnt->sc_data_direction);
> > }
> > +
> > SCpnt->result = DID_RESET << 16;
> > SCpnt->host_scribble = NULL;
> >
> > -
> > To unsubscribe from this list: send the line "unsubscribe
> > linux-scsi" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> >
> -
> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
next prev parent reply other threads:[~2004-08-17 18:18 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-08-17 16:42 [PATCH] fix dma mapping leak in fusion Moore, Eric Dean
2004-08-17 16:46 ` Christoph Hellwig
2004-08-17 17:17 ` Christoph Hellwig
2004-08-17 18:18 ` Luben Tuikov [this message]
-- strict thread matches above, loose matches on Subject: below --
2004-08-31 14:42 Moore, Eric Dean
2004-08-30 22:29 Moore, Eric Dean
2004-08-31 12:56 ` Luben Tuikov
2004-08-31 13:14 ` Luben Tuikov
2004-08-23 15:56 Moore, Eric Dean
2004-08-28 19:02 ` Christoph Hellwig
2004-08-20 15:01 Moore, Eric Dean
2004-08-23 1:41 ` Masao Fukuchi
2004-08-19 14:47 Moore, Eric Dean
2004-08-20 3:05 ` Masao Fukuchi
2004-08-17 16:16 Christoph Hellwig
2004-08-19 3:01 ` Masao Fukuchi
2004-08-19 10:14 ` Christoph Hellwig
2004-08-19 13:14 ` Masao Fukuchi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=41224BD9.9060808@adaptec.com \
--to=luben_tuikov@adaptec.com \
--cc=Emoore@lsil.com \
--cc=fukuchi.masao@jp.fujitsu.com \
--cc=hch@lst.de \
--cc=linux-scsi@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).