]> git.ipfire.org Git - thirdparty/rng-tools.git/commitdiff
rngd_linux: Log a warning if write_wakeup_threshold can't be adjusted
authorH. Peter Anvin <hpa@linux.intel.com>
Wed, 1 Aug 2012 21:31:37 +0000 (14:31 -0700)
committerJeff Garzik <jgarzik@redhat.com>
Thu, 2 Aug 2012 04:18:54 +0000 (00:18 -0400)
If we fail to write write_wakeup_threshold, log a warning but
continue.

Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
rngd_linux.c

index 3556fd05d38ff7610cda9cf69aaf3f8ac0715c40..46db9510ca7aa3b9fba07833b7313d84fa15067d 100644 (file)
@@ -94,6 +94,7 @@ err:
 void init_kernel_rng(const char* randomdev)
 {
        FILE *f;
+       int err;
 
        random_fd = open(randomdev, O_RDWR);
        if (random_fd == -1) {
@@ -103,9 +104,17 @@ void init_kernel_rng(const char* randomdev)
        }
 
        f = fopen("/proc/sys/kernel/random/write_wakeup_threshold", "w");
-       if (f) {
+       if (!f) {
+               err = 1;
+       } else {
                fprintf(f, "%u\n", arguments->fill_watermark);
-               fclose(f);
+               /* Note | not || here... we always want to close the file */
+               err = ferror(f) | fclose(f);
+       }
+       if (err) {
+               message(LOG_DAEMON|LOG_WARNING,
+                       "unable to adjust write_wakeup_threshold: %s",
+                       strerror(errno));
        }
 }