I think the motivation is for rogue transactions from the devices not to hit the system memory while a new kernel is booted via kexec.
It is not an issue when IOMMU is not present since the second kernel that is booting doesn't share the same address space.
However; when IOMMU is present, an adapter can corrupt the newly booting kernel. So, you ideally want to have bus master bit cleared for a clean boot.
What is interesting is that kexec is already doing this job in pci_device_shutdown(). This extra clear is unnecessary. I'll post a patch to remove it.
I think the motivation is for rogue transactions from the devices not to hit the system memory while a new kernel is booted via kexec.
It is not an issue when IOMMU is not present since the second kernel that is booting doesn't share the same address space.
However; when IOMMU is present, an adapter can corrupt the newly booting kernel. So, you ideally want to have bus master bit cleared for a clean boot.
What is interesting is that kexec is already doing this job in pci_device_ shutdown( ). This extra clear is unnecessary. I'll post a patch to remove it.