[+cc Khalid new email addr] On Mon, Jan 28, 2013 at 4:40 PM, Bjorn Helgaas <bhelg...@google.com> wrote: > On Fri, Jan 18, 2013 at 4:42 AM, Konstantin Khlebnikov > <khlebni...@openvz.org> wrote: >> comment in commit b566a22c23327f18ce941ffad0ca907e50a53d41 >> ("PCI: disable Bus Master on PCI device shutdown") says: >> >> | Disable Bus Master bit on the device in pci_device_shutdown() to ensure PCI >> | devices do not continue to DMA data after shutdown. This can cause memory >> | corruption in case of a kexec where the current kernel shuts down and >> | transfers control to a new kernel while a PCI device continues to DMA to >> | memory that does not belong to it any more in the new kernel. >> >> Seems like pci_clear_master() must be used here instead of >> pci_disable_device(), >> because it disables Bus Muster unconditionally and doesn't changes >> enable_cnt. >> >> Signed-off-by: Konstantin Khlebnikov <khlebni...@openvz.org> >> Cc: linux-...@vger.kernel.org >> Cc: Bjorn Helgaas <bhelg...@google.com> >> Cc: Khalid Aziz <khalid.a...@hp.com> >> --- >> drivers/pci/pci-driver.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c >> index 030dbf0..853d605 100644 >> --- a/drivers/pci/pci-driver.c >> +++ b/drivers/pci/pci-driver.c >> @@ -392,7 +392,7 @@ static void pci_device_shutdown(struct device *dev) >> * Turn off Bus Master bit on the device to tell it to not >> * continue to do DMA >> */ >> - pci_disable_device(pci_dev); >> + pci_clear_master(pci_dev); > > We currently only call pci_enable_device() and pci_disable_device() > from drivers, and I think that's a nice division that's worth keeping. > It keeps the core's mitts off device operation and helps preserve the > enable_cnt integrity. So I like this change from that perspective. > > Any objections to this, Khalid? > >> } >> >> #ifdef CONFIG_PM >>
------------------------------------------------------------------------------ Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. ON SALE this month only -- learn more at: http://p.sf.net/sfu/learnnow-d2d _______________________________________________ E1000-devel mailing list E1000-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired