@@ -1513,9 +1513,9 @@ static int nvme_setup_io_queues(struct nvme_dev *dev)
* access to the admin queue, as that might be only way to fix them up.
*/
if (result > 0) {
- dev_err(dev->dev, "Could not set queue count (%d)\n", result);
- nr_io_queues = 0;
- result = 0;
+ dev_err(dev->ctrl.device,
+ "Could not set queue count (%d)\n", result);
+ return 0;
}
if (dev->cmb && NVME_CMB_SQS(dev->cmbsz)) {
@@ -1549,7 +1549,9 @@ static int nvme_setup_io_queues(struct nvme_dev *dev)
* If we enable msix early due to not intx, disable it again before
* setting up the full range we need.
*/
- if (!pdev->irq)
+ if (pdev->msi_enabled)
+ pci_disable_msi(pdev);
+ else if (pdev->msix_enabled)
pci_disable_msix(pdev);
for (i = 0; i < nr_io_queues; i++)
@@ -1729,7 +1731,6 @@ static int nvme_dev_map(struct nvme_dev *dev)
if (pci_enable_device_mem(pdev))
return result;
- dev->entry[0].vector = pdev->irq;
pci_set_master(pdev);
bars = pci_select_bars(pdev, IORESOURCE_MEM);
if (!bars)
@@ -1752,13 +1753,18 @@ static int nvme_dev_map(struct nvme_dev *dev)
}
/*
- * Some devices don't advertse INTx interrupts, pre-enable a single
- * MSIX vec for setup. We'll adjust this later.
+ * Some devices and/or platforms don't advertise or work with INTx
+ * interrupts. Pre-enable a single MSIX or MSI vec for setup. We'll
+ * adjust this later.
*/
- if (!pdev->irq) {
- result = pci_enable_msix(pdev, dev->entry, 1);
- if (result < 0)
- goto unmap;
+ if (pci_enable_msix(pdev, dev->entry, 1)) {
+ pci_enable_msi(pdev);
+ dev->entry[0].vector = pdev->irq;
+ }
+
+ if (!dev->entry[0].vector) {
+ result = -ENODEV;
+ goto unmap;
}
cap = lo_hi_readq(dev->bar + NVME_REG_CAP);
deleted file mode 100644
@@ -1,71 +0,0 @@
-%{?!packager: %define packager Brian Behlendorf <behlendorf1@llnl.gov>}
-
-%define module @PACKAGE@
-%define mkconf scripts/dkms.mkconf
-
-Name: %{module}-dkms
-
-Version: @VERSION@
-Release: @RELEASE@%{?dist}
-Summary: Kernel module(s) (dkms)
-
-Group: System Environment/Kernel
-License: GPLv2+
-URL: http://zfsonlinux.org/
-Source0: %{module}-%{version}.tar.gz
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-BuildArch: noarch
-
-Requires: dkms >= 2.2.0.2
-Requires: gcc, make, perl
-Requires: kernel-devel
-Provides: %{module}-kmod = %{version}
-
-%description
-This package contains the dkms kernel modules required to emulate
-several interfaces provided by the Solaris kernel.
-
-%prep
-%setup -q -n %{module}-%{version}
-
-%build
-%{mkconf} -n %{module} -v %{version} -f dkms.conf
-
-%install
-if [ "$RPM_BUILD_ROOT" != "/" ]; then
- rm -rf $RPM_BUILD_ROOT
-fi
-mkdir -p $RPM_BUILD_ROOT/usr/src/
-cp -rf ${RPM_BUILD_DIR}/%{module}-%{version} $RPM_BUILD_ROOT/usr/src/
-
-%clean
-if [ "$RPM_BUILD_ROOT" != "/" ]; then
- rm -rf $RPM_BUILD_ROOT
-fi
-
-%files
-%defattr(-,root,root)
-/usr/src/%{module}-%{version}
-
-%post
-for POSTINST in /usr/lib/dkms/common.postinst; do
- if [ -f $POSTINST ]; then
- $POSTINST %{module} %{version}
- exit $?
- fi
- echo "WARNING: $POSTINST does not exist."
-done
-echo -e "ERROR: DKMS version is too old and %{module} was not"
-echo -e "built with legacy DKMS support."
-echo -e "You must either rebuild %{module} with legacy postinst"
-echo -e "support or upgrade DKMS to a more current version."
-exit 1
-
-%preun
-echo -e "Uninstall of %{module} module (version %{version}) beginning:"
-dkms remove -m %{module} -v %{version} --all --rpm_safe_upgrade
-exit 0
-
-%changelog
-* %(date "+%a %b %d %Y") %packager %{version}-%{release}
-- Automatic build by DKMS
new file mode 120000
@@ -0,0 +1 @@
+../generic/spl-dkms.spec.in
\ No newline at end of file
deleted file mode 100644
@@ -1,71 +0,0 @@
-Name: @PACKAGE@
-Version: @VERSION@
-Release: @RELEASE@%{?dist}
-Summary: Commands to control the kernel modules
-
-Group: System Environment/Kernel
-License: GPLv2+
-URL: http://zfsonlinux.org/
-Source0: %{name}-%{version}.tar.gz
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-Requires: %{name}-kmod = %{version}
-Provides: %{name}-kmod-common = %{version}
-
-%description
-This package contains the commands to verify the SPL
-kernel modules are functioning properly.
-
-%prep
-%setup -q
-
-%build
-%configure --with-config=user
-make %{?_smp_mflags}
-
-%install
-%{__rm} -rf $RPM_BUILD_ROOT
-make install DESTDIR=%{?buildroot}
-
-%files
-%doc AUTHORS COPYING DISCLAIMER
-%{_sbindir}/*
-%{_mandir}/man1/*
-%{_mandir}/man5/*
-
-%changelog
-* Tue Mar 22 2016 Ned Bass <bass6@llnl.gov> - 0.6.5.6-1
-- Remove artificial architecture restrictions in packaging
-- Add support for s390[x] zfsonlinux/spl#537
-* Wed Mar 9 2016 Ned Bass <bass6@llnl.gov> - 0.6.5.5-1
-- Linux 4.5 compatibility zfsonlinux/spl#524
-- Create working debuginfo packages on Red Hat zfsonlinux/zfs#4224
-- Allow copy-builtin to run multiple times zfsonlinux/spl#526
-- Use safer flags for in-kernel memory allocations zfsonlinux/spl#523
-- Fix potential deadlock in cv_wait() zfsonlinux/zfs#4106
-- Fix livelock in shrinker zfsonlinux/zfs#3936
-* Fri Jan 8 2016 Ned Bass <bass6@llnl.gov> - 0.6.5.4-1
-- Build fixes on SPARC and some kernels
-- Fix taskq dynamic spawning deadlock
-- Fix builtin kernel builds
-- Fix crash due to overflow in P2ROUNDUP macro
-- Fix deadlock during direct memory reclaim
-* Tue Oct 13 2015 Ned Bass <bass6@llnl.gov> - 0.6.5.3-1
-- Fix CPU hotplug zfsonlinux/spl#482
-- Disable dynamic taskqs by default to avoid deadlock zfsonlinux/spl#484
-* Tue Sep 29 2015 Ned Bass <bass6@llnl.gov> - 0.6.5.2-1
-- Released 0.6.5.2-1
-- Fix PAX Patch/Grsec SLAB_USERCOPY panic zfsonlinux/zfs#3796
-- Always remove during dkms uninstall/update zfsonlinux/spl#476
-* Thu Sep 19 2015 Ned Bass <bass6@llnl.gov> - 0.6.5.1-1
-- Released 0.6.5.1-1, no changes from spl-0.6.5
-* Thu Sep 10 2015 Brian Behlendorf <behlendorf1@llnl.gov> - 0.6.5-1
-- Released 0.6.5-1, detailed release notes are available at:
-- https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.6.5
-* Wed Apr 8 2015 Brian Behlendorf <behlendorf1@llnl.gov> - 0.6.4-1
-- Released 0.6.4-1
-* Thu Jun 12 2014 Brian Behlendorf <behlendorf1@llnl.gov> - 0.6.3-1
-- Released 0.6.3-1
-* Wed Aug 21 2013 Brian Behlendorf <behlendorf1@llnl.gov> - 0.6.2-1
-- Released 0.6.2-1
-* Fri Mar 22 2013 Brian Behlendorf <behlendorf1@llnl.gov> - 0.6.1-1
-- First official stable release.
new file mode 120000
@@ -0,0 +1 @@
+../generic/spl.spec.in
\ No newline at end of file