Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp301333imj; Sat, 16 Feb 2019 00:23:15 -0800 (PST) X-Google-Smtp-Source: AHgI3IYWQ9gXWsK4Jxsp3Q50tVyFM4wRtHl+Zh97SzYU5jRJEMBKFCDU2twgB5hwrXubfhGHh2GL X-Received: by 2002:a63:c345:: with SMTP id e5mr9306291pgd.103.1550305395662; Sat, 16 Feb 2019 00:23:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550305395; cv=none; d=google.com; s=arc-20160816; b=je9PQ96wIapgnhtgZDQrgzV8em8tuaKc6iwVM72MRO3y5Negd1useaae1AAYiXwj/m WQUlGCl2Y1M843JhBFck6v8V5hrVrS5/p4p21bLG2ykWBXBw/UhpYWBRTZh6HeAhLOTF Fytlw14LzxBN2s/mewiYqIu2NBxqGr6UOqGGEnlmDpW26HYeakIcCBlT6BgAXd5XWPuJ WLMzojeuBNpeoGpfVpI7PFaVdmDFQ+4FFkLytWQszsbKqJntJ6De21nwI/rg98br/ZoQ X82TqVmg7lHIIt6TGlUqdiUjDX6s/lEBvJjXvNvINOw2SFzLw1tRxEJBd7LPKAn3TSww 1A1A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :mime-version; bh=knOx25++K9f2PpNjsJJVR0YOB7lmETFhT/2wOOmVbyI=; b=aGhI/R2zgtccA8dMnO1B9kXnAEKIkkYze8DIXrYVvFEweDhcQ2zSn5b8Lj+eJm8SSe TKZHMgzLJI6GNvqSjglg3ZC2QTVzxux0VlEkvDctm76K6vcgo41u0JGRHYd6Oc9yWYN8 DG5rj7fPQxtFDMg8HZRzqk2RPgdg0GrWPkuWOQU6Pr3sppmqGYbT1+ZPHQ3eYh6rsjH/ lbInuL+l+7ituaV/vNnXw8FNe8pKqFpTxs86aQqP2MB6P0tW7L5BnMKSfHKmX6y1ErP2 qB8sM045ODJ/tgVviPDIhyayo3y0H2EYd/v1kLN4AIIALUcRThmWTWstrDKv6XGQFCXE mbig== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g4si7759439plt.215.2019.02.16.00.23.00; Sat, 16 Feb 2019 00:23:15 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2392983AbfBOWDS (ORCPT + 99 others); Fri, 15 Feb 2019 17:03:18 -0500 Received: from mail-it1-f194.google.com ([209.85.166.194]:55869 "EHLO mail-it1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1733184AbfBOWDS (ORCPT ); Fri, 15 Feb 2019 17:03:18 -0500 Received: by mail-it1-f194.google.com with SMTP id z131so17371871itf.5 for ; Fri, 15 Feb 2019 14:03:17 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=knOx25++K9f2PpNjsJJVR0YOB7lmETFhT/2wOOmVbyI=; b=uZ6eE1Mq3xDrsBc6cncq3cAv2cBESWTX977XOugzEbl03jQ1xCp6Nimwa2i9hLfVDK fJheNOlGQVJG0In6WM3/MnwZx+8giK9WUlg8V5WkyMD2lbo0axJ6e/kELXi+74hDq6MR il2vuhjpuHlXs3Jd1VCSAtVKhGoEXCMyIxdDS26R8TqSzSHyWcmhiFqe/Plm2kVPTTOH i/aURZXA2bUvB4mz1fRywGx0EKwNzXv7ylgK0mzZ75p+ymrq9frYz0Ch71iH5Kl1UvqG 5G7Brdzpvf4+KRKOUbGEKUvsUsuoiYiIXPHj0iNUU8iWh1qj4IYiQhlwxwidOShFHdhf kLug== X-Gm-Message-State: AHQUAuZemR+z3HQ79bwcJ+Yxno+LXiCqEbkNSph2owBQdB3w5qY//qv+ Q7sKeqGlqGFl0nXosTxT0CBSf4fd X-Received: by 2002:a5d:974b:: with SMTP id c11mr7107691ioo.257.1550268197345; Fri, 15 Feb 2019 14:03:17 -0800 (PST) Received: from mail-it1-f174.google.com (mail-it1-f174.google.com. [209.85.166.174]) by smtp.gmail.com with ESMTPSA id k77sm3184384itb.7.2019.02.15.14.03.17 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Feb 2019 14:03:17 -0800 (PST) Received: by mail-it1-f174.google.com with SMTP id l15so14271209iti.4 for ; Fri, 15 Feb 2019 14:03:17 -0800 (PST) X-Received: by 2002:a6b:b408:: with SMTP id d8mr6192402iof.138.1550268196904; Fri, 15 Feb 2019 14:03:16 -0800 (PST) MIME-Version: 1.0 From: Sultan Alsawaf Date: Fri, 15 Feb 2019 14:03:06 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: [PATCH] random: fix inconsistent spinlock usage To: tytso@mit.edu Cc: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org All users of the struct entropy_store spinlock use the irqsave spinlock variant. Spinlock users of the same lock should use be consistent in their use of a certain spinlock primitive, which makes add_interrupt_randomness()'s spinlock usage incorrect. Fix the inconsistency by converting add_interrupt_randomness()'s spinlocks to use the irqsave primitive. Signed-off-by: Sultan Alsawaf --- drivers/char/random.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/char/random.c b/drivers/char/random.c index 38c6d1af6..1365017a7 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c @@ -1239,6 +1239,7 @@ void add_interrupt_randomness(int irq, int irq_flags) __u64 ip; unsigned long seed; int credit = 0; + unsigned long flags; if (cycles == 0) cycles = get_reg(fast_pool, regs); @@ -1269,7 +1270,7 @@ void add_interrupt_randomness(int irq, int irq_flags) return; r = &input_pool; - if (!spin_trylock(&r->lock)) + if (!spin_trylock_irqsave(&r->lock, flags)) return; fast_pool->last = now; @@ -1285,7 +1286,7 @@ void add_interrupt_randomness(int irq, int irq_flags) __mix_pool_bytes(r, &seed, sizeof(seed)); credit = 1; } - spin_unlock(&r->lock); + spin_unlock_irqrestore(&r->lock, flags); fast_pool->count = 0; -- 2.20.1