From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl1-x635.google.com (mail-pl1-x635.google.com [IPv6:2607:f8b0:4864:20::635]) by sourceware.org (Postfix) with ESMTPS id DB89F3855002 for ; Wed, 23 Jun 2021 21:37:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org DB89F3855002 Received: by mail-pl1-x635.google.com with SMTP id y13so1849148plc.8 for ; Wed, 23 Jun 2021 14:37:17 -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:references:in-reply-to:from:date :message-id:subject:to:cc; bh=JISPv34GX6uNAv2+xRQnc9W1FSDP/DmJDOdb1yOMuGU=; b=ALiebX3QPDQ54n+bfNgQP8zwrN9aowGmqDHXS0OVvK0o8D2IkkvQGsPerE7+g36Oij F8Gd5NzkfNob3lgLLg90v2RtHQPODJuqKavI/UktlCg5KA1lT7EDLKnnxKbVKrAjlmll 269t0cUELB4u5IZaNQLDFhXEO35fqfdKhIPHELY5ueaKpaqIYpf5EPPaT6eqR2jYPr9l d8dbV+XJseK61OPKumijKfsjxKdGJoa+hwydHqpj8Zos2zRnXJGVz9AuHCGYz3NyKCS6 pnXhKg4ZGMOpfwE8JO4hPC/uX6ogTIMbYFEiNB/ZbLXSN/uLdxx4rv39hDAK5KKH8oB2 rjaQ== X-Gm-Message-State: AOAM533Hgb69JeNm9mSfZtGzWCnJ/ErwiBNVOUprm4dtGUla1vLelWrX gD63kqHr9f3Zn3CYlbCt91AqZG9057MirZC6D1QIeOKd47o= X-Google-Smtp-Source: ABdhPJz51uVch/c6i1hGxgMMbnH8vtJ9NwMKXukivugrz6l5c+Pu2JuBSRckFjmE0UwnxR8+DhGnJu9+EXXshxHiEwI= X-Received: by 2002:a17:90a:4d84:: with SMTP id m4mr11713773pjh.136.1624484236899; Wed, 23 Jun 2021 14:37:16 -0700 (PDT) MIME-Version: 1.0 References: <20210623145419.3025540-1-adhemerval.zanella@linaro.org> <7b2557a7-9b86-7121-a366-5fee330f8364@linaro.org> In-Reply-To: <7b2557a7-9b86-7121-a366-5fee330f8364@linaro.org> From: "H.J. Lu" Date: Wed, 23 Jun 2021 14:36:41 -0700 Message-ID: Subject: [PATCH] x86: Copy IBT and SHSTK usable only if CET is enabled To: Adhemerval Zanella Cc: GNU C Library Content-Type: multipart/mixed; boundary="000000000000e2a2b005c575b530" X-Spam-Status: No, score=-3031.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jun 2021 21:37:19 -0000 --000000000000e2a2b005c575b530 Content-Type: text/plain; charset="UTF-8" On Wed, Jun 23, 2021 at 2:15 PM Adhemerval Zanella wrote: > > > > On 23/06/2021 17:41, H.J. Lu wrote: > >> @@ -216,12 +233,15 @@ do_test (int argc, char **argv) > >> fails += CHECK_PROC (sgx, SGX); > >> fails += CHECK_PROC (sgx_lc, SGX_LC); > >> fails += CHECK_PROC (sha_ni, SHA); > >> - fails += CHECK_PROC (shstk, SHSTK); > >> + fails += CHECK_PROC_OPTIN (shstk, SHSTK); > > > > Why do you need this? If kernel doesn't support SHSTK, it will be > > turned off: > > > > /* Check CET status. */ > > unsigned int cet_status = get_cet_status (); > > > > if ((cet_status & GNU_PROPERTY_X86_FEATURE_1_IBT) == 0) > > CPU_FEATURE_UNSET (cpu_features, IBT) > > if ((cet_status & GNU_PROPERTY_X86_FEATURE_1_SHSTK) == 0) > > CPU_FEATURE_UNSET (cpu_features, SHSTK) > > The problem is this is only enabled for CET_ENABLED, the configuration I am using > does not define __CET__. So the CPU I am using does support SHSTK, but the bit > ended up not being cleared by glibc. IBT and SHSTK usable bits are copied from CPUID feature bits and later cleared if kernel doesn't support CET. Copy IBT and SHSTK usable only if CET is enabled so that they aren't set on CET capable processors with non-CET enabled glibc. Can you try this? -- H.J. --000000000000e2a2b005c575b530 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-x86-Copy-IBT-and-SHSTK-usable-only-if-CET-is-enabled.patch" Content-Disposition: attachment; filename="0001-x86-Copy-IBT-and-SHSTK-usable-only-if-CET-is-enabled.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kq9zx73z0 RnJvbSA5NzZmNGUyYjljYjZlMDc2NjEyM2ExY2MzYzJkYzRjNDMzOWUwZTc1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IFdlZCwgMjMgSnVuIDIwMjEgMTQ6Mjc6NTggLTA3MDAKU3ViamVjdDogW1BBVENIXSB4ODY6IENv cHkgSUJUIGFuZCBTSFNUSyB1c2FibGUgb25seSBpZiBDRVQgaXMgZW5hYmxlZAoKSUJUIGFuZCBT SFNUSyB1c2FibGUgYml0cyBhcmUgY29waWVkIGZyb20gQ1BVSUQgZmVhdHVyZSBiaXRzIGFuZCBs YXRlcgpjbGVhcmVkIGlmIGtlcm5lbCBkb2Vzbid0IHN1cHBvcnQgQ0VULiAgQ29weSBJQlQgYW5k IFNIU1RLIHVzYWJsZSBvbmx5CmlmIENFVCBpcyBlbmFibGVkIHNvIHRoYXQgdGhleSBhcmVuJ3Qg c2V0IG9uIENFVCBjYXBhYmxlIHByb2Nlc3NvcnMKd2l0aCBub24tQ0VUIGVuYWJsZWQgZ2xpYmMu Ci0tLQogc3lzZGVwcy94ODYvY3B1LWZlYXR1cmVzLmMgfCA3ICsrKysrLS0KIDEgZmlsZSBjaGFu Z2VkLCA1IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3lzZGVw cy94ODYvY3B1LWZlYXR1cmVzLmMgYi9zeXNkZXBzL3g4Ni9jcHUtZmVhdHVyZXMuYwppbmRleCA4 MTI3NWRiZGZhLi5hMWQ4ZDExY2M0IDEwMDY0NAotLS0gYS9zeXNkZXBzL3g4Ni9jcHUtZmVhdHVy ZXMuYworKysgYi9zeXNkZXBzL3g4Ni9jcHUtZmVhdHVyZXMuYwpAQCAtNzYsNyArNzYsNiBAQCB1 cGRhdGVfdXNhYmxlIChzdHJ1Y3QgY3B1X2ZlYXR1cmVzICpjcHVfZmVhdHVyZXMpCiAgIENQVV9G RUFUVVJFX1NFVF9VU0FCTEUgKGNwdV9mZWF0dXJlcywgUFJFRkVUQ0hXVDEpOwogICBDUFVfRkVB VFVSRV9TRVRfVVNBQkxFIChjcHVfZmVhdHVyZXMsIE9TUEtFKTsKICAgQ1BVX0ZFQVRVUkVfU0VU X1VTQUJMRSAoY3B1X2ZlYXR1cmVzLCBXQUlUUEtHKTsKLSAgQ1BVX0ZFQVRVUkVfU0VUX1VTQUJM RSAoY3B1X2ZlYXR1cmVzLCBTSFNUSyk7CiAgIENQVV9GRUFUVVJFX1NFVF9VU0FCTEUgKGNwdV9m ZWF0dXJlcywgR0ZOSSk7CiAgIENQVV9GRUFUVVJFX1NFVF9VU0FCTEUgKGNwdV9mZWF0dXJlcywg UkRQSUQpOwogICBDUFVfRkVBVFVSRV9TRVRfVVNBQkxFIChjcHVfZmVhdHVyZXMsIFJEUkFORCk7 CkBAIC04Niw3ICs4NSw2IEBAIHVwZGF0ZV91c2FibGUgKHN0cnVjdCBjcHVfZmVhdHVyZXMgKmNw dV9mZWF0dXJlcykKICAgQ1BVX0ZFQVRVUkVfU0VUX1VTQUJMRSAoY3B1X2ZlYXR1cmVzLCBGU1JN KTsKICAgQ1BVX0ZFQVRVUkVfU0VUX1VTQUJMRSAoY3B1X2ZlYXR1cmVzLCBTRVJJQUxJWkUpOwog ICBDUFVfRkVBVFVSRV9TRVRfVVNBQkxFIChjcHVfZmVhdHVyZXMsIFRTWExEVFJLKTsKLSAgQ1BV X0ZFQVRVUkVfU0VUX1VTQUJMRSAoY3B1X2ZlYXR1cmVzLCBJQlQpOwogICBDUFVfRkVBVFVSRV9T RVRfVVNBQkxFIChjcHVfZmVhdHVyZXMsIExBSEY2NF9TQUhGNjQpOwogICBDUFVfRkVBVFVSRV9T RVRfVVNBQkxFIChjcHVfZmVhdHVyZXMsIExaQ05UKTsKICAgQ1BVX0ZFQVRVUkVfU0VUX1VTQUJM RSAoY3B1X2ZlYXR1cmVzLCBTU0U0QSk7CkBAIC05OSw2ICs5NywxMSBAQCB1cGRhdGVfdXNhYmxl IChzdHJ1Y3QgY3B1X2ZlYXR1cmVzICpjcHVfZmVhdHVyZXMpCiAgIENQVV9GRUFUVVJFX1NFVF9V U0FCTEUgKGNwdV9mZWF0dXJlcywgRlNSQ1MpOwogICBDUFVfRkVBVFVSRV9TRVRfVVNBQkxFIChj cHVfZmVhdHVyZXMsIFBUV1JJVEUpOwogCisjaWYgQ0VUX0VOQUJMRUQKKyAgQ1BVX0ZFQVRVUkVf U0VUX1VTQUJMRSAoY3B1X2ZlYXR1cmVzLCBJQlQpOworICBDUFVfRkVBVFVSRV9TRVRfVVNBQkxF IChjcHVfZmVhdHVyZXMsIFNIU1RLKTsKKyNlbmRpZgorCiAgIC8qIENhbiB3ZSBjYWxsIHhnZXRi dj8gICovCiAgIGlmIChDUFVfRkVBVFVSRVNfQ1BVX1AgKGNwdV9mZWF0dXJlcywgT1NYU0FWRSkp CiAgICAgewotLSAKMi4zMS4xCgo= --000000000000e2a2b005c575b530--