From patchwork Wed Jul 4 15:10:51 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Khalid Elmously X-Patchwork-Id: 939425 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=canonical.com Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 41LPZc5g7Cz9s29; Thu, 5 Jul 2018 01:11:04 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1fajQo-0006jl-2N; Wed, 04 Jul 2018 15:10:58 +0000 Received: from youngberry.canonical.com ([91.189.89.112]) by huckleberry.canonical.com with esmtps (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.86_2) (envelope-from ) id 1fajQl-0006jB-Sl for kernel-team@lists.ubuntu.com; Wed, 04 Jul 2018 15:10:55 +0000 Received: from mail-it0-f72.google.com ([209.85.214.72]) by youngberry.canonical.com with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.76) (envelope-from ) id 1fajQl-0000E9-IC for kernel-team@lists.ubuntu.com; Wed, 04 Jul 2018 15:10:55 +0000 Received: by mail-it0-f72.google.com with SMTP id l82-v6so3603417ita.5 for ; Wed, 04 Jul 2018 08:10:55 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:content-transfer-encoding :message-id:date:subject:from:in-reply-to:references:to; bh=Ycac3QZpS8nPVFWrqGUiFHcQZFk6Sv9kXqJO8F8QpRk=; b=YI8mMdsK719Jdd/adk0J6zSAoN0QGwxk7l5vMiP2EQ3eHXOnFuF2tAjwe9OcKz06Ae JW6y662Y1N/1mwJreCxGmIjycuerah4yL41KM7J6RzJ2PHqcusIFvtB3wFsew2rTQzNd 97crMSDzScx13wFMVQwzpFFCs0eDHAL9dIsK7mvS2Cs+UMzFYlx3K5tbSAhoB8QIIRQ7 VrzDaMZMl/0JilE6GcEZDGiOn/cF0HcqWpv+MRKCLz1bu1NPTcHgTAX694axjFl0aqKD Tii06l7w7KAEsP6Bnaj2JHH0+Q1NRecL3cXau8UnSue4z81Y7xsvBhOAvX5xAbSHtVir lPxA== X-Gm-Message-State: APt69E1IqVzq/nxlEjwLKwF/2rUI7aecvDFcv+wRq8lMl13QVvKL3glW NEsQspRmXrUimjvaOtYdInWgHKdstD6Z0JCvPOzpNy1MtXfD8RKnRvu8zMwfZwZDLCKIlx0B2TJ cRu0g0hQxn8EwkOX9wm/2Aflgd5zqlUNlqgxJIimONQ== X-Received: by 2002:a24:dcc4:: with SMTP id q187-v6mr1949540itg.93.1530717054637; Wed, 04 Jul 2018 08:10:54 -0700 (PDT) X-Google-Smtp-Source: AAOMgpdIOl2bBgOkORusJQ3byM1eNXihTCnTJqylT9ydCZTroJOFjRz4HzBevomTTwMrFaMSOk2fSA== X-Received: by 2002:a24:dcc4:: with SMTP id q187-v6mr1949527itg.93.1530717054430; Wed, 04 Jul 2018 08:10:54 -0700 (PDT) Received: from [127.0.0.1] (198-84-180-15.cpe.teksavvy.com. [198.84.180.15]) by smtp.gmail.com with ESMTPSA id s130-v6sm2109291itb.33.2018.07.04.08.10.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 04 Jul 2018 08:10:53 -0700 (PDT) MIME-Version: 1.0 X-Mailer: BlackBerry Email (10.3.3.3069) Message-ID: <20180704151051.5562455.25539.20186@canonical.com> Date: Wed, 04 Jul 2018 11:10:51 -0400 Subject: ACK: [SRU bionic] random: Make getrandom() ready earlier From: Khaled Elmously In-Reply-To: <1530713750-22453-1-git-send-email-stefan.bader@canonical.com> References: <1530713750-22453-1-git-send-email-stefan.bader@canonical.com> To: Stefan Bader , kernel-team@lists.ubuntu.com X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" Original Message   From: Stefan Bader Sent: Wednesday, July 4, 2018 10:16 AM To: kernel-team@lists.ubuntu.com Subject: [SRU bionic] random: Make getrandom() ready earlier From: Ben Hutchings This effectively reverts commit 725e828 "random: fix crng_ready() test" which was commit 43838a23a05f upstream. Unfortunately some users of getrandom() don't expect it to block for long, and they need to be fixed before we can allow this change into stable. This doesn't directly revert that commit, but only weakens the ready condition used by getrandom() when the GRND_RANDOM flag is not set. Calls to getrandom() that return before the RNG is fully seeded will generate warnings, just like reads from /dev/urandom. https://bugs.launchpad.net/bugs/1780062 (backported from ://salsa.debian.org/kernel-team/linux/raw/stretch/debian/patches/debian/random-make-getrandom-ready-earlier.patch) [smb: open code waiting in getrandom directly] Signed-off-by: Stefan Bader --- This is based on the patch from Ben Hutchings in Debian. But since wait_for_random_bytes, which is used in the 4.15 code is exported and used by other things, I did instead do its own wait in getrandom(). -Stefan drivers/char/random.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/char/random.c b/drivers/char/random.c index d5f1211..6021405 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c @@ -1976,10 +1976,10 @@ SYSCALL_DEFINE3(getrandom, char __user *, buf, size_t, count, if (flags & GRND_RANDOM) return _random_read(flags & GRND_NONBLOCK, buf, count); - if (!crng_ready()) { + if (crng_init == 0) { if (flags & GRND_NONBLOCK) return -EAGAIN; - ret = wait_for_random_bytes(); + ret = wait_event_interruptible(crng_init_wait, crng_init > 0); if (unlikely(ret)) return ret; }