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 X-Spam-Level: X-Spam-Status: No, score=-3.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B55B4C31E45 for ; Thu, 13 Jun 2019 13:28:02 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 87B002064A for ; Thu, 13 Jun 2019 13:28:02 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 87B002064A Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=suse.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hbPlg-0001ue-16; Thu, 13 Jun 2019 13:27:52 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hbPle-0001uX-Cp for xen-devel@lists.xenproject.org; Thu, 13 Jun 2019 13:27:50 +0000 X-Inumbo-ID: 08629e12-8ddf-11e9-8c3a-3fc8c35f7230 Received: from prv1-mh.provo.novell.com (unknown [137.65.248.33]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 08629e12-8ddf-11e9-8c3a-3fc8c35f7230; Thu, 13 Jun 2019 13:27:47 +0000 (UTC) Received: from INET-PRV1-MTA by prv1-mh.provo.novell.com with Novell_GroupWise; Thu, 13 Jun 2019 07:27:46 -0600 Message-Id: <5D024F500200007800237E31@prv1-mh.provo.novell.com> X-Mailer: Novell GroupWise Internet Agent 18.1.1 Date: Thu, 13 Jun 2019 07:27:44 -0600 From: "Jan Beulich" To: "xen-devel" References: <5D024C500200007800237DD8@prv1-mh.provo.novell.com> In-Reply-To: <5D024C500200007800237DD8@prv1-mh.provo.novell.com> Mime-Version: 1.0 Content-Disposition: inline Subject: [Xen-devel] [PATCH 8/9] AMD/IOMMU: enable x2APIC mode when available X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Andrew Cooper , Brian Woods , Suravee Suthikulpanit Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" SW4gb3JkZXIgZm9yIHRoZSBDUFVzIHRvIHVzZSB4MkFQSUMgbW9kZSwgdGhlIElPTU1VKHMpIGZp cnN0IG5lZWQgdG8gYmUKc3dpdGNoZWQgaW50byBzdWl0YWJsZSBzdGF0ZS4KClRoZSBwb3N0LUFQ LWJyaW5ndXAgSVJRIGFmZmluaXR5IGFkanVzdG1lbnQgaXMgZG9uZSBhbHNvIGZvciB0aGUgbm9u LQp4MkFQSUMgY2FzZS4KClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNl LmNvbT4KLS0tClRCRDogSW5zdGVhZCBvZiB0aGUgc3lzdGVtX3N0YXRlIGNoZWNrIGluIGlvdl9l bmFibGVfeHQoKSB0aGUgZnVuY3Rpb24KICAgICBjb3VsZCBhbHNvIHphcCBpdHMgb3duIGhvb2sg cG9pbnRlciwgYXQgd2hpY2ggcG9pbnQgaXQgY291bGQgYWxzbwogICAgIGJlY29tZSBfX2luaXQu IFRoaXMgd291bGQsIGhvd2V2ZXIsIHJlcXVpcmUgdGhhdCBlaXRoZXIKICAgICByZXN1bWVfeDJh cGljKCkgYmUgYm91bmQgdG8gaWdub3JlIGlvbW11X2VuYWJsZV94MmFwaWMoKSBlcnJvcnMKICAg ICBmb3JldmVyLCBvciB0aGF0IGlvbW11X2VuYWJsZV94MmFwaWMoKSBiZSBzbGlnaHRseSByZS1h cnJhbmdlZCB0bwogICAgIG5vdCByZXR1cm4gLUVPUE5PVFNVUFAgd2hlbiBmaW5kaW5nIGEgTlVM TCBob29rIGR1cmluZyByZXN1bWUuCgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQv aW9tbXVfaW5pdC5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9pbml0 LmMKQEAgLTgzNCw2ICs4MzQsMzAgQEAgc3RhdGljIGJvb2xfdCBfX2luaXQgc2V0X2lvbW11X2lu dGVycnVwdAogICAgIHJldHVybiAxOwogfQogCitpbnQgaW92X2FkanVzdF9pcnFfYWZmaW5pdGll cyh2b2lkKQoreworICAgIGNvbnN0IHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11OworCisgICAgaWYg KCAhaW9tbXVfZW5hYmxlZCApCisgICAgICAgIHJldHVybiAwOworCisgICAgZm9yX2VhY2hfYW1k X2lvbW11ICggaW9tbXUgKQorICAgIHsKKyAgICAgICAgc3RydWN0IGlycV9kZXNjICpkZXNjID0g aXJxX3RvX2Rlc2MoaW9tbXUtPm1zaS5pcnEpOworICAgICAgICB1bnNpZ25lZCBsb25nIGZsYWdz OworCisgICAgICAgIHNwaW5fbG9ja19pcnFzYXZlKCZkZXNjLT5sb2NrLCBmbGFncyk7CisgICAg ICAgIGlmICggaW9tbXUtPmN0cmwuaW50X2NhcF94dF9lbiApCisgICAgICAgICAgICBzZXRfeDJh cGljX2FmZmluaXR5KGRlc2MsICZjcHVfb25saW5lX21hcCk7CisgICAgICAgIGVsc2UKKyAgICAg ICAgICAgIHNldF9tc2lfYWZmaW5pdHkoZGVzYywgJmNwdV9vbmxpbmVfbWFwKTsKKyAgICAgICAg c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGVzYy0+bG9jaywgZmxhZ3MpOworICAgIH0KKworICAg IHJldHVybiAwOworfQorX19pbml0Y2FsbChpb3ZfYWRqdXN0X2lycV9hZmZpbml0aWVzKTsKKwog LyoKICAqIEZhbWlseTE1aCBNb2RlbCAxMGgtMWZoIGVycmF0dW0gNzQ2IChJT01NVSBMb2dnaW5n IE1heSBTdGFsbCBUcmFuc2xhdGlvbnMpCiAgKiBXb3JrYXJvdW5kOgpAQCAtMTA0Nyw3ICsxMDcx LDcgQEAgc3RhdGljIHZvaWQgKiBfX2luaXQgYWxsb2NhdGVfcHByX2xvZyhzdAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9QUFJfTE9HX0RFRkFVTFRfRU5UUklFUywgIlBQ UiBMb2ciKTsKIH0KIAotc3RhdGljIGludCBfX2luaXQgYW1kX2lvbW11X2luaXRfb25lKHN0cnVj dCBhbWRfaW9tbXUgKmlvbW11KQorc3RhdGljIGludCBfX2luaXQgYW1kX2lvbW11X2luaXRfb25l KHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LCBib29sIGludHIpCiB7CiAgICAgaWYgKCBhbGxvY2F0 ZV9jbWRfYnVmZmVyKGlvbW11KSA9PSBOVUxMICkKICAgICAgICAgZ290byBlcnJvcl9vdXQ7CkBA IC0xMDU4LDcgKzEwODIsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBhbWRfaW9tbXVfaW5pdF9vbmUo c3RyCiAgICAgaWYgKCBpb21tdS0+ZmVhdHVyZXMuZmxkcy5wcHJfc3VwICYmICFhbGxvY2F0ZV9w cHJfbG9nKGlvbW11KSApCiAgICAgICAgIGdvdG8gZXJyb3Jfb3V0OwogCi0gICAgaWYgKCAhc2V0 X2lvbW11X2ludGVycnVwdF9oYW5kbGVyKGlvbW11KSApCisgICAgaWYgKCBpbnRyICYmICFzZXRf aW9tbXVfaW50ZXJydXB0X2hhbmRsZXIoaW9tbXUpICkKICAgICAgICAgZ290byBlcnJvcl9vdXQ7 CiAKICAgICAvKiBUbyBtYWtlIHN1cmUgdGhhdCBkZXZpY2VfdGFibGUuYnVmZmVyIGhhcyBiZWVu IHN1Y2Nlc3NmdWxseSBhbGxvY2F0ZWQgKi8KQEAgLTEyODUsNyArMTMwOSw3IEBAIHN0YXRpYyBp bnQgX19pbml0IGFtZF9pb21tdV9wcmVwYXJlX29uZSgKICAgICByZXR1cm4gMDsKIH0KIAotaW50 IF9faW5pdCBhbWRfaW9tbXVfaW5pdCh2b2lkKQoraW50IF9faW5pdCBhbWRfaW9tbXVfcHJlcGFy ZSh2b2lkKQogewogICAgIHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11OwogICAgIGludCByYyA9IC1F Tk9ERVY7CkBAIC0xMzAwLDkgKzEzMjQsMTQgQEAgaW50IF9faW5pdCBhbWRfaW9tbXVfaW5pdCh2 b2lkKQogICAgIGlmICggdW5saWtlbHkoYWNwaV9nYmxfRkFEVC5ib290X2ZsYWdzICYgQUNQSV9G QURUX05PX01TSSkgKQogICAgICAgICBnb3RvIGVycm9yX291dDsKIAorICAgIC8qIEhhdmUgd2Ug YmVlbiBoZXJlIGJlZm9yZT8gKi8KKyAgICBpZiAoIGl2aGRfdHlwZSApCisgICAgICAgIHJldHVy biAwOworCiAgICAgcmMgPSBhbWRfaW9tbXVfZ2V0X3N1cHBvcnRlZF9pdmhkX3R5cGUoKTsKICAg ICBpZiAoIHJjIDwgMCApCiAgICAgICAgIGdvdG8gZXJyb3Jfb3V0OworICAgIEJVR19PTighcmMp OwogICAgIGl2aGRfdHlwZSA9IHJjOwogCiAgICAgcmMgPSBhbWRfaW9tbXVfZ2V0X2l2cnNfZGV2 X2VudHJpZXMoKTsKQEAgLTEzMjEsOSArMTM1MCwzMyBAQCBpbnQgX19pbml0IGFtZF9pb21tdV9p bml0KHZvaWQpCiAgICAgfQogCiAgICAgcmMgPSBhbWRfaW9tbXVfdXBkYXRlX2l2cnNfbWFwcGlu Z19hY3BpKCk7CisKKyBlcnJvcl9vdXQ6CisgICAgaWYgKCByYyApCisgICAgeworICAgICAgICBh bWRfaW9tbXVfaW5pdF9jbGVhbnVwKCk7CisgICAgICAgIGl2aGRfdHlwZSA9IDA7CisgICAgfQor CisgICAgcmV0dXJuIHJjOworfQorCitpbnQgX19pbml0IGFtZF9pb21tdV9pbml0KGJvb2wgeHQp Cit7CisgICAgc3RydWN0IGFtZF9pb21tdSAqaW9tbXU7CisgICAgaW50IHJjID0gYW1kX2lvbW11 X3ByZXBhcmUoKTsKKwogICAgIGlmICggcmMgKQogICAgICAgICBnb3RvIGVycm9yX291dDsKIAor ICAgIGZvcl9lYWNoX2FtZF9pb21tdSAoIGlvbW11ICkKKyAgICB7CisgICAgICAgIC8qIE5COiBU aGVyZSdzIG5vIG5lZWQgdG8gYWN0dWFsbHkgd3JpdGUgdGhlc2Ugb3V0IHJpZ2h0IGhlcmUuICov CisgICAgICAgIGlvbW11LT5jdHJsLmdhX2VuIHw9IHh0OworICAgICAgICBpb21tdS0+Y3RybC54 dF9lbiA9IHh0OworICAgICAgICBpb21tdS0+Y3RybC5pbnRfY2FwX3h0X2VuID0geHQ7CisgICAg fQorCiAgICAgLyogaW5pdGlhbGl6ZSBpby1hcGljIGludGVycnVwdCByZW1hcHBpbmcgZW50cmll cyAqLwogICAgIGlmICggaW9tbXVfaW50cmVtYXAgKQogICAgICAgICByYyA9IGFtZF9pb21tdV9z ZXR1cF9pb2FwaWNfcmVtYXBwaW5nKCk7CkBAIC0xMzQ2LDcgKzEzOTksNyBAQCBpbnQgX19pbml0 IGFtZF9pb21tdV9pbml0KHZvaWQpCiAgICAgLyogcGVyIGlvbW11IGluaXRpYWxpemF0aW9uICAq LwogICAgIGZvcl9lYWNoX2FtZF9pb21tdSAoIGlvbW11ICkKICAgICB7Ci0gICAgICAgIHJjID0g YW1kX2lvbW11X2luaXRfb25lKGlvbW11KTsKKyAgICAgICAgcmMgPSBhbWRfaW9tbXVfaW5pdF9v bmUoaW9tbXUsICF4dCk7CiAgICAgICAgIGlmICggcmMgKQogICAgICAgICAgICAgZ290byBlcnJv cl9vdXQ7CiAgICAgfQpAQCAtMTM1OCw2ICsxNDExLDQwIEBAIGVycm9yX291dDoKICAgICByZXR1 cm4gcmM7CiB9CiAKK2ludCBfX2luaXQgYW1kX2lvbW11X2luaXRfaW50ZXJydXB0KHZvaWQpCit7 CisgICAgc3RydWN0IGFtZF9pb21tdSAqaW9tbXU7CisgICAgaW50IHJjID0gMDsKKworICAgIGZv cl9lYWNoX2FtZF9pb21tdSAoIGlvbW11ICkKKyAgICB7CisgICAgICAgIHN0cnVjdCBpcnFfZGVz YyAqZGVzYzsKKworICAgICAgICBpZiAoICFzZXRfaW9tbXVfaW50ZXJydXB0X2hhbmRsZXIoaW9t bXUpICkKKyAgICAgICAgeworICAgICAgICAgICAgcmMgPSAtRUlPOworICAgICAgICAgICAgYnJl YWs7CisgICAgICAgIH0KKworICAgICAgICBkZXNjID0gaXJxX3RvX2Rlc2MoaW9tbXUtPm1zaS5p cnEpOworCisgICAgICAgIHNwaW5fbG9jaygmZGVzYy0+bG9jayk7CisgICAgICAgIEFTU0VSVChp b21tdS0+Y3RybC5pbnRfY2FwX3h0X2VuKTsKKyAgICAgICAgc2V0X3gyYXBpY19hZmZpbml0eShk ZXNjLCAmY3B1X29ubGluZV9tYXApOworICAgICAgICBzcGluX3VubG9jaygmZGVzYy0+bG9jayk7 CisKKyAgICAgICAgc2V0X2lvbW11X2V2ZW50X2xvZ19jb250cm9sKGlvbW11LCBJT01NVV9DT05U Uk9MX0VOQUJMRUQpOworCisgICAgICAgIGlmICggaW9tbXUtPmZlYXR1cmVzLmZsZHMucHByX3N1 cCApCisgICAgICAgICAgICBzZXRfaW9tbXVfcHByX2xvZ19jb250cm9sKGlvbW11LCBJT01NVV9D T05UUk9MX0VOQUJMRUQpOworICAgIH0KKworICAgIGlmICggcmMgKQorICAgICAgICBhbWRfaW9t bXVfaW5pdF9jbGVhbnVwKCk7CisKKyAgICByZXR1cm4gcmM7Cit9CisKIHN0YXRpYyB2b2lkIGlu dmFsaWRhdGVfYWxsX2RvbWFpbl9wYWdlcyh2b2lkKQogewogICAgIHN0cnVjdCBkb21haW4gKmQ7 Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9pbnRyLmMKKysrIGIveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2ludHIuYwpAQCAtNzk2LDYgKzc5Niw0MCBA QCB2b2lkKiBfX2luaXQgYW1kX2lvbW11X2FsbG9jX2ludHJlbWFwX3RhCiAgICAgcmV0dXJuIHRi OwogfQogCitib29sIF9faW5pdCBpb3Zfc3VwcG9ydHNfeHQodm9pZCkKK3sKKyAgICB1bnNpZ25l ZCBpbnQgYXBpYzsKKyAgICBzdHJ1Y3QgYW1kX2lvbW11ICppb21tdTsKKworICAgIGlmICggIWlv bW11X2VuYWJsZSB8fCAhaW9tbXVfaW50cmVtYXAgfHwgIWNwdV9oYXNfY3gxNiApCisgICAgICAg IHJldHVybiBmYWxzZTsKKworICAgIGlmICggYW1kX2lvbW11X3ByZXBhcmUoKSApCisgICAgICAg IHJldHVybiBmYWxzZTsKKworICAgIGZvcl9lYWNoX2FtZF9pb21tdSAoIGlvbW11ICkKKyAgICAg ICAgaWYgKCAhaW9tbXUtPmZlYXR1cmVzLmZsZHMuZ2Ffc3VwIHx8ICFpb21tdS0+ZmVhdHVyZXMu Zmxkcy54dF9zdXAgKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZm9yICggYXBp YyA9IDA7IGFwaWMgPCBucl9pb2FwaWNzOyBhcGljKysgKQorICAgIHsKKyAgICAgICAgdW5zaWdu ZWQgaW50IGlkeCA9IGlvYXBpY19pZF90b19pbmRleChJT19BUElDX0lEKGFwaWMpKTsKKworICAg ICAgICBpZiAoIGlkeCA9PSBNQVhfSU9fQVBJQ1MgKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNl OworCisgICAgICAgIGlmICggIWZpbmRfaW9tbXVfZm9yX2RldmljZShpb2FwaWNfc2JkZltpZHhd LnNlZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlvYXBpY19zYmRmW2lk eF0uYmRmKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIEFNRF9JT01NVV9ERUJVRygiTm8gSU9N TVUgZm9yIElPLUFQSUMgJSN4IChJRCAleClcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYXBpYywgSU9fQVBJQ19JRChhcGljKSk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg ICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogaW50IF9faW5pdCBhbWRf c2V0dXBfaHBldF9tc2koc3RydWN0IG1zaV9kZXNjICptc2lfZGVzYykKIHsKICAgICBzcGlubG9j a190ICpsb2NrOwotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21t dS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKQEAg LTE3MCw3ICsxNzAsOCBAQCBzdGF0aWMgaW50IF9faW5pdCBpb3ZfZGV0ZWN0KHZvaWQpCiAgICAg aWYgKCAhaW9tbXVfZW5hYmxlICYmICFpb21tdV9pbnRyZW1hcCApCiAgICAgICAgIHJldHVybiAw OwogCi0gICAgaWYgKCBhbWRfaW9tbXVfaW5pdCgpICE9IDAgKQorICAgIGVsc2UgaWYgKCAoaW5p dF9kb25lID8gYW1kX2lvbW11X2luaXRfaW50ZXJydXB0KCkKKyAgICAgICAgICAgICAgICAgICAg ICAgICA6IGFtZF9pb21tdV9pbml0KGZhbHNlKSkgIT0gMCApCiAgICAgewogICAgICAgICBwcmlu dGsoIkFNRC1WaTogRXJyb3IgaW5pdGlhbGl6YXRpb25cbiIpOwogICAgICAgICByZXR1cm4gLUVO T0RFVjsKQEAgLTE4Myw2ICsxODQsMjUgQEAgc3RhdGljIGludCBfX2luaXQgaW92X2RldGVjdCh2 b2lkKQogICAgIHJldHVybiBzY2FuX3BjaV9kZXZpY2VzKCk7CiB9CiAKK3N0YXRpYyBpbnQgaW92 X2VuYWJsZV94dCh2b2lkKQoreworICAgIGludCByYzsKKworICAgIGlmICggc3lzdGVtX3N0YXRl ID49IFNZU19TVEFURV9hY3RpdmUgKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmICggKHJj ID0gYW1kX2lvbW11X2luaXQodHJ1ZSkpICE9IDAgKQorICAgIHsKKyAgICAgICAgcHJpbnRrKCJB TUQtVmk6IEVycm9yICVkIGluaXRpYWxpemluZyBmb3IgeDJBUElDIG1vZGVcbiIsIHJjKTsKKyAg ICAgICAgLyogLUVOWElPIGhhcyBzcGVjaWFsIG1lYW5pbmcgdG8gdGhlIGNhbGxlciAtIGNvbnZl cnQgaXQuICovCisgICAgICAgIHJldHVybiByYyAhPSAtRU5YSU8gPyByYyA6IC1FTk9EQVRBOwor ICAgIH0KKworICAgIGluaXRfZG9uZSA9IHRydWU7CisKKyAgICByZXR1cm4gMDsKK30KKwogaW50 IGFtZF9pb21tdV9hbGxvY19yb290KHN0cnVjdCBkb21haW5faW9tbXUgKmhkKQogewogICAgIGlm ICggdW5saWtlbHkoIWhkLT5hcmNoLnJvb3RfdGFibGUpICkKQEAgLTU1OSwxMSArNTc5LDEzIEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW9tbXVfb3BzIF9faW5pdGNvbnMKICAgICAuZnJlZV9wYWdl X3RhYmxlID0gZGVhbGxvY2F0ZV9wYWdlX3RhYmxlLAogICAgIC5yZWFzc2lnbl9kZXZpY2UgPSBy ZWFzc2lnbl9kZXZpY2UsCiAgICAgLmdldF9kZXZpY2VfZ3JvdXBfaWQgPSBhbWRfaW9tbXVfZ3Jv dXBfaWQsCisgICAgLmVuYWJsZV94MmFwaWMgPSBpb3ZfZW5hYmxlX3h0LAogICAgIC51cGRhdGVf aXJlX2Zyb21fYXBpYyA9IGFtZF9pb21tdV9pb2FwaWNfdXBkYXRlX2lyZSwKICAgICAudXBkYXRl X2lyZV9mcm9tX21zaSA9IGFtZF9pb21tdV9tc2lfbXNnX3VwZGF0ZV9pcmUsCiAgICAgLnJlYWRf YXBpY19mcm9tX2lyZSA9IGFtZF9pb21tdV9yZWFkX2lvYXBpY19mcm9tX2lyZSwKICAgICAucmVh ZF9tc2lfZnJvbV9pcmUgPSBhbWRfaW9tbXVfcmVhZF9tc2lfZnJvbV9pcmUsCiAgICAgLnNldHVw X2hwZXRfbXNpID0gYW1kX3NldHVwX2hwZXRfbXNpLAorICAgIC5hZGp1c3RfaXJxX2FmZmluaXRp ZXMgPSBpb3ZfYWRqdXN0X2lycV9hZmZpbml0aWVzLAogICAgIC5zdXNwZW5kID0gYW1kX2lvbW11 X3N1c3BlbmQsCiAgICAgLnJlc3VtZSA9IGFtZF9pb21tdV9yZXN1bWUsCiAgICAgLnNoYXJlX3Ay bSA9IGFtZF9pb21tdV9zaGFyZV9wMm0sCkBAIC01NzQsNCArNTk2LDUgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBpb21tdV9vcHMgX19pbml0Y29ucwogc3RhdGljIGNvbnN0IHN0cnVjdCBpb21tdV9p bml0X29wcyBfX2luaXRjb25zdHJlbCBfaW9tbXVfaW5pdF9vcHMgPSB7CiAgICAgLm9wcyA9ICZf aW9tbXVfb3BzLAogICAgIC5zZXR1cCA9IGlvdl9kZXRlY3QsCisgICAgLnN1cHBvcnRzX3gyYXBp YyA9IGlvdl9zdXBwb3J0c194dCwKIH07Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2 bS9hbWQtaW9tbXUtcHJvdG8uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdm0vYW1k LWlvbW11LXByb3RvLmgKQEAgLTQ4LDggKzQ4LDExIEBAIGludCBhbWRfaW9tbXVfZGV0ZWN0X2Fj cGkodm9pZCk7CiB2b2lkIGdldF9pb21tdV9mZWF0dXJlcyhzdHJ1Y3QgYW1kX2lvbW11ICppb21t dSk7CiAKIC8qIGFtZC1pb21tdS1pbml0IGZ1bmN0aW9ucyAqLwotaW50IGFtZF9pb21tdV9pbml0 KHZvaWQpOworaW50IGFtZF9pb21tdV9wcmVwYXJlKHZvaWQpOworaW50IGFtZF9pb21tdV9pbml0 KGJvb2wgeHQpOworaW50IGFtZF9pb21tdV9pbml0X2ludGVycnVwdCh2b2lkKTsKIGludCBhbWRf aW9tbXVfdXBkYXRlX2l2cnNfbWFwcGluZ19hY3BpKHZvaWQpOworaW50IGlvdl9hZGp1c3RfaXJx X2FmZmluaXRpZXModm9pZCk7CiAKIC8qIG1hcHBpbmcgZnVuY3Rpb25zICovCiBpbnQgX19tdXN0 X2NoZWNrIGFtZF9pb21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4sCkBA IC05Niw2ICs5OSw3IEBAIHZvaWQgYW1kX2lvbW11X2ZsdXNoX2FsbF9jYWNoZXMoc3RydWN0IGEK IHN0cnVjdCBhbWRfaW9tbXUgKmZpbmRfaW9tbXVfZm9yX2RldmljZShpbnQgc2VnLCBpbnQgYmRm KTsKIAogLyogaW50ZXJydXB0IHJlbWFwcGluZyAqLworYm9vbCBpb3Zfc3VwcG9ydHNfeHQodm9p ZCk7CiBpbnQgYW1kX2lvbW11X3NldHVwX2lvYXBpY19yZW1hcHBpbmcodm9pZCk7CiB2b2lkICph bWRfaW9tbXVfYWxsb2NfaW50cmVtYXBfdGFibGUodW5zaWduZWQgbG9uZyAqKik7CiBpbnQgYW1k X2lvbW11X2ZyZWVfaW50cmVtYXBfdGFibGUodTE2IHNlZywgc3RydWN0IGl2cnNfbWFwcGluZ3Mg Kik7CgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpY ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRw czovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs