Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bd68ccb3 authored by Dmitry Eremin-Solenikov's avatar Dmitry Eremin-Solenikov Committed by Herbert Xu
Browse files

hwrng: amd - manage resource allocation



As amd driver doesn't bind to PCI device, we'd better manage reource
allocation on our own to disallow (possible) conflicts.

Signed-off-by: default avatarDmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Acked-by: default avatarMatt Mackall <mpm@selenic.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 0200f3ec
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -133,6 +133,12 @@ static int __init mod_init(void)
	pmbase &= 0x0000FF00;
	if (pmbase == 0)
		goto out;
	if (!request_region(pmbase + 0xF0, 8, "AMD HWRNG")) {
		dev_err(&pdev->dev, "AMD HWRNG region 0x%x already in use!\n",
			pmbase + 0xF0);
		err = -EBUSY;
		goto out;
	}
	amd_rng.priv = (unsigned long)pmbase;
	amd_pdev = pdev;

@@ -141,6 +147,7 @@ static int __init mod_init(void)
	if (err) {
		printk(KERN_ERR PFX "RNG registering failed (%d)\n",
		       err);
		release_region(pmbase + 0xF0, 8);
		goto out;
	}
out:
@@ -149,6 +156,8 @@ static int __init mod_init(void)

static void __exit mod_exit(void)
{
	u32 pmbase = (unsigned long)amd_rng.priv;
	release_region(pmbase + 0xF0, 8);
	hwrng_unregister(&amd_rng);
}