Whamcloud - gitweb
LU-9567 mgc: set cfg_instance to NULL for sptlrpc case
[fs/lustre-release.git] / libcfs / libcfs / prng.c
index 765d411..0393174 100644 (file)
  *
  * You should have received a copy of the GNU General Public License
  * version 2 along with this program; If not, see
- * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
+ * http://www.gnu.org/licenses/gpl-2.0.html
  *
  * GPL HEADER END
  */
@@ -39,6 +35,7 @@
  * algorithm recommended by Marsaglia
 */
 
+#include <linux/random.h>
 #include <libcfs/libcfs.h>
 
 /*
@@ -109,31 +106,31 @@ EXPORT_SYMBOL(cfs_srand);
  */
 void cfs_get_random_bytes(void *buf, int size)
 {
-        int *p = buf;
-        int rem, tmp;
+       int *p = buf;
+       int rem, tmp;
 
-        LASSERT(size >= 0);
+       LASSERT(size >= 0);
 
-        rem = min((int)((unsigned long)buf & (sizeof(int) - 1)), size);
-        if (rem) {
-                cfs_get_random_bytes_prim(&tmp, sizeof(tmp));
-                tmp ^= cfs_rand();
-                memcpy(buf, &tmp, rem);
-                p = buf + rem;
-                size -= rem;
-        }
+       rem = min((int)((unsigned long)buf & (sizeof(int) - 1)), size);
+       if (rem) {
+               get_random_bytes(&tmp, sizeof(tmp));
+               tmp ^= cfs_rand();
+               memcpy(buf, &tmp, rem);
+               p = buf + rem;
+               size -= rem;
+       }
 
-        while (size >= sizeof(int)) {
-                cfs_get_random_bytes_prim(&tmp, sizeof(tmp));
-                *p = cfs_rand() ^ tmp;
-                size -= sizeof(int);
-                p++;
-        }
-        buf = p;
-        if (size) {
-                cfs_get_random_bytes_prim(&tmp, sizeof(tmp));
-                tmp ^= cfs_rand();
-                memcpy(buf, &tmp, size);
-        }
+       while (size >= sizeof(int)) {
+               get_random_bytes(&tmp, sizeof(tmp));
+               *p = cfs_rand() ^ tmp;
+               size -= sizeof(int);
+               p++;
+       }
+       buf = p;
+       if (size) {
+               get_random_bytes(&tmp, sizeof(tmp));
+               tmp ^= cfs_rand();
+               memcpy(buf, &tmp, size);
+       }
 }
 EXPORT_SYMBOL(cfs_get_random_bytes);