public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: Joshua Hoblitt <josh@hoblitt.com>
Cc: Kim H?jgaard-Hansen <kimhh@control.aau.dk>,
	erich@areca.com.tw, linux-scsi@vger.kernel.org, dsd@gentoo.org,
	j_gentoo@hoblitt.com
Subject: Re: arcmsr + archttp64 calls dma_free_coherent() with irqs disabled - dmesg filled with warnings
Date: Fri, 15 Feb 2008 16:04:07 -0600	[thread overview]
Message-ID: <1203113047.3058.50.camel@localhost.localdomain> (raw)
In-Reply-To: <1203112643.3058.48.camel@localhost.localdomain>


On Fri, 2008-02-15 at 15:57 -0600, James Bottomley wrote:
> On Fri, 2008-02-15 at 10:56 -1000, Joshua Hoblitt wrote:
> > Hi James,
> > 
> > Daniel took the time to patch up the 2.6.24 version.  I've tested it and
> > the warning messages are gone.  Please take a look at:
> > 
> 
> > diff --git a/drivers/scsi/arcmsr/arcmsr_hba.c b/drivers/scsi/arcmsr/arcmsr_hba.c
> > index f4a202e..4f9ff32 100644
> > --- a/drivers/scsi/arcmsr/arcmsr_hba.c
> > +++ b/drivers/scsi/arcmsr/arcmsr_hba.c
> > @@ -1380,12 +1388,13 @@ static int arcmsr_iop_message_xfer(struct AdapterControlBlock *acb, \
> >  
> >  	case ARCMSR_MESSAGE_READ_RQBUFFER: {
> >  		unsigned long *ver_addr;
> > -		dma_addr_t buf_handle;
> >  		uint8_t *pQbuffer, *ptmpQbuffer;
> >  		int32_t allxfer_len = 0;
> > +		void *tmp;
> >  
> > -		ver_addr = pci_alloc_consistent(acb->pdev, 1032, &buf_handle);
> > -		if (!ver_addr) {
> > +		tmp = kmalloc(1032, GFP_KERNEL|GFP_DMA);
> 
> GFP_DMA is pretty pointless for a buffer which never actually gets anywhere near a DMA, isn't it?
> 
> > +		ver_addr = (unsigned long *)tmp;
> 
> No cast needed from void *
> 
> > +		if (!tmp) {
> >  			retvalue = ARCMSR_MESSAGE_FAIL;
> >  			goto message_out;
> >  		}
> > @@ -1421,18 +1430,19 @@ static int arcmsr_iop_message_xfer(struct AdapterControlBlock *acb, \
> >  		memcpy(pcmdmessagefld->messagedatabuffer, (uint8_t *)ver_addr, allxfer_len);
> >  		pcmdmessagefld->cmdmessage.Length = allxfer_len;
> >  		pcmdmessagefld->cmdmessage.ReturnCode = ARCMSR_MESSAGE_RETURNCODE_OK;
> > -		pci_free_consistent(acb->pdev, 1032, ver_addr, buf_handle);
> > +		kfree(tmp);
> >  		}
> >  		break;
> >  
> >  	case ARCMSR_MESSAGE_WRITE_WQBUFFER: {
> >  		unsigned long *ver_addr;
> > -		dma_addr_t buf_handle;
> >  		int32_t my_empty_len, user_len, wqbuf_firstindex, wqbuf_lastindex;
> >  		uint8_t *pQbuffer, *ptmpuserbuffer;
> > +		void *tmp;
> >  
> > -		ver_addr = pci_alloc_consistent(acb->pdev, 1032, &buf_handle);
> > -		if (!ver_addr) {
> > +		tmp = kmalloc(1032, GFP_KERNEL|GFP_DMA);

Actually, also all the code around here implies we're in atomic context,
so that GFP_KERNEL can't be right either.

James



  reply	other threads:[~2008-02-15 22:04 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-09 15:31 arcmsr + archttp64 calls dma_free_coherent() with irqs disabled - dmesg filled with warnings Kim Højgaard-Hansen
2008-02-09 18:01 ` James Bottomley
2008-02-09 19:35   ` Joshua Hoblitt
2008-02-09 19:43     ` James Bottomley
2008-02-12 20:53       ` Joshua Hoblitt
2008-02-12 22:21         ` Joshua Hoblitt
2008-02-12 22:30           ` James Bottomley
2008-02-13  2:08             ` arcmsr + archttp64 calls dma_free_coherent() with irqsdisabled " nickcheng
2008-02-15 20:56             ` arcmsr + archttp64 calls dma_free_coherent() with irqs disabled " Joshua Hoblitt
2008-02-15 21:57               ` James Bottomley
2008-02-15 22:04                 ` James Bottomley [this message]
2008-02-16 11:49                   ` Daniel Drake
2008-02-16 14:52                     ` James Bottomley
2008-02-16 23:36                       ` Daniel Drake
2008-02-16 23:37                         ` Daniel Drake
2008-02-17  1:15                           ` Joshua Hoblitt
2008-02-19 20:38                           ` Joshua Hoblitt
2008-02-13 12:55           ` Daniel Drake

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=1203113047.3058.50.camel@localhost.localdomain \
    --to=james.bottomley@hansenpartnership.com \
    --cc=dsd@gentoo.org \
    --cc=erich@areca.com.tw \
    --cc=j_gentoo@hoblitt.com \
    --cc=josh@hoblitt.com \
    --cc=kimhh@control.aau.dk \
    --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