Messages in this thread | | | Date | Thu, 28 Mar 2019 10:00:27 GMT | From | George Spelvin <> | Subject | Re: [RFC PATCH v2] random: add get_random_max() function |
| |
By the way, I just noticed that my fallback get_random_max64() algorithm (if there's no __int128 type) is completely broken and will need rewriting.
It would work if I rejected and regenerated the high half if the low half were out of range, but that's not what it does.
The worst case is a range of 0x10000001, where it would return 0x10000000 half the time.
Needs rethinking to find something as simple as possible. I'm sure I can come up with something, but I'm not averse to suggestions if anyone has any.
(If I had a reliably fast clz/fls, that would open some possibilities, but sigh...)
| |