--- e1000_main.c.orig	2013-03-05 14:13:20.000000000 -0500
+++ e1000_main.c	2013-03-05 14:15:28.000000000 -0500
@@ -191,6 +191,10 @@
 MODULE_PARM_DESC(copybreak,
 	"Maximum size of packet that is copied to a new buffer on receive");
 
+static int ignore_64bit_dma = 0;
+module_param(ignore_64bit_dma, int, 0444);
+MODULE_PARM_DESC(ignore_64bit_dma, "Ignore 64-bit DMA (DAC) capability");
+
 static pci_ers_result_t e1000_io_error_detected(struct pci_dev *pdev,
                      pci_channel_state_t state);
 static pci_ers_result_t e1000_io_slot_reset(struct pci_dev *pdev);
@@ -1023,7 +1027,7 @@
 	 * 32-bit adapters that Tx hang when given 64-bit DMA addresses
 	 */
 	pci_using_dac = 0;
-	if ((hw->bus_type == e1000_bus_type_pcix) &&
+	if (!ignore_64bit_dma && (hw->bus_type == e1000_bus_type_pcix) &&
 	    !dma_set_mask(&pdev->dev, DMA_BIT_MASK(64))) {
 		/*
 		 * according to DMA-API-HOWTO, coherent calls will always
