Author: pfg
Date: Mon Apr 25 21:14:32 2016
New Revision: 298593
URL: https://svnweb.freebsd.org/changeset/base/298593

Log:
  dev/random: use our roundup() macro instead of re-implementing it.
  
  While here also use howmany() macro from sys/param.h
  No functional change.
  
  Reviewed by:  markm (roundup replacement part)
  Approved by:  so

Modified:
  head/sys/dev/random/fortuna.c
  head/sys/dev/random/randomdev.c
  head/sys/dev/random/yarrow.c

Modified: head/sys/dev/random/fortuna.c
==============================================================================
--- head/sys/dev/random/fortuna.c       Mon Apr 25 20:58:54 2016        
(r298592)
+++ head/sys/dev/random/fortuna.c       Mon Apr 25 21:14:32 2016        
(r298593)
@@ -324,7 +324,7 @@ random_fortuna_genrandom(uint8_t *buf, u
         *      - K = GenerateBlocks(2)
         */
        KASSERT((bytecount <= RANDOM_FORTUNA_MAX_READ), ("invalid single read 
request to Fortuna of %d bytes", bytecount));
-       blockcount = (bytecount + RANDOM_BLOCKSIZE - 1)/RANDOM_BLOCKSIZE;
+       blockcount = howmany(bytecount, RANDOM_BLOCKSIZE);
        random_fortuna_genblocks(buf, blockcount);
        random_fortuna_genblocks(temp, RANDOM_KEYS_PER_BLOCK);
        randomdev_encrypt_init(&fortuna_state.fs_key, temp);

Modified: head/sys/dev/random/randomdev.c
==============================================================================
--- head/sys/dev/random/randomdev.c     Mon Apr 25 20:58:54 2016        
(r298592)
+++ head/sys/dev/random/randomdev.c     Mon Apr 25 21:14:32 2016        
(r298593)
@@ -68,9 +68,6 @@ static u_int READ_RANDOM(void *, u_int);
 #define READ_RANDOM    read_random
 #endif
 
-/* Return the largest number >= x that is a multiple of m */
-#define CEIL_TO_MULTIPLE(x, m) ((((x) + (m) - 1)/(m))*(m))
-
 static d_read_t randomdev_read;
 static d_write_t randomdev_write;
 static d_poll_t randomdev_poll;
@@ -164,7 +161,7 @@ READ_RANDOM_UIO(struct uio *uio, bool no
                         * which is what the underlying generator is expecting.
                         * See the random_buf size requirements in the 
Yarrow/Fortuna code.
                         */
-                       read_len = CEIL_TO_MULTIPLE(read_len, RANDOM_BLOCKSIZE);
+                       read_len = roundup(read_len, RANDOM_BLOCKSIZE);
                        /* Work in chunks page-sized or less */
                        read_len = MIN(read_len, PAGE_SIZE);
                        p_random_alg_context->ra_read(random_buf, read_len);
@@ -204,7 +201,7 @@ READ_RANDOM(void *random_buf, u_int len)
                         * Round up the read length to a crypto block size 
multiple,
                         * which is what the underlying generator is expecting.
                         */
-                       read_len = CEIL_TO_MULTIPLE(len, RANDOM_BLOCKSIZE);
+                       read_len = roundup(len, RANDOM_BLOCKSIZE);
                        p_random_alg_context->ra_read(local_buf, read_len);
                        memcpy(random_buf, local_buf, len);
                }

Modified: head/sys/dev/random/yarrow.c
==============================================================================
--- head/sys/dev/random/yarrow.c        Mon Apr 25 20:58:54 2016        
(r298592)
+++ head/sys/dev/random/yarrow.c        Mon Apr 25 21:14:32 2016        
(r298593)
@@ -374,7 +374,7 @@ random_yarrow_read(uint8_t *buf, u_int b
 
        KASSERT((bytecount % RANDOM_BLOCKSIZE) == 0, ("%s(): bytecount (= %d) 
must be a multiple of %d", __func__, bytecount, RANDOM_BLOCKSIZE ));
        RANDOM_RESEED_LOCK();
-       blockcount = (bytecount + RANDOM_BLOCKSIZE - 1)/RANDOM_BLOCKSIZE;
+       blockcount = howmany(bytecount, RANDOM_BLOCKSIZE);
        for (i = 0; i < blockcount; i++) {
                if (yarrow_state.ys_outputblocks++ >= 
yarrow_state.ys_gengateinterval) {
                        random_yarrow_generator_gate();
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to