Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 8 Sep 2015 15:59:55 +0000 (UTC)
From:      Jim Harris <jimharris@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r287563 - head/sys/dev/isci
Message-ID:  <201509081559.t88FxtRi062914@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jimharris
Date: Tue Sep  8 15:59:55 2015
New Revision: 287563
URL: https://svnweb.freebsd.org/changeset/base/287563

Log:
  isci: explicitly enable/disable PCI busmaster
  
  BIOS always enables PCI busmaster on the isci device, which effectively
  worked around this omission.  But when passing the isci device through
  to a guest VM, the hypervisor will disable busmaster and isci will not
  work without calling pci_enable_busmaster().
  
  MFC after:	3 days
  Sponsored by:	Intel

Modified:
  head/sys/dev/isci/isci.c

Modified: head/sys/dev/isci/isci.c
==============================================================================
--- head/sys/dev/isci/isci.c	Tue Sep  8 14:52:14 2015	(r287562)
+++ head/sys/dev/isci/isci.c	Tue Sep  8 15:59:55 2015	(r287563)
@@ -163,6 +163,7 @@ isci_attach(device_t device)
 
 	g_isci = isci;
 	isci->device = device;
+	pci_enable_busmaster(device);
 
 	isci_allocate_pci_memory(isci);
 
@@ -272,6 +273,7 @@ isci_detach(device_t device)
 
 		pci_release_msi(device);
 	}
+	pci_disable_busmaster(device);
 
 	return (0);
 }



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