svn commit: r302271 - stable/10/sys/ofed/include/linux
Hans Petter Selasky
hselasky at FreeBSD.org
Wed Jun 29 10:40:36 UTC 2016
Author: hselasky
Date: Wed Jun 29 10:40:34 2016
New Revision: 302271
URL: https://svnweb.freebsd.org/changeset/base/302271
Log:
MFC r301544:
Fallback to arc4rand() in the LinuxKPI when read_random() returns
zero. This can happen for virtual machines.
Sponsored by: Mellanox Technologies
Modified:
stable/10/sys/ofed/include/linux/etherdevice.h
stable/10/sys/ofed/include/linux/random.h
Directory Properties:
stable/10/ (props changed)
Modified: stable/10/sys/ofed/include/linux/etherdevice.h
==============================================================================
--- stable/10/sys/ofed/include/linux/etherdevice.h Wed Jun 29 10:33:11 2016 (r302270)
+++ stable/10/sys/ofed/include/linux/etherdevice.h Wed Jun 29 10:40:34 2016 (r302271)
@@ -137,7 +137,8 @@ eth_broadcast_addr(u8 *pa)
static inline void
random_ether_addr(u8 * dst)
{
- read_random(dst, 6);
+ if (read_random(dst, 6) == 0)
+ arc4rand(dst, 6, 0);
dst[0] &= 0xfe;
dst[0] |= 0x02;
Modified: stable/10/sys/ofed/include/linux/random.h
==============================================================================
--- stable/10/sys/ofed/include/linux/random.h Wed Jun 29 10:33:11 2016 (r302270)
+++ stable/10/sys/ofed/include/linux/random.h Wed Jun 29 10:40:34 2016 (r302271)
@@ -2,7 +2,7 @@
* Copyright (c) 2010 Isilon Systems, Inc.
* Copyright (c) 2010 iX Systems, Inc.
* Copyright (c) 2010 Panasas, Inc.
- * Copyright (c) 2013, 2014 Mellanox Technologies, Ltd.
+ * Copyright (c) 2013-2016 Mellanox Technologies, Ltd.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,11 +31,13 @@
#define _LINUX_RANDOM_H_
#include <sys/random.h>
+#include <sys/libkern.h>
static inline void
get_random_bytes(void *buf, int nbytes)
{
- read_random(buf, nbytes);
+ if (read_random(buf, nbytes) == 0)
+ arc4rand(buf, nbytes, 0);
}
#endif /* _LINUX_RANDOM_H_ */
More information about the svn-src-stable-10
mailing list