random: Drop the extrng module reference when import_ubuf() fails
getrandom() takes a reference on the registered extrng provider before import_ubuf() and drops it only after extrng_read_iter(); an -EFAULT from import_ubuf() returns with the reference held. Any unprivileged caller looping getrandom((void *)-1, 16, 0) pins the FIPS provider module until reboot. The /dev/random and /dev/urandom open paths pair their reference with extrng_release() and are fine.
RHEL-only code (4086243e "random: Add hook to override device reads and getrandom(2)"), so there is no upstream fix to pick. Fix as proposed in the report. The hunk is identical on fedora-7.1 and fedora-7.2 and applies cleanly to both; I can open backport MRs if wanted.
Only reachable once a provider has called random_register_extrng(); nothing in-tree does, so the practical exposure is the out-of-tree RHEL FIPS module rather than Fedora.
Compile-tested (drivers/char/random.o) on os-build.
bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2524262
Signed-off-by: Junjie Cao junjie.cao@intel.com