Patch "crypto: qat - ensure correct order in VF restarting handler" has been added to the 6.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    crypto: qat - ensure correct order in VF restarting handler

to the 6.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     crypto-qat-ensure-correct-order-in-vf-restarting-han.patch
and it can be found in the queue-6.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 1715480ff258e14baf9f41ec8f83921cb499f830
Author: Michal Witwicki <michal.witwicki@xxxxxxxxx>
Date:   Wed Jul 17 07:44:59 2024 -0400

    crypto: qat - ensure correct order in VF restarting handler
    
    [ Upstream commit cd8d2d74292c199b433ef77762bb1d28a4821784 ]
    
    In the process of sending the ADF_PF2VF_MSGTYPE_RESTARTING message to
    Virtual Functions (VFs), the Physical Function (PF) should set the
    `vf->restarting` flag to true before dispatching the message.
    This change is necessary to prevent a race condition where the handling
    of the ADF_VF2PF_MSGTYPE_RESTARTING_COMPLETE message (which sets the
    `vf->restarting` flag to false) runs immediately after the message is sent,
    but before the flag is set to true.
    
    Set the `vf->restarting` to true before sending the message
    ADF_PF2VF_MSGTYPE_RESTARTING, if supported by the version of the
    protocol and if the VF is started.
    
    Fixes: ec26f8e6c784 ("crypto: qat - update PFVF protocol for recovery")
    Signed-off-by: Michal Witwicki <michal.witwicki@xxxxxxxxx>
    Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@xxxxxxxxx>
    Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@xxxxxxxxx>
    Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/crypto/intel/qat/qat_common/adf_pfvf_pf_msg.c b/drivers/crypto/intel/qat/qat_common/adf_pfvf_pf_msg.c
index 0e31f4b41844e..0cee3b23dee90 100644
--- a/drivers/crypto/intel/qat/qat_common/adf_pfvf_pf_msg.c
+++ b/drivers/crypto/intel/qat/qat_common/adf_pfvf_pf_msg.c
@@ -18,14 +18,17 @@ void adf_pf2vf_notify_restarting(struct adf_accel_dev *accel_dev)
 
 	dev_dbg(&GET_DEV(accel_dev), "pf2vf notify restarting\n");
 	for (i = 0, vf = accel_dev->pf.vf_info; i < num_vfs; i++, vf++) {
-		vf->restarting = false;
+		if (vf->init && vf->vf_compat_ver >= ADF_PFVF_COMPAT_FALLBACK)
+			vf->restarting = true;
+		else
+			vf->restarting = false;
+
 		if (!vf->init)
 			continue;
+
 		if (adf_send_pf2vf_msg(accel_dev, i, msg))
 			dev_err(&GET_DEV(accel_dev),
 				"Failed to send restarting msg to VF%d\n", i);
-		else if (vf->vf_compat_ver >= ADF_PFVF_COMPAT_FALLBACK)
-			vf->restarting = true;
 	}
 }
 




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux