]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
crypto: qat - disable IOV in adf_dev_stop()
authorMichal Witwicki <michal.witwicki@intel.com>
Wed, 17 Jul 2024 11:44:57 +0000 (07:44 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 4 Oct 2024 14:37:15 +0000 (16:37 +0200)
[ Upstream commit b6c7d36292d50627dbe6a57fa344f87c776971e6 ]

Disabling IOV has the side effect of re-enabling the AEs that might
attempt to do DMAs into the heartbeat buffers.
Move the disable_iov() function in adf_dev_stop() before the AEs are
stopped.

Fixes: ed8ccaef52fa ("crypto: qat - Add support for SRIOV")
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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/crypto/intel/qat/qat_common/adf_init.c

index 74f0818c07034873871056269fc0db040cc284be..55f1ff1e0b3225a96d355e121da22ecc77bff44f 100644 (file)
@@ -323,6 +323,8 @@ static void adf_dev_stop(struct adf_accel_dev *accel_dev)
        if (hw_data->stop_timer)
                hw_data->stop_timer(accel_dev);
 
+       hw_data->disable_iov(accel_dev);
+
        if (wait)
                msleep(100);
 
@@ -386,8 +388,6 @@ static void adf_dev_shutdown(struct adf_accel_dev *accel_dev)
 
        adf_tl_shutdown(accel_dev);
 
-       hw_data->disable_iov(accel_dev);
-
        if (test_bit(ADF_STATUS_IRQ_ALLOCATED, &accel_dev->status)) {
                hw_data->free_irq(accel_dev);
                clear_bit(ADF_STATUS_IRQ_ALLOCATED, &accel_dev->status);