linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tejun Heo <htejun@gmail.com>
To: Jeff Garzik <jeff@garzik.org>
Cc: linux-ide@vger.kernel.org
Subject: Re: [PATCH] libata: implement and use DMA mask configuration helper
Date: Mon, 09 Apr 2007 16:35:19 +0900	[thread overview]
Message-ID: <4619ECB7.9060601@gmail.com> (raw)
In-Reply-To: <45FD7B44.5040509@garzik.org>

Jeff Garzik wrote:
> Tejun Heo wrote:
>> Jeff Garzik wrote:
>>> Tejun Heo wrote:
>>>> Implement and use DMA mask configuration helper.
>>>>
>>>> Signed-off-by: Tejun Heo <htejun@gmail.com>
>>>> ---
>>>> This function probably belongs to pci layer.  Put it in libata with
>>>> pci_test_bits() for the time being.
>>> AFAIK the default DMA mask is always 32-bit.  Code (often written by me)
>>> that sets it to a 32-bit mask was just paranoia, and not really needed.
>>>
>>> Hence, the pci_go_64() function I added, found in #upstream.
>>
>> It isn't in #upstream yet.  Also, at the second thought, there is a
>> problem with pci_go_64().  DMA masks are not reset after driver is
>> detached.  Even if the device starts with 32bit DMA masks, after a 64bit
>> enabled driver is attached and detached, the device's DMA masks are
>> 64bit.  I'm refreshing new-init-model patchset and keeping
>> pci_configure_dma_masks() for now.
> 
> That "problem" has existed since day one, and nobody seems to care :)
> 
> I can't think of a single 64-bit-capable driver that restores the masks,
> and can't think of a single bug report that resulted from it.

Jeff, there are further problems with doing pci_go_64() only on devices
which support 64bit.  pci_set_dma_mask() is the only place where the PCI
code can test whether DMA is usable or not, so if we don't configure DMA
mask on 32bit controllers, there's no way to tell whether DMA is allowed
on the controller/bus or not.  We end up blindly enabling bus mastering
without consulting the PCI bus.

I think it's just cleaner to do pci_configure_dma_masks() on all cases
with proper DMA mask.

Thanks.

-- 
tejun

  parent reply	other threads:[~2007-04-09  7:35 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-09 10:49 [PATCH] libata: implement and use DMA mask configuration helper Tejun Heo
2007-03-09 12:41 ` Jeff Garzik
2007-03-09 13:03   ` Tejun Heo
2007-03-18 14:48   ` Tejun Heo
2007-03-18 17:47     ` Jeff Garzik
2007-03-18 17:54       ` Tejun Heo
2007-04-09  7:35       ` Tejun Heo [this message]
2007-04-09  8:47         ` Jeff Garzik
2007-04-09  9:20           ` Tejun Heo
2007-03-09 12:51 ` Alan Cox

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=4619ECB7.9060601@gmail.com \
    --to=htejun@gmail.com \
    --cc=jeff@garzik.org \
    --cc=linux-ide@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).