Received: by 2002:a05:7412:3784:b0:e2:908c:2ebd with SMTP id jk4csp33382rdb; Fri, 29 Sep 2023 15:40:38 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFnvNM3D9xfI5XjIejZwIHM4XOn/cEpCW3TRmR5C0BblnuWkHMjjfGo7o9W1LcfLFBUWRbR X-Received: by 2002:a17:903:48f:b0:1c5:ad14:908f with SMTP id jj15-20020a170903048f00b001c5ad14908fmr4811866plb.39.1696027237817; Fri, 29 Sep 2023 15:40:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696027237; cv=none; d=google.com; s=arc-20160816; b=O9ag5/Q22quEgGHuHsDtTOy5WqT3rN5EvI85JcR9zJ+/SuYCOuiLcsQdtPdxp6PDZw 6Hg2o+MBXcFVX+FYvA2qN/1BaqsgFxYLVptzNmR5x8kwlVOlmEAW2JaObOZ9ia3FR7j9 FnCX3FVFT9XAT09t6p4ToxT57LNVnqyi1KFnvziRAgTzxu3aW0h8YpO+Eg2tW8hJqnsj 0Ck8/YPj6jV9oxCN9e1cHHJybhTp76fjyMXSDA+zEbwsLQPWnoBzVu2f4BDLd+smB6Ht 9LkT7r+DBmAvmV2VY3AFOhJwRp+iQy2C1LVuTXikO3Fct4HoJpaZv2qjVNfXKoW64VE/ 5lJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=Dczzc/ZrHeOBp4WWNTQfdZXCrJulDMcg95xK5Nbc7Vo=; fh=b0d9wohaEfeRQ4pdPfD5aTL47b2ZiMMUL6PCGsw5rAI=; b=ztmd7VTwTIinuKZZ/pYWRbalDZpHNdqslkP/8hohAV+nQq7wwK1F2gyIxMqYmYSg6A +URYQPYnT4QPEj1GPi/kgvJf3GuZgY+a8sBBaxy9Xus5lL68w4tcY3A10p9YZQvi5Rxo p5gebE1oZc4qS6e6R3bxRDTXGGU3TtRVpTUvEWLsX4iXbjpl+oUGL9bhRnuXvbKXAfAd pvq514ufLqAkNHGnd2UcVBwViw4aW38nQXOzNVJzQjt4qPiWu37L12vD4wpEZglHzNsm SKyWR1krH1N31isVR65ZckuCeEPZCCZkdfiR+F/R8mlvcihfZtvW0bSRScwKBAjch+FR fBBQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amazon.com header.s=amazon201209 header.b=Cs7kHhu6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amazon.com Return-Path: Received: from pete.vger.email (pete.vger.email. [2620:137:e000::3:6]) by mx.google.com with ESMTPS id kl6-20020a170903074600b001c3a05b0b67si13918655plb.566.2023.09.29.15.40.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Sep 2023 15:40:37 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) client-ip=2620:137:e000::3:6; Authentication-Results: mx.google.com; dkim=pass header.i=@amazon.com header.s=amazon201209 header.b=Cs7kHhu6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:6 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=amazon.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id 3290380732B7; Fri, 29 Sep 2023 12:26:53 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233357AbjI2T0d (ORCPT + 99 others); Fri, 29 Sep 2023 15:26:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41732 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233058AbjI2T00 (ORCPT ); Fri, 29 Sep 2023 15:26:26 -0400 Received: from smtp-fw-52004.amazon.com (smtp-fw-52004.amazon.com [52.119.213.154]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6A2F1E6; Fri, 29 Sep 2023 12:26:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1696015584; x=1727551584; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=Dczzc/ZrHeOBp4WWNTQfdZXCrJulDMcg95xK5Nbc7Vo=; b=Cs7kHhu6EYitkTZ6jj1wIwtPnNymQBV6T81HOzQZ/AFNJrPVtuQ+idzx 4XtVZhvqYmTEH3n4d1+2FV3NMig8RItKeyHD7jWGnpBg/NGRJJYQOkk3E uSqhsPvfdA0SvQ7ufUU+mkOj5cbPT57KIxYsPx/hTsbqpbkw6HGNvPMUJ Q=; X-IronPort-AV: E=Sophos;i="6.03,188,1694736000"; d="scan'208";a="157365133" Received: from iad12-co-svc-p1-lb1-vlan2.amazon.com (HELO email-inbound-relay-iad-1a-m6i4x-b5bd57cf.us-east-1.amazon.com) ([10.43.8.2]) by smtp-border-fw-52004.iad7.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Sep 2023 19:26:23 +0000 Received: from EX19MTAUWA002.ant.amazon.com (iad55-ws-svc-p15-lb9-vlan2.iad.amazon.com [10.40.159.162]) by email-inbound-relay-iad-1a-m6i4x-b5bd57cf.us-east-1.amazon.com (Postfix) with ESMTPS id 1051B47F99; Fri, 29 Sep 2023 19:26:19 +0000 (UTC) Received: from EX19D020UWC004.ant.amazon.com (10.13.138.149) by EX19MTAUWA002.ant.amazon.com (10.250.64.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.37; Fri, 29 Sep 2023 19:26:19 +0000 Received: from [0.0.0.0] (10.253.83.51) by EX19D020UWC004.ant.amazon.com (10.13.138.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.37; Fri, 29 Sep 2023 19:26:16 +0000 Message-ID: Date: Fri, 29 Sep 2023 21:26:16 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 1/2] misc: Add Nitro Secure Module driver Content-Language: en-GB To: Arnd Bergmann , CC: , Greg Kroah-Hartman , Herbert Xu , Olivia Mackall , Petre Eftime , Erdem Meydanlli , Benjamin Herrenschmidt , David Woodhouse , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo References: <20230929133320.74848-1-graf@amazon.com> <20230929133320.74848-2-graf@amazon.com> <74b2d869-0d96-46f9-a180-b405992e6c51@app.fastmail.com> From: Alexander Graf In-Reply-To: <74b2d869-0d96-46f9-a180-b405992e6c51@app.fastmail.com> X-Originating-IP: [10.253.83.51] X-ClientProxiedBy: EX19D040UWB004.ant.amazon.com (10.13.138.91) To EX19D020UWC004.ant.amazon.com (10.13.138.149) Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 X-Spam-Status: No, score=-0.9 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Fri, 29 Sep 2023 12:26:53 -0700 (PDT) SGkgQXJuZCEKCk9uIDI5LjA5LjIzIDE5OjI4LCBBcm5kIEJlcmdtYW5uIHdyb3RlOgo+IE9uIEZy aSwgU2VwIDI5LCAyMDIzLCBhdCAwOTozMywgQWxleGFuZGVyIEdyYWYgd3JvdGU6Cj4+IFdoZW4g cnVubmluZyBMaW51eCBpbnNpZGUgYSBOaXRybyBFbmNsYXZlLCB0aGUgaHlwZXJ2aXNvciBwcm92 aWRlcyBhCj4+IHNwZWNpYWwgdmlydGlvIGRldmljZSBjYWxsZWQgIk5TTSIuIFRoaXMgZGV2aWNl IGhhcyAyIG1haW4gZnVuY3Rpb25zOgo+Pgo+PiAgICAxKSBQcm92aWRlIGF0dGVzdGF0aW9uIHJl cG9ydHMKPj4gICAgMikgTW9kaWZ5IFBDUiBzdGF0ZQo+PiAgICAzKSBQcm92aWRlIGVudHJvcHkK Pj4KPj4gVGhpcyBwYXRjaCBhZGRzIHRoZSBjb3JlIE5TTSBkcml2ZXIgdGhhdCBleHBvc2VzIGEg L2Rldi9uc20gZGV2aWNlIG5vZGUKPj4gd2hpY2ggdXNlciBzcGFjZSBjYW4gdXNlIHRvIHJlcXVl c3QgYXR0ZXN0YXRpb24gZG9jdW1lbnRzIGFuZCBpbmZsdWVuY2UKPj4gUENSIHN0YXRlcy4gQSBm b2xsb3cgdXAgcGF0Y2ggd2lsbCBhZGQgYSBod3JuZyBkcml2ZXIgdG8gZmVlZCBpdHMgZW50cm9w eQo+PiBpbnRvIHRoZSBrZXJuZWwuCj4+Cj4+IE9yaWdpbmFsbHktYnk6IFBldHJlIEVmdGltZSA8 cGV0cmUuZWZ0aW1lQGdtYWlsLmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogQWxleGFuZGVyIEdyYWYg PGdyYWZAYW1hem9uLmNvbT4KPiBIaSBBbGV4LAo+Cj4gSSd2ZSB0YWtlbiBhIGZpcnN0IGxvb2sg YXQgdGhpcyBkcml2ZXIgYW5kIGhhdmUgc29tZSBtaW5vciBjb21tZW50cy4KCgpUaGFua3MgYSBi dW5jaCEKCgo+IFRoZSBtYWluIHBvaW50IGhlcmUgaXMgdGhhdCBJIHRoaW5rIHdlIG5lZWQgdG8g bG9vayBhdCBwb3NzaWJsZQo+IGFsdGVybmF0aXZlcyBmb3IgdGhlIHVzZXIgc3BhY2UgaW50ZXJm YWNlLCBhbmQgKGlmIHBvc3NpYmxlKSBjaGFuZ2UKPiB0byBhIHNldCBvZiBoaWdoZXItbGV2ZWwg aW9jdGwgY29tbWFuZHMgZnJvbSB0aGUgc2ltcGxlIHBhc3N0aHJvdWdoLgoKCkknbSBzbGlnaHRs eSB0b3JuIG9uIHRoYXQgYml0LiBJIHRoaW5rIGluIGhpbmRzaWdodCB0aGUgTlNNIGRldmljZSAK cHJvYmFibHkgc2hvdWxkIGhhdmUgYmVlbiBhIHJlc2VydmVkIHZzb2NrIENJRCBhbmQgdGhlIGh3 cm5nIG9uZSBzaG91bGQgCmhhdmUganVzdCBiZWVuIHZpcnRpby1ybmcuCgpUaGUgcHJvYmxlbSBp cyB0aGF0IE5pdHJvIEVuY2xhdmVzIHdlcmUgbGF1bmNoZWQgaW4gMjAyMCBhbmQgc2luY2UgYW4g CmVjb3N5c3RlbSBkZXZlbG9wZWQgaW4gbXVsdGlwbGUgbGFuZ3VhZ2VzIHRvIHN1cHBvcnQgYnVp bGRpbmcgY29kZSBpbnNpZGU6CgpodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1uaXRyby1lbmNs YXZlcy1uc20tYXBpL2Jsb2IvbWFpbi9zcmMvZHJpdmVyL21vZC5ycyNMNjYKaHR0cHM6Ly9naXRo dWIuY29tL2RvbmtlcnNnb2VkL2F3cy1uc20taW50ZXJmYWNlL2Jsb2IvbWFpbi9hd3NfbnNtX2lu dGVyZmFjZS9fX2luaXRfXy5weSNMMjY0LUwyNzQKIMKgIGh0dHBzOi8vZ2l0aHViLmNvbS9oZi9u c20vYmxvYi9tYWluL25zbS5nbyNMOTktTDEyOQoKCkFsbCBvZiB0aGVzZSB1c2UgdGhlIChkb3du c3RyZWFtKSBpb2N0bCB0aGF0IHRoaXMgcGF0Y2ggYWxzbyBpbXBsZW1lbnRzLiAKV2UgY291bGQg Y2hhbmdlIGl0LCBidXQgaW5zdGVhZCBvZiBtYWtpbmcgaXQgZWFzaWVyIGZvciB1c2VyIHNwYWNl IHRvIAphZGFwdCB0aGUgZGV2aWNlIG5vZGUsIGl0IHdvdWxkIHByb2JhYmx5IGh1cnQgbW9yZS4K CkkgYWdyZWUgdGhhdCB0aGlzIGlzIG5vdCBhIGdyZWF0IHBsYWNlIHRvIGJlIGluLiBUaGlzIGRy aXZlciBhYnNvbHV0ZWx5IApzaG91bGQgaGF2ZSBiZWVuIHVwc3RyZWFtZWQgMyB5ZWFycyBhZ28u IEJ1dCBJIGNhbid0IHR1cm4gYmFjayB0aW1lIAooeWV0KSA6KS4KCj4KPj4gKy8qIFZpcnRpbyBN TUlPIGRldmljZSBkZWZpbml0aW9uICovCj4+ICtzdHJ1Y3QgdmlydGlvX21taW9fZGV2aWNlIHsK Pj4gKyAgICAgc3RydWN0IHZpcnRpb19kZXZpY2UgdmRldjsKPj4gKyAgICAgc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldjsKPj4gKwo+PiArICAgICB2b2lkIF9faW9tZW0gKmJhc2U7Cj4+ICsg ICAgIHVuc2lnbmVkIGxvbmcgdmVyc2lvbjsKPj4gKwo+PiArICAgICAvKiBhIGxpc3Qgb2YgcXVl dWVzIHNvIHdlIGNhbiBkaXNwYXRjaCBJUlFzICovCj4+ICsgICAgIHNwaW5sb2NrX3QgbG9jazsK Pj4gKyAgICAgc3RydWN0IGxpc3RfaGVhZCB2aXJ0cXVldWVzOwo+PiArfTsKPj4gKwo+PiArLyog VmlydHF1ZXVlIGxpc3QgZW50cnkgKi8KPj4gK3N0cnVjdCB2aXJ0aW9fbW1pb192cV9pbmZvIHsK Pj4gKyAgICAgLyogVGhlIGFjdHVhbCB2aXJ0cXVldWUgKi8KPj4gKyAgICAgc3RydWN0IHZpcnRx dWV1ZSAqdnE7Cj4+ICsKPj4gKyAgICAgLyogVGhlIGxpc3Qgbm9kZSBmb3IgdGhlIHZpcnRxdWV1 ZXMgbGlzdCAqLwo+PiArICAgICBzdHJ1Y3QgbGlzdF9oZWFkIG5vZGU7Cj4+ICt9Owo+Cj4gSXQg bG9va3MgbGlrZSB5b3UgYXJlIGR1cGxpY2F0aW5nIHRoZXNlIHN0cnVjdHVyZXMgZnJvbSB0aGUK PiB2aXJ0aW9fbW1pby5jIGZpbGUsIHdoaWNoIHNlZW1zIGxpa2UgYSBiYWQgaWRlYSBmb3IgYSBu dW1iZXIKPiBvZiByZWFzb25zLiBXaGF0IGlzIGl0IHRoYXQgeW91IGFjdHVhbGx5IG5lZWQgdGhh dCB0aGUKPiB2aXJ0aW8gc3Vic3lzdGVtIGRvZXMgbm90IHByb3ZpZGU/IENhbiB5b3UgYWRkIGlu dGVyZmFjZXMKPiB0byB0aGUgY29tbW9uIGNvZGUgaW5zdGVhZD8KCgpUaGFua3MgZm9yIGNhdGNo aW5nIHRoaXMuIFRoZXJlIGFyZSBwcm9wZXIgaW50ZXJmYWNlcyB0byBnZXQgdGhlIHZpcnQgCnF1 ZXVlcyBhbHJlYWR5LCBsZXQgbWUgdXNlIHRoZW0gaW5zdGVhZC4KCgo+Cj4+ICtzdGF0aWMgc3Ry dWN0IHZpcnRpb19kZXZpY2UgKm5zbV92ZGV2Owo+PiArc3RhdGljIHN0cnVjdCBuc21faHdybmcg Km5zbV9od3JuZzsKPj4gK3N0YXRpYyBzdHJ1Y3QgbXV0ZXggbnNtX2xvY2s7Cj4+ICtzdGF0aWMg d2FpdF9xdWV1ZV9oZWFkX3QgbnNtX3dhaXRxdWV1ZTsKPj4gK3N0YXRpYyBib29sIG5zbV9kZXZp Y2Vfbm90aWZpZWQ7Cj4gSW5zdGVhZCBvZiBnbG9iYWwgc3RydWN0dXJlcywgdGhlc2Ugc2hvdWxk IGlkZWFsbHkgYWxsIGJlCj4gcGFydCBvZiBhIHBlci1kZXZpY2Ugc3RydWN0dXJlLCBldmVuIGlm IHlvdSBhcmUgc3VyZSB0aGF0Cj4gdGhlcmUgaXMgb25seSBldmVyIG9uZSBvZiB0aGVzZSBkZXZp Y2VzLgoKCkxldCBtZSBnaXZlIHRoYXQgYSB0cnkgOikKCgo+Cj4+ICsvKiBDb3B5IGFuIGVudGly ZSBtZXNzYWdlIGZyb20gdXNlci1zcGFjZSB0byBrZXJuZWwtc3BhY2UgKi8KPj4gK3N0YXRpYyBp bnQgbWVzc2FnZV9tZW1kdXBfZnJvbV91c2VyKHN0cnVjdCBuc21fa2VybmVsX21lc3NhZ2UgKmRz dCwKPj4gKyAgICAgc3RydWN0IG5zbV9tZXNzYWdlICpzcmMpCj4+ICt7Cj4+ICsgICAgIHN0cnVj dCBuc21fbWVzc2FnZSBzaGFsbG93X2NvcHk7Cj4+ICsKPj4gKyAgICAgaWYgKCFzcmMgfHwgIWRz dCkKPj4gKyAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPj4gKwo+PiArICAgICAvKiBUaGUg ZGVzdGluYXRpb24ncyByZXF1ZXN0IGFuZCByZXNwb25zZSBidWZmZXJzIHNob3VsZCBiZSBOVUxM LiAqLwo+PiArICAgICBpZiAoZHN0LT5yZXF1ZXN0Lmlvdl9iYXNlIHx8IGRzdC0+cmVzcG9uc2Uu aW92X2Jhc2UpCj4+ICsgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+ICsKPj4gKyAgICAg LyogRmlyc3QsIG1ha2UgYSBzaGFsbG93IGNvcHkgdG8gYmUgYWJsZSB0byByZWFkIHRoZSBpbm5l ciBwb2ludGVycyAqLwo+PiArICAgICBpZiAoY29weV9mcm9tX3VzZXIoJnNoYWxsb3dfY29weSwg c3JjLCBzaXplb2Yoc2hhbGxvd19jb3B5KSkgIT0gMCkKPj4gKyAgICAgICAgICAgICByZXR1cm4g LUVJTlZBTDsKPj4gKwo+PiArICAgICAvKiBWZXJpZnkgdGhlIHVzZXIgaW5wdXQgc2l6ZS4gKi8K Pj4gKyAgICAgaWYgKHNoYWxsb3dfY29weS5yZXF1ZXN0Lmlvdl9sZW4gPiBOU01fUkVRVUVTVF9N QVhfU0laRSkKPj4gKyAgICAgICAgICAgICByZXR1cm4gLUVNU0dTSVpFOwo+PiArCj4+ICsgICAg IC8qIEFsbG9jYXRlIGtlcm5lbCBtZW1vcnkgZm9yIHRoZSB1c2VyIHJlcXVlc3QgKi8KPj4gKyAg ICAgZHN0LT5yZXF1ZXN0Lmlvdl9sZW4gPSBzaGFsbG93X2NvcHkucmVxdWVzdC5pb3ZfbGVuOwo+ PiArICAgICBkc3QtPnJlcXVlc3QuaW92X2Jhc2UgPSBrbWFsbG9jKGRzdC0+cmVxdWVzdC5pb3Zf bGVuLCBHRlBfS0VSTkVMKTsKPj4gKyAgICAgaWYgKCFkc3QtPnJlcXVlc3QuaW92X2Jhc2UpCj4+ ICsgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4+ICsKPj4gKyAgICAgLyogQ29weSB0aGUg cmVxdWVzdCBjb250ZW50ICovCj4+ICsgICAgIGlmIChjb3B5X2Zyb21fdXNlcihkc3QtPnJlcXVl c3QuaW92X2Jhc2UsCj4+ICsgICAgICAgICAgICAgc2hhbGxvd19jb3B5LnJlcXVlc3QuaW92X2Jh c2UsIGRzdC0+cmVxdWVzdC5pb3ZfbGVuKSAhPSAwKSB7Cj4+ICsgICAgICAgICAgICAga2ZyZWUo ZHN0LT5yZXF1ZXN0Lmlvdl9iYXNlKTsKPj4gKyAgICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsK Pj4gKyAgICAgfQo+IEl0IGxvb2tzIGxpa2UgdGhlIGlvY3RsIGludGVyZmFjZSBqdXN0IHByb3Zp ZGVzIGFuIGludGVyZmFjZQo+IGZvciBwYXNzaW5nIHRocm91Z2ggcmF3IG1lc3NhZ2VzLCB3aGlj aCBpcyBvZnRlbiBub3QgdGhlIGJlc3QKPiBpZGVhLiBBcmUgeW91IGFibGUgdG8gZW51bWVyYXRl IHRoZSBwb3NzaWJsZSByZXF1ZXN0IHR5cGVzIGFuZAo+IHByb3ZpZGUgYSBzZXBhcmF0ZSBpb2N0 bCBmb3IgZWFjaCBvbmU/CgoKU2VlIGFib3ZlLiBJIGNvdWxkLCBidXQgSSB0aGluayBpdCB3b3Vs ZCBub3QgaW1wcm92ZSB0aGUgc2l0dWF0aW9uLiBJdCAKd291bGQgYWxzbyByZXF1aXJlIGEgc2ln bmlmaWNhbnQgYW1vdW50IG9mIENCT1IgcGFyc2luZyBpbiB0aGUga2VybmVsIAp3aGljaCBJJ2Qg cmF0aGVyIGF2b2lkIDopLgoKCj4KPj4gKy8qIFN1cHBvcnRlZCBkcml2ZXIgb3BlcmF0aW9ucyAq Lwo+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgbnNtX2Rldl9mb3BzID0g ewo+PiArICAgICAub3BlbiA9IG5zbV9kZXZfZmlsZV9vcGVuLAo+PiArICAgICAucmVsZWFzZSA9 IG5zbV9kZXZfZmlsZV9jbG9zZSwKPj4gKyAgICAgLnVubG9ja2VkX2lvY3RsID0gbnNtX2Rldl9p b2N0bCwKPj4gK307Cj4gVGhpcyBicmVha3Mgb24gMzItYml0IHVzZXJzcGFjZSwgd2hpY2ggd291 bGQgbmVlZCBhIHNlcGFyYXRlIC5jb21wYXRfaW9jdGwKPiBoYW5kbGVyIHdpdGggdGhlIGN1cnJl bnQgY29tbWFuZCBkZWZpbml0aW9uLiBJdCdzIG9mdGVuIGJldHRlciB0byBkZWZpbmUKPiB0aGUg aW9jdGwgaW50ZXJmYWNlIHRvIGJlIHRoZSBzYW1lIG9uIDMyLWJpdCBhbmQgNjQtYml0IHVzZXJz cGFjZQo+IGFuZCB0aGVuIHVzZSB0aGUgdHJpdmlhbCBjb21wYXRfcHRyX2lvY3RsIHdyYXBwZXIu Cj4KPj4gKy8qIERyaXZlciBjb25maWd1cmF0aW9uICovCj4+ICtzdGF0aWMgc3RydWN0IG1pc2Nk ZXZpY2UgbnNtX2RyaXZlcl9taXNjZGV2aWNlID0gewo+PiArICAgICAubWlub3IgID0gTUlTQ19E WU5BTUlDX01JTk9SLAo+PiArICAgICAubmFtZSAgID0gTlNNX0RFVl9OQU1FLAo+PiArICAgICAu Zm9wcyAgID0gJm5zbV9kZXZfZm9wcywKPj4gKyAgICAgLm1vZGUgICA9IDA2NjYKPj4gK307Cj4g SSB3b3VsZCBzdWdnZXN0IGV4cGFuZGluZyBOU01fREVWX05BTUUgaGVyZSwgaXQncyBtdWNoIGVh c2llciB0bwo+IGdyZXAgZm9yIHRoZSBhY3R1YWwgc3RyaW5nIGlmIGEgdXNlciB3YW50cyB0byBr bm93IHdoaWNoIGRyaXZlcgo+IGlzIHJlc3BvbnNpYmxlLiBQcm9iYWJseSBldmVuIGxlc3MgY29k ZS4KPgo+PiArICAgICBpZiAobnNtX2h3cm5nKQo+PiArICAgICAgICAgICAgIG5zbV9od3JuZy0+ cHJvYmUodmRldik7Cj4+ICsKPj4gKyAgICAgcHJfZGVidWcoIk5TTSBkZXZpY2UgaGFzIGJlZW4g cHJvYmVkLlxuIik7Cj4+ICsgICAgIHJldHVybiAwOwo+PiArfQo+IFRoZSBkZWJ1ZyBzdGF0ZW1l bnRzIGNhbiBwcm9iYWJseSBnZXQgcmVtb3ZlZCwgZXNwZWNpYWxseQo+IHRoZSB3aGl0ZXNwYWNl IGRhbWFnZWQgb25lcy4KPgo+PiAraW50IG5zbV9yZWdpc3Rlcl9od3JuZyhzdHJ1Y3QgbnNtX2h3 cm5nICpfbnNtX2h3cm5nKQo+PiArewo+PiArICAgICBpZiAobnNtX2h3cm5nKQo+PiArICAgICAg ICAgICAgIHJldHVybiAtRUVYSVNUOwo+PiArCj4+ICsgICAgIG5zbV9od3JuZyA9IF9uc21faHdy bmc7Cj4+ICsgICAgIGlmIChuc21fdmRldikKPj4gKyAgICAgICAgICAgICBuc21faHdybmctPnBy b2JlKG5zbV92ZGV2KTsKPj4gKwo+PiArICAgICByZXR1cm4gMDsKPj4gK30KPj4gK0VYUE9SVF9T WU1CT0xfR1BMKG5zbV9yZWdpc3Rlcl9od3JuZyk7Cj4gVGhpcyBzaG91bGQgZ2V0IGVhc2llciBv ZiB5b3UgcmV2ZXJzZSB0aGUgZGVwZW5kZW5jeSBiZXR3ZWVuCj4gdGhlIHR3byBkcml2ZXJzIGFu ZCBqdXN0IGNhbGwgaW50byB0aGUgbnNtX2h3cm5nX3Byb2JlKCkKPiBmdW5jdGlvbiBmcm9tIHRo ZSBtYWluIGRyaXZlcidzIHByb2JlLgoKCkkgZG9uJ3QgdW5kZXJzdGFuZCB3aGF0IHlvdSBtZWFu IGJ5IHJldmVyc2luZyB0aGUgZGVwZW5kZW5jeS4gTnNtX3JuZyBpcyAKYSBkb3duc3RyZWFtIG9m IE5zbSwgYmVjYXVzZSBOc20gaXMgdGhlIHZpcnRpbyBkZXZpY2UgdGhhdCBvd25zIHRoZSBjaGFu bmVsLgoKCj4KPj4gKyAgICAgbXV0ZXhfaW5pdCgmbnNtX2xvY2spOwo+PiArICAgICBpbml0X3dh aXRxdWV1ZV9oZWFkKCZuc21fd2FpdHF1ZXVlKTsKPiBZb3UgY2FuIHNpbXBseSB1c2UgREVGSU5F X01VVEVYKCkgYW5kIERFQ0xBUkVfV0FJVF9RVUVVRV9IRUFEKCkKPiBpZiB5b3Ugc3RpbGwgbmVl ZCB0aGUgZ2xvYmFsIG9iamVjdHMgKHJhdGhlciB0aGFuIG1ha2luZyB0aGVtCj4gcGVyIGRldmlj ZSkuCj4KPj4gKwo+PiArICAgICByYyA9IHJlZ2lzdGVyX3ZpcnRpb19kcml2ZXIoJnZpcnRpb19u c21fZHJpdmVyKTsKPj4gKyAgICAgaWYgKHJjKQo+PiArICAgICAgICAgICAgIHByX2VycigiTlNN IGRyaXZlciBpbml0aWFsaXphdGlvbiBlcnJvcjogJWQuXG4iLCByYyk7Cj4+ICsKPj4gKyAgICAg cmV0dXJuIHJjOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBfX2V4aXQgbnNtX2RyaXZlcl9l eGl0KHZvaWQpCj4+ICt7Cj4+ICsgICAgIHVucmVnaXN0ZXJfdmlydGlvX2RyaXZlcigmdmlydGlv X25zbV9kcml2ZXIpOwo+PiArICAgICBtdXRleF9kZXN0cm95KCZuc21fbG9jayk7Cj4+ICsgICAg IHByX2RlYnVnKCJOU00gZHJpdmVyIGV4aXRlZC5cbiIpOwo+PiArfQo+PiArCj4+ICttb2R1bGVf aW5pdChuc21fZHJpdmVyX2luaXQpOwo+PiArbW9kdWxlX2V4aXQobnNtX2RyaXZlcl9leGl0KTsK PiBUaGVuIHRoaXMgY2FuIHVzZSBtb2R1bGVfdmlydGlvX2RyaXZlcigpCgoKRGVmaW5pdGVseSEK ClRoYW5rcyA6KS4gSSdsbCBoYXZlIHNvbWUgdHlwaW5nIHRvIGRvLgoKCkFsZXgKCgo+Cj4gICAg ICAgIEFybmQKCgoKQW1hem9uIERldmVsb3BtZW50IENlbnRlciBHZXJtYW55IEdtYkgKS3JhdXNl bnN0ci4gMzgKMTAxMTcgQmVybGluCkdlc2NoYWVmdHNmdWVocnVuZzogQ2hyaXN0aWFuIFNjaGxh ZWdlciwgSm9uYXRoYW4gV2Vpc3MKRWluZ2V0cmFnZW4gYW0gQW10c2dlcmljaHQgQ2hhcmxvdHRl bmJ1cmcgdW50ZXIgSFJCIDE0OTE3MyBCClNpdHo6IEJlcmxpbgpVc3QtSUQ6IERFIDI4OSAyMzcg ODc5CgoK