crypto: qat - allow disabling SR-IOV VFs
authorMichal Witwicki <michal.witwicki@intel.com>
Wed, 17 Jul 2024 11:45:00 +0000 (07:45 -0400)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 2 Aug 2024 13:11:20 +0000 (21:11 +0800)
commitca88a2bdd4dd371e9f248d12528b1daf10db8648
tree2ff0fc8f2c1d508fbc98444f85efbb2d321fe39e
parentcd8d2d74292c199b433ef77762bb1d28a4821784
crypto: qat - allow disabling SR-IOV VFs

The QAT driver allows enabling SR-IOV VFs but does not allow them to be
disabled through a write to sysfs.
Disabling SR-IOV VFs can be only achieved by bringing down and up a
device using the attribute /sys/bus/pci/devices/<BDF>/qat/state.

The documentation for the sysfs attribute `sriov_numvfs` specifies
that "a userspace application wanting to disable the VFs would write a
zero to this file".

Add support for disabling SR-IOV VFs by writing '0' to the
'sriov_numvfs' attribute in sysfs.

Enabling or disabling SR-IOV always requires adf_dev_down() to be
called. This action subsequently leads to the deletion of the
ADF_KERNEL_SEC configuration section. The keys ADF_NUM_CY and ADF_NUM_DC
within that section must be set to '0', otherwise, the driver will
register into the Linux Crypto Framework. Because of this, the
configuration in the ADF_KERNEL_SEC section must be added before every
sriov_enable.

Signed-off-by: Michal Witwicki <michal.witwicki@intel.com>
Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/intel/qat/qat_common/adf_sriov.c