在 2025/6/11 下午5:23, Herbert Xu 写道:
On Wed, May 28, 2025 at 02:59:41PM +0800, Qunqin Zhao wrote:
+ if (!rng_devices.is_init) {
+ ret = crypto_register_rng(&loongson_rng_alg);
+ if (ret) {
+ dev_err(&pdev->dev, "failed to register crypto(%d)\n",
ret);
+ return ret;
+ }
+ INIT_LIST_HEAD(&rng_devices.list);
+ mutex_init(&rng_devices.lock);
+ rng_devices.is_init = true;
+ }
This doesn't look right. What stops two devices from both entering
this code path when is_init == false?
Will use __MUTEX_INITIALIZER macro to statically initialize
rng_devices. lock,
and then use this lock to stop two devices form both entering this code
path.
Thanks,
Qunqin
Cheers,