Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 2 Feb 2017 17:29:16 +0000 (UTC)
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r313097 - head/sys/dev/pci
Message-ID:  <201702021729.v12HTGuX095209@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jhb
Date: Thu Feb  2 17:29:15 2017
New Revision: 313097
URL: https://svnweb.freebsd.org/changeset/base/313097

Log:
  Require Data Layer Active reporting for native PCI-e HotPlug.
  
  Some PCI-e bridges report that they support HotPlug in the slot
  capabilities but do not report support for Data Layer Active events
  in the link capabilities register.  These bridges do not work correctly
  when HotPlug is used.  Further, while the description of HotPlug in
  the spec does not mention that DL active events are required, the
  description of the link capabilities register says that DL active is
  required for HotPlug.  Thanks to Dave Baukus for finding that language
  in the spec.
  
  PR:		211699
  Submitted by:	Dave Baukus <daveb@spectralogic.com>
  Reviewed by:	vangyzen
  MFC after:	3 days

Modified:
  head/sys/dev/pci/pci_pci.c

Modified: head/sys/dev/pci/pci_pci.c
==============================================================================
--- head/sys/dev/pci/pci_pci.c	Thu Feb  2 13:40:37 2017	(r313096)
+++ head/sys/dev/pci/pci_pci.c	Thu Feb  2 17:29:15 2017	(r313097)
@@ -935,6 +935,8 @@ pcib_probe_hotplug(struct pcib_softc *sc
 
 	if ((sc->pcie_slot_cap & PCIEM_SLOT_CAP_HPC) == 0)
 		return;
+	if ((sc->pcie_link_cap & PCIEM_LINK_CAP_DL_ACTIVE) == 0)
+		return;
 
 	/*
 	 * Some devices report that they have an MRL when they actually



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201702021729.v12HTGuX095209>