[PATCH] PCI: Clear Bus Master bit only on kexec reboot

Matthew Garrett mjg59 at srcf.ucam.org
Wed Nov 27 17:07:04 EST 2013

On Wed, Nov 27, 2013 at 02:01:06PM -0800, Greg KH wrote:
> On Wed, Nov 27, 2013 at 09:53:09PM +0000, Matthew Garrett wrote:
> > On Wed, Nov 27, 2013 at 01:22:27PM -0800, Greg KH wrote:
> > 
> > > Then fix the drivers please.  It's not as if you don't have access to
> > > the source for them all...
> > 
> > Define "fix". It's clearly wrong to disable busmastering at shutdown on 
> > some devices, otherwise we wouldn't be having this discussion at all.
> I thought it was only "wrong" to disable this on multi-function devices,
> which is why some drivers didn't do it.  Otherwise, how would it be any
> different to have the global setting?

kexec doesn't jump into the firmware, so firmware assumptions about the 
state of the busmaster bit don't matter.

> Anyway, I really don't care either way, but this seems like something
> that the drivers should be doing.  What suddenly changed that caused
> this problem to occur that hasn't happened in the years prior to now
> that drives this to be a stable-kernel issue?

We started clearing the busmaster bit on all devices on shutdown in 
3.something in order to ensure that DMA wasn't occuring while we were 
in the process of performing a kexec. Some machines freeze on shutdown 
as a result. This patch reverts back to the original behaviour on real 
shutdown, while still avoiding the "This PCI device scribbled over my 
new kernel" kexec case.

Matthew Garrett | mjg59 at srcf.ucam.org

More information about the kexec mailing list