Hi Tomasz, On 01/17/2018 03:52 PM, JeffyChen wrote: > Hi Tomasz, > > On 01/17/2018 03:38 PM, Tomasz Figa wrote: >>>> >>Don't we need to check here (and in _shutdown() too) if we have a >>>> >>domain attached? >>> > >>> >hmmm, right, the startup might been called by resume, so should check >>> >iommu->domain here. >>> > >>> >but the shutdown would be called at the end of detach or suspend, it >>> could >>> >be not attached or attached. >> If startup might be called by resume, without domain attached, what >> prevents shutdown from being called by suspend after that resume, >> still without domain attached? Is it guaranteed that if resume is >> called, someone will attach a domain before suspend is called? >> > no, the shutdown would be called by: > 1/ end of detach_dev > so it would be not attached at that time > > 2/ suspend > so it could be attached, and also could be not attached > > > anyway, i think the shutdown would work without domain attached(just > disable paging and clear the iommu bases) ;) > hmmm, i see the problem. so we need to: 1/ move shutdown a little earlier in detach_dev, so it could still see the iommu->domain 2/ check iommu->domain in shutdown, to prevent unnecessary shutdown or maybe just add iommu->domain check in suspend and resume. >> Best regards, >> Tomasz >> >> >> >