Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp398990ybk; Wed, 13 May 2020 03:09:54 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzeyvHIjhpVsByJsBDBnsyppmFbw1/Bs8dNTzBKhT8ycjiTfrt4EVmWGjoebw6JOfe9yOij X-Received: by 2002:aa7:cd5a:: with SMTP id v26mr13458883edw.320.1589364593991; Wed, 13 May 2020 03:09:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589364593; cv=none; d=google.com; s=arc-20160816; b=UKuZkMsuyZOBQjbett+02EydZvYUfq21n9uasWIZM8MR40s68WRPpGYSPys8ADK+Tv Ub6dPyBivtqds4ZMnBNQNiu8WpyTOgz3ys80yz1p+S5g/rDqLV74S3WuEFdL+LQyZIXH qRnQhwbe7xp4le3oT8KyBU6jivNnX21xL34xaXDpI+NveMLhAQLELL4Cf8iD37PRBSli 1sz4NIBHU3T8ytlrIkd4sejSPy+7fM9+/ASzx+N2r5jvHDFkp3YDQpHJYwbttGpFulPT f9ykDnAygdWGyU97CaUv1ONN+0vQO6xAHoTHGE1Y+SWp8yCDuBiHm44DXZOzM18NHtLD FP9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=ufzCkSpwVprFdP9FR202+Y214pzOLOfN+1KVWlQDSVo=; b=oGHHWcok5Rq9ZSI3KFlQM1t10P9liUkeR5hAtiL9yqhtHCvuZzZsfypm5WCRZTDRye ixG+UNiA5HVcNURHFNSrx6LWxQKOnI0rfPkOh5YfsEe6HAP6UrKW1N4Spjb730d8Txc0 MBclxUeRF+1gsK2kPUskr+GZqIOvUE2PoYCeLIq1Z+O/KdCI2t5XkkzUiWfx11hhu0r7 6cGCBMRUTtJTKM5cpLE07xi6TaLHhD+3kvy8Sc9yMRYgfYPbVT7NAZWQcoEg7MBLneyX Nob1Qrsgf4a3/9TlXTuQbAzEgsbHbDq4vvpu063gxrEiFTciemAE4EcIC3qzFEs/9rIb tCVg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=2SJh29CB; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m5si5730196eds.245.2020.05.13.03.09.30; Wed, 13 May 2020 03:09:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=2SJh29CB; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732852AbgEMJrY (ORCPT + 99 others); Wed, 13 May 2020 05:47:24 -0400 Received: from mail.kernel.org ([198.145.29.99]:45088 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732825AbgEMJrS (ORCPT ); Wed, 13 May 2020 05:47:18 -0400 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id F30C220753; Wed, 13 May 2020 09:47:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1589363237; bh=Za3FLRzeVXJu3IPmNvRaKrZk0hFYFY6QIYsYn+kNt28=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=2SJh29CBJKjPhdRhR/ckxfN28nNkZZ/YSKZvgZBAnkuwb0FpkFs2mY/hMCa1fBLHj 0VxuUrlJYCUj5JFpZ0ndlMDjYUDUGxgsX8uiOde0Wn1/+JPLt/UN2KrAKxekkC2/ph dgAhrTOEycufEsG5qp1GkEnvdKXxbTzih4oscCBI= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Miroslav Benes , Josh Poimboeuf , Ingo Molnar , Andy Lutomirski , Dave Jones , Jann Horn , Peter Zijlstra , Thomas Gleixner , Vince Weaver Subject: [PATCH 4.19 41/48] x86/unwind/orc: Prevent unwinding before ORC initialization Date: Wed, 13 May 2020 11:45:07 +0200 Message-Id: <20200513094402.645961403@linuxfoundation.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200513094351.100352960@linuxfoundation.org> References: <20200513094351.100352960@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Josh Poimboeuf commit 98d0c8ebf77e0ba7c54a9ae05ea588f0e9e3f46e upstream. If the unwinder is called before the ORC data has been initialized, orc_find() returns NULL, and it tries to fall back to using frame pointers. This can cause some unexpected warnings during boot. Move the 'orc_init' check from orc_find() to __unwind_init(), so that it doesn't even try to unwind from an uninitialized state. Fixes: ee9f8fce9964 ("x86/unwind: Add the ORC unwinder") Reviewed-by: Miroslav Benes Signed-off-by: Josh Poimboeuf Signed-off-by: Ingo Molnar Cc: Andy Lutomirski Cc: Dave Jones Cc: Jann Horn Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Vince Weaver Link: https://lore.kernel.org/r/069d1499ad606d85532eb32ce39b2441679667d5.1587808742.git.jpoimboe@redhat.com Signed-off-by: Greg Kroah-Hartman --- arch/x86/kernel/unwind_orc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) --- a/arch/x86/kernel/unwind_orc.c +++ b/arch/x86/kernel/unwind_orc.c @@ -131,9 +131,6 @@ static struct orc_entry *orc_find(unsign { static struct orc_entry *orc; - if (!orc_init) - return NULL; - if (ip == 0) return &null_orc_entry; @@ -563,6 +560,9 @@ EXPORT_SYMBOL_GPL(unwind_next_frame); void __unwind_start(struct unwind_state *state, struct task_struct *task, struct pt_regs *regs, unsigned long *first_frame) { + if (!orc_init) + goto done; + memset(state, 0, sizeof(*state)); state->task = task;