]> Pileus Git - ~andy/linux/blobdiff - net/core/utils.c
Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville...
[~andy/linux] / net / core / utils.c
index bf09371e19b146369a6c580e52700588440adf49..2f737bf90b3fe4235c75ccca6640c735ecaa076b 100644 (file)
@@ -370,16 +370,17 @@ bool __net_get_random_once(void *buf, int nbytes, bool *done,
                           struct static_key *done_key)
 {
        static DEFINE_SPINLOCK(lock);
+       unsigned long flags;
 
-       spin_lock_bh(&lock);
+       spin_lock_irqsave(&lock, flags);
        if (*done) {
-               spin_unlock_bh(&lock);
+               spin_unlock_irqrestore(&lock, flags);
                return false;
        }
 
        get_random_bytes(buf, nbytes);
        *done = true;
-       spin_unlock_bh(&lock);
+       spin_unlock_irqrestore(&lock, flags);
 
        __net_random_once_disable_jump(done_key);