• Greg Price's avatar
    random: simplify accounting code · 0fb7a01a
    Greg Price authored
    With this we handle "reserved" in just one place.  As a bonus the
    code becomes less nested, and the "wakeup_write" flag variable
    becomes unnecessary.  The variable "flags" was already unused.
    
    This code behaves identically to the previous version except in
    two pathological cases that don't occur.  If the argument "nbytes"
    is already less than "min", then we didn't previously enforce
    "min".  If r->limit is false while "reserved" is nonzero, then we
    previously applied "reserved" in checking whether we had enough
    bits, even though we don't apply it to actually limit how many we
    take.  The callers of account() never exercise either of these cases.
    
    Before the previous commit, it was possible for "nbytes" to be less
    than "min" if userspace chose a pathological configuration, but no
    longer.
    
    Cc: Jiri Kosina <jkosina@suse.cz>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Signed-off-by: default avatarGreg Price <price@mit.edu>
    Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
    0fb7a01a
random.c 50.4 KB