diff options
Diffstat (limited to 'drivers/net/atl1')
-rw-r--r-- | drivers/net/atl1/atl1_main.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/net/atl1/atl1_main.c b/drivers/net/atl1/atl1_main.c index e1a9223d0c18..4c728f1169c4 100644 --- a/drivers/net/atl1/atl1_main.c +++ b/drivers/net/atl1/atl1_main.c | |||
@@ -2209,8 +2209,14 @@ static int __devinit atl1_probe(struct pci_dev *pdev, | |||
2209 | return err; | 2209 | return err; |
2210 | 2210 | ||
2211 | /* | 2211 | /* |
2212 | * 64-bit DMA currently has data corruption problems, so let's just | 2212 | * The atl1 chip can DMA to 64-bit addresses, but it uses a single |
2213 | * use 32-bit DMA for now. This is a big hack that is probably wrong. | 2213 | * shared register for the high 32 bits, so only a single, aligned, |
2214 | * 4 GB physical address range can be used at a time. | ||
2215 | * | ||
2216 | * Supporting 64-bit DMA on this hardware is more trouble than it's | ||
2217 | * worth. It is far easier to limit to 32-bit DMA than update | ||
2218 | * various kernel subsystems to support the mechanics required by a | ||
2219 | * fixed-high-32-bit system. | ||
2214 | */ | 2220 | */ |
2215 | err = pci_set_dma_mask(pdev, DMA_32BIT_MASK); | 2221 | err = pci_set_dma_mask(pdev, DMA_32BIT_MASK); |
2216 | if (err) { | 2222 | if (err) { |