On Mon, Jun 30, 2014 at 12:06:05PM -0400, Jerome Glisse wrote: > No this patch does not duplicate it. Current user of mmu_notifier > rely on file close code path to call mmu_notifier_unregister. New > code like AMD IOMMUv2 or HMM can not rely on that. Thus they need > a way to call the mmu_notifer_unregister (which can not be done > from inside the the release call back). No, when the mm is destroyed the .release function is called from exit_mmap() which calls mmu_notifier_release() right at the beginning. In this case you don't need to call mmu_notifer_unregister yourself (you can still call it, but it will be a nop). > If you look at current code the release callback is use to kill > secondary translation but not to free associated resources. All > the associated resources are free later on after the release > callback (well it depends if the file is close before the process > is kill). In exit_mmap the .release function is called when all mappings are still present. Thats the perfect point in time to unbind all those resources from your device so that it can not use it anymore when the mappings get destroyed. > So this patch aims to provide a callback to code outside of the > mmu_notifier realms, a place where it is safe to cleanup the > mmu_notifier and associated resources. Still, this is a duplication of mmu_notifier release call-back, so still NACK. Joerg -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>