>>> matthew green <m...@eterna.com.au> wrote > > 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.
Ah, OK. I added the warning printf as well as what we do in iommu_dvmamap_unload. -- Takeshi Nakayama