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 69F4DC2BB3F for ; Wed, 15 Nov 2023 15:51:46 +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:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=2RPKg/WdqmaTBtaZy4zSZHCowuBPPPQfl+fQUuioDFg=; b=uqya8QsUAm6ZFX YSVnHTRozzSCBwls/4El+JIAWcLeEXJD6rImB5tIMZH1xeJGUSiX8Xt0CaMSdZZItThPe6Te4SiGf uNOjeuri9oC0NFAObVhZqYYM4lXDCWeVp0JLbx5azsLvrn59LxFrdDIP6rcARM1BY8Wu+EWKc8Hw+ lnFf2m3UGl4LMhg7Yraxd6K0z7/OcEYJJgRA+27gk2m9RRM4X4m2yexrS4e6q33VwqFaedjadhSYf j4HY+LGFBMB3q+YehumxMnfITTRV8KwRxx51vnH7yLdqfDH0IOgrhxd4pjEGyhwqmzQEp705CUVzj 499ydmYlr+imhWspZ8eg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1r3IAe-001FPJ-2i; Wed, 15 Nov 2023 15:51:16 +0000 Received: from mail-qt1-x832.google.com ([2607:f8b0:4864:20::832]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1r3IAa-001FNy-1K for linux-arm-kernel@lists.infradead.org; Wed, 15 Nov 2023 15:51:14 +0000 Received: by mail-qt1-x832.google.com with SMTP id d75a77b69052e-41cb7720579so297701cf.1 for ; Wed, 15 Nov 2023 07:51:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1700063471; x=1700668271; darn=lists.infradead.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=Qzip9MVqlfIvVbCbXPYvjT9hRTR5bvfQFmMjnqVbQAY=; b=lBxQd6eDRznjmLotwezUgTev8G5FoQq6cZRHVGh493ZlM3sYFAj2BOnRfpe+wOX0VG yipJ2jP2yXwi2/KTmVqgG3QLw1TqsivYan9FOmrqtEd5AwejtRnd+1NKOvonRJKCCpv7 z4cVZZJ72RmxEwGkK7iGtxaX2RWceV5hUzal3P3CldKhHlCki7BAw+LLRRIbkzdnLeqe BAL5fwOZ43tQTVY5xZ/SXEV3OSWwIXT5aQIi+rtAtSrUgiW4Eg33BIZroL03J5tEn/IQ rTFthU3/Aa895PyaRvjJNCwCWw08m48V0KBkzunkMajQzV4xR/8wOs1JRi1bElFI18/1 hp1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1700063471; x=1700668271; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Qzip9MVqlfIvVbCbXPYvjT9hRTR5bvfQFmMjnqVbQAY=; b=fr92lLJreDZqjl34SOTnoQOHcYjHKzLY7tAl6lWpx3HV6pxkqyV9gMhkVEssg4dvjk yljhOG9y0r7yDqe1vXTxPPkFf1J83oXsomR3wmYSIQiHmpreEHNmFOR4U2SuoMxNkKB0 MFLRrfC56SdjE6XcuMR5UEXZYVtg9JgLHlp5BQd+fWVGPCcIQ86hJB50b94uj5c/P/d5 vaIX9alOgAFGXcLtxByQIgOa1Mvfoc4YZe74fJp2ij8RsPMPxIKJONproGMkcPv41FvZ 6wxn+l8W/Ldb3V8qfB7b8vFZnArb9zHlHAlwpHGwCAe37KeZBnPmb6IB3vNe04AiGz2A 3J1Q== X-Gm-Message-State: AOJu0YxDf+BtR/ZK0p6uI9nUz0AuVKTdrsWU+iw6SAHSLot5N5OLTlFT WUGqs1llcBCXD3u30gFhiK4h101B482n2tSojesPkg== X-Google-Smtp-Source: AGHT+IFW2j74Fxjevqly0oeWfUz5fmRWPuLhoEW7VgeO0rM+7JPjT9p4yDA9kidjNrIJcLaa8OohrqwtROqhpkRRyU0= X-Received: by 2002:ac8:7dc6:0:b0:421:c480:11f with SMTP id c6-20020ac87dc6000000b00421c480011fmr357028qte.0.1700063470938; Wed, 15 Nov 2023 07:51:10 -0800 (PST) MIME-Version: 1.0 References: <0-v2-de8b10590bf5+400-smmuv3_newapi_p1_jgg@nvidia.com> <15-v2-de8b10590bf5+400-smmuv3_newapi_p1_jgg@nvidia.com> In-Reply-To: <15-v2-de8b10590bf5+400-smmuv3_newapi_p1_jgg@nvidia.com> From: Michael Shavit Date: Wed, 15 Nov 2023 23:50:35 +0800 Message-ID: Subject: Re: [PATCH v2 15/19] iommu/arm-smmu-v3: Add a global static IDENTITY domain To: Jason Gunthorpe Cc: iommu@lists.linux.dev, Joerg Roedel , linux-arm-kernel@lists.infradead.org, Robin Murphy , Will Deacon , Nicolin Chen , Shameerali Kolothum Thodi X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20231115_075112_454239_1CED28DD X-CRM114-Status: GOOD ( 29.51 ) X-BeenThere: linux-arm-kernel@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-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gVHVlLCBOb3YgMTQsIDIwMjMgYXQgMTo1M+KAr0FNIEphc29uIEd1bnRob3JwZSA8amdnQG52 aWRpYS5jb20+IHdyb3RlOgo+Cj4gTW92ZSB0byB0aGUgbmV3IHN0YXRpYyBnbG9iYWwgZm9yIGlk ZW50aXR5IGRvbWFpbnMuIE1vdmUgYWxsIHRoZSBsb2dpYyBvdXQKPiBvZiBhcm1fc21tdV9hdHRh Y2hfZGV2IGludG8gYW4gaWRlbnRpdHkgb25seSBmdW5jdGlvbi4KPgo+IFNpZ25lZC1vZmYtYnk6 IEphc29uIEd1bnRob3JwZSA8amdnQG52aWRpYS5jb20+ClJldmlld2VkLWJ5OiBNaWNoYWVsIFNo YXZpdCA8bXNoYXZpdEBnb29nbGUuY29tPgoKPiAtLS0KPiAgZHJpdmVycy9pb21tdS9hcm0vYXJt LXNtbXUtdjMvYXJtLXNtbXUtdjMuYyB8IDgyICsrKysrKysrKysrKysrKy0tLS0tLQo+ICBkcml2 ZXJzL2lvbW11L2FybS9hcm0tc21tdS12My9hcm0tc21tdS12My5oIHwgIDEgLQo+ICAyIGZpbGVz IGNoYW5nZWQsIDU4IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvaW9tbXUvYXJtL2FybS1zbW11LXYzL2FybS1zbW11LXYzLmMgYi9kcml2ZXJz L2lvbW11L2FybS9hcm0tc21tdS12My9hcm0tc21tdS12My5jCj4gaW5kZXggMjNkZGE2NDcyMmVh MTcuLmQ2ZjY4YTYxODdkMjkwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvaW9tbXUvYXJtL2FybS1z bW11LXYzL2FybS1zbW11LXYzLmMKPiArKysgYi9kcml2ZXJzL2lvbW11L2FybS9hcm0tc21tdS12 My9hcm0tc21tdS12My5jCj4gQEAgLTIxNzQsOCArMjE3NCw3IEBAIHN0YXRpYyBzdHJ1Y3QgaW9t bXVfZG9tYWluICphcm1fc21tdV9kb21haW5fYWxsb2ModW5zaWduZWQgdHlwZSkKPiAgICAgICAg ICAgICAgICAgcmV0dXJuIGFybV9zbW11X3N2YV9kb21haW5fYWxsb2MoKTsKPgo+ICAgICAgICAg aWYgKHR5cGUgIT0gSU9NTVVfRE9NQUlOX1VOTUFOQUdFRCAmJgo+IC0gICAgICAgICAgIHR5cGUg IT0gSU9NTVVfRE9NQUlOX0RNQSAmJgo+IC0gICAgICAgICAgIHR5cGUgIT0gSU9NTVVfRE9NQUlO X0lERU5USVRZKQo+ICsgICAgICAgICAgIHR5cGUgIT0gSU9NTVVfRE9NQUlOX0RNQSkKPiAgICAg ICAgICAgICAgICAgcmV0dXJuIE5VTEw7Cj4KPiAgICAgICAgIC8qCj4gQEAgLTIyODMsMTEgKzIy ODIsNiBAQCBzdGF0aWMgaW50IGFybV9zbW11X2RvbWFpbl9maW5hbGlzZShzdHJ1Y3QgaW9tbXVf ZG9tYWluICpkb21haW4pCj4gICAgICAgICBzdHJ1Y3QgYXJtX3NtbXVfZG9tYWluICpzbW11X2Rv bWFpbiA9IHRvX3NtbXVfZG9tYWluKGRvbWFpbik7Cj4gICAgICAgICBzdHJ1Y3QgYXJtX3NtbXVf ZGV2aWNlICpzbW11ID0gc21tdV9kb21haW4tPnNtbXU7Cj4KPiAtICAgICAgIGlmIChkb21haW4t PnR5cGUgPT0gSU9NTVVfRE9NQUlOX0lERU5USVRZKSB7Cj4gLSAgICAgICAgICAgICAgIHNtbXVf ZG9tYWluLT5zdGFnZSA9IEFSTV9TTU1VX0RPTUFJTl9CWVBBU1M7Cj4gLSAgICAgICAgICAgICAg IHJldHVybiAwOwo+IC0gICAgICAgfQo+IC0KPiAgICAgICAgIC8qIFJlc3RyaWN0IHRoZSBzdGFn ZSB0byB3aGF0IHdlIGNhbiBhY3R1YWxseSBzdXBwb3J0ICovCj4gICAgICAgICBpZiAoIShzbW11 LT5mZWF0dXJlcyAmIEFSTV9TTU1VX0ZFQVRfVFJBTlNfUzEpKQo+ICAgICAgICAgICAgICAgICBz bW11X2RvbWFpbi0+c3RhZ2UgPSBBUk1fU01NVV9ET01BSU5fUzI7Cj4gQEAgLTI0ODQsNyArMjQ3 OCw3IEBAIHN0YXRpYyB2b2lkIGFybV9zbW11X2RldGFjaF9kZXYoc3RydWN0IGFybV9zbW11X21h c3RlciAqbWFzdGVyKQo+ICAgICAgICAgc3RydWN0IGFybV9zbW11X2RvbWFpbiAqc21tdV9kb21h aW47Cj4gICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwo+Cj4gLSAgICAgICBpZiAoIWRvbWFp bikKPiArICAgICAgIGlmICghZG9tYWluIHx8ICEoZG9tYWluLT50eXBlICYgX19JT01NVV9ET01B SU5fUEFHSU5HKSkKPiAgICAgICAgICAgICAgICAgcmV0dXJuOwo+Cj4gICAgICAgICBzbW11X2Rv bWFpbiA9IHRvX3NtbXVfZG9tYWluKGRvbWFpbik7Cj4gQEAgLTI1NDcsMTUgKzI1NDEsNyBAQCBz dGF0aWMgaW50IGFybV9zbW11X2F0dGFjaF9kZXYoc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWlu LCBzdHJ1Y3QgZGV2aWNlICpkZXYpCj4KPiAgICAgICAgIGFybV9zbW11X2RldGFjaF9kZXYobWFz dGVyKTsKPgo+IC0gICAgICAgLyoKPiAtICAgICAgICAqIFRoZSBTTU1VIGRvZXMgbm90IHN1cHBv cnQgZW5hYmxpbmcgQVRTIHdpdGggYnlwYXNzLiBXaGVuIHRoZSBTVEUgaXMKPiAtICAgICAgICAq IGluIGJ5cGFzcyAoU1RFLkNvbmZpZ1syOjBdID09IDBiMTAwKSwgQVRTIFRyYW5zbGF0aW9uIFJl cXVlc3RzIGFuZAo+IC0gICAgICAgICogVHJhbnNsYXRlZCB0cmFuc2FjdGlvbnMgYXJlIGRlbmll ZCBhcyB0aG91Z2ggQVRTIGlzIGRpc2FibGVkIGZvciB0aGUKPiAtICAgICAgICAqIHN0cmVhbSAo U1RFLkVBVFMgPT0gMGIwMCksIGNhdXNpbmcgRl9CQURfQVRTX1RSRVEgYW5kCj4gLSAgICAgICAg KiBGX1RSQU5TTF9GT1JCSURERU4gZXZlbnRzIChJSEkwMDcwRWEgNS4yIFN0cmVhbSBUYWJsZSBF bnRyeSkuCj4gLSAgICAgICAgKi8KPiAtICAgICAgIGlmIChzbW11X2RvbWFpbi0+c3RhZ2UgIT0g QVJNX1NNTVVfRE9NQUlOX0JZUEFTUykKPiAtICAgICAgICAgICAgICAgbWFzdGVyLT5hdHNfZW5h YmxlZCA9IGFybV9zbW11X2F0c19zdXBwb3J0ZWQobWFzdGVyKTsKPiArICAgICAgIG1hc3Rlci0+ YXRzX2VuYWJsZWQgPSBhcm1fc21tdV9hdHNfc3VwcG9ydGVkKG1hc3Rlcik7Cj4KPiAgICAgICAg IHNwaW5fbG9ja19pcnFzYXZlKCZzbW11X2RvbWFpbi0+ZGV2aWNlc19sb2NrLCBmbGFncyk7Cj4g ICAgICAgICBsaXN0X2FkZCgmbWFzdGVyLT5kb21haW5faGVhZCwgJnNtbXVfZG9tYWluLT5kZXZp Y2VzKTsKPiBAQCAtMjU5MiwxMyArMjU3OCw2IEBAIHN0YXRpYyBpbnQgYXJtX3NtbXVfYXR0YWNo X2RldihzdHJ1Y3QgaW9tbXVfZG9tYWluICpkb21haW4sIHN0cnVjdCBkZXZpY2UgKmRldikKPiAg ICAgICAgICAgICAgICAgICAgICAgICBhcm1fc21tdV93cml0ZV9jdHhfZGVzYyhtYXN0ZXIsIElP TU1VX05PX1BBU0lELAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5VTEwpOwo+ICAgICAgICAgICAgICAgICBicmVhazsKPiAtICAgICAgIGNh c2UgQVJNX1NNTVVfRE9NQUlOX0JZUEFTUzoKPiAtICAgICAgICAgICAgICAgYXJtX3NtbXVfbWFr ZV9ieXBhc3Nfc3RlKCZ0YXJnZXQpOwo+IC0gICAgICAgICAgICAgICBhcm1fc21tdV9pbnN0YWxs X3N0ZV9mb3JfZGV2KG1hc3RlciwgJnRhcmdldCk7Cj4gLSAgICAgICAgICAgICAgIGlmIChtYXN0 ZXItPmNkX3RhYmxlLmNkdGFiKQo+IC0gICAgICAgICAgICAgICAgICAgICAgIGFybV9zbW11X3dy aXRlX2N0eF9kZXNjKG1hc3RlciwgSU9NTVVfTk9fUEFTSUQsCj4gLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Cj4gLSAgICAgICAgICAg ICAgIGJyZWFrOwo+ICAgICAgICAgfQo+Cj4gICAgICAgICBhcm1fc21tdV9lbmFibGVfYXRzKG1h c3Rlciwgc21tdV9kb21haW4pOwo+IEBAIC0yNjE0LDYgKzI1OTMsNjAgQEAgc3RhdGljIGludCBh cm1fc21tdV9hdHRhY2hfZGV2KHN0cnVjdCBpb21tdV9kb21haW4gKmRvbWFpbiwgc3RydWN0IGRl dmljZSAqZGV2KQo+ICAgICAgICAgcmV0dXJuIHJldDsKPiAgfQo+Cj4gK3N0YXRpYyBpbnQgYXJt X3NtbXVfYXR0YWNoX2Rldl9zdGUoc3RydWN0IGRldmljZSAqZGV2LAo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGFybV9zbW11X3N0ZSAqc3RlKQo+ICt7Cj4gKyAg ICAgICBzdHJ1Y3QgYXJtX3NtbXVfbWFzdGVyICptYXN0ZXIgPSBkZXZfaW9tbXVfcHJpdl9nZXQo ZGV2KTsKPiArCj4gKyAgICAgICBpZiAoYXJtX3NtbXVfbWFzdGVyX3N2YV9lbmFibGVkKG1hc3Rl cikpCj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRUJVU1k7Cj4gKwo+ICsgICAgICAgLyoKPiAr ICAgICAgICAqIERvIG5vdCBhbGxvdyBhbnkgQVNJRCB0byBiZSBjaGFuZ2VkIHdoaWxlIGFyZSB3 b3JraW5nIG9uIHRoZSBTVEUsCj4gKyAgICAgICAgKiBvdGhlcndpc2Ugd2UgY291bGQgbWlzcyBp bnZhbGlkYXRpb25zLgo+ICsgICAgICAgICovCj4gKyAgICAgICBtdXRleF9sb2NrKCZhcm1fc21t dV9hc2lkX2xvY2spOwo+ICsKPiArICAgICAgIC8qCj4gKyAgICAgICAgKiBUaGUgU01NVSBkb2Vz IG5vdCBzdXBwb3J0IGVuYWJsaW5nIEFUUyB3aXRoIGJ5cGFzcy9hYm9ydC4gV2hlbiB0aGUKPiAr ICAgICAgICAqIFNURSBpcyBpbiBieXBhc3MgKFNURS5Db25maWdbMjowXSA9PSAwYjEwMCksIEFU UyBUcmFuc2xhdGlvbiBSZXF1ZXN0cwo+ICsgICAgICAgICogYW5kIFRyYW5zbGF0ZWQgdHJhbnNh Y3Rpb25zIGFyZSBkZW5pZWQgYXMgdGhvdWdoIEFUUyBpcyBkaXNhYmxlZCBmb3IKPiArICAgICAg ICAqIHRoZSBzdHJlYW0gKFNURS5FQVRTID09IDBiMDApLCBjYXVzaW5nIEZfQkFEX0FUU19UUkVR IGFuZAo+ICsgICAgICAgICogRl9UUkFOU0xfRk9SQklEREVOIGV2ZW50cyAoSUhJMDA3MEVhIDUu MiBTdHJlYW0gVGFibGUgRW50cnkpLgo+ICsgICAgICAgICovCj4gKyAgICAgICBhcm1fc21tdV9k ZXRhY2hfZGV2KG1hc3Rlcik7Cj4gKwo+ICsgICAgICAgYXJtX3NtbXVfaW5zdGFsbF9zdGVfZm9y X2RldihtYXN0ZXIsIHN0ZSk7Cj4gKyAgICAgICBtdXRleF91bmxvY2soJmFybV9zbW11X2FzaWRf bG9jayk7Cj4gKwo+ICsgICAgICAgLyoKPiArICAgICAgICAqIFRoaXMgaGFzIHRvIGJlIGRvbmUg YWZ0ZXIgcmVtb3ZpbmcgdGhlIG1hc3RlciBmcm9tIHRoZQo+ICsgICAgICAgICogYXJtX3NtbXVf ZG9tYWluLT5kZXZpY2VzIHRvIGF2b2lkIHJhY2VzIHVwZGF0aW5nIHRoZSBzYW1lIGNvbnRleHQK PiArICAgICAgICAqIGRlc2NyaXB0b3IgZnJvbSBhcm1fc21tdV9zaGFyZV9hc2lkKCkuCj4gKyAg ICAgICAgKi8KPiArICAgICAgIGlmIChtYXN0ZXItPmNkX3RhYmxlLmNkdGFiKQo+ICsgICAgICAg ICAgICAgICBhcm1fc21tdV93cml0ZV9jdHhfZGVzYyhtYXN0ZXIsIElPTU1VX05PX1BBU0lELCBO VUxMKTsKPiArICAgICAgIHJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGFybV9zbW11 X2F0dGFjaF9kZXZfaWRlbnRpdHkoc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluLAo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYpCj4g K3sKPiArICAgICAgIHN0cnVjdCBhcm1fc21tdV9zdGUgc3RlOwo+ICsKPiArICAgICAgIGFybV9z bW11X21ha2VfYnlwYXNzX3N0ZSgmc3RlKTsKPiArICAgICAgIHJldHVybiBhcm1fc21tdV9hdHRh Y2hfZGV2X3N0ZShkZXYsICZzdGUpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGlv bW11X2RvbWFpbl9vcHMgYXJtX3NtbXVfaWRlbnRpdHlfb3BzID0gewo+ICsgICAgICAgLmF0dGFj aF9kZXYgPSBhcm1fc21tdV9hdHRhY2hfZGV2X2lkZW50aXR5LAo+ICt9Owo+ICsKPiArc3RhdGlj IHN0cnVjdCBpb21tdV9kb21haW4gYXJtX3NtbXVfaWRlbnRpdHlfZG9tYWluID0gewo+ICsgICAg ICAgLnR5cGUgPSBJT01NVV9ET01BSU5fSURFTlRJVFksCj4gKyAgICAgICAub3BzID0gJmFybV9z bW11X2lkZW50aXR5X29wcywKPiArfTsKPiArCj4gIHN0YXRpYyBpbnQgYXJtX3NtbXVfbWFwX3Bh Z2VzKHN0cnVjdCBpb21tdV9kb21haW4gKmRvbWFpbiwgdW5zaWduZWQgbG9uZyBpb3ZhLAo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBoeXNfYWRkcl90IHBhZGRyLCBzaXplX3QgcGdz aXplLCBzaXplX3QgcGdjb3VudCwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQg cHJvdCwgZ2ZwX3QgZ2ZwLCBzaXplX3QgKm1hcHBlZCkKPiBAQCAtMzAwNiw2ICszMDM5LDcgQEAg c3RhdGljIHZvaWQgYXJtX3NtbXVfcmVtb3ZlX2Rldl9wYXNpZChzdHJ1Y3QgZGV2aWNlICpkZXYs IGlvYXNpZF90IHBhc2lkKQo+ICB9Cj4KPiAgc3RhdGljIHN0cnVjdCBpb21tdV9vcHMgYXJtX3Nt bXVfb3BzID0gewo+ICsgICAgICAgLmlkZW50aXR5X2RvbWFpbiAgICAgICAgPSAmYXJtX3NtbXVf aWRlbnRpdHlfZG9tYWluLAo+ICAgICAgICAgLmNhcGFibGUgICAgICAgICAgICAgICAgPSBhcm1f c21tdV9jYXBhYmxlLAo+ICAgICAgICAgLmRvbWFpbl9hbGxvYyAgICAgICAgICAgPSBhcm1fc21t dV9kb21haW5fYWxsb2MsCj4gICAgICAgICAucHJvYmVfZGV2aWNlICAgICAgICAgICA9IGFybV9z bW11X3Byb2JlX2RldmljZSwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9hcm0vYXJtLXNt bXUtdjMvYXJtLXNtbXUtdjMuaCBiL2RyaXZlcnMvaW9tbXUvYXJtL2FybS1zbW11LXYzL2FybS1z bW11LXYzLmgKPiBpbmRleCAyMWYyZjczNTAxMDE5YS4uMTU0ODA4Zjk2NzE4ZGYgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9pb21tdS9hcm0vYXJtLXNtbXUtdjMvYXJtLXNtbXUtdjMuaAo+ICsrKyBi L2RyaXZlcnMvaW9tbXUvYXJtL2FybS1zbW11LXYzL2FybS1zbW11LXYzLmgKPiBAQCAtNzEyLDcg KzcxMiw2IEBAIHN0cnVjdCBhcm1fc21tdV9tYXN0ZXIgewo+ICBlbnVtIGFybV9zbW11X2RvbWFp bl9zdGFnZSB7Cj4gICAgICAgICBBUk1fU01NVV9ET01BSU5fUzEgPSAwLAo+ICAgICAgICAgQVJN X1NNTVVfRE9NQUlOX1MyLAo+IC0gICAgICAgQVJNX1NNTVVfRE9NQUlOX0JZUEFTUywKPiAgfTsK Pgo+ICBzdHJ1Y3QgYXJtX3NtbXVfZG9tYWluIHsKPiAtLQo+IDIuNDIuMAo+CgpPbiBUdWUsIE5v diAxNCwgMjAyMyBhdCAxOjUz4oCvQU0gSmFzb24gR3VudGhvcnBlIDxqZ2dAbnZpZGlhLmNvbT4g d3JvdGU6Cj4KPiBNb3ZlIHRvIHRoZSBuZXcgc3RhdGljIGdsb2JhbCBmb3IgaWRlbnRpdHkgZG9t YWlucy4gTW92ZSBhbGwgdGhlIGxvZ2ljIG91dAo+IG9mIGFybV9zbW11X2F0dGFjaF9kZXYgaW50 byBhbiBpZGVudGl0eSBvbmx5IGZ1bmN0aW9uLgo+Cj4gU2lnbmVkLW9mZi1ieTogSmFzb24gR3Vu dGhvcnBlIDxqZ2dAbnZpZGlhLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9pb21tdS9hcm0vYXJtLXNt bXUtdjMvYXJtLXNtbXUtdjMuYyB8IDgyICsrKysrKysrKysrKysrKy0tLS0tLQo+ICBkcml2ZXJz L2lvbW11L2FybS9hcm0tc21tdS12My9hcm0tc21tdS12My5oIHwgIDEgLQo+ICAyIGZpbGVzIGNo YW5nZWQsIDU4IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvaW9tbXUvYXJtL2FybS1zbW11LXYzL2FybS1zbW11LXYzLmMgYi9kcml2ZXJzL2lv bW11L2FybS9hcm0tc21tdS12My9hcm0tc21tdS12My5jCj4gaW5kZXggMjNkZGE2NDcyMmVhMTcu LmQ2ZjY4YTYxODdkMjkwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvaW9tbXUvYXJtL2FybS1zbW11 LXYzL2FybS1zbW11LXYzLmMKPiArKysgYi9kcml2ZXJzL2lvbW11L2FybS9hcm0tc21tdS12My9h cm0tc21tdS12My5jCj4gQEAgLTIxNzQsOCArMjE3NCw3IEBAIHN0YXRpYyBzdHJ1Y3QgaW9tbXVf ZG9tYWluICphcm1fc21tdV9kb21haW5fYWxsb2ModW5zaWduZWQgdHlwZSkKPiAgICAgICAgICAg ICAgICAgcmV0dXJuIGFybV9zbW11X3N2YV9kb21haW5fYWxsb2MoKTsKPgo+ICAgICAgICAgaWYg KHR5cGUgIT0gSU9NTVVfRE9NQUlOX1VOTUFOQUdFRCAmJgo+IC0gICAgICAgICAgIHR5cGUgIT0g SU9NTVVfRE9NQUlOX0RNQSAmJgo+IC0gICAgICAgICAgIHR5cGUgIT0gSU9NTVVfRE9NQUlOX0lE RU5USVRZKQo+ICsgICAgICAgICAgIHR5cGUgIT0gSU9NTVVfRE9NQUlOX0RNQSkKPiAgICAgICAg ICAgICAgICAgcmV0dXJuIE5VTEw7Cj4KPiAgICAgICAgIC8qCj4gQEAgLTIyODMsMTEgKzIyODIs NiBAQCBzdGF0aWMgaW50IGFybV9zbW11X2RvbWFpbl9maW5hbGlzZShzdHJ1Y3QgaW9tbXVfZG9t YWluICpkb21haW4pCj4gICAgICAgICBzdHJ1Y3QgYXJtX3NtbXVfZG9tYWluICpzbW11X2RvbWFp biA9IHRvX3NtbXVfZG9tYWluKGRvbWFpbik7Cj4gICAgICAgICBzdHJ1Y3QgYXJtX3NtbXVfZGV2 aWNlICpzbW11ID0gc21tdV9kb21haW4tPnNtbXU7Cj4KPiAtICAgICAgIGlmIChkb21haW4tPnR5 cGUgPT0gSU9NTVVfRE9NQUlOX0lERU5USVRZKSB7Cj4gLSAgICAgICAgICAgICAgIHNtbXVfZG9t YWluLT5zdGFnZSA9IEFSTV9TTU1VX0RPTUFJTl9CWVBBU1M7Cj4gLSAgICAgICAgICAgICAgIHJl dHVybiAwOwo+IC0gICAgICAgfQo+IC0KPiAgICAgICAgIC8qIFJlc3RyaWN0IHRoZSBzdGFnZSB0 byB3aGF0IHdlIGNhbiBhY3R1YWxseSBzdXBwb3J0ICovCj4gICAgICAgICBpZiAoIShzbW11LT5m ZWF0dXJlcyAmIEFSTV9TTU1VX0ZFQVRfVFJBTlNfUzEpKQo+ICAgICAgICAgICAgICAgICBzbW11 X2RvbWFpbi0+c3RhZ2UgPSBBUk1fU01NVV9ET01BSU5fUzI7Cj4gQEAgLTI0ODQsNyArMjQ3OCw3 IEBAIHN0YXRpYyB2b2lkIGFybV9zbW11X2RldGFjaF9kZXYoc3RydWN0IGFybV9zbW11X21hc3Rl ciAqbWFzdGVyKQo+ICAgICAgICAgc3RydWN0IGFybV9zbW11X2RvbWFpbiAqc21tdV9kb21haW47 Cj4gICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwo+Cj4gLSAgICAgICBpZiAoIWRvbWFpbikK PiArICAgICAgIGlmICghZG9tYWluIHx8ICEoZG9tYWluLT50eXBlICYgX19JT01NVV9ET01BSU5f UEFHSU5HKSkKPiAgICAgICAgICAgICAgICAgcmV0dXJuOwo+Cj4gICAgICAgICBzbW11X2RvbWFp biA9IHRvX3NtbXVfZG9tYWluKGRvbWFpbik7Cj4gQEAgLTI1NDcsMTUgKzI1NDEsNyBAQCBzdGF0 aWMgaW50IGFybV9zbW11X2F0dGFjaF9kZXYoc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluLCBz dHJ1Y3QgZGV2aWNlICpkZXYpCj4KPiAgICAgICAgIGFybV9zbW11X2RldGFjaF9kZXYobWFzdGVy KTsKPgo+IC0gICAgICAgLyoKPiAtICAgICAgICAqIFRoZSBTTU1VIGRvZXMgbm90IHN1cHBvcnQg ZW5hYmxpbmcgQVRTIHdpdGggYnlwYXNzLiBXaGVuIHRoZSBTVEUgaXMKPiAtICAgICAgICAqIGlu IGJ5cGFzcyAoU1RFLkNvbmZpZ1syOjBdID09IDBiMTAwKSwgQVRTIFRyYW5zbGF0aW9uIFJlcXVl c3RzIGFuZAo+IC0gICAgICAgICogVHJhbnNsYXRlZCB0cmFuc2FjdGlvbnMgYXJlIGRlbmllZCBh cyB0aG91Z2ggQVRTIGlzIGRpc2FibGVkIGZvciB0aGUKPiAtICAgICAgICAqIHN0cmVhbSAoU1RF LkVBVFMgPT0gMGIwMCksIGNhdXNpbmcgRl9CQURfQVRTX1RSRVEgYW5kCj4gLSAgICAgICAgKiBG X1RSQU5TTF9GT1JCSURERU4gZXZlbnRzIChJSEkwMDcwRWEgNS4yIFN0cmVhbSBUYWJsZSBFbnRy eSkuCj4gLSAgICAgICAgKi8KPiAtICAgICAgIGlmIChzbW11X2RvbWFpbi0+c3RhZ2UgIT0gQVJN X1NNTVVfRE9NQUlOX0JZUEFTUykKPiAtICAgICAgICAgICAgICAgbWFzdGVyLT5hdHNfZW5hYmxl ZCA9IGFybV9zbW11X2F0c19zdXBwb3J0ZWQobWFzdGVyKTsKPiArICAgICAgIG1hc3Rlci0+YXRz X2VuYWJsZWQgPSBhcm1fc21tdV9hdHNfc3VwcG9ydGVkKG1hc3Rlcik7Cj4KPiAgICAgICAgIHNw aW5fbG9ja19pcnFzYXZlKCZzbW11X2RvbWFpbi0+ZGV2aWNlc19sb2NrLCBmbGFncyk7Cj4gICAg ICAgICBsaXN0X2FkZCgmbWFzdGVyLT5kb21haW5faGVhZCwgJnNtbXVfZG9tYWluLT5kZXZpY2Vz KTsKPiBAQCAtMjU5MiwxMyArMjU3OCw2IEBAIHN0YXRpYyBpbnQgYXJtX3NtbXVfYXR0YWNoX2Rl dihzdHJ1Y3QgaW9tbXVfZG9tYWluICpkb21haW4sIHN0cnVjdCBkZXZpY2UgKmRldikKPiAgICAg ICAgICAgICAgICAgICAgICAgICBhcm1fc21tdV93cml0ZV9jdHhfZGVzYyhtYXN0ZXIsIElPTU1V X05PX1BBU0lELAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE5VTEwpOwo+ICAgICAgICAgICAgICAgICBicmVhazsKPiAtICAgICAgIGNhc2Ug QVJNX1NNTVVfRE9NQUlOX0JZUEFTUzoKPiAtICAgICAgICAgICAgICAgYXJtX3NtbXVfbWFrZV9i eXBhc3Nfc3RlKCZ0YXJnZXQpOwo+IC0gICAgICAgICAgICAgICBhcm1fc21tdV9pbnN0YWxsX3N0 ZV9mb3JfZGV2KG1hc3RlciwgJnRhcmdldCk7Cj4gLSAgICAgICAgICAgICAgIGlmIChtYXN0ZXIt PmNkX3RhYmxlLmNkdGFiKQo+IC0gICAgICAgICAgICAgICAgICAgICAgIGFybV9zbW11X3dyaXRl X2N0eF9kZXNjKG1hc3RlciwgSU9NTVVfTk9fUEFTSUQsCj4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Cj4gLSAgICAgICAgICAgICAg IGJyZWFrOwo+ICAgICAgICAgfQo+Cj4gICAgICAgICBhcm1fc21tdV9lbmFibGVfYXRzKG1hc3Rl ciwgc21tdV9kb21haW4pOwo+IEBAIC0yNjE0LDYgKzI1OTMsNjAgQEAgc3RhdGljIGludCBhcm1f c21tdV9hdHRhY2hfZGV2KHN0cnVjdCBpb21tdV9kb21haW4gKmRvbWFpbiwgc3RydWN0IGRldmlj ZSAqZGV2KQo+ICAgICAgICAgcmV0dXJuIHJldDsKPiAgfQo+Cj4gK3N0YXRpYyBpbnQgYXJtX3Nt bXVfYXR0YWNoX2Rldl9zdGUoc3RydWN0IGRldmljZSAqZGV2LAo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IGFybV9zbW11X3N0ZSAqc3RlKQo+ICt7Cj4gKyAgICAg ICBzdHJ1Y3QgYXJtX3NtbXVfbWFzdGVyICptYXN0ZXIgPSBkZXZfaW9tbXVfcHJpdl9nZXQoZGV2 KTsKPiArCj4gKyAgICAgICBpZiAoYXJtX3NtbXVfbWFzdGVyX3N2YV9lbmFibGVkKG1hc3Rlcikp Cj4gKyAgICAgICAgICAgICAgIHJldHVybiAtRUJVU1k7Cj4gKwo+ICsgICAgICAgLyoKPiArICAg ICAgICAqIERvIG5vdCBhbGxvdyBhbnkgQVNJRCB0byBiZSBjaGFuZ2VkIHdoaWxlIGFyZSB3b3Jr aW5nIG9uIHRoZSBTVEUsCj4gKyAgICAgICAgKiBvdGhlcndpc2Ugd2UgY291bGQgbWlzcyBpbnZh bGlkYXRpb25zLgo+ICsgICAgICAgICovCj4gKyAgICAgICBtdXRleF9sb2NrKCZhcm1fc21tdV9h c2lkX2xvY2spOwo+ICsKPiArICAgICAgIC8qCj4gKyAgICAgICAgKiBUaGUgU01NVSBkb2VzIG5v dCBzdXBwb3J0IGVuYWJsaW5nIEFUUyB3aXRoIGJ5cGFzcy9hYm9ydC4gV2hlbiB0aGUKPiArICAg ICAgICAqIFNURSBpcyBpbiBieXBhc3MgKFNURS5Db25maWdbMjowXSA9PSAwYjEwMCksIEFUUyBU cmFuc2xhdGlvbiBSZXF1ZXN0cwo+ICsgICAgICAgICogYW5kIFRyYW5zbGF0ZWQgdHJhbnNhY3Rp b25zIGFyZSBkZW5pZWQgYXMgdGhvdWdoIEFUUyBpcyBkaXNhYmxlZCBmb3IKPiArICAgICAgICAq IHRoZSBzdHJlYW0gKFNURS5FQVRTID09IDBiMDApLCBjYXVzaW5nIEZfQkFEX0FUU19UUkVRIGFu ZAo+ICsgICAgICAgICogRl9UUkFOU0xfRk9SQklEREVOIGV2ZW50cyAoSUhJMDA3MEVhIDUuMiBT dHJlYW0gVGFibGUgRW50cnkpLgo+ICsgICAgICAgICovCj4gKyAgICAgICBhcm1fc21tdV9kZXRh Y2hfZGV2KG1hc3Rlcik7Cj4gKwo+ICsgICAgICAgYXJtX3NtbXVfaW5zdGFsbF9zdGVfZm9yX2Rl dihtYXN0ZXIsIHN0ZSk7Cj4gKyAgICAgICBtdXRleF91bmxvY2soJmFybV9zbW11X2FzaWRfbG9j ayk7Cj4gKwo+ICsgICAgICAgLyoKPiArICAgICAgICAqIFRoaXMgaGFzIHRvIGJlIGRvbmUgYWZ0 ZXIgcmVtb3ZpbmcgdGhlIG1hc3RlciBmcm9tIHRoZQo+ICsgICAgICAgICogYXJtX3NtbXVfZG9t YWluLT5kZXZpY2VzIHRvIGF2b2lkIHJhY2VzIHVwZGF0aW5nIHRoZSBzYW1lIGNvbnRleHQKPiAr ICAgICAgICAqIGRlc2NyaXB0b3IgZnJvbSBhcm1fc21tdV9zaGFyZV9hc2lkKCkuCj4gKyAgICAg ICAgKi8KPiArICAgICAgIGlmIChtYXN0ZXItPmNkX3RhYmxlLmNkdGFiKQo+ICsgICAgICAgICAg ICAgICBhcm1fc21tdV93cml0ZV9jdHhfZGVzYyhtYXN0ZXIsIElPTU1VX05PX1BBU0lELCBOVUxM KTsKPiArICAgICAgIHJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IGFybV9zbW11X2F0 dGFjaF9kZXZfaWRlbnRpdHkoc3RydWN0IGlvbW11X2RvbWFpbiAqZG9tYWluLAo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYpCj4gK3sK PiArICAgICAgIHN0cnVjdCBhcm1fc21tdV9zdGUgc3RlOwo+ICsKPiArICAgICAgIGFybV9zbW11 X21ha2VfYnlwYXNzX3N0ZSgmc3RlKTsKPiArICAgICAgIHJldHVybiBhcm1fc21tdV9hdHRhY2hf ZGV2X3N0ZShkZXYsICZzdGUpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGlvbW11 X2RvbWFpbl9vcHMgYXJtX3NtbXVfaWRlbnRpdHlfb3BzID0gewo+ICsgICAgICAgLmF0dGFjaF9k ZXYgPSBhcm1fc21tdV9hdHRhY2hfZGV2X2lkZW50aXR5LAo+ICt9Owo+ICsKPiArc3RhdGljIHN0 cnVjdCBpb21tdV9kb21haW4gYXJtX3NtbXVfaWRlbnRpdHlfZG9tYWluID0gewo+ICsgICAgICAg LnR5cGUgPSBJT01NVV9ET01BSU5fSURFTlRJVFksCj4gKyAgICAgICAub3BzID0gJmFybV9zbW11 X2lkZW50aXR5X29wcywKPiArfTsKPiArCj4gIHN0YXRpYyBpbnQgYXJtX3NtbXVfbWFwX3BhZ2Vz KHN0cnVjdCBpb21tdV9kb21haW4gKmRvbWFpbiwgdW5zaWduZWQgbG9uZyBpb3ZhLAo+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBoeXNfYWRkcl90IHBhZGRyLCBzaXplX3QgcGdzaXpl LCBzaXplX3QgcGdjb3VudCwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcHJv dCwgZ2ZwX3QgZ2ZwLCBzaXplX3QgKm1hcHBlZCkKPiBAQCAtMzAwNiw2ICszMDM5LDcgQEAgc3Rh dGljIHZvaWQgYXJtX3NtbXVfcmVtb3ZlX2Rldl9wYXNpZChzdHJ1Y3QgZGV2aWNlICpkZXYsIGlv YXNpZF90IHBhc2lkKQo+ICB9Cj4KPiAgc3RhdGljIHN0cnVjdCBpb21tdV9vcHMgYXJtX3NtbXVf b3BzID0gewo+ICsgICAgICAgLmlkZW50aXR5X2RvbWFpbiAgICAgICAgPSAmYXJtX3NtbXVfaWRl bnRpdHlfZG9tYWluLAo+ICAgICAgICAgLmNhcGFibGUgICAgICAgICAgICAgICAgPSBhcm1fc21t dV9jYXBhYmxlLAo+ICAgICAgICAgLmRvbWFpbl9hbGxvYyAgICAgICAgICAgPSBhcm1fc21tdV9k b21haW5fYWxsb2MsCj4gICAgICAgICAucHJvYmVfZGV2aWNlICAgICAgICAgICA9IGFybV9zbW11 X3Byb2JlX2RldmljZSwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9pb21tdS9hcm0vYXJtLXNtbXUt djMvYXJtLXNtbXUtdjMuaCBiL2RyaXZlcnMvaW9tbXUvYXJtL2FybS1zbW11LXYzL2FybS1zbW11 LXYzLmgKPiBpbmRleCAyMWYyZjczNTAxMDE5YS4uMTU0ODA4Zjk2NzE4ZGYgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9pb21tdS9hcm0vYXJtLXNtbXUtdjMvYXJtLXNtbXUtdjMuaAo+ICsrKyBiL2Ry aXZlcnMvaW9tbXUvYXJtL2FybS1zbW11LXYzL2FybS1zbW11LXYzLmgKPiBAQCAtNzEyLDcgKzcx Miw2IEBAIHN0cnVjdCBhcm1fc21tdV9tYXN0ZXIgewo+ICBlbnVtIGFybV9zbW11X2RvbWFpbl9z dGFnZSB7Cj4gICAgICAgICBBUk1fU01NVV9ET01BSU5fUzEgPSAwLAo+ICAgICAgICAgQVJNX1NN TVVfRE9NQUlOX1MyLAo+IC0gICAgICAgQVJNX1NNTVVfRE9NQUlOX0JZUEFTUywKPiAgfTsKPgo+ ICBzdHJ1Y3QgYXJtX3NtbXVfZG9tYWluIHsKPiAtLQo+IDIuNDIuMAo+CgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxp bmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3Rz LmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==