linux/drivers/crypto/qat/qat_common
Allan, Bruce W 22e4dda06d crypto: qat - fix device reset flow
When the device needs a reset, e.g. when an uncorrectable PCIe AER event
occurs, various services/data structures need to be cleaned up, the
hardware reset and the services/data structures initialized and started.
The code to perform the cleanup and initialization was not performed when
a device reset was done.

This patch moves some of the initialization code out of the .probe entry-
point into a separate function that is now called during probe as well as
after the hardware has been reset.  Similarly, a new function is added for
first cleaning up these services/data structures prior to resetting.  The
new functions are adf_dev_init() and adf_dev_shutdown(), respectively, for
which there are already prototypes but no actual functions just yet and are
now called when the device is reset and during probe/cleanup of the driver.
The down and up flows via ioctl calls has similarly been updated.

In addition, there are two other bugs in the reset flow - one in the logic
for determining whether to schedule a device reset upon receiving an
uncorrectable AER event which prevents the reset flow from being initiated,
and another with clearing the status bit indicating a device is configured
(when resetting the device the configuration remains across the reset so
the bit should not be cleared, otherwise, the necessary services will not
be re-started in adf_dev_start() after the reset - clear the bit only when
actually deleting the configuration).

Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2015-01-13 22:30:45 +11:00
..
adf_accel_devices.h crypto: qat - fix device reset flow 2015-01-13 22:30:45 +11:00
adf_accel_engine.c crypto: qat - Updated print outputs 2014-08-01 22:36:08 +08:00
adf_aer.c crypto: qat - fix device reset flow 2015-01-13 22:30:45 +11:00
adf_cfg_common.h
adf_cfg_strings.h
adf_cfg_user.h
adf_cfg.c crypto: qat - fix device reset flow 2015-01-13 22:30:45 +11:00
adf_cfg.h
adf_common_drv.h crypto: qat - fix device reset flow 2015-01-13 22:30:45 +11:00
adf_ctl_drv.c crypto: qat - fix device reset flow 2015-01-13 22:30:45 +11:00
adf_dev_mgr.c crypto: qat - fix bad unlock balance 2014-10-24 22:49:37 +08:00
adf_init.c crypto: qat - fix device reset flow 2015-01-13 22:30:45 +11:00
adf_transport_access_macros.h crytpo: qat - Fix 64 bytes requests 2014-11-25 22:50:42 +08:00
adf_transport_debug.c crypto: qat - Fixed new checkpatch warnings 2014-06-26 14:49:43 +08:00
adf_transport_internal.h crypto: qat - Fix typo in name of tasklet_struct 2014-09-24 14:01:26 +08:00
adf_transport.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2014-12-13 13:33:26 -08:00
adf_transport.h
icp_qat_fw_init_admin.h crypto: qat - Intel(R) QAT FW interface 2014-06-20 21:26:16 +08:00
icp_qat_fw_la.h crypto: qat - checkpatch blank lines 2014-08-01 22:36:01 +08:00
icp_qat_fw_loader_handle.h crypto: qat - Intel(R) QAT accelengine part of fw loader 2014-06-20 21:26:17 +08:00
icp_qat_fw.h crypto: qat - Intel(R) QAT FW interface 2014-06-20 21:26:16 +08:00
icp_qat_hal.h crypto: qat - Intel(R) QAT accelengine part of fw loader 2014-06-20 21:26:17 +08:00
icp_qat_hw.h crypto: qat - add support for cbc(aes) ablkcipher 2014-12-22 23:02:42 +11:00
icp_qat_uclo.h crypto: qat - change slice->regions to slice->region 2014-08-01 22:36:06 +08:00
Makefile
qat_algs.c crypto: qat - Fix incorrect uses of memzero_explicit 2015-01-08 21:46:19 +11:00
qat_crypto.c crypto: qat - Enforce valid numa configuration 2014-10-24 22:37:36 +08:00
qat_crypto.h crypto: qat - add support for cbc(aes) ablkcipher 2014-12-22 23:02:42 +11:00
qat_hal.c crypto: qat - Move BAR definitions to device specific module 2014-11-06 23:14:59 +08:00
qat_uclo.c crypto: qat - Fixed SKU1 dev issue 2014-08-01 22:36:10 +08:00