Merge git://git.infradead.org/~dedekind/ubi-2.6
[pandora-kernel.git] / drivers / char / hw_random / core.c
index 84cdf90..662d60e 100644 (file)
@@ -116,6 +116,10 @@ static ssize_t rng_dev_read(struct file *filp, char __user *buf,
                err = -EAGAIN;
                if (!bytes_read && (filp->f_flags & O_NONBLOCK))
                        goto out;
+               if (bytes_read < 0) {
+                       err = bytes_read;
+                       goto out;
+               }
 
                err = -EFAULT;
                while (bytes_read && size) {
@@ -234,11 +238,11 @@ static DEVICE_ATTR(rng_available, S_IRUGO,
                   NULL);
 
 
-static void unregister_miscdev(bool suspended)
+static void unregister_miscdev(void)
 {
        device_remove_file(rng_miscdev.this_device, &dev_attr_rng_available);
        device_remove_file(rng_miscdev.this_device, &dev_attr_rng_current);
-       __misc_deregister(&rng_miscdev, suspended);
+       misc_deregister(&rng_miscdev);
 }
 
 static int register_miscdev(void)
@@ -313,7 +317,7 @@ out:
 }
 EXPORT_SYMBOL_GPL(hwrng_register);
 
-void __hwrng_unregister(struct hwrng *rng, bool suspended)
+void hwrng_unregister(struct hwrng *rng)
 {
        int err;
 
@@ -332,11 +336,11 @@ void __hwrng_unregister(struct hwrng *rng, bool suspended)
                }
        }
        if (list_empty(&rng_list))
-               unregister_miscdev(suspended);
+               unregister_miscdev();
 
        mutex_unlock(&rng_mutex);
 }
-EXPORT_SYMBOL_GPL(__hwrng_unregister);
+EXPORT_SYMBOL_GPL(hwrng_unregister);
 
 
 MODULE_DESCRIPTION("H/W Random Number Generator (RNG) driver");