Received: by 10.223.164.202 with SMTP id h10csp2865721wrb; Fri, 24 Nov 2017 19:46:26 -0800 (PST) X-Google-Smtp-Source: AGs4zMbiaMiUnqBL6rwlHkXMcNE7NMlxrVJHWEWd11z6/o8ZeWjkPs0shN3rdhN0Ehu6S9op9BKL X-Received: by 10.98.202.26 with SMTP id n26mr5722673pfg.202.1511581586597; Fri, 24 Nov 2017 19:46:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1511581586; cv=none; d=google.com; s=arc-20160816; b=YUYy9uSWJqsCTXZGNSJCH8FkR9F6VFjrG/xFzRx21B7ECEIVVgEgikydwCBq19syfi raFpFPHgh8lYbngMMa+7zlytfoCsltck1O+k9l9/NFyPKPsqQHYLlCtK7817RNXdI2bj Xui+5J1ODBWRZfp1tslOkVDSUC6hINP3X4nLi6xqzrRZgPNz5ONuTvY3NOvh1SrdqQCT GmviZAGblcM4PeEYCJiz/7kkGes0me25sFdh6ip4BXR3GLNwvBl1kLNBDOkRcQDf3NjH jHrkvuNOg+RGtG6VJwfJXZ8h01SvguCeJ0NO3LFWDQaHPWMaFNnwzN+A1P3WksOGcuAb vZeg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:arc-authentication-results; bh=oP/Icv11xOOna4bcfzw3os+RoYM9PZyxBtJfmheUhx0=; b=MxnK6M7x+hnaGfd0M/jSX0DaOykR77FSDai21y56Y5+ySM/E5s5C2/GdRMzaSV/7su FfwIhNQmpQM4AA0i76kHSF0oM5NELJhMYxfg5Q6ceUEHnzyDKgX5xoMcZccOiAuLm/Mt yPZe/eQ6aIKIDOqltnRXIgCLXE6Xax3EtPjGuLaitRxYsNPpt4doMaoMNfEanhE1+nG/ V+Aglomr+I/2iX/koEQby2tCtopy/tEOPUBlLw4FiAOZRSjjTVxyTwuSeXpYkdX4/LHa V2Er84KiLsEG4Pv9UcSzWEombusuuOuLJeUiqoRtjB0UnOcswqbt9D7gm4ddAvTKtljN /5mw== 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 y14si19364449pgs.11.2017.11.24.19.45.52; Fri, 24 Nov 2017 19:46:26 -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 S1751865AbdKYDoU (ORCPT + 77 others); Fri, 24 Nov 2017 22:44:20 -0500 Received: from ex13-edg-ou-001.vmware.com ([208.91.0.189]:50933 "EHLO EX13-EDG-OU-001.vmware.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751494AbdKYDoT (ORCPT ); Fri, 24 Nov 2017 22:44:19 -0500 X-Greylist: delayed 900 seconds by postgrey-1.27 at vger.kernel.org; Fri, 24 Nov 2017 22:44:19 EST Received: from sc9-mailhost3.vmware.com (10.113.161.73) by EX13-EDG-OU-001.vmware.com (10.113.208.155) with Microsoft SMTP Server id 15.0.1156.6; Fri, 24 Nov 2017 19:29:09 -0800 Received: from ubuntu.localdomain (unknown [10.2.44.15]) by sc9-mailhost3.vmware.com (Postfix) with ESMTP id 9B34B40627; Fri, 24 Nov 2017 19:29:18 -0800 (PST) From: Nadav Amit To: , CC: , Nadav Amit , Andy Lutomirski , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , Subject: [PATCH v2 1/2] x86: refactor CR4 setting and shadow write Date: Fri, 24 Nov 2017 19:29:06 -0800 Message-ID: <20171125032907.2241-2-namit@vmware.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20171125032907.2241-1-namit@vmware.com> References: <20171125032907.2241-1-namit@vmware.com> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: None (EX13-EDG-OU-001.vmware.com: namit@vmware.com does not designate permitted sender hosts) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Refactor the write to CR4 and its shadow value. This is done in preparation for the addition of an assertion to check that IRQs are disabled during CR4 update. No functional change. Cc: Andy Lutomirski Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "H. Peter Anvin" Cc: x86@kernel.org Signed-off-by: Nadav Amit --- arch/x86/include/asm/tlbflush.h | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h index 509046cfa5ce..e736f7f0ba92 100644 --- a/arch/x86/include/asm/tlbflush.h +++ b/arch/x86/include/asm/tlbflush.h @@ -173,17 +173,20 @@ static inline void cr4_init_shadow(void) this_cpu_write(cpu_tlbstate.cr4, __read_cr4()); } +static inline void __cr4_set(unsigned long cr4) +{ + this_cpu_write(cpu_tlbstate.cr4, cr4); + __write_cr4(cr4); +} + /* Set in this cpu's CR4. */ static inline void cr4_set_bits(unsigned long mask) { unsigned long cr4; cr4 = this_cpu_read(cpu_tlbstate.cr4); - if ((cr4 | mask) != cr4) { - cr4 |= mask; - this_cpu_write(cpu_tlbstate.cr4, cr4); - __write_cr4(cr4); - } + if ((cr4 | mask) != cr4) + __cr4_set(cr4 | mask); } /* Clear in this cpu's CR4. */ @@ -192,11 +195,8 @@ static inline void cr4_clear_bits(unsigned long mask) unsigned long cr4; cr4 = this_cpu_read(cpu_tlbstate.cr4); - if ((cr4 & ~mask) != cr4) { - cr4 &= ~mask; - this_cpu_write(cpu_tlbstate.cr4, cr4); - __write_cr4(cr4); - } + if ((cr4 & ~mask) != cr4) + __cr4_set(cr4 & ~mask); } static inline void cr4_toggle_bits(unsigned long mask) @@ -204,9 +204,7 @@ static inline void cr4_toggle_bits(unsigned long mask) unsigned long cr4; cr4 = this_cpu_read(cpu_tlbstate.cr4); - cr4 ^= mask; - this_cpu_write(cpu_tlbstate.cr4, cr4); - __write_cr4(cr4); + __cr4_set(cr4 ^ mask); } /* Read the CR4 shadow. */ -- 2.14.1 From 1585035120030489642@xxx Sat Nov 25 10:54:44 +0000 2017 X-GM-THRID: 1585035120030489642 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread