From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Durrant Subject: [PATCH v3 12/13] x86: add iommu_ops to modify and flush IOMMU mappings Date: Tue, 17 Jul 2018 14:38:15 +0100 Message-ID: <20180717133816.37958-13-paul.durrant@citrix.com> References: <20180717133816.37958-1-paul.durrant@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1ffQUw-0008NZ-7A for xen-devel@lists.xenproject.org; Tue, 17 Jul 2018 13:58:38 +0000 In-Reply-To: <20180717133816.37958-1-paul.durrant@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Stefano Stabellini , Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Paul Durrant , Jan Beulich List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBhZGRzIGlvbW11X29wcyB0byBhZGQgKG1hcCkgb3IgcmVtb3ZlICh1bm1hcCkg ZnJhbWVzIGluIHRoZQpkb21haW4ncyBJT01NVSBtYXBwaW5ncywgYW5kIGFuIGlvbW11X29wIHRv IHN5bmNocm9uaXplIChmbHVzaCkgdGhvc2UKbWFuaXB1bGF0aW9ucyB3aXRoIHRoZSBoYXJkd2Fy ZS4KCk1hcHBpbmdzIGFkZGVkIGJ5IHRoZSBtYXAgb3BlcmF0aW9uIGFyZSB0cmFja2VkIGFuZCBv bmx5IHRob3NlIG1hcHBpbmdzCm1heSBiZSByZW1vdmVkIGJ5IGEgc3Vic2VxdWVudCB1bm1hcCBv cGVyYXRpb24uIEZyYW1lcyBhcmUgc3BlY2lmaWVkIGJ5IHRoZQpvd25pbmcgZG9tYWluIGFuZCBH Rk4uIEl0IGlzLCBvZiBjb3Vyc2UsIHBlcm1pc3NhYmxlIGZvciBhIGRvbWFpbiB0byBtYXAKaXRz IG93biBmcmFtZXMgdXNpbmcgRE9NSURfU0VMRi4KCk5PVEU6IFRoZSBvd25pbmcgZG9tYWluIGFu ZCBHRk4gbXVzdCBhbHNvIGJlIHNwZWNpZmllZCBpbiB0aGUgdW5tYXAKICAgICAgb3BlcmF0aW9u LCBhcyB3ZWxsIGFzIHRoZSBCRk4sIHNvIHRoYXQgdGhleSBjYW4gYmUgY3Jvc3MtY2hlY2tlZAog ICAgICB3aXRoIHRoZSBleGlzdGVudCBtYXBwaW5nLgoKU2lnbmVkLW9mZi1ieTogUGF1bCBEdXJy YW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KLS0tCkNjOiBKYW4gQmV1bGljaCA8amJldWxp Y2hAc3VzZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29t PgpDYzogR2VvcmdlIER1bmxhcCA8R2VvcmdlLkR1bmxhcEBldS5jaXRyaXguY29tPgpDYzogSWFu IEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBKdWxpZW4gR3JhbGwgPGp1 bGllbi5ncmFsbEBhcm0uY29tPgpDYzogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2ls a0BvcmFjbGUuY29tPgpDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwu b3JnPgpDYzogVGltIERlZWdhbiA8dGltQHhlbi5vcmc+CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBj aXRyaXguY29tPgoKdjM6CiAtIEFkZCB0eXBlIHBpbm5pbmcuCgp2MjoKIC0gSGVhdmlseSByZS13 b3JrZWQgaW4gdjIsIGluY2x1ZGluZyBleHBsaWNpdCB0cmFja2luZyBvZiBtYXBwaW5ncy4KICAg VGhpcyBhdm9pZHMgdGhlIG5lZWQgdG8gY2xlYXIgbm9uLXJlc2VydmVkIG1hcHBpbmdzIGZyb20g SU9NTVUKICAgYXQgc3RhcnQgb2YgZGF5LCB3aGljaCB3b3VsZCBiZSBwcm9oaWJpdGl2ZWx5IHNs b3cgb24gYSBsYXJnZSBob3N0LgotLS0KIHhlbi9hcmNoL3g4Ni9pb21tdV9vcC5jICAgICAgIHwg MTQxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogeGVuL2luY2x1 ZGUvcHVibGljL2lvbW11X29wLmggfCAgNDMgKysrKysrKysrKysrKwogeGVuL2luY2x1ZGUveGxh dC5sc3QgICAgICAgICAgfCAgIDIgKwogMyBmaWxlcyBjaGFuZ2VkLCAxODYgaW5zZXJ0aW9ucygr KQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9pb21tdV9vcC5jIGIveGVuL2FyY2gveDg2L2lv bW11X29wLmMKaW5kZXggYTcwY2U5ZjI3Mi4uMDJiZjljNjc5ZSAxMDA2NDQKLS0tIGEveGVuL2Fy Y2gveDg2L2lvbW11X29wLmMKKysrIGIveGVuL2FyY2gveDg2L2lvbW11X29wLmMKQEAgLTExNCw2 ICsxMTQsMTIzIEBAIHN0YXRpYyBpbnQgaW9tbXVfb3BfZW5hYmxlX21vZGlmaWNhdGlvbih2b2lk KQogICAgIHJldHVybiAwOwogfQogCitzdGF0aWMgaW50IGlvbW11b3BfbWFwKHN0cnVjdCB4ZW5f aW9tbXVfb3BfbWFwICpvcCkKK3sKKyAgICBzdHJ1Y3QgZG9tYWluICpkLCAqY3VycmQgPSBjdXJy ZW50LT5kb21haW47CisgICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaW9tbXUgPSBkb21faW9tbXUo Y3VycmQpOworICAgIGJvb2wgcmVhZG9ubHkgPSBvcC0+ZmxhZ3MgJiBYRU5fSU9NTVVPUF9tYXBf cmVhZG9ubHk7CisgICAgYmZuX3QgYmZuID0gX2JmbihvcC0+YmZuKTsKKyAgICBzdHJ1Y3QgcGFn ZV9pbmZvICpwYWdlOworICAgIHVuc2lnbmVkIGludCBwcm90OworICAgIGludCByYywgaWdub3Jl OworCisgICAgaWYgKCBvcC0+cGFkIHx8IChvcC0+ZmxhZ3MgJiB+WEVOX0lPTU1VT1BfbWFwX3Jl YWRvbmx5KSApCisgICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAgaWYgKCAhaW9tbXUtPmlv bW11X29wX3JhbmdlcyApCisgICAgICAgIHJldHVybiAtRU9QTk9UU1VQUDsKKworICAgIC8qIENo ZWNrIHdoZXRoZXIgdGhlIHNwZWNpZmllZCBCRk4gZmFsbHMgaW4gYSByZXNlcnZlZCByZWdpb24g Ki8KKyAgICBpZiAoIHJhbmdlc2V0X2NvbnRhaW5zX3NpbmdsZXRvbihpb21tdS0+cmVzZXJ2ZWRf cmFuZ2VzLCBiZm5feChiZm4pKSApCisgICAgICAgIHJldHVybiAtRUlOVkFMOworCisgICAgZCA9 IHJjdV9sb2NrX2RvbWFpbl9ieV9hbnlfaWQob3AtPmRvbWlkKTsKKyAgICBpZiAoICFkICkKKyAg ICAgICAgcmV0dXJuIC1FU1JDSDsKKworICAgIHJjID0gZ2V0X3BhZ2VkX2dmbihkLCBfZ2ZuKG9w LT5nZm4pLCByZWFkb25seSwgTlVMTCwgJnBhZ2UpOworICAgIGlmICggcmMgKQorICAgICAgICBn b3RvIHVubG9jazsKKworICAgIHJjID0gLUVJTlZBTDsKKyAgICBpZiAoICFnZXRfcGFnZV90eXBl KHBhZ2UsIHJlYWRvbmx5ID8gUEdUX25vbmUgOiBQR1Rfd3JpdGFibGVfcGFnZSkgKQorICAgIHsK KyAgICAgICAgcHV0X3BhZ2UocGFnZSk7CisgICAgICAgIGdvdG8gdW5sb2NrOworICAgIH0KKwor ICAgIHByb3QgPSBJT01NVUZfcmVhZGFibGU7CisgICAgaWYgKCAhcmVhZG9ubHkgKQorICAgICAg ICBwcm90IHw9IElPTU1VRl93cml0YWJsZTsKKworICAgIHJjID0gLUVJTzsKKyAgICBpZiAoIGlv bW11X21hcF9wYWdlKGN1cnJkLCBiZm4sIHBhZ2VfdG9fbWZuKHBhZ2UpLCBwcm90KSApCisgICAg ICAgIGdvdG8gcmVsZWFzZTsKKworICAgIHJjID0gcmFuZ2VzZXRfYWRkX3NpbmdsZXRvbihpb21t dS0+aW9tbXVfb3BfcmFuZ2VzLCBiZm5feChiZm4pKTsKKyAgICBpZiAoIHJjICkKKyAgICAgICAg Z290byB1bm1hcDsKKworICAgIHJjID0gMDsKKyAgICBnb3RvIHVubG9jazsgLyogcmV0YWluIG1h cHBpbmcgYW5kIHJlZmVyZW5jZXMgKi8KKworIHVubWFwOgorICAgIGlnbm9yZSA9IGlvbW11X3Vu bWFwX3BhZ2UoY3VycmQsIGJmbik7CisKKyByZWxlYXNlOgorICAgIHB1dF9wYWdlX2FuZF90eXBl KHBhZ2UpOworCisgdW5sb2NrOgorICAgIHJjdV91bmxvY2tfZG9tYWluKGQpOworICAgIHJldHVy biByYzsKK30KKworc3RhdGljIGludCBpb21tdW9wX3VubWFwKHN0cnVjdCB4ZW5faW9tbXVfb3Bf dW5tYXAgKm9wKQoreworICAgIHN0cnVjdCBkb21haW4gKmQsICpjdXJyZCA9IGN1cnJlbnQtPmRv bWFpbjsKKyAgICBzdHJ1Y3QgZG9tYWluX2lvbW11ICppb21tdSA9IGRvbV9pb21tdShjdXJyZCk7 CisgICAgYmZuX3QgYmZuID0gX2JmbihvcC0+YmZuKTsKKyAgICBtZm5fdCBtZm47CisgICAgdW5z aWduZWQgaW50IHByb3Q7CisgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGFnZTsKKyAgICBpbnQgcmM7 CisKKyAgICBpZiAoIG9wLT5wYWQwIHx8IG9wLT5wYWQxICkKKyAgICAgICAgcmV0dXJuIC1FSU5W QUw7CisKKyAgICBpZiAoICFpb21tdS0+aW9tbXVfb3BfcmFuZ2VzICkKKyAgICAgICAgcmV0dXJu IC1FT1BOT1RTVVBQOworCisgICAgaWYgKCAhcmFuZ2VzZXRfY29udGFpbnNfc2luZ2xldG9uKGlv bW11LT5pb21tdV9vcF9yYW5nZXMsIGJmbl94KGJmbikpIHx8CisgICAgICAgICBpb21tdV9sb29r dXBfcGFnZShjdXJyZCwgYmZuLCAmbWZuLCAmcHJvdCkgfHwKKyAgICAgICAgICFtZm5fdmFsaWQo bWZuKSApCisgICAgICAgIHJldHVybiAtRU5PRU5UOworCisgICAgZCA9IHJjdV9sb2NrX2RvbWFp bl9ieV9hbnlfaWQob3AtPmRvbWlkKTsKKyAgICBpZiAoICFkICkKKyAgICAgICAgcmV0dXJuIC1F U1JDSDsKKworICAgIHJjID0gZ2V0X3BhZ2VkX2dmbihkLCBfZ2ZuKG9wLT5nZm4pLCAhKHByb3Qg JiBJT01NVUZfd3JpdGFibGUpLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAmcGFnZSk7 CisgICAgaWYgKCByYyApCisgICAgICAgIGdvdG8gdW5sb2NrOworCisgICAgcHV0X3BhZ2UocGFn ZSk7IC8qIHJlbGVhc2UgZXh0cmEgcmVmZXJlbmNlIGp1c3QgdGFrZW4gKi8KKworICAgIHJjID0g LUVJTlZBTDsKKyAgICBpZiAoICFtZm5fZXEocGFnZV90b19tZm4ocGFnZSksIG1mbikgKQorICAg ICAgICBnb3RvIHVubG9jazsKKworICAgIHB1dF9wYWdlX2FuZF90eXBlKHBhZ2UpOyAvKiByZWxl YXNlIHJlZmVyZW5jZXMgdGFrZW4gaW4gbWFwICovCisKKyAgICByYyA9IHJhbmdlc2V0X3JlbW92 ZV9zaW5nbGV0b24oaW9tbXUtPmlvbW11X29wX3JhbmdlcywgYmZuX3goYmZuKSk7CisgICAgaWYg KCByYyApCisgICAgICAgIGdvdG8gdW5sb2NrOworCisgICAgaWYgKCAhaW9tbXVfdW5tYXBfcGFn ZShjdXJyZCwgYmZuKSApCisgICAgICAgIHJjID0gLUVJTzsKKworIHVubG9jazoKKyAgICByY3Vf dW5sb2NrX2RvbWFpbihkKTsKKworICAgIHJldHVybiByYzsKK30KKworc3RhdGljIGludCBpb21t dW9wX2ZsdXNoKHZvaWQpCit7CisgICAgcmV0dXJuICFpb21tdV9pb3RsYl9mbHVzaF9hbGwoY3Vy cmVudC0+ZG9tYWluKSA/IDAgOiAtRUlPOworfQorCiBzdGF0aWMgdm9pZCBpb21tdV9vcCh4ZW5f aW9tbXVfb3BfdCAqb3ApCiB7CiAgICAgc3dpdGNoICggb3AtPm9wICkKQEAgLTEyNiw2ICsyNDMs MjIgQEAgc3RhdGljIHZvaWQgaW9tbXVfb3AoeGVuX2lvbW11X29wX3QgKm9wKQogICAgICAgICBv cC0+c3RhdHVzID0gaW9tbXVfb3BfZW5hYmxlX21vZGlmaWNhdGlvbigpOwogICAgICAgICBicmVh azsKIAorICAgIGNhc2UgWEVOX0lPTU1VT1BfbWFwOgorICAgICAgICB0aGlzX2NwdShpb21tdV9k b250X2ZsdXNoX2lvdGxiKSA9IDE7CisgICAgICAgIG9wLT5zdGF0dXMgPSBpb21tdW9wX21hcCgm b3AtPnUubWFwKTsKKyAgICAgICAgdGhpc19jcHUoaW9tbXVfZG9udF9mbHVzaF9pb3RsYikgPSAw OworICAgICAgICBicmVhazsKKworICAgIGNhc2UgWEVOX0lPTU1VT1BfdW5tYXA6CisgICAgICAg IHRoaXNfY3B1KGlvbW11X2RvbnRfZmx1c2hfaW90bGIpID0gMTsKKyAgICAgICAgb3AtPnN0YXR1 cyA9IGlvbW11b3BfdW5tYXAoJm9wLT51LnVubWFwKTsKKyAgICAgICAgdGhpc19jcHUoaW9tbXVf ZG9udF9mbHVzaF9pb3RsYikgPSAwOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgWEVOX0lP TU1VT1BfZmx1c2g6CisgICAgICAgIG9wLT5zdGF0dXMgPSBpb21tdW9wX2ZsdXNoKCk7CisgICAg ICAgIGJyZWFrOworCiAgICAgZGVmYXVsdDoKICAgICAgICAgb3AtPnN0YXR1cyA9IC1FT1BOT1RT VVBQOwogICAgICAgICBicmVhazsKQEAgLTEzOSw2ICsyNzIsOSBAQCBpbnQgZG9fb25lX2lvbW11 X29wKHhlbl9pb21tdV9vcF9idWZfdCAqYnVmKQogICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgb3Bf c2l6ZVtdID0gewogICAgICAgICBbWEVOX0lPTU1VT1BfcXVlcnlfcmVzZXJ2ZWRdID0gc2l6ZW9m KHN0cnVjdCB4ZW5faW9tbXVfb3BfcXVlcnlfcmVzZXJ2ZWQpLAogICAgICAgICBbWEVOX0lPTU1V T1BfZW5hYmxlX21vZGlmaWNhdGlvbl0gPSAwLAorICAgICAgICBbWEVOX0lPTU1VT1BfbWFwXSA9 IHNpemVvZihzdHJ1Y3QgeGVuX2lvbW11X29wX21hcCksCisgICAgICAgIFtYRU5fSU9NTVVPUF91 bm1hcF0gPSBzaXplb2Yoc3RydWN0IHhlbl9pb21tdV9vcF91bm1hcCksCisgICAgICAgIFtYRU5f SU9NTVVPUF9mbHVzaF0gPSAwLAogICAgIH07CiAgICAgc2l6ZV90IHNpemU7CiAgICAgaW50IHJj OwpAQCAtMjI0LDYgKzM2MCw5IEBAIGludCBjb21wYXRfb25lX2lvbW11X29wKGNvbXBhdF9pb21t dV9vcF9idWZfdCAqYnVmKQogICAgIHN0YXRpYyBjb25zdCBzaXplX3Qgb3Bfc2l6ZVtdID0gewog ICAgICAgICBbWEVOX0lPTU1VT1BfcXVlcnlfcmVzZXJ2ZWRdID0gc2l6ZW9mKHN0cnVjdCBjb21w YXRfaW9tbXVfb3BfcXVlcnlfcmVzZXJ2ZWQpLAogICAgICAgICBbWEVOX0lPTU1VT1BfZW5hYmxl X21vZGlmaWNhdGlvbl0gPSAwLAorICAgICAgICBbWEVOX0lPTU1VT1BfbWFwXSA9IHNpemVvZihz dHJ1Y3QgY29tcGF0X2lvbW11X29wX21hcCksCisgICAgICAgIFtYRU5fSU9NTVVPUF91bm1hcF0g PSBzaXplb2Yoc3RydWN0IGNvbXBhdF9pb21tdV9vcF91bm1hcCksCisgICAgICAgIFtYRU5fSU9N TVVPUF9mbHVzaF0gPSAwLAogICAgIH07CiAgICAgc2l6ZV90IHNpemU7CiAgICAgeGVuX2lvbW11 X29wX3QgbmF0OwpAQCAtMjYxLDYgKzQwMCw4IEBAIGludCBjb21wYXRfb25lX2lvbW11X29wKGNv bXBhdF9pb21tdV9vcF9idWZfdCAqYnVmKQogICAgICAqIHdlIG5lZWQgdG8gZml4IHRoaW5ncyB1 cCBoZXJlLgogICAgICAqLwogI2RlZmluZSBYTEFUX2lvbW11X29wX3VfcXVlcnlfcmVzZXJ2ZWQg WEVOX0lPTU1VT1BfcXVlcnlfcmVzZXJ2ZWQKKyNkZWZpbmUgWExBVF9pb21tdV9vcF91X21hcCBY RU5fSU9NTVVPUF9tYXAKKyNkZWZpbmUgWExBVF9pb21tdV9vcF91X3VubWFwIFhFTl9JT01NVU9Q X3VubWFwCiAgICAgdSA9IGNtcC5vcDsKIAogI2RlZmluZSBYTEFUX2lvbW11X29wX3F1ZXJ5X3Jl c2VydmVkX0hORExfcmFuZ2VzKF9kXywgX3NfKSAgICAgICAgICAgIFwKZGlmZiAtLWdpdCBhL3hl bi9pbmNsdWRlL3B1YmxpYy9pb21tdV9vcC5oIGIveGVuL2luY2x1ZGUvcHVibGljL2lvbW11X29w LmgKaW5kZXggNWEzMTQ4YzI0Ny4uNzM3ZTJjOGNmZSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUv cHVibGljL2lvbW11X29wLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL2lvbW11X29wLmgKQEAg LTY3LDYgKzY3LDQ3IEBAIHN0cnVjdCB4ZW5faW9tbXVfb3BfcXVlcnlfcmVzZXJ2ZWQgewogICov CiAjZGVmaW5lIFhFTl9JT01NVU9QX2VuYWJsZV9tb2RpZmljYXRpb24gMgogCisvKgorICogWEVO X0lPTU1VT1BfbWFwOiBNYXAgYSBndWVzdCBwYWdlIGluIHRoZSBJT01NVS4KKyAqLworI2RlZmlu ZSBYRU5fSU9NTVVPUF9tYXAgMworCitzdHJ1Y3QgeGVuX2lvbW11X29wX21hcCB7CisgICAgLyog SU4gLSBUaGUgZG9taWQgb2YgdGhlIGd1ZXN0ICovCisgICAgZG9taWRfdCBkb21pZDsKKyAgICB1 aW50MTZfdCBmbGFnczsKKworI2RlZmluZSBfWEVOX0lPTU1VT1BfbWFwX3JlYWRvbmx5IDAKKyNk ZWZpbmUgWEVOX0lPTU1VT1BfbWFwX3JlYWRvbmx5ICgxIDw8IChfWEVOX0lPTU1VT1BfbWFwX3Jl YWRvbmx5KSkKKworICAgIHVpbnQzMl90IHBhZDsKKyAgICAvKiBJTiAtIFRoZSBJT01NVSBmcmFt ZSBudW1iZXIgd2hpY2ggd2lsbCBob2xkIHRoZSBuZXcgbWFwcGluZyAqLworICAgIHhlbl9iZm5f dCBiZm47CisgICAgLyogSU4gLSBUaGUgZ3Vlc3QgZnJhbWUgbnVtYmVyIG9mIHRoZSBwYWdlIHRv IGJlIG1hcHBlZCAqLworICAgIHhlbl9wZm5fdCBnZm47Cit9OworCisvKgorICogWEVOX0lPTU1V T1BfdW5tYXBfZ2ZuOiBSZW1vdmUgYSBtYXBwaW5nIGluIHRoZSBJT01NVS4KKyAqLworI2RlZmlu ZSBYRU5fSU9NTVVPUF91bm1hcCA0CisKK3N0cnVjdCB4ZW5faW9tbXVfb3BfdW5tYXAgeworICAg IC8qIElOIC0gVGhlIGRvbWlkIG9mIHRoZSBndWVzdCAqLworICAgIGRvbWlkX3QgZG9taWQ7Cisg ICAgdWludDE2X3QgcGFkMDsKKyAgICB1aW50MzJfdCBwYWQxOworICAgIC8qIElOIC0gVGhlIElP TU1VIGZyYW1lIG51bWJlciB3aGljaCBob2xkcyB0aGUgbWFwcGluZyB0byBiZSByZW1vdmVkICov CisgICAgeGVuX2Jmbl90IGJmbjsKKyAgICAvKiBJTiAtIFRoZSBndWVzdCBmcmFtZSBudW1iZXIg b2YgdGhlIHBhZ2UgdGhhdCBpcyBtYXBwZWQgKi8KKyAgICB4ZW5fcGZuX3QgZ2ZuOworfTsKKwor LyoKKyAqIFhFTl9JT01NVU9QX2ZsdXNoOiBGbHVzaCB0aGUgSU9NTVUgVExCLgorICovCisjZGVm aW5lIFhFTl9JT01NVU9QX2ZsdXNoIDUKKwogc3RydWN0IHhlbl9pb21tdV9vcCB7CiAgICAgdWlu dDE2X3Qgb3A7ICAgIC8qIG9wIHR5cGUgKi8KICAgICB1aW50MTZfdCBwYWQ7CkBAIC03NCw2ICsx MTUsOCBAQCBzdHJ1Y3QgeGVuX2lvbW11X29wIHsKICAgICAgICAgICAgICAgICAgICAgLyogMCBm b3Igc3VjY2VzcyBvdGhlcndpc2UsIG5lZ2F0aXZlIGVycm5vICovCiAgICAgdW5pb24gewogICAg ICAgICBzdHJ1Y3QgeGVuX2lvbW11X29wX3F1ZXJ5X3Jlc2VydmVkIHF1ZXJ5X3Jlc2VydmVkOwor ICAgICAgICBzdHJ1Y3QgeGVuX2lvbW11X29wX21hcCBtYXA7CisgICAgICAgIHN0cnVjdCB4ZW5f aW9tbXVfb3BfdW5tYXAgdW5tYXA7CiAgICAgfSB1OwogfTsKIHR5cGVkZWYgc3RydWN0IHhlbl9p b21tdV9vcCB4ZW5faW9tbXVfb3BfdDsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hsYXQubHN0 IGIveGVuL2luY2x1ZGUveGxhdC5sc3QKaW5kZXggOTNiY2Y0YjRkMC4uZWQ1MDIxNjM5NCAxMDA2 NDQKLS0tIGEveGVuL2luY2x1ZGUveGxhdC5sc3QKKysrIGIveGVuL2luY2x1ZGUveGxhdC5sc3QK QEAgLTc5LDcgKzc5LDkgQEAKID8JdmNwdV9odm1feDg2XzY0CQkJaHZtL2h2bV92Y3B1LmgKICEJ aW9tbXVfb3AJCQlpb21tdV9vcC5oCiAhCWlvbW11X29wX2J1ZgkJCWlvbW11X29wLmgKKyEJaW9t bXVfb3BfbWFwCQkJaW9tbXVfb3AuaAogIQlpb21tdV9vcF9xdWVyeV9yZXNlcnZlZAkJaW9tbXVf b3AuaAorIQlpb21tdV9vcF91bm1hcAkJCWlvbW11X29wLmgKICEJaW9tbXVfcmVzZXJ2ZWRfcmFu Z2UJCWlvbW11X29wLmgKID8Ja2V4ZWNfZXhlYwkJCWtleGVjLmgKICEJa2V4ZWNfaW1hZ2UJCQlr ZXhlYy5oCi0tIAoyLjExLjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9q ZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVu LWRldmVs