patch-2.4.20 linux-2.4.20/arch/ia64/lib/swiotlb.c
Next file: linux-2.4.20/arch/ia64/mm/fault.c
Previous file: linux-2.4.20/arch/ia64/lib/memset.S
Back to the patch index
Back to the overall index
- Lines: 37
- Date:
Thu Nov 28 15:53:09 2002
- Orig file:
linux-2.4.19/arch/ia64/lib/swiotlb.c
- Orig date:
Fri Aug 2 17:39:42 2002
diff -urN linux-2.4.19/arch/ia64/lib/swiotlb.c linux-2.4.20/arch/ia64/lib/swiotlb.c
@@ -277,8 +277,11 @@
int gfp = GFP_ATOMIC;
void *ret;
- if (!hwdev || hwdev->dma_mask <= 0xffffffff)
- gfp |= GFP_DMA; /* XXX fix me: should change this to GFP_32BIT or ZONE_32BIT */
+ /*
+ * Alloc_consistent() is defined to return memory < 4GB, no matter what the DMA
+ * mask says.
+ */
+ gfp |= GFP_DMA; /* XXX fix me: should change this to GFP_32BIT or ZONE_32BIT */
ret = (void *)__get_free_pages(gfp, get_order(size));
if (!ret)
return NULL;
@@ -486,6 +489,17 @@
return SG_ENT_PHYS_ADDRESS(sg);
}
+/*
+ * Return whether the given PCI device DMA address mask can be supported properly. For
+ * example, if your device can only drive the low 24-bits during PCI bus mastering, then
+ * you would pass 0x00ffffff as the mask to this function.
+ */
+int
+swiotlb_pci_dma_supported (struct pci_dev *hwdev, u64 mask)
+{
+ return 1;
+}
+
EXPORT_SYMBOL(swiotlb_init);
EXPORT_SYMBOL(swiotlb_map_single);
EXPORT_SYMBOL(swiotlb_unmap_single);
@@ -496,3 +510,4 @@
EXPORT_SYMBOL(swiotlb_dma_address);
EXPORT_SYMBOL(swiotlb_alloc_consistent);
EXPORT_SYMBOL(swiotlb_free_consistent);
+EXPORT_SYMBOL(swiotlb_pci_dma_supported);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)