crypto: qat - delay sysfs initialization
authorShashank Gupta <shashank.gupta@intel.com>
Mon, 27 Feb 2023 20:55:41 +0000 (15:55 -0500)
committerHerbert Xu <herbert@gondor.apana.org.au>
Tue, 14 Mar 2023 09:06:44 +0000 (17:06 +0800)
The function adf_sysfs_init() is used by qat_4xxx to create sysfs
attributes. This is called by the probe function before starting a
device. With this sequence, there might be a chance that the sysfs
entries for configuration might be changed by a user while the driver
is performing a device bring-up causing unexpected behaviors.

Delay the creation of sysfs entries after adf_dev_start().

Signed-off-by: Shashank Gupta <shashank.gupta@intel.com>
Reviewed-by: Giovanni Cabiddu <giovanni.cabiddu@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/qat/qat_4xxx/adf_drv.c

index b3a4c7b..f7fdb43 100644 (file)
@@ -411,10 +411,6 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
                goto out_err_disable_aer;
        }
 
                goto out_err_disable_aer;
        }
 
-       ret = adf_sysfs_init(accel_dev);
-       if (ret)
-               goto out_err_disable_aer;
-
        ret = hw_data->dev_config(accel_dev);
        if (ret)
                goto out_err_disable_aer;
        ret = hw_data->dev_config(accel_dev);
        if (ret)
                goto out_err_disable_aer;
@@ -427,6 +423,10 @@ static int adf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
        if (ret)
                goto out_err_dev_stop;
 
        if (ret)
                goto out_err_dev_stop;
 
+       ret = adf_sysfs_init(accel_dev);
+       if (ret)
+               goto out_err_dev_stop;
+
        return ret;
 
 out_err_dev_stop:
        return ret;
 
 out_err_dev_stop: