Received: by 2002:a89:413:0:b0:1fd:dba5:e537 with SMTP id m19csp1372855lqs; Sat, 15 Jun 2024 06:13:14 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCWueBe9w/v2/GII1ncyVak+Cs2/Fw+Br66rDEiIHWxQXOjZ4LK9sW9D42h3lztYvoLbgN1Tx/fN7aXCMKAf8gqZ49pAPRGrlIo6kBquGQ== X-Google-Smtp-Source: AGHT+IGSIpDHq+VEG+Y99dKaVCP1+zGlnoUjrtwQuXAJ1fH9qGfJCIr8lhP6JtzbhtoomLzBruE9 X-Received: by 2002:a17:902:e84a:b0:1f8:4fdd:9880 with SMTP id d9443c01a7336-1f8625cf157mr72613025ad.23.1718457193864; Sat, 15 Jun 2024 06:13:13 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1718457193; cv=pass; d=google.com; s=arc-20160816; b=wAK74rJ7VcD2abs7OnaiKDSDRx0iykZV9SfkoM0tx0LAGNIHGIycmw8UjlIlXnTIA/ SQIjAWdoBbDyceZPPnBzId/L7t1/RNvFJRink0zign/FPMVFMHyyXSTc9L4qrBVQ9Mip H2qF8sJJzkyZP825z3eCFa9oMTIetoxCeUbrsPOo3Ekhb66vrgpRKsyBJXi2oL6Kt5LQ JPvmhB5EFuEfsVs88ufNs4bCYdQCAsd3FnEOLtI2K01yivmDhwBCNEF/jRRvKJRsxd4y iPRtlB57oqC8Z2o20pjjZPeX/ZJSXY1LkZM6pOqOHH3UC2b66/tAumvEeX8xq0GRymEK 4/gw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:list-unsubscribe:list-subscribe:list-id:precedence :user-agent:references:in-reply-to:date:cc:to:from:subject :message-id:dkim-signature; bh=pdtEsBdLPIbgOg4suQ4hzlnwFIkjmXrlq9YF3ZbRTak=; fh=iQherbPu9uesogBCz2ssnGdAxlsMJMXfr3s73kprXS0=; b=c4zPgKm0eStMvq6HInX+7tJPK222OQ0kb4ebf2NIbe+d93pMCJvwXDxoyUDeAf5ur8 mwQrvfWhNWOnTbuw/qiP3YLZXfql5UJjsicbVUSud7W8rQdW9ngqjhVKNJ4QSVNRycNc iajU8M6DahHmHcGU/En+DjhTtCTdAZFxOJlYHp7pVTgJDurUU73zkz08y0O5wS3srGm9 PYVyN1EaGtmiN95HIO9uaDgBsTsXgVUeVGVg8gzdiUkKTQOb3b8A9tLePI4KDQ1lDjas XlusBKb6nFrP/tXe5AA5EgOq7wgi8HMJiaRVL6Be/uzQ4DxGiDkGQ7EOJrEVtxV1fXsz FJyQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@xry111.site header.s=default header.b=a6Ry6rT2; arc=pass (i=1 spf=pass spfdomain=xry111.site dkim=pass dkdomain=xry111.site dmarc=pass fromdomain=xry111.site); spf=pass (google.com: domain of linux-kernel+bounces-215894-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-215894-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=xry111.site Return-Path: Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org. [2604:1380:40f1:3f00::1]) by mx.google.com with ESMTPS id d9443c01a7336-1f855f076eesi54843055ad.532.2024.06.15.06.13.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 15 Jun 2024 06:13:13 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-215894-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) client-ip=2604:1380:40f1:3f00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@xry111.site header.s=default header.b=a6Ry6rT2; arc=pass (i=1 spf=pass spfdomain=xry111.site dkim=pass dkdomain=xry111.site dmarc=pass fromdomain=xry111.site); spf=pass (google.com: domain of linux-kernel+bounces-215894-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:40f1:3f00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-215894-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=xry111.site Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id D179FB21B87 for ; Sat, 15 Jun 2024 13:13:07 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 409D749626; Sat, 15 Jun 2024 13:12:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=xry111.site header.i=@xry111.site header.b="a6Ry6rT2" Received: from xry111.site (xry111.site [89.208.246.23]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E622B482DD; Sat, 15 Jun 2024 13:12:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=89.208.246.23 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718457177; cv=none; b=MC/mE3TlMAfB4G0CoePKl8ttK7BpvYdcHa44rARXH7T1T8Nlt/XEmI233fu3RpkLL7MDQRAG3l7aiav8SxuSykZzXh67h3x7AB3VmuBTOkh+UVeKAWB3eYl6F7YAnrfliw1Pg4JcJbThWDlhI3YskAyDmop6WjQJeNhPyE2jTns= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718457177; c=relaxed/simple; bh=B+byxdDHxjrZUhpBVbkIuJhaf9FOb7tIpn08cQRB8iM=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=NmuVaFlBqGFUPgcBmBJc63JIp0PxQvMk+E8qsN+LwKKqz90G48xwxRS/beKkraaCRXMlXSrGFrhN2SvnwWJzTXROY1YyFDqygxxmZDvsGmUtmCiju2OqwN7DmuwccSw+JOxNaTIci1CpSpm8VtbTRMLWK6cIJckgjBi43uYbm4k= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=xry111.site; spf=pass smtp.mailfrom=xry111.site; dkim=pass (1024-bit key) header.d=xry111.site header.i=@xry111.site header.b=a6Ry6rT2; arc=none smtp.client-ip=89.208.246.23 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=xry111.site Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=xry111.site DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=xry111.site; s=default; t=1718457173; bh=B+byxdDHxjrZUhpBVbkIuJhaf9FOb7tIpn08cQRB8iM=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=a6Ry6rT2Apvt4esGBXHHCYGl+lmnmJFUzPirbfSunfg+oXAcQs8xwTW9f5eLcBgms iYUxGB2K/y9ItZAU8fK7CrrAqYXa99c1090+H8h/Ne56B4zOPCxlQ3oEgYBTKmXpo4 UcvDb5qu7Rl1A9v9ohnGe9O3lzo+fvyM6ylpIcm4= Received: from [IPv6:240e:457:1130:3532:fcd1:d9f4:2ad1:565c] (unknown [IPv6:240e:457:1130:3532:fcd1:d9f4:2ad1:565c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature ECDSA (P-384) server-digest SHA384) (Client did not present a certificate) (Authenticated sender: xry111@xry111.site) by xry111.site (Postfix) with ESMTPSA id 4550066EDB; Sat, 15 Jun 2024 09:12:41 -0400 (EDT) Message-ID: Subject: Re: [PATCH] LoongArch: Define __ARCH_WANT_NEW_STAT in unistd.h From: Xi Ruoyao To: Arnd Bergmann , Huacai Chen Cc: Huacai Chen , loongarch@lists.linux.dev, Linux-Arch , Xuefeng Li , guoren , WANG Xuerui , Jiaxun Yang , linux-kernel@vger.kernel.org, loongson-kernel@lists.loongnix.cn, stable@vger.kernel.org Date: Sat, 15 Jun 2024 21:12:26 +0800 In-Reply-To: <08ff168afc09fd108ec489a3c9360d4e704fa7dc.camel@xry111.site> References: <20240511100157.2334539-1-chenhuacai@loongson.cn> <56ace686-d4b4-4b4c-a8a6-af06ec0d48f2@app.fastmail.com> <08ff168afc09fd108ec489a3c9360d4e704fa7dc.camel@xry111.site> Content-Type: multipart/mixed; boundary="=-YxhasIhtdyR/P3cgOt/8" User-Agent: Evolution 3.52.2 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 --=-YxhasIhtdyR/P3cgOt/8 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, 2024-06-15 at 20:12 +0800, Xi Ruoyao wrote: > On Sat, 2024-06-15 at 13:47 +0200, Arnd Bergmann wrote: >=20 > /* snip */ >=20 > > > > > We can only wait for the seccomp side to be fixed now? Or we can = get > > > > > this patch upstream for LoongArch64 at the moment, and wait for > > > > > seccomp to fix RISCV32 (and LoongArch32) in future? > > > >=20 > > > > I'm wondering why not just introduce a new syscall or extend statx = with > > > > a new flag, as we've discussed many times.=C2=A0 They have their ow= n > > > > disadvantages but better than this, IMO. > > > We should move things forward, in any way. :) > >=20 > > Wouldn't it be sufficient to move the AT_EMPTY_PATH hack > > from vfs_fstatat() to vfs_statx() so we can make them > > behave the same way? > >=20 > > As far as I can tell, the only difference between the two is > > that fstatat64() and similar already has added the check for > > zero-length strings in order to make using vfs_fstatat() > > fast and safe when called from glibc stat(). >=20 > Do you mean https://git.kernel.org/torvalds/c/9013c51c630a?=C2=A0 It (onl= y > partially) fix the performance issue but it won't help seccomp.=C2=A0 The > problem is you cannot check if the string is zero-length with seccomp. > Thus seccomp cannot audit fstatat properly as well. >=20 > In [Firefox] *all* fstatat (and statx) calls are trapped and *the signal > handler* audit this fstatat call.=C2=A0 If flags & AT_EMPTY_PATH and path= is > zero-length, it calls fstat to do the job.=C2=A0 But on LoongArch there i= s no > way to "do the job" as the only stat-family call is statx. >=20 > [Firefox]:https://searchfox.org/mozilla-central/source/security/sandbox/l= inux/SandboxFilter.cpp#364 Just spent some brain cycles to make a quick hack adding a new statx flag. Patch attached. --=20 Xi Ruoyao School of Aerospace Science and Technology, Xidian University --=-YxhasIhtdyR/P3cgOt/8 Content-Disposition: attachment; filename="0001-RFC-vfs-Add-AT_FORCE_EMPTY_PATH.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-RFC-vfs-Add-AT_FORCE_EMPTY_PATH.patch"; charset="UTF-8" RnJvbSAxNmQwMmExYzQ0ZTVlZWQyZWYyYTJjYzMyMjBkMGE3NGIzNWRmODIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBYaSBSdW95YW8gPHhyeTExMUB4cnkxMTEuc2l0ZT4KRGF0ZTog U2F0LCAxNSBKdW4gMjAyNCAyMDo0NDowNCArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIFJGQzogdmZz OiBBZGQgQVRfRk9SQ0VfRU1QVFlfUEFUSAoKSXQgYmVoYXZlcyBhcyBpZiBBVF9FTVBUWV9QQVRI IHdpdGggYW4gZW1wdHkgcGF0aCAodGhlIGlucHV0IHBhdGggd2lsbApiZSBpZ25vcmVkKS4KCkl0 J3MgYmV0dGVyIHRoYW4gQVRfRU1QVFlfUEFUSCBmb3IgaW1wbGVtZW50aW5nIGZzdGF0IHdpdGgg c3RhdHggKGl0J3MKbmVlZGVkIGFmdGVyIDIwMzcgZm9yIDMyLWJpdCBzeXN0ZW1zKSBiZWNhdXNl IHRoZXJlJ3Mgbm8gbmVlZCB0byBjb3B5CmZyb20gdXNlciwgYW5kIGl0J3MgYXVkaXRhYmxlIGJ5 IHNlY2NvbXAgKHRob3VnaCBwZXJzb25hbGx5IEknbSByZWFsbHkKbm90IGEgZmFuIGlmIHNlY2Nv bXApLgoKU2lnbmVkLW9mZi1ieTogWGkgUnVveWFvIDx4cnkxMTFAeHJ5MTExLnNpdGU+Ci0tLQog ZnMvbmFtZWkuYyAgICAgICAgICAgICAgICAgfCA4ICsrKysrKystCiBmcy9zdGF0LmMgICAgICAg ICAgICAgICAgICB8IDQgKysrLQogaW5jbHVkZS9saW51eC9uYW1laS5oICAgICAgfCA0ICsrKysK IGluY2x1ZGUvdHJhY2UvbWlzYy9mcy5oICAgIHwgMSArCiBpbmNsdWRlL3VhcGkvbGludXgvZmNu dGwuaCB8IDMgKysrCiA1IGZpbGVzIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZnMvbmFtZWkuYyBiL2ZzL25hbWVpLmMKaW5kZXggMzdmYjBh OGFhMDlhLi4yZjAxMmVjOGYwNzIgMTAwNjQ0Ci0tLSBhL2ZzL25hbWVpLmMKKysrIGIvZnMvbmFt ZWkuYwpAQCAtMTQ3LDcgKzE0NywxMyBAQCBnZXRuYW1lX2ZsYWdzKGNvbnN0IGNoYXIgX191c2Vy ICpmaWxlbmFtZSwgaW50IGZsYWdzLCBpbnQgKmVtcHR5KQogCWtuYW1lID0gKGNoYXIgKilyZXN1 bHQtPmluYW1lOwogCXJlc3VsdC0+bmFtZSA9IGtuYW1lOwogCi0JbGVuID0gc3RybmNweV9mcm9t X3VzZXIoa25hbWUsIGZpbGVuYW1lLCBFTUJFRERFRF9OQU1FX01BWCk7CisJaWYgKCEoZmxhZ3Mg JiBMT09LVVBfRk9SQ0VfRU1QVFkpKQorCQlsZW4gPSBzdHJuY3B5X2Zyb21fdXNlcihrbmFtZSwg ZmlsZW5hbWUsIEVNQkVEREVEX05BTUVfTUFYKTsKKwllbHNlIHsKKwkJbGVuID0gMDsKKwkJa25h bWVbMF0gPSAnXDAnOworCX0KKwogCWlmICh1bmxpa2VseShsZW4gPCAwKSkgewogCQlfX3B1dG5h bWUocmVzdWx0KTsKIAkJcmV0dXJuIEVSUl9QVFIobGVuKTsKZGlmZiAtLWdpdCBhL2ZzL3N0YXQu YyBiL2ZzL3N0YXQuYwppbmRleCA3MGJkM2U4ODhjZmEuLmJlODFmYzEyYmQzYSAxMDA2NDQKLS0t IGEvZnMvc3RhdC5jCisrKyBiL2ZzL3N0YXQuYwpAQCAtMjEwLDYgKzIxMCw4IEBAIGludCBnZXRu YW1lX3N0YXR4X2xvb2t1cF9mbGFncyhpbnQgZmxhZ3MpCiAJCWxvb2t1cF9mbGFncyB8PSBMT09L VVBfQVVUT01PVU5UOwogCWlmIChmbGFncyAmIEFUX0VNUFRZX1BBVEgpCiAJCWxvb2t1cF9mbGFn cyB8PSBMT09LVVBfRU1QVFk7CisJaWYgKGZsYWdzICYgQVRfRk9SQ0VfRU1QVFlfUEFUSCkKKwkJ bG9va3VwX2ZsYWdzIHw9IExPT0tVUF9FTVBUWSB8IExPT0tVUF9GT1JDRV9FTVBUWTsKIAogCXJl dHVybiBsb29rdXBfZmxhZ3M7CiB9CkBAIC0yMzcsNyArMjM5LDcgQEAgc3RhdGljIGludCB2ZnNf c3RhdHgoaW50IGRmZCwgc3RydWN0IGZpbGVuYW1lICpmaWxlbmFtZSwgaW50IGZsYWdzLAogCWlu dCBlcnJvcjsKIAogCWlmIChmbGFncyAmIH4oQVRfU1lNTElOS19OT0ZPTExPVyB8IEFUX05PX0FV VE9NT1VOVCB8IEFUX0VNUFRZX1BBVEggfAotCQkgICAgICBBVF9TVEFUWF9TWU5DX1RZUEUpKQor CQkgICAgICBBVF9TVEFUWF9TWU5DX1RZUEUgfCBBVF9GT1JDRV9FTVBUWV9QQVRIKSkKIAkJcmV0 dXJuIC1FSU5WQUw7CiAKIHJldHJ5OgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9uYW1laS5o IGIvaW5jbHVkZS9saW51eC9uYW1laS5oCmluZGV4IDk2N2FhOWVhOWY5Ni4uZDE5ZTUxNjYxMDFi IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L25hbWVpLmgKKysrIGIvaW5jbHVkZS9saW51eC9u YW1laS5oCkBAIC00NSw5ICs0NSwxMyBAQCBlbnVtIHtMQVNUX05PUk0sIExBU1RfUk9PVCwgTEFT VF9ET1QsIExBU1RfRE9URE9UfTsKICNkZWZpbmUgTE9PS1VQX0lOX1JPT1QJCTB4MTAwMDAwIC8q IFRyZWF0IGRpcmZkIGFzIGZzIHJvb3QuICovCiAjZGVmaW5lIExPT0tVUF9DQUNIRUQJCTB4MjAw MDAwIC8qIE9ubHkgZG8gY2FjaGVkIGxvb2t1cCAqLwogI2RlZmluZSBMT09LVVBfTElOS0FUX0VN UFRZCTB4NDAwMDAwIC8qIExpbmthdCByZXF1ZXN0IHdpdGggZW1wdHkgcGF0aC4gKi8KKwogLyog TE9PS1VQXyogZmxhZ3Mgd2hpY2ggZG8gc2NvcGUtcmVsYXRlZCBjaGVja3MgYmFzZWQgb24gdGhl IGRpcmZkLiAqLwogI2RlZmluZSBMT09LVVBfSVNfU0NPUEVEIChMT09LVVBfQkVORUFUSCB8IExP T0tVUF9JTl9ST09UKQogCisvKiBJZiB0aGlzIGlzIHNldCwgTE9PS1VQX0VNUFRZIG11c3QgYmUg c2V0IGFzIHdlbGwuICovCisjZGVmaW5lIExPT0tVUF9GT1JDRV9FTVBUWQkweDgwMDAwMCAvKiBD b25zaWRlciBwYXRoIGVtcHR5LiAqLworCiBleHRlcm4gaW50IHBhdGhfcHRzKHN0cnVjdCBwYXRo ICpwYXRoKTsKIAogZXh0ZXJuIGludCB1c2VyX3BhdGhfYXRfZW1wdHkoaW50LCBjb25zdCBjaGFy IF9fdXNlciAqLCB1bnNpZ25lZCwgc3RydWN0IHBhdGggKiwgaW50ICplbXB0eSk7CmRpZmYgLS1n aXQgYS9pbmNsdWRlL3RyYWNlL21pc2MvZnMuaCBiL2luY2x1ZGUvdHJhY2UvbWlzYy9mcy5oCmlu ZGV4IDczOGI5N2YyMmYzNi4uNDY0ODk0MjZmMThhIDEwMDY0NAotLS0gYS9pbmNsdWRlL3RyYWNl L21pc2MvZnMuaAorKysgYi9pbmNsdWRlL3RyYWNlL21pc2MvZnMuaApAQCAtMTE5LDQgKzExOSw1 IEBACiAJCXsgTE9PS1VQX05PX1hERVYsCSJOT19YREVWIiB9LCBcCiAJCXsgTE9PS1VQX0JFTkVB VEgsCSJCRU5FQVRIIiB9LCBcCiAJCXsgTE9PS1VQX0lOX1JPT1QsCSJJTl9ST09UIiB9LCBcCisJ CXsgTE9PS1VQX0ZPUkNFX0VNUFRZLAkiRk9SQ0VfRU1QVFkiIH0sIFwKIAkJeyBMT09LVVBfQ0FD SEVELAkiQ0FDSEVEIiB9KQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2xpbnV4L2ZjbnRsLmgg Yi9pbmNsdWRlL3VhcGkvbGludXgvZmNudGwuaAppbmRleCBjMGJjYzE4NWZhNDguLjcxZDNkYzky Yzg2ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS91YXBpL2xpbnV4L2ZjbnRsLmgKKysrIGIvaW5jbHVk ZS91YXBpL2xpbnV4L2ZjbnRsLmgKQEAgLTExMyw2ICsxMTMsOSBAQAogI2RlZmluZSBBVF9TVEFU WF9ET05UX1NZTkMJMHg0MDAwCS8qIC0gRG9uJ3Qgc3luYyBhdHRyaWJ1dGVzIHdpdGggdGhlIHNl cnZlciAqLwogCiAjZGVmaW5lIEFUX1JFQ1VSU0lWRQkJMHg4MDAwCS8qIEFwcGx5IHRvIHRoZSBl bnRpcmUgc3VidHJlZSAqLworI2RlZmluZSBBVF9GT1JDRV9FTVBUWV9QQVRICTB4MTAwMDAJLyog SWdub3JlIHBhdGggYW5kIGJlaGF2ZSBhcyBpZgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEFUX0VNUFRZX1BBVEggaXMgc2V0IGFuZCBwYXRoCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgZW1wdHkgKi8KIAogLyogRmxhZ3Mg Zm9yIG5hbWVfdG9faGFuZGxlX2F0KDIpLiBXZSByZXVzZSBBVF8gZmxhZyBzcGFjZSB0byBzYXZl IGJpdHMuLi4gKi8KICNkZWZpbmUgQVRfSEFORExFX0ZJRAkJQVRfUkVNT1ZFRElSCS8qIGZpbGUg aGFuZGxlIGlzIG5lZWRlZCB0bwotLSAKMi40NS4yCgo= --=-YxhasIhtdyR/P3cgOt/8--