From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8E5DB17BB32 for ; Fri, 21 Jun 2024 22:10:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719007848; cv=none; b=pxY3F89aa5r6jETwYapfaNMJVy9NVHGxAe7F68a9mBXixG1qpaN+F8VvK/S9i6wmmhRxt14jI/DKoDIxZNJRZ/t1GN4LquYh9Rq1LmJiv4ajhqHnv9mb8K65Y09gheZvfbvvv1Kp2NjZct4k7qFJQ5d0J63867wIbctUHmAq90k= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1719007848; c=relaxed/simple; bh=ZEyjg1DGdHfvMHVyn3oiXgYoAsPB9kPjfgjytYscvC8=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=Fe01hW8UKTcexk5Gyw5dNomfjyMihOkgwI3YnUdvCjB68g2OYTJLa7gWX+v7srZTeW1w6/qDGJ9XHp7jEVfjjGhOhs9vFjh58THI1cj3Y1u60qC0xMO9m3TiYHs1RQVSeSbo8kqUlYQWesFzar/sxKXrro5gBFdRFHCWQNhRjhc= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com; spf=pass smtp.mailfrom=rivosinc.com; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b=HXM3+qjX; arc=none smtp.client-ip=209.85.214.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=rivosinc.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=rivosinc-com.20230601.gappssmtp.com header.i=@rivosinc-com.20230601.gappssmtp.com header.b="HXM3+qjX" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-1f4a5344ec7so17317655ad.1 for ; Fri, 21 Jun 2024 15:10:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1719007846; x=1719612646; darn=vger.kernel.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=W6zNTGp1aTwOtvLdnUXPrvSqBQrllJdVcW2FVVgDB5g=; b=HXM3+qjXxtXZ59+HmVscZ/hJS6if3zHHfXT84Pi+RsoH+Vteq9ece+6LBs+pm4XXDN ZqN5p91ivkN4iEO2UWDal+H9R/nkwhF0mnrNCZegFNcKlXvD6q+7wyRPnyXVge7W0HIx vG8rGq8j+Mq3qFbRKFaYO0RHGB5NYVAA4r+g5dafKAZbK8smEUBlUV63fPJHD61+BNZQ RxLqQvVIcISTeoWD1MsVcsPqDM+IpX1wtkws2YOeDnlInOjMIOlDMHE1x/PQRogVHsFL IhDVGv0Sd0oGzHWkaA6tpLOWLK+V105PqUmeputuqWPzU4aUBjR5qVSIZaP1Ab3tQta3 JSlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719007846; x=1719612646; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=W6zNTGp1aTwOtvLdnUXPrvSqBQrllJdVcW2FVVgDB5g=; b=wNfYIXZzujjvgiP3jw6AuFA+6Zn79ZqY3AFV9zjce5tIHG/ET7e2TDoHlljtBCrwsJ xvtdO6YZuiPNWkJFqMvrF/tVsmI8E2mgBKk0zkgxV5g4LZkovofjDoZ9mrqNebCuIZIA Bi0pNg3H+9AwpAFFLANmaPAERkvL9K8R3r11ucWpSUX6RMvj2bxesRTpsnGtilDY7/id oNPbkw1J7a7W5iBp1N/AB7QffWp/xchbltOgC+1e/nKelcvY8tQyzoMogWeNFWMoMvni TyDHMlONn2+YTu9FPgIwbgKzYFPAGGuQOyz0fnEONSE0bLLMCxIA/Qe6BcqGobl5iRlm cOMg== X-Forwarded-Encrypted: i=1; AJvYcCVaG6QGwSDVONje11BcvNI7htj2S5C+dAgKFemvPjjeNtXtT4i1e2ddWksAes3tOx4rRUjYrO34pEmW70i9NAEHW+sO2tjIqHfV X-Gm-Message-State: AOJu0YzOWKivrVuD3ZQ4wwoPGOQ08Pl9BpT/vVSXkidvWnUyPO0fbkhM /JjCIKONbFndgtUW3gxtPgbdA+EznYk8j0tMupGq/tuCenQ+g0viOTXljA1TsLQ= X-Google-Smtp-Source: AGHT+IFodC/KHmQCg2O0jJBVOPuXhUN5lF51VkVlsO14ggFbC93W0YN4q838joM1PZnjh/NG3CSEVg== X-Received: by 2002:a17:902:e84d:b0:1f9:f906:9082 with SMTP id d9443c01a7336-1fa04a42126mr12275615ad.7.1719007845678; Fri, 21 Jun 2024 15:10:45 -0700 (PDT) Received: from ghost ([2601:647:5700:6860:e8dd:a296:71d5:2490]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f9eb5e030dsm18868865ad.218.2024.06.21.15.10.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Jun 2024 15:10:45 -0700 (PDT) Date: Fri, 21 Jun 2024 15:10:42 -0700 From: Charlie Jenkins To: Jisheng Zhang Cc: Paul Walmsley , Palmer Dabbelt , Albert Ou , Ard Biesheuvel , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-efi@vger.kernel.org Subject: Re: [PATCH] riscv: enable HAVE_ARCH_STACKLEAK Message-ID: References: <20240617123029.723-1-jszhang@kernel.org> Precedence: bulk X-Mailing-List: linux-efi@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20240617123029.723-1-jszhang@kernel.org> On Mon, Jun 17, 2024 at 08:30:29PM +0800, Jisheng Zhang wrote: > Add support for the stackleak feature. Whenever the kernel returns to user > space the kernel stack is filled with a poison value. > > At the same time, disables the plugin in EFI stub code because EFI stub > is out of scope for the protection. > > Tested on qemu and milkv duo: > / # echo STACKLEAK_ERASING > /sys/kernel/debug/provoke-crash/DIRECT > [ 38.675575] lkdtm: Performing direct entry STACKLEAK_ERASING > [ 38.678448] lkdtm: stackleak stack usage: > [ 38.678448] high offset: 288 bytes > [ 38.678448] current: 496 bytes > [ 38.678448] lowest: 1328 bytes > [ 38.678448] tracked: 1328 bytes > [ 38.678448] untracked: 448 bytes > [ 38.678448] poisoned: 14312 bytes > [ 38.678448] low offset: 8 bytes > [ 38.689887] lkdtm: OK: the rest of the thread stack is properly erased > > Signed-off-by: Jisheng Zhang > --- > arch/riscv/Kconfig | 1 + > arch/riscv/kernel/entry.S | 4 ++++ > drivers/firmware/efi/libstub/Makefile | 3 ++- > 3 files changed, 7 insertions(+), 1 deletion(-) > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index 0525ee2d63c7..9cbfdffec96c 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -118,6 +118,7 @@ config RISCV > select HAVE_ARCH_MMAP_RND_COMPAT_BITS if COMPAT > select HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET > select HAVE_ARCH_SECCOMP_FILTER > + select HAVE_ARCH_STACKLEAK When this is selected, stackleak.h include arch/riscv/include/asm/thread_info.h without sizes.h and I hit: ./arch/riscv/include/asm/thread_info.h:30:33: error: ‘SZ_4K’ undeclared here (not in a function) 30 | #define OVERFLOW_STACK_SIZE SZ_4K | ^~~~~ Adding "#include " to thread_info.h resolves the issue. I am testing this based on 6.10-rc4. Did you encounter this? - Charlie > select HAVE_ARCH_THREAD_STRUCT_WHITELIST > select HAVE_ARCH_TRACEHOOK > select HAVE_ARCH_TRANSPARENT_HUGEPAGE if 64BIT && MMU > diff --git a/arch/riscv/kernel/entry.S b/arch/riscv/kernel/entry.S > index 68a24cf9481a..80ff55a26d13 100644 > --- a/arch/riscv/kernel/entry.S > +++ b/arch/riscv/kernel/entry.S > @@ -130,6 +130,10 @@ SYM_CODE_START_NOALIGN(ret_from_exception) > #endif > bnez s0, 1f > > +#ifdef CONFIG_GCC_PLUGIN_STACKLEAK > + call stackleak_erase_on_task_stack > +#endif > + > /* Save unwound kernel stack pointer in thread_info */ > addi s0, sp, PT_SIZE_ON_STACK > REG_S s0, TASK_TI_KERNEL_SP(tp) > diff --git a/drivers/firmware/efi/libstub/Makefile b/drivers/firmware/efi/libstub/Makefile > index 06f0428a723c..3a9521c57641 100644 > --- a/drivers/firmware/efi/libstub/Makefile > +++ b/drivers/firmware/efi/libstub/Makefile > @@ -28,7 +28,8 @@ cflags-$(CONFIG_ARM) += -DEFI_HAVE_STRLEN -DEFI_HAVE_STRNLEN \ > -DEFI_HAVE_MEMCHR -DEFI_HAVE_STRRCHR \ > -DEFI_HAVE_STRCMP -fno-builtin -fpic \ > $(call cc-option,-mno-single-pic-base) > -cflags-$(CONFIG_RISCV) += -fpic -DNO_ALTERNATIVE -mno-relax > +cflags-$(CONFIG_RISCV) += -fpic -DNO_ALTERNATIVE -mno-relax \ > + $(DISABLE_STACKLEAK_PLUGIN) > cflags-$(CONFIG_LOONGARCH) += -fpie > > cflags-$(CONFIG_EFI_PARAMS_FROM_FDT) += -I$(srctree)/scripts/dtc/libfdt > -- > 2.43.0 > > > _______________________________________________ > linux-riscv mailing list > linux-riscv@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-riscv From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 108DBC27C78 for ; Fri, 21 Jun 2024 22:10:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=sZlJf4rCLlLDhF+ibUxZ5V7nnm/VvZOtiw+g/RMBxF8=; b=scujY+XCszDrcD gJn+pO74cwtTg121KLIzjNz3QQEq8wLhpm112sEHdPEpweqDqHGPlk7jWkk5xN88hS0L9C4+mJucm nA9xIzWP3Srnj67D6CKSaxmRfMs0gop/VKeuZk1XHl2LBms2f5qEm6HgAhMHUHR+OZOzdIazrw0AY 6Qk4LZq7O22vB3WF27FIS4S9ILG0UGTtESfjBqGxb+1aabpceDQ9/1w6IdWgBTJWqlwCHCX5p3fiO Ea4OiDnxarZ65QnvlPYjuHHyTADcgMih3FEjxdw35IewWQqnHvNXCaWrwIwTK+z6hA2kNfvUsX+xi DOZWGemx4Ulm6oOfPXMQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sKmT4-0000000AhmC-1tsZ; Fri, 21 Jun 2024 22:10:50 +0000 Received: from mail-pg1-x52d.google.com ([2607:f8b0:4864:20::52d]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sKmT1-0000000AhlZ-1H0B for linux-riscv@lists.infradead.org; Fri, 21 Jun 2024 22:10:49 +0000 Received: by mail-pg1-x52d.google.com with SMTP id 41be03b00d2f7-681bc7f50d0so2592910a12.0 for ; Fri, 21 Jun 2024 15:10:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20230601.gappssmtp.com; s=20230601; t=1719007846; x=1719612646; darn=lists.infradead.org; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=W6zNTGp1aTwOtvLdnUXPrvSqBQrllJdVcW2FVVgDB5g=; b=Edt/hQi0bRNKwwzOy3FGJdg90xHKXQ6ePe1FhA6iIoLS/25HSvOlzJXiucIq5Fi5aY 2MBgV1qtuAUXrdVR9TBAJQIuAODRZfQvzUzKGnPYZq14tSMepL979XE/YGeaaLDPu5kD op+71hVrsneg1LMoqhgRYmYxa4ofhaVxcK4rvwa6TTpGl4Hg0011ZkxAYd2wERvdPhgr /EE28Wv3lOL/Mu4ncHXB+IsYyQ3mG7UXpWzShbjIzP9zZ7/I4k1uo93Y51X5uNQEbmt1 KQ9SaJRtPi9zI8rqX0XfWNSLoVmpTzK2bKUU6dlcq9iYitJyjnd/e6zyozTXNFpdVFFN YkDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719007846; x=1719612646; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=W6zNTGp1aTwOtvLdnUXPrvSqBQrllJdVcW2FVVgDB5g=; b=pmOAg+BUsbuDQPAYOLbZDdgzhmVbgI/0wuiS2wEvXVjY6uclkq3atbvwTw6iVaIfgx DnUS66WYvAYkROAtmyOFuAtB+UA9Gs5JPW3SpQ/KQh2+Hlaorjh9WQJtxKUvFB1cXejM 4QXcibSL6yilZNofbI903U/wnKxGnMn/UzHUQakaNg1+Jirwn38hX0H+I2ykDbeVJ6HP EOfQQcEygblzcoqpxwl09Ir8m70H4LRDOe4XaUa1O0QPxuAT5XnJEiShu/QGdG7DfFUd rzddhI1GirlhczkXbr+3GUElfdczD5Y23WtvTjoJidCAo+wwnH+3zeA6St3AkKlClw2b dXpg== X-Forwarded-Encrypted: i=1; AJvYcCXYvxol5mSvnhdCabzXOrwk2fiQlR6vFb4skaEw22h9R82eSr8oTDYeeSop5Q9sWkFvsz+iQY5uLwDlDmd0ouKgva8b6XYeMqOTzdfxIT3c X-Gm-Message-State: AOJu0YwsoKvBunoAZtoVpDPEMhBZ9DLhNAZFtYGaHlZJRsQ/tC8fWWXK UWUTD/kAM2t3H06PV+HxiqIWCQZ4FIgu+5hEM+aoic4CMzfEIgtl69IOXmTxV5U= X-Google-Smtp-Source: AGHT+IFodC/KHmQCg2O0jJBVOPuXhUN5lF51VkVlsO14ggFbC93W0YN4q838joM1PZnjh/NG3CSEVg== X-Received: by 2002:a17:902:e84d:b0:1f9:f906:9082 with SMTP id d9443c01a7336-1fa04a42126mr12275615ad.7.1719007845678; Fri, 21 Jun 2024 15:10:45 -0700 (PDT) Received: from ghost ([2601:647:5700:6860:e8dd:a296:71d5:2490]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-1f9eb5e030dsm18868865ad.218.2024.06.21.15.10.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Jun 2024 15:10:45 -0700 (PDT) Date: Fri, 21 Jun 2024 15:10:42 -0700 From: Charlie Jenkins To: Jisheng Zhang Cc: Paul Walmsley , Palmer Dabbelt , Albert Ou , Ard Biesheuvel , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-efi@vger.kernel.org Subject: Re: [PATCH] riscv: enable HAVE_ARCH_STACKLEAK Message-ID: References: <20240617123029.723-1-jszhang@kernel.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20240617123029.723-1-jszhang@kernel.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240621_151047_370068_201A99EF X-CRM114-Status: GOOD ( 19.46 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gTW9uLCBKdW4gMTcsIDIwMjQgYXQgMDg6MzA6MjlQTSArMDgwMCwgSmlzaGVuZyBaaGFuZyB3 cm90ZToKPiBBZGQgc3VwcG9ydCBmb3IgdGhlIHN0YWNrbGVhayBmZWF0dXJlLiBXaGVuZXZlciB0 aGUga2VybmVsIHJldHVybnMgdG8gdXNlcgo+IHNwYWNlIHRoZSBrZXJuZWwgc3RhY2sgaXMgZmls bGVkIHdpdGggYSBwb2lzb24gdmFsdWUuCj4gCj4gQXQgdGhlIHNhbWUgdGltZSwgZGlzYWJsZXMg dGhlIHBsdWdpbiBpbiBFRkkgc3R1YiBjb2RlIGJlY2F1c2UgRUZJIHN0dWIKPiBpcyBvdXQgb2Yg c2NvcGUgZm9yIHRoZSBwcm90ZWN0aW9uLgo+IAo+IFRlc3RlZCBvbiBxZW11IGFuZCBtaWxrdiBk dW86Cj4gLyAjIGVjaG8gU1RBQ0tMRUFLX0VSQVNJTkcgPiAvc3lzL2tlcm5lbC9kZWJ1Zy9wcm92 b2tlLWNyYXNoL0RJUkVDVAo+IFsgICAzOC42NzU1NzVdIGxrZHRtOiBQZXJmb3JtaW5nIGRpcmVj dCBlbnRyeSBTVEFDS0xFQUtfRVJBU0lORwo+IFsgICAzOC42Nzg0NDhdIGxrZHRtOiBzdGFja2xl YWsgc3RhY2sgdXNhZ2U6Cj4gWyAgIDM4LjY3ODQ0OF0gICBoaWdoIG9mZnNldDogMjg4IGJ5dGVz Cj4gWyAgIDM4LjY3ODQ0OF0gICBjdXJyZW50OiAgICAgNDk2IGJ5dGVzCj4gWyAgIDM4LjY3ODQ0 OF0gICBsb3dlc3Q6ICAgICAgMTMyOCBieXRlcwo+IFsgICAzOC42Nzg0NDhdICAgdHJhY2tlZDog ICAgIDEzMjggYnl0ZXMKPiBbICAgMzguNjc4NDQ4XSAgIHVudHJhY2tlZDogICA0NDggYnl0ZXMK PiBbICAgMzguNjc4NDQ4XSAgIHBvaXNvbmVkOiAgICAxNDMxMiBieXRlcwo+IFsgICAzOC42Nzg0 NDhdICAgbG93IG9mZnNldDogIDggYnl0ZXMKPiBbICAgMzguNjg5ODg3XSBsa2R0bTogT0s6IHRo ZSByZXN0IG9mIHRoZSB0aHJlYWQgc3RhY2sgaXMgcHJvcGVybHkgZXJhc2VkCj4gCj4gU2lnbmVk LW9mZi1ieTogSmlzaGVuZyBaaGFuZyA8anN6aGFuZ0BrZXJuZWwub3JnPgo+IC0tLQo+ICBhcmNo L3Jpc2N2L0tjb25maWcgICAgICAgICAgICAgICAgICAgIHwgMSArCj4gIGFyY2gvcmlzY3Yva2Vy bmVsL2VudHJ5LlMgICAgICAgICAgICAgfCA0ICsrKysKPiAgZHJpdmVycy9maXJtd2FyZS9lZmkv bGlic3R1Yi9NYWtlZmlsZSB8IDMgKystCj4gIDMgZmlsZXMgY2hhbmdlZCwgNyBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvS2NvbmZpZyBi L2FyY2gvcmlzY3YvS2NvbmZpZwo+IGluZGV4IDA1MjVlZTJkNjNjNy4uOWNiZmRmZmVjOTZjIDEw MDY0NAo+IC0tLSBhL2FyY2gvcmlzY3YvS2NvbmZpZwo+ICsrKyBiL2FyY2gvcmlzY3YvS2NvbmZp Zwo+IEBAIC0xMTgsNiArMTE4LDcgQEAgY29uZmlnIFJJU0NWCj4gIAlzZWxlY3QgSEFWRV9BUkNI X01NQVBfUk5EX0NPTVBBVF9CSVRTIGlmIENPTVBBVAo+ICAJc2VsZWN0IEhBVkVfQVJDSF9SQU5E T01JWkVfS1NUQUNLX09GRlNFVAo+ICAJc2VsZWN0IEhBVkVfQVJDSF9TRUNDT01QX0ZJTFRFUgo+ ICsJc2VsZWN0IEhBVkVfQVJDSF9TVEFDS0xFQUsKCldoZW4gdGhpcyBpcyBzZWxlY3RlZCwgc3Rh Y2tsZWFrLmggaW5jbHVkZQphcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3RocmVhZF9pbmZvLmggd2l0 aG91dCBzaXplcy5oIGFuZCBJIGhpdDoKCi4vYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS90aHJlYWRf aW5mby5oOjMwOjMzOiBlcnJvcjog4oCYU1pfNEvigJkgdW5kZWNsYXJlZCBoZXJlIChub3QgaW4g YSBmdW5jdGlvbikKICAgMzAgfCAjZGVmaW5lIE9WRVJGTE9XX1NUQUNLX1NJWkUgICAgIFNaXzRL CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fgoKQWRkaW5nICIj aW5jbHVkZSA8bGludXgvc2l6ZXMuaD4iIHRvIHRocmVhZF9pbmZvLmggcmVzb2x2ZXMgdGhlIGlz c3VlLgpJIGFtIHRlc3RpbmcgdGhpcyBiYXNlZCBvbiA2LjEwLXJjNC4gRGlkIHlvdSBlbmNvdW50 ZXIgdGhpcz8KCi0gQ2hhcmxpZQoKPiAgCXNlbGVjdCBIQVZFX0FSQ0hfVEhSRUFEX1NUUlVDVF9X SElURUxJU1QKPiAgCXNlbGVjdCBIQVZFX0FSQ0hfVFJBQ0VIT09LCj4gIAlzZWxlY3QgSEFWRV9B UkNIX1RSQU5TUEFSRU5UX0hVR0VQQUdFIGlmIDY0QklUICYmIE1NVQo+IGRpZmYgLS1naXQgYS9h cmNoL3Jpc2N2L2tlcm5lbC9lbnRyeS5TIGIvYXJjaC9yaXNjdi9rZXJuZWwvZW50cnkuUwo+IGlu ZGV4IDY4YTI0Y2Y5NDgxYS4uODBmZjU1YTI2ZDEzIDEwMDY0NAo+IC0tLSBhL2FyY2gvcmlzY3Yv a2VybmVsL2VudHJ5LlMKPiArKysgYi9hcmNoL3Jpc2N2L2tlcm5lbC9lbnRyeS5TCj4gQEAgLTEz MCw2ICsxMzAsMTAgQEAgU1lNX0NPREVfU1RBUlRfTk9BTElHTihyZXRfZnJvbV9leGNlcHRpb24p Cj4gICNlbmRpZgo+ICAJYm5leiBzMCwgMWYKPiAgCj4gKyNpZmRlZiBDT05GSUdfR0NDX1BMVUdJ Tl9TVEFDS0xFQUsKPiArCWNhbGwJc3RhY2tsZWFrX2VyYXNlX29uX3Rhc2tfc3RhY2sKPiArI2Vu ZGlmCj4gKwo+ICAJLyogU2F2ZSB1bndvdW5kIGtlcm5lbCBzdGFjayBwb2ludGVyIGluIHRocmVh ZF9pbmZvICovCj4gIAlhZGRpIHMwLCBzcCwgUFRfU0laRV9PTl9TVEFDSwo+ICAJUkVHX1MgczAs IFRBU0tfVElfS0VSTkVMX1NQKHRwKQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2Zpcm13YXJlL2Vm aS9saWJzdHViL01ha2VmaWxlIGIvZHJpdmVycy9maXJtd2FyZS9lZmkvbGlic3R1Yi9NYWtlZmls ZQo+IGluZGV4IDA2ZjA0MjhhNzIzYy4uM2E5NTIxYzU3NjQxIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZmlybXdhcmUvZWZpL2xpYnN0dWIvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL2Zpcm13YXJl L2VmaS9saWJzdHViL01ha2VmaWxlCj4gQEAgLTI4LDcgKzI4LDggQEAgY2ZsYWdzLSQoQ09ORklH X0FSTSkJCSs9IC1ERUZJX0hBVkVfU1RSTEVOIC1ERUZJX0hBVkVfU1RSTkxFTiBcCj4gIAkJCQkg ICAtREVGSV9IQVZFX01FTUNIUiAtREVGSV9IQVZFX1NUUlJDSFIgXAo+ICAJCQkJICAgLURFRklf SEFWRV9TVFJDTVAgLWZuby1idWlsdGluIC1mcGljIFwKPiAgCQkJCSAgICQoY2FsbCBjYy1vcHRp b24sLW1uby1zaW5nbGUtcGljLWJhc2UpCj4gLWNmbGFncy0kKENPTkZJR19SSVNDVikJCSs9IC1m cGljIC1ETk9fQUxURVJOQVRJVkUgLW1uby1yZWxheAo+ICtjZmxhZ3MtJChDT05GSUdfUklTQ1Yp CQkrPSAtZnBpYyAtRE5PX0FMVEVSTkFUSVZFIC1tbm8tcmVsYXggXAo+ICsJCQkJICAgJChESVNB QkxFX1NUQUNLTEVBS19QTFVHSU4pCj4gIGNmbGFncy0kKENPTkZJR19MT09OR0FSQ0gpCSs9IC1m cGllCj4gIAo+ICBjZmxhZ3MtJChDT05GSUdfRUZJX1BBUkFNU19GUk9NX0ZEVCkJKz0gLUkkKHNy Y3RyZWUpL3NjcmlwdHMvZHRjL2xpYmZkdAo+IC0tIAo+IDIuNDMuMAo+IAo+IAo+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gbGludXgtcmlzY3YgbWFp bGluZyBsaXN0Cj4gbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwo+IGh0dHA6Ly9saXN0 cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1haWxpbmcg bGlzdApsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRl YWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK