From 1d7ad7db1be9c256ce2aa94eed434f297a95ef0a Mon Sep 17 00:00:00 2001 From: jhb Date: Thu, 30 Aug 2012 19:47:15 +0000 Subject: [PATCH] MFC 239103: Explicitly enable busmastering on PCI-PCI bridges. Transactions initiated on the secondary side of a bridge will not be propagated to the primary bus unless this is enabled. Busmastering is not enabled by default (we have relied on firmware to set this bit to date). The OS needs to set it for any bridges not configured by system firmware. git-svn-id: svn://svn.freebsd.org/base/stable/8@239918 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- sys/dev/pci/pci_pci.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sys/dev/pci/pci_pci.c b/sys/dev/pci/pci_pci.c index 428ff9c8f..46d74abb2 100644 --- a/sys/dev/pci/pci_pci.c +++ b/sys/dev/pci/pci_pci.c @@ -582,6 +582,13 @@ pcib_attach_common(device_t dev) * would be more widely routed than absolutely necessary. We could * then do a walk of the tree later and fix it. */ + + /* + * Always enable busmastering on bridges so that transactions + * initiated on the secondary bus are passed through to the + * primary bus. + */ + pci_enable_busmaster(dev); } int -- 2.45.2