drivers/crypto/nx/nx-common-pseries.c

Source file repositories/reference/linux-study-clean/drivers/crypto/nx/nx-common-pseries.c

File Facts

System
Linux kernel
Corpus path
drivers/crypto/nx/nx-common-pseries.c
Extension
.c
Size
35982 bytes
Lines
1272
Domain
Driver Families
Bucket
drivers/crypto
Inferred role
Driver Families: exported/initcall integration point
Status
integration implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

module_init(nx842_pseries_init);

static void __exit nx842_pseries_exit(void)
{
	struct nx842_devdata *old_devdata;
	unsigned long flags;

	vas_unregister_api_pseries();

	crypto_unregister_scomp(&nx842_pseries_alg);

	spin_lock_irqsave(&devdata_spinlock, flags);
	old_devdata = rcu_dereference_check(devdata,
			lockdep_is_held(&devdata_spinlock));
	RCU_INIT_POINTER(devdata, NULL);
	spin_unlock_irqrestore(&devdata_spinlock, flags);
	synchronize_rcu();
	if (old_devdata && old_devdata->dev)
		dev_set_drvdata(old_devdata->dev, NULL);
	kfree(old_devdata);
	vio_unregister_driver(&nx842_vio_driver);
}

module_exit(nx842_pseries_exit);

Annotation

Implementation Notes