X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=Documentation%2Fio-mapping.txt;h=473e43b2d588281efc95a3e5cde589e18d4eefa1;hb=46ee9645094ad1eb5b4888882ecaa1fb87dcd2a3;hp=cd2f726becc8bbf6dcb2e0f069215b13dee95209;hpb=9663f2e6a6cf3f82b06d8fb699b11b80f92553ba;p=safe%2Fjmp%2Flinux-2.6 diff --git a/Documentation/io-mapping.txt b/Documentation/io-mapping.txt index cd2f726..473e43b 100644 --- a/Documentation/io-mapping.txt +++ b/Documentation/io-mapping.txt @@ -71,6 +71,12 @@ range, creating a permanent kernel-visible mapping to the resource. The map_atomic and map functions add the requested offset to the base of the virtual address returned by ioremap_wc. -On 32-bit processors, io_mapping_map_atomic_wc uses io_map_atomic_prot_pfn, -which uses the fixmaps to get us a mapping to a page using an atomic fashion. -For io_mapping_map_wc, ioremap_wc() is used to get a mapping of the region. +On 32-bit processors with HIGHMEM defined, io_mapping_map_atomic_wc uses +kmap_atomic_pfn to map the specified page in an atomic fashion; +kmap_atomic_pfn isn't really supposed to be used with device pages, but it +provides an efficient mapping for this usage. + +On 32-bit processors without HIGHMEM defined, io_mapping_map_atomic_wc and +io_mapping_map_wc both use ioremap_wc, a terribly inefficient function which +performs an IPI to inform all processors about the new mapping. This results +in a significant performance penalty.