Re: [PATCH] libata: implement and use DMA mask configuration helper

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx>
>>>> ---
>>>> 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
-
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystems]     [Linux SCSI]     [Linux RAID]     [Git]     [Kernel Newbies]     [Linux Newbie]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Samba]     [Device Mapper]

  Powered by Linux