Received: by 2002:a25:2c96:0:0:0:0:0 with SMTP id s144csp1132127ybs; Mon, 25 May 2020 07:53:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzBKKmXjsIOIqk1Fi5qNMejnFvdvf71z3jWAsrLd2TmCTKgT6dV4OvXJjkH0vG3A/76nD6A X-Received: by 2002:aa7:c887:: with SMTP id p7mr15354192eds.269.1590418435599; Mon, 25 May 2020 07:53:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1590418435; cv=none; d=google.com; s=arc-20160816; b=QvTE27QPuUWPOXhkrSOBVjK9qjikAmy0Iq+ZPxj7vS6ACnt0VJj8HMPEjbgirZ4WR0 pbpZ9ljMOPO7irlg/K9k5bXx/elM4FJ854VYuut+RZFifu6/JrMmg1liZYMMF1xRaLv+ Ylm+qwjouNVcsKvbRiOi1JhWUyVHWkDwbLFE85IzP6pqkED3LV6m1mN1250KCXVTB/hA eXybrXoGaaBADthZPQlO1AJRX5KQ+QTlLW1t36IOwkHYSrXDhC5/hljthaRuoY2agqZn e5MRNo3nJCnkxov0eWfjVJiqmNskd4IO6tAGglxC5D5k1zcOJCvjioZhcNNMPxBguSSo o9+w== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=m7ew96YDPXCAzAjU/19VC4/BkbFHX6kDTGlht/tJXZA=; b=EhkLGzLqB8DWSsVznuG9JzLHbpsMIc3kkdphNMrXBlNyjUKIb6XAtD/CNRSe98bQ+8 2Gf5fIw8rS34TH/azFaDpYArzYpIQ7HR0cFATnyMC53nFAt+fDmfuFEFvbX7n+sowPr3 cz2iie+g/mqABjlEJksZOY5pFz08f/08DyC9pcuRqU2A2VIsrAKlYOUokj7KinPxXTCh 0UTTP0t/JaztYOC5f46kZOLhauAta6WjNjG1aTrXtpaff0okkPrx9SFjKEu4J6k3UZxx t1C9n+t+Lo+Qj/AnebeO/iGAcGfp5cB68ucuwiAMFhjWJliB152VQhTwZ0liFfWcEBnx HATw== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id gh17si9847029ejb.517.2020.05.25.07.53.32; Mon, 25 May 2020 07:53:55 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391054AbgEYOv1 (ORCPT + 99 others); Mon, 25 May 2020 10:51:27 -0400 Received: from out30-43.freemail.mail.aliyun.com ([115.124.30.43]:33964 "EHLO out30-43.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390995AbgEYOvT (ORCPT ); Mon, 25 May 2020 10:51:19 -0400 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R121e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e04394;MF=laijs@linux.alibaba.com;NM=1;PH=DS;RN=10;SR=0;TI=SMTPD_---0TzckEPv_1590418275; Received: from localhost(mailfrom:laijs@linux.alibaba.com fp:SMTPD_---0TzckEPv_1590418275) by smtp.aliyun-inc.com(127.0.0.1); Mon, 25 May 2020 22:51:15 +0800 From: Lai Jiangshan To: linux-kernel@vger.kernel.org Cc: Lai Jiangshan , Andy Lutomirski , Peter Zijlstra , Thomas Gleixner , x86@kernel.org, Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Alexandre Chartre Subject: [RFC PATCH 5/5] x86/hw_breakpoint: Prevent data breakpoints on debug_idt_table Date: Mon, 25 May 2020 14:51:02 +0000 Message-Id: <20200525145102.122557-6-laijs@linux.alibaba.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200525145102.122557-1-laijs@linux.alibaba.com> References: <20200525145102.122557-1-laijs@linux.alibaba.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org A data breakpoint on the IDT is terrifying and should be avoided. The IDT on CPU entry area is already protected. The debug IDT should be also protected, although it is seldom used and only used for short time. Cc: Andy Lutomirski Cc: Peter Zijlstra (Intel) Cc: Thomas Gleixner Cc: x86@kernel.org Signed-off-by: Lai Jiangshan --- Please drop this patch when Peter's work to remove debug_idt_table is merged. arch/x86/kernel/hw_breakpoint.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/x86/kernel/hw_breakpoint.c b/arch/x86/kernel/hw_breakpoint.c index 9579bd6fb589..83d8b1fcbc76 100644 --- a/arch/x86/kernel/hw_breakpoint.c +++ b/arch/x86/kernel/hw_breakpoint.c @@ -284,6 +284,11 @@ static inline bool within_cpu_entry(unsigned long addr, unsigned long end) return true; } + /* debug_idt_table is used when load_debug_idt() */ + if (within_area(addr, end, (unsigned long)debug_idt_table, + sizeof(debug_idt_table[0]) * IDT_ENTRIES)) + return true; + return false; } -- 2.20.1