Module Name: src Committed By: nakayama Date: Mon Dec 7 11:14:27 UTC 2009 Modified Files: src/sys/arch/sparc64/dev: iommu.c Log Message: Avoid use of iommu_dvmamap_unload in error path. It is too expensive since it contains data cache flushing. Some driver (tlp(4) with DM9201 on Netra X1) can only handle one DMA segment, so it was called frequently.
+ /* How can this fail? And if it does what can we do? */ + err = extent_free(is->is_dvmamap, map->_dm_dvmastart, sgsize, + EX_NOWAIT); this can fail almost any time. it happens when there is no free memory and to free a chunk would require to split a current extent range into two. .mrg.