summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhselasky <hselasky@FreeBSD.org>2016-03-07 14:35:31 +0000
committerhselasky <hselasky@FreeBSD.org>2016-03-07 14:35:31 +0000
commit5300ebacd8e44f0a4bb1c2b401328041708f17e6 (patch)
tree97338f2b890ee05be4a0d63cfc8f57240d69ae5a
parent8a53a286c440f36418583c278055fc2e4be43edd (diff)
downloadFreeBSD-src-5300ebacd8e44f0a4bb1c2b401328041708f17e6.zip
FreeBSD-src-5300ebacd8e44f0a4bb1c2b401328041708f17e6.tar.gz
Run the LinuxKPI PCI shutdown handler free of the Giant mutex.
MFC after: 1 week Sponsored by: Mellanox Technologies
-rw-r--r--sys/compat/linuxkpi/common/src/linux_pci.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/compat/linuxkpi/common/src/linux_pci.c b/sys/compat/linuxkpi/common/src/linux_pci.c
index 0214e32..e22d11e 100644
--- a/sys/compat/linuxkpi/common/src/linux_pci.c
+++ b/sys/compat/linuxkpi/common/src/linux_pci.c
@@ -1,5 +1,5 @@
/*-
- * Copyright (c) 2015 Mellanox Technologies, Ltd.
+ * Copyright (c) 2015-2016 Mellanox Technologies, Ltd.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -209,8 +209,11 @@ linux_pci_shutdown(device_t dev)
struct pci_dev *pdev;
pdev = device_get_softc(dev);
- if (pdev->pdrv->shutdown != NULL)
+ if (pdev->pdrv->shutdown != NULL) {
+ DROP_GIANT();
pdev->pdrv->shutdown(pdev);
+ PICKUP_GIANT();
+ }
return (0);
}
OpenPOWER on IntegriCloud