Received: by 2002:a05:6a10:17d3:0:0:0:0 with SMTP id hz19csp671811pxb; Fri, 16 Apr 2021 15:27:44 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzaci/2mBTwRNr0GiUbbkt1Mrsxy2txGCpE7z2s661AsSneuR7cg2DelKkObEVjh5v7dBf0 X-Received: by 2002:a17:902:e993:b029:ec:7cc0:9390 with SMTP id f19-20020a170902e993b02900ec7cc09390mr4719866plb.27.1618612064451; Fri, 16 Apr 2021 15:27:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1618612064; cv=none; d=google.com; s=arc-20160816; b=nCmHdBAxIl2qZufKrYwhfJ1IaYsro8Waq+o87xv3Wi4e7Zpu35rYBnl2R4djX8qRpn xn9o2Szf/J9VY9AIE4y+dYBaNv+HnK5mEO/jJhSP5/XutyBQvgEuqWUR8BEi0yu27esQ iMjXWTwaURvfFJfGlh+USh0mCr8YytFB8X5gK9AD7cE/3XCyrh/WP9b1Ut2qvCuvdoac 9R+J0Hd1L5tnfvrnQmK9S+dx2fQWIFaPIkFq0h0QEv5GWIKB5WtAoYajTzlyxCkLk/qL qzIRlmMreGPeVbyq5UAPhxSbUWw9PdNP1WJDqNsLT5jp5LpvqDNceSwqzQb+sJ5hGenH LnBw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:references :in-reply-to:subject:cc:to:dkim-signature:dkim-signature:from; bh=oIMPFgWu4IqnP0nhiSA/nCdAulGUPJoqWG9L6Or5pk0=; b=E3x2LNTDC22B2FlgZbckrUPR/LeV02zmlNX28SdvIkQsArHPcFUdmeLnJXmgURq22D 7i7YcOwOi5OIlXkRrHVFcsjBs0gbk1m521fM7clRfZpKjy9Ye2DBJZV8l9cjrFTLhDn7 pK2hxCUPIVkbUffCif6Izh+pFY+EY5SROMR931kNFjaELVsdGMqNG5pt93TqyiUvGHmx eMlLpcK5qa7o16FP8RdqoihwQFzQ0Dyl8a3UDrH1bwKK7djRmR7VplIX+3JXwEgLv4tr ZGi9pVoKs/0HiI4WoQNfjH27lXe6gIYO0pVJ5+SxkfNiNvX0sEgnsaqV42+bucb+v1K3 XzxQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linutronix.de header.s=2020 header.b=bqRX0z1g; dkim=neutral (no key) header.i=@linutronix.de; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id o17si8460257pgu.586.2021.04.16.15.27.32; Fri, 16 Apr 2021 15:27:44 -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=@linutronix.de header.s=2020 header.b=bqRX0z1g; dkim=neutral (no key) header.i=@linutronix.de; 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; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=linutronix.de Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235377AbhDPW1Y (ORCPT + 99 others); Fri, 16 Apr 2021 18:27:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36786 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233514AbhDPW1X (ORCPT ); Fri, 16 Apr 2021 18:27:23 -0400 Received: from galois.linutronix.de (Galois.linutronix.de [IPv6:2a0a:51c0:0:12e:550::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4AC3BC061574; Fri, 16 Apr 2021 15:26:58 -0700 (PDT) From: Thomas Gleixner DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1618612016; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=oIMPFgWu4IqnP0nhiSA/nCdAulGUPJoqWG9L6Or5pk0=; b=bqRX0z1gwdEJaXLPYjJxyNOSYSnzHEMlXmiunIMoL64R0UBM6BjjRR8AThpNU31INBvWUA 7V/zcmny4sDB9wwAzU8+IeUU7GsMAJTHYi2Q3Ewg1Y9fSmxokd4CjBrgGbR0A7pQrF5NUB dFSooyr6tL5EScMowSPzhc1LVnjedtZH4bytgcPb0Q59GfTjp/blR8Ic4mGOD7R5I7qM3S Psfhs0pZ6IbkiY0Wwp52kWF/zTLv7OpY2AURJZbcVQwHTPtsJmj4cyZlNe/xfr4rB/7xG9 QRup/zOHKX5pvLqy0BWFNNLEDaxxzU5/hPHVyQBy+6AiDlqSSCCiV44h9ahQ5Q== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1618612016; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=oIMPFgWu4IqnP0nhiSA/nCdAulGUPJoqWG9L6Or5pk0=; b=A2StUduRfI+iimoCoHtRfwRfQKrj+FbVYD64CdnovAT2R/5kNqRRfERaW6P1hRq15092Fz bS87wCWSDscU0ZDQ== To: Sami Tolvanen , x86@kernel.org Cc: Kees Cook , Josh Poimboeuf , Peter Zijlstra , Nathan Chancellor , Nick Desaulniers , Sedat Dilek , linux-hardening@vger.kernel.org, linux-kernel@vger.kernel.org, clang-built-linux@googlegroups.com, Sami Tolvanen Subject: Re: [PATCH 06/15] x86: Avoid CFI jump tables in IDT and entry points In-Reply-To: <20210416203844.3803177-7-samitolvanen@google.com> References: <20210416203844.3803177-1-samitolvanen@google.com> <20210416203844.3803177-7-samitolvanen@google.com> Date: Sat, 17 Apr 2021 00:26:56 +0200 Message-ID: <87im4luaq7.ffs@nanos.tec.linutronix.de> MIME-Version: 1.0 Content-Type: text/plain Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Apr 16 2021 at 13:38, Sami Tolvanen wrote: > With CONFIG_CFI_CLANG, the compiler replaces function addresses in C > code with jump table addresses. Fine. > To avoid referring to jump tables in entry code with PTI, What has this to do with PTI? > disable CFI for IDT and paravirt code, and use function_nocfi() to > prevent jump table addresses from being added to the IDT or system > call entry points. How does this changelog make sense for anyone not familiar with the matter at hand? Where is the analysis why excluding > +CFLAGS_REMOVE_idt.o := $(CC_FLAGS_CFI) > +CFLAGS_REMOVE_paravirt.o := $(CC_FLAGS_CFI) all of idt.c and paravirt.c is correct and how that is going to be correct in the future? These files are excluded from CFI, so I can add whatever I want to them and circumvent the purpose of CFI, right? Brilliant plan that. But I know, sekurity ... Thanks, tglx