On 9/15/22 10:28, Kirill A. Shutemov wrote:> + /* Serialize against address tagging enabling * > + if (mmap_write_lock_killable(mm)) > + return -EINTR; > + > + if (!arch_can_alloc_pasid(mm)) { > + mmap_write_unlock(mm); > + return -EBUSY; > + } Shouldn't this actually be some kind of *device* check? The question here is whether the gunk in the mm's address space is compatible with the device. * Can the device walk the page tables in use under the mm? * Does the device interpret addresses the same way as the CPUs using the mm? The page table format is, right now, wholly determined at boot at the latest. But, it probably wouldn't hurt to pretend like it _might_ change at runtime. The address interpretation part is, of course, what LAM changes. It's also arguable that it includes features like protection keys. I can totally see a case where folks might want to be careful and disallow device access to an mm where pkeys are in use.