Hi, dma_map_single() is supposed to be called on a buffer that exactly starts and ends on a cacheline boundary, otherwise "bad things" (e.g. overwrite of data that was written by device, ...) (especially on dma non-coherent systems) may happen. So what should be done when dma_map_single is not called with a sane (ptr, size) argument ? - is the driver (caller) considered buggy and should we return a 0 return-value ? - is the driver (caller) considered buggy but we do the mapping anyway, hoping that the driver has not/will not touched/touch the boundary cachelines ? - should we take appropriate actions to make sure the cache-effects do not come into play (e.g. by using some kind of bounce buffer) ? Dimitri -- Dimitri Torfs | NSCE dimitri@sonycom.com | The Corporate Village tel: +32 2 7008541 | Da Vincilaan 7 - D1 fax: +32 2 7008622 | B-1935 Zaventem - Belgium