aboutsummaryrefslogtreecommitdiff
path: root/testing
diff options
context:
space:
mode:
authorDouglas Gilbert <dgilbert@interlog.com>2021-03-29 01:27:17 +0000
committerDouglas Gilbert <dgilbert@interlog.com>2021-03-29 01:27:17 +0000
commit93e55163dc9978093b46b7000ae4aa7e8fbb02d4 (patch)
treebf0375f6bfa10f99184b094b0c1f6e12b8abbb0c /testing
parent339d06ac2ba7a7126df065fa562baae738ce15a8 (diff)
downloadsg3_utils-93e55163dc9978093b46b7000ae4aa7e8fbb02d4.tar.gz
sg_vpd: fix vendor struct opts_t alignment; 3rd attempt to release 1.46
git-svn-id: https://svn.bingwo.ca/repos/sg3_utils/trunk@886 6180dd3e-e324-4e3e-922d-17de1ae2f315
Diffstat (limited to 'testing')
-rw-r--r--testing/sg_mrq_dd.cpp18
-rw-r--r--testing/sgh_dd.cpp40
2 files changed, 40 insertions, 18 deletions
diff --git a/testing/sg_mrq_dd.cpp b/testing/sg_mrq_dd.cpp
index 9ce3eb5b..bed16233 100644
--- a/testing/sg_mrq_dd.cpp
+++ b/testing/sg_mrq_dd.cpp
@@ -30,7 +30,7 @@
*
*/
-static const char * version_str = "1.22 20210321";
+static const char * version_str = "1.23 20210328";
#define _XOPEN_SOURCE 600
#ifndef _GNU_SOURCE
@@ -62,7 +62,6 @@ static const char * version_str = "1.22 20210321";
#include <linux/major.h> /* for MEM_MAJOR, SCSI_GENERIC_MAJOR, etc */
#include <linux/fs.h> /* for BLKSSZGET and friends */
#include <sys/mman.h> /* for mmap() system call */
-#include <sys/random.h> /* for getrandom() system call */
#include <vector>
#include <array>
@@ -77,6 +76,10 @@ static const char * version_str = "1.22 20210321";
#include "config.h"
#endif
+#ifdef HAVE_GETRANDOM
+#include <sys/random.h> /* for getrandom() system call */
+#endif
+
#ifndef HAVE_LINUX_SG_V4_HDR
/* Kernel uapi header contain __user decorations on user space pointers
* to indicate they are unsafe in the kernel space. However glibc takes
@@ -1294,12 +1297,17 @@ read_write_thread(struct global_collection * clp, int id, bool singleton)
rep->same_sg = true;
}
if (clp->in_flags.random) {
- ssize_t ssz;
+#ifdef HAVE_GETRANDOM
+ ssize_t ssz = getrandom(&rep->seed, sizeof(rep->seed), GRND_NONBLOCK);
- ssz = getrandom(&rep->seed, sizeof(rep->seed), GRND_NONBLOCK);
- if (ssz < (ssize_t)sizeof(rep->seed))
+ if (ssz < (ssize_t)sizeof(rep->seed)) {
pr2serr_lk("[%d] %s: getrandom() failed, ret=%d\n", id, __func__,
(int)ssz);
+ rep->seed = (long)time(NULL);
+ }
+#else
+ rep->seed = (long)time(NULL); /* use seconds since epoch as proxy */
+#endif
if (vb > 1)
pr2serr_lk("[%d] %s: seed=%ld\n", id, __func__, rep->seed);
srand48_r(rep->seed, &rep->drand);
diff --git a/testing/sgh_dd.cpp b/testing/sgh_dd.cpp
index a678cad5..c1b34218 100644
--- a/testing/sgh_dd.cpp
+++ b/testing/sgh_dd.cpp
@@ -36,7 +36,7 @@
* renamed [20181221]
*/
-static const char * version_str = "2.00 20210305";
+static const char * version_str = "2.01 20210328";
#define _XOPEN_SOURCE 600
#ifndef _GNU_SOURCE
@@ -68,7 +68,6 @@ static const char * version_str = "2.00 20210305";
#include <linux/major.h> /* for MEM_MAJOR, SCSI_GENERIC_MAJOR, etc */
#include <linux/fs.h> /* for BLKSSZGET and friends */
#include <sys/mman.h> /* for mmap() system call */
-#include <sys/random.h> /* for getrandom() system call */
#include <vector>
#include <array>
@@ -82,6 +81,10 @@ static const char * version_str = "2.00 20210305";
#include "config.h"
#endif
+#ifdef HAVE_GETRANDOM
+#include <sys/random.h> /* for getrandom() system call */
+#endif
+
#ifndef HAVE_LINUX_SG_V4_HDR
/* Kernel uapi header contain __user decorations on user space pointers
* to indicate they are unsafe in the kernel space. However glibc takes
@@ -1219,15 +1222,21 @@ mrq_abort_thread(void * v_maip)
int n = 0;
int seed;
unsigned int rn;
- ssize_t ssz;
Mrq_abort_info l_mai = *(Mrq_abort_info *)v_maip;
struct sg_io_v4 ctl_v4;
- ssz = getrandom(&rn, sizeof(rn), GRND_NONBLOCK);
- if (ssz < (ssize_t)sizeof(rn))
- pr2serr_lk("%s: getrandom() failed, returned %d\n", __func__,
- (int)ssz);
- seed = rn;
+#ifdef HAVE_GETRANDOM
+ {
+ ssize_t ssz = getrandom(&seed, sizeof(seed), GRND_NONBLOCK);
+
+ if (ssz < (ssize_t)sizeof(seed)) {
+ pr2serr("getrandom() failed, ret=%d\n", (int)ssz);
+ seed = (int)time(NULL);
+ }
+ }
+#else
+ seed = (int)time(NULL); /* use seconds since epoch as proxy */
+#endif
if (l_mai.debug)
pr2serr_lk("%s: from_id=%d: to abort mrq_pack_id=%d\n", __func__,
l_mai.from_tid, l_mai.mrq_id);
@@ -1469,12 +1478,17 @@ read_write_thread(void * v_tip)
rep->only_out_sg = true;
if (clp->in_flags.random) {
- ssize_t ssz;
+#ifdef HAVE_GETRANDOM
+ ssize_t ssz = getrandom(&rep->seed, sizeof(rep->seed), GRND_NONBLOCK);
- ssz = getrandom(&rep->seed, sizeof(rep->seed), 0);
- if (ssz < (ssize_t)sizeof(rep->seed))
- pr2serr_lk("thread=%d: getrandom() failed, ret=%d\n", rep->id,
- (int)ssz);
+ if (ssz < (ssize_t)sizeof(rep->seed)) {
+ pr2serr_lk("thread=%d: getrandom() failed, ret=%d\n",
+ rep->id, (int)ssz);
+ rep->seed = (long)time(NULL);
+ }
+#else
+ rep->seed = (long)time(NULL); /* use seconds since epoch as proxy */
+#endif
if (vb > 1)
pr2serr_lk("thread=%d: seed=%ld\n", rep->id, rep->seed);
srand48_r(rep->seed, &rep->drand);