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 54E60C48BD6 for ; Thu, 27 Jun 2019 15:23:31 +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 26B8E2064A for ; Thu, 27 Jun 2019 15:23:31 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 26B8E2064A 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 1hgWF5-0004R3-1B; Thu, 27 Jun 2019 15:23:19 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hgWF3-0004Qd-0d for xen-devel@lists.xenproject.org; Thu, 27 Jun 2019 15:23:17 +0000 X-Inumbo-ID: 7bac5d3f-98ef-11e9-8980-bc764e045a96 Received: from prv1-mh.provo.novell.com (unknown [137.65.248.33]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 7bac5d3f-98ef-11e9-8980-bc764e045a96; Thu, 27 Jun 2019 15:23:15 +0000 (UTC) Received: from INET-PRV1-MTA by prv1-mh.provo.novell.com with Novell_GroupWise; Thu, 27 Jun 2019 09:23:14 -0600 Message-Id: <5D14DF61020000780023B993@prv1-mh.provo.novell.com> X-Mailer: Novell GroupWise Internet Agent 18.1.1 Date: Thu, 27 Jun 2019 09:23:13 -0600 From: "Jan Beulich" To: "xen-devel" References: <5D024C500200007800237DD8@prv1-mh.provo.novell.com> <5D14DDA6020000780023B96E@prv1-mh.provo.novell.com> In-Reply-To: <5D14DDA6020000780023B96E@prv1-mh.provo.novell.com> Mime-Version: 1.0 Content-Disposition: inline Subject: [Xen-devel] [PATCH v2 09/10] 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 LmNvbT4KLS0tCnYyOiBEcm9wIGNwdV9oYXNfY3gxNiBjaGVjay4gQWRkIGNvbW1lbnQuCi0tLQpU QkQ6IEluc3RlYWQgb2YgdGhlIHN5c3RlbV9zdGF0ZSBjaGVjayBpbiBpb3ZfZW5hYmxlX3h0KCkg dGhlIGZ1bmN0aW9uCiAgICAgY291bGQgYWxzbyB6YXAgaXRzIG93biBob29rIHBvaW50ZXIsIGF0 IHdoaWNoIHBvaW50IGl0IGNvdWxkIGFsc28KICAgICBiZWNvbWUgX19pbml0LiBUaGlzIHdvdWxk LCBob3dldmVyLCByZXF1aXJlIHRoYXQgZWl0aGVyCiAgICAgcmVzdW1lX3gyYXBpYygpIGJlIGJv dW5kIHRvIGlnbm9yZSBpb21tdV9lbmFibGVfeDJhcGljKCkgZXJyb3JzCiAgICAgZm9yZXZlciwg b3IgdGhhdCBpb21tdV9lbmFibGVfeDJhcGljKCkgYmUgc2xpZ2h0bHkgcmUtYXJyYW5nZWQgdG8K ICAgICBub3QgcmV0dXJuIC1FT1BOT1RTVVBQIHdoZW4gZmluZGluZyBhIE5VTEwgaG9vayBkdXJp bmcgcmVzdW1lLgoKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2luaXQu YworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfaW5pdC5jCkBAIC04MzQs NiArODM0LDMwIEBAIHN0YXRpYyBib29sX3QgX19pbml0IHNldF9pb21tdV9pbnRlcnJ1cHQKICAg ICByZXR1cm4gMTsKIH0KIAoraW50IGlvdl9hZGp1c3RfaXJxX2FmZmluaXRpZXModm9pZCkKK3sK KyAgICBjb25zdCBzdHJ1Y3QgYW1kX2lvbW11ICppb21tdTsKKworICAgIGlmICggIWlvbW11X2Vu YWJsZWQgKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGZvcl9lYWNoX2FtZF9pb21tdSAoIGlv bW11ICkKKyAgICB7CisgICAgICAgIHN0cnVjdCBpcnFfZGVzYyAqZGVzYyA9IGlycV90b19kZXNj KGlvbW11LT5tc2kuaXJxKTsKKyAgICAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKKworICAgICAg ICBzcGluX2xvY2tfaXJxc2F2ZSgmZGVzYy0+bG9jaywgZmxhZ3MpOworICAgICAgICBpZiAoIGlv bW11LT5jdHJsLmludF9jYXBfeHRfZW4gKQorICAgICAgICAgICAgc2V0X3gyYXBpY19hZmZpbml0 eShkZXNjLCAmY3B1X29ubGluZV9tYXApOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzZXRf bXNpX2FmZmluaXR5KGRlc2MsICZjcHVfb25saW5lX21hcCk7CisgICAgICAgIHNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJmRlc2MtPmxvY2ssIGZsYWdzKTsKKyAgICB9CisKKyAgICByZXR1cm4gMDsK K30KK19faW5pdGNhbGwoaW92X2FkanVzdF9pcnFfYWZmaW5pdGllcyk7CisKIC8qCiAgKiBGYW1p bHkxNWggTW9kZWwgMTBoLTFmaCBlcnJhdHVtIDc0NiAoSU9NTVUgTG9nZ2luZyBNYXkgU3RhbGwg VHJhbnNsYXRpb25zKQogICogV29ya2Fyb3VuZDoKQEAgLTEwNDcsNyArMTA3MSw3IEBAIHN0YXRp YyB2b2lkICogX19pbml0IGFsbG9jYXRlX3Bwcl9sb2coc3QKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSU9NTVVfUFBSX0xPR19ERUZBVUxUX0VOVFJJRVMsICJQUFIgTG9nIik7CiB9 CiAKLXN0YXRpYyBpbnQgX19pbml0IGFtZF9pb21tdV9pbml0X29uZShzdHJ1Y3QgYW1kX2lvbW11 ICppb21tdSkKK3N0YXRpYyBpbnQgX19pbml0IGFtZF9pb21tdV9pbml0X29uZShzdHJ1Y3QgYW1k X2lvbW11ICppb21tdSwgYm9vbCBpbnRyKQogewogICAgIGlmICggYWxsb2NhdGVfY21kX2J1ZmZl cihpb21tdSkgPT0gTlVMTCApCiAgICAgICAgIGdvdG8gZXJyb3Jfb3V0OwpAQCAtMTA1OCw3ICsx MDgyLDcgQEAgc3RhdGljIGludCBfX2luaXQgYW1kX2lvbW11X2luaXRfb25lKHN0cgogICAgIGlm ICggaW9tbXUtPmZlYXR1cmVzLmZsZHMucHByX3N1cCAmJiAhYWxsb2NhdGVfcHByX2xvZyhpb21t dSkgKQogICAgICAgICBnb3RvIGVycm9yX291dDsKIAotICAgIGlmICggIXNldF9pb21tdV9pbnRl cnJ1cHRfaGFuZGxlcihpb21tdSkgKQorICAgIGlmICggaW50ciAmJiAhc2V0X2lvbW11X2ludGVy cnVwdF9oYW5kbGVyKGlvbW11KSApCiAgICAgICAgIGdvdG8gZXJyb3Jfb3V0OwogCiAgICAgLyog VG8gbWFrZSBzdXJlIHRoYXQgZGV2aWNlX3RhYmxlLmJ1ZmZlciBoYXMgYmVlbiBzdWNjZXNzZnVs bHkgYWxsb2NhdGVkICovCkBAIC0xMjg1LDcgKzEzMDksNyBAQCBzdGF0aWMgaW50IF9faW5pdCBh bWRfaW9tbXVfcHJlcGFyZV9vbmUoCiAgICAgcmV0dXJuIDA7CiB9CiAKLWludCBfX2luaXQgYW1k X2lvbW11X2luaXQodm9pZCkKK2ludCBfX2luaXQgYW1kX2lvbW11X3ByZXBhcmUodm9pZCkKIHsK ICAgICBzdHJ1Y3QgYW1kX2lvbW11ICppb21tdTsKICAgICBpbnQgcmMgPSAtRU5PREVWOwpAQCAt MTMwMCw5ICsxMzI0LDE0IEBAIGludCBfX2luaXQgYW1kX2lvbW11X2luaXQodm9pZCkKICAgICBp ZiAoIHVubGlrZWx5KGFjcGlfZ2JsX0ZBRFQuYm9vdF9mbGFncyAmIEFDUElfRkFEVF9OT19NU0kp ICkKICAgICAgICAgZ290byBlcnJvcl9vdXQ7CiAKKyAgICAvKiBIYXZlIHdlIGJlZW4gaGVyZSBi ZWZvcmU/ICovCisgICAgaWYgKCBpdmhkX3R5cGUgKQorICAgICAgICByZXR1cm4gMDsKKwogICAg IHJjID0gYW1kX2lvbW11X2dldF9zdXBwb3J0ZWRfaXZoZF90eXBlKCk7CiAgICAgaWYgKCByYyA8 IDAgKQogICAgICAgICBnb3RvIGVycm9yX291dDsKKyAgICBCVUdfT04oIXJjKTsKICAgICBpdmhk X3R5cGUgPSByYzsKIAogICAgIHJjID0gYW1kX2lvbW11X2dldF9pdnJzX2Rldl9lbnRyaWVzKCk7 CkBAIC0xMzIxLDkgKzEzNTAsMzMgQEAgaW50IF9faW5pdCBhbWRfaW9tbXVfaW5pdCh2b2lkKQog ICAgIH0KIAogICAgIHJjID0gYW1kX2lvbW11X3VwZGF0ZV9pdnJzX21hcHBpbmdfYWNwaSgpOwor CisgZXJyb3Jfb3V0OgorICAgIGlmICggcmMgKQorICAgIHsKKyAgICAgICAgYW1kX2lvbW11X2lu aXRfY2xlYW51cCgpOworICAgICAgICBpdmhkX3R5cGUgPSAwOworICAgIH0KKworICAgIHJldHVy biByYzsKK30KKworaW50IF9faW5pdCBhbWRfaW9tbXVfaW5pdChib29sIHh0KQoreworICAgIHN0 cnVjdCBhbWRfaW9tbXUgKmlvbW11OworICAgIGludCByYyA9IGFtZF9pb21tdV9wcmVwYXJlKCk7 CisKICAgICBpZiAoIHJjICkKICAgICAgICAgZ290byBlcnJvcl9vdXQ7CiAKKyAgICBmb3JfZWFj aF9hbWRfaW9tbXUgKCBpb21tdSApCisgICAgeworICAgICAgICAvKiBOQjogVGhlcmUncyBubyBu ZWVkIHRvIGFjdHVhbGx5IHdyaXRlIHRoZXNlIG91dCByaWdodCBoZXJlLiAqLworICAgICAgICBp b21tdS0+Y3RybC5nYV9lbiB8PSB4dDsKKyAgICAgICAgaW9tbXUtPmN0cmwueHRfZW4gPSB4dDsK KyAgICAgICAgaW9tbXUtPmN0cmwuaW50X2NhcF94dF9lbiA9IHh0OworICAgIH0KKwogICAgIC8q IGluaXRpYWxpemUgaW8tYXBpYyBpbnRlcnJ1cHQgcmVtYXBwaW5nIGVudHJpZXMgKi8KICAgICBp ZiAoIGlvbW11X2ludHJlbWFwICkKICAgICAgICAgcmMgPSBhbWRfaW9tbXVfc2V0dXBfaW9hcGlj X3JlbWFwcGluZygpOwpAQCAtMTM0Niw3ICsxMzk5LDEyIEBAIGludCBfX2luaXQgYW1kX2lvbW11 X2luaXQodm9pZCkKICAgICAvKiBwZXIgaW9tbXUgaW5pdGlhbGl6YXRpb24gICovCiAgICAgZm9y X2VhY2hfYW1kX2lvbW11ICggaW9tbXUgKQogICAgIHsKLSAgICAgICAgcmMgPSBhbWRfaW9tbXVf aW5pdF9vbmUoaW9tbXUpOworICAgICAgICAvKgorICAgICAgICAgKiBTZXR0aW5nIHVwIG9mIHRo ZSBJT01NVSBpbnRlcnJ1cHRzIGNhbm5vdCBvY2N1ciB5ZXQgYXQgdGhlICh2ZXJ5CisgICAgICAg ICAqIGVhcmx5KSB0aW1lIHdlIGdldCBoZXJlIHdoZW4gZW5hYmxpbmcgeDJBUElDIG1vZGUuIFN1 cHByZXNzIGl0CisgICAgICAgICAqIGhlcmUsIGFuZCBkbyBpdCBleHBsaWNpdGx5IGluIGFtZF9p b21tdV9pbml0X2ludGVycnVwdCgpLgorICAgICAgICAgKi8KKyAgICAgICAgcmMgPSBhbWRfaW9t bXVfaW5pdF9vbmUoaW9tbXUsICF4dCk7CiAgICAgICAgIGlmICggcmMgKQogICAgICAgICAgICAg Z290byBlcnJvcl9vdXQ7CiAgICAgfQpAQCAtMTM1OCw2ICsxNDE2LDQwIEBAIGVycm9yX291dDoK ICAgICByZXR1cm4gcmM7CiB9CiAKK2ludCBfX2luaXQgYW1kX2lvbW11X2luaXRfaW50ZXJydXB0 KHZvaWQpCit7CisgICAgc3RydWN0IGFtZF9pb21tdSAqaW9tbXU7CisgICAgaW50IHJjID0gMDsK KworICAgIGZvcl9lYWNoX2FtZF9pb21tdSAoIGlvbW11ICkKKyAgICB7CisgICAgICAgIHN0cnVj dCBpcnFfZGVzYyAqZGVzYzsKKworICAgICAgICBpZiAoICFzZXRfaW9tbXVfaW50ZXJydXB0X2hh bmRsZXIoaW9tbXUpICkKKyAgICAgICAgeworICAgICAgICAgICAgcmMgPSAtRUlPOworICAgICAg ICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBkZXNjID0gaXJxX3RvX2Rlc2MoaW9t bXUtPm1zaS5pcnEpOworCisgICAgICAgIHNwaW5fbG9jaygmZGVzYy0+bG9jayk7CisgICAgICAg IEFTU0VSVChpb21tdS0+Y3RybC5pbnRfY2FwX3h0X2VuKTsKKyAgICAgICAgc2V0X3gyYXBpY19h ZmZpbml0eShkZXNjLCAmY3B1X29ubGluZV9tYXApOworICAgICAgICBzcGluX3VubG9jaygmZGVz Yy0+bG9jayk7CisKKyAgICAgICAgc2V0X2lvbW11X2V2ZW50X2xvZ19jb250cm9sKGlvbW11LCBJ T01NVV9DT05UUk9MX0VOQUJMRUQpOworCisgICAgICAgIGlmICggaW9tbXUtPmZlYXR1cmVzLmZs ZHMucHByX3N1cCApCisgICAgICAgICAgICBzZXRfaW9tbXVfcHByX2xvZ19jb250cm9sKGlvbW11 LCBJT01NVV9DT05UUk9MX0VOQUJMRUQpOworICAgIH0KKworICAgIGlmICggcmMgKQorICAgICAg ICBhbWRfaW9tbXVfaW5pdF9jbGVhbnVwKCk7CisKKyAgICByZXR1cm4gcmM7Cit9CisKIHN0YXRp YyB2b2lkIGludmFsaWRhdGVfYWxsX2RvbWFpbl9wYWdlcyh2b2lkKQogewogICAgIHN0cnVjdCBk b21haW4gKmQ7Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9pbnRyLmMK KysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2ludHIuYwpAQCAtODE2LDYg KzgxNiw0MCBAQCB2b2lkKiBfX2luaXQgYW1kX2lvbW11X2FsbG9jX2ludHJlbWFwX3RhCiAgICAg cmV0dXJuIHRiOwogfQogCitib29sIF9faW5pdCBpb3Zfc3VwcG9ydHNfeHQodm9pZCkKK3sKKyAg ICB1bnNpZ25lZCBpbnQgYXBpYzsKKyAgICBzdHJ1Y3QgYW1kX2lvbW11ICppb21tdTsKKworICAg IGlmICggIWlvbW11X2VuYWJsZSB8fCAhaW9tbXVfaW50cmVtYXAgKQorICAgICAgICByZXR1cm4g ZmFsc2U7CisKKyAgICBpZiAoIGFtZF9pb21tdV9wcmVwYXJlKCkgKQorICAgICAgICByZXR1cm4g ZmFsc2U7CisKKyAgICBmb3JfZWFjaF9hbWRfaW9tbXUgKCBpb21tdSApCisgICAgICAgIGlmICgg IWlvbW11LT5mZWF0dXJlcy5mbGRzLmdhX3N1cCB8fCAhaW9tbXUtPmZlYXR1cmVzLmZsZHMueHRf c3VwICkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGZvciAoIGFwaWMgPSAwOyBh cGljIDwgbnJfaW9hcGljczsgYXBpYysrICkKKyAgICB7CisgICAgICAgIHVuc2lnbmVkIGludCBp ZHggPSBpb2FwaWNfaWRfdG9faW5kZXgoSU9fQVBJQ19JRChhcGljKSk7CisKKyAgICAgICAgaWYg KCBpZHggPT0gTUFYX0lPX0FQSUNTICkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg ICAgICBpZiAoICFmaW5kX2lvbW11X2Zvcl9kZXZpY2UoaW9hcGljX3NiZGZbaWR4XS5zZWcsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpb2FwaWNfc2JkZltpZHhdLmJkZikg KQorICAgICAgICB7CisgICAgICAgICAgICBBTURfSU9NTVVfREVCVUcoIk5vIElPTU1VIGZvciBJ Ty1BUElDICUjeCAoSUQgJXgpXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwaWMs IElPX0FQSUNfSUQoYXBpYykpOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9 CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKIGludCBfX2luaXQgYW1kX3NldHVwX2hw ZXRfbXNpKHN0cnVjdCBtc2lfZGVzYyAqbXNpX2Rlc2MpCiB7CiAgICAgc3BpbmxvY2tfdCAqbG9j azsKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYworKysg Yi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jCkBAIC0xNzAsNyAr MTcwLDggQEAgc3RhdGljIGludCBfX2luaXQgaW92X2RldGVjdCh2b2lkKQogICAgIGlmICggIWlv bW11X2VuYWJsZSAmJiAhaW9tbXVfaW50cmVtYXAgKQogICAgICAgICByZXR1cm4gMDsKIAotICAg IGlmICggYW1kX2lvbW11X2luaXQoKSAhPSAwICkKKyAgICBlbHNlIGlmICggKGluaXRfZG9uZSA/ IGFtZF9pb21tdV9pbml0X2ludGVycnVwdCgpCisgICAgICAgICAgICAgICAgICAgICAgICAgOiBh bWRfaW9tbXVfaW5pdChmYWxzZSkpICE9IDAgKQogICAgIHsKICAgICAgICAgcHJpbnRrKCJBTUQt Vmk6IEVycm9yIGluaXRpYWxpemF0aW9uXG4iKTsKICAgICAgICAgcmV0dXJuIC1FTk9ERVY7CkBA IC0xODMsNiArMTg0LDI1IEBAIHN0YXRpYyBpbnQgX19pbml0IGlvdl9kZXRlY3Qodm9pZCkKICAg ICByZXR1cm4gc2Nhbl9wY2lfZGV2aWNlcygpOwogfQogCitzdGF0aWMgaW50IGlvdl9lbmFibGVf eHQodm9pZCkKK3sKKyAgICBpbnQgcmM7CisKKyAgICBpZiAoIHN5c3RlbV9zdGF0ZSA+PSBTWVNf U1RBVEVfYWN0aXZlICkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBpZiAoIChyYyA9IGFtZF9p b21tdV9pbml0KHRydWUpKSAhPSAwICkKKyAgICB7CisgICAgICAgIHByaW50aygiQU1ELVZpOiBF cnJvciAlZCBpbml0aWFsaXppbmcgZm9yIHgyQVBJQyBtb2RlXG4iLCByYyk7CisgICAgICAgIC8q IC1FTlhJTyBoYXMgc3BlY2lhbCBtZWFuaW5nIHRvIHRoZSBjYWxsZXIgLSBjb252ZXJ0IGl0LiAq LworICAgICAgICByZXR1cm4gcmMgIT0gLUVOWElPID8gcmMgOiAtRU5PREFUQTsKKyAgICB9CisK KyAgICBpbml0X2RvbmUgPSB0cnVlOworCisgICAgcmV0dXJuIDA7Cit9CisKIGludCBhbWRfaW9t bXVfYWxsb2Nfcm9vdChzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCkKIHsKICAgICBpZiAoIHVubGlr ZWx5KCFoZC0+YXJjaC5yb290X3RhYmxlKSApCkBAIC01NTksMTEgKzU3OSwxMyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGlvbW11X29wcyBfX2luaXRjb25zCiAgICAgLmZyZWVfcGFnZV90YWJsZSA9 IGRlYWxsb2NhdGVfcGFnZV90YWJsZSwKICAgICAucmVhc3NpZ25fZGV2aWNlID0gcmVhc3NpZ25f ZGV2aWNlLAogICAgIC5nZXRfZGV2aWNlX2dyb3VwX2lkID0gYW1kX2lvbW11X2dyb3VwX2lkLAor ICAgIC5lbmFibGVfeDJhcGljID0gaW92X2VuYWJsZV94dCwKICAgICAudXBkYXRlX2lyZV9mcm9t X2FwaWMgPSBhbWRfaW9tbXVfaW9hcGljX3VwZGF0ZV9pcmUsCiAgICAgLnVwZGF0ZV9pcmVfZnJv bV9tc2kgPSBhbWRfaW9tbXVfbXNpX21zZ191cGRhdGVfaXJlLAogICAgIC5yZWFkX2FwaWNfZnJv bV9pcmUgPSBhbWRfaW9tbXVfcmVhZF9pb2FwaWNfZnJvbV9pcmUsCiAgICAgLnJlYWRfbXNpX2Zy b21faXJlID0gYW1kX2lvbW11X3JlYWRfbXNpX2Zyb21faXJlLAogICAgIC5zZXR1cF9ocGV0X21z aSA9IGFtZF9zZXR1cF9ocGV0X21zaSwKKyAgICAuYWRqdXN0X2lycV9hZmZpbml0aWVzID0gaW92 X2FkanVzdF9pcnFfYWZmaW5pdGllcywKICAgICAuc3VzcGVuZCA9IGFtZF9pb21tdV9zdXNwZW5k LAogICAgIC5yZXN1bWUgPSBhbWRfaW9tbXVfcmVzdW1lLAogICAgIC5zaGFyZV9wMm0gPSBhbWRf aW9tbXVfc2hhcmVfcDJtLApAQCAtNTc0LDQgKzU5Niw1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg aW9tbXVfb3BzIF9faW5pdGNvbnMKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW9tbXVfaW5pdF9vcHMg X19pbml0Y29uc3RyZWwgX2lvbW11X2luaXRfb3BzID0gewogICAgIC5vcHMgPSAmX2lvbW11X29w cywKICAgICAuc2V0dXAgPSBpb3ZfZGV0ZWN0LAorICAgIC5zdXBwb3J0c194MmFwaWMgPSBpb3Zf c3VwcG9ydHNfeHQsCiB9OwotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9zdm0vYW1kLWlv bW11LXByb3RvLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3ZtL2FtZC1pb21tdS1w cm90by5oCkBAIC00OCw4ICs0OCwxMSBAQCBpbnQgYW1kX2lvbW11X2RldGVjdF9hY3BpKHZvaWQp Owogdm9pZCBnZXRfaW9tbXVfZmVhdHVyZXMoc3RydWN0IGFtZF9pb21tdSAqaW9tbXUpOwogCiAv KiBhbWQtaW9tbXUtaW5pdCBmdW5jdGlvbnMgKi8KLWludCBhbWRfaW9tbXVfaW5pdCh2b2lkKTsK K2ludCBhbWRfaW9tbXVfcHJlcGFyZSh2b2lkKTsKK2ludCBhbWRfaW9tbXVfaW5pdChib29sIHh0 KTsKK2ludCBhbWRfaW9tbXVfaW5pdF9pbnRlcnJ1cHQodm9pZCk7CiBpbnQgYW1kX2lvbW11X3Vw ZGF0ZV9pdnJzX21hcHBpbmdfYWNwaSh2b2lkKTsKK2ludCBpb3ZfYWRqdXN0X2lycV9hZmZpbml0 aWVzKHZvaWQpOwogCiAvKiBtYXBwaW5nIGZ1bmN0aW9ucyAqLwogaW50IF9fbXVzdF9jaGVjayBh bWRfaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZuLApAQCAtOTYsNiAr OTksNyBAQCB2b2lkIGFtZF9pb21tdV9mbHVzaF9hbGxfY2FjaGVzKHN0cnVjdCBhCiBzdHJ1Y3Qg YW1kX2lvbW11ICpmaW5kX2lvbW11X2Zvcl9kZXZpY2UoaW50IHNlZywgaW50IGJkZik7CiAKIC8q IGludGVycnVwdCByZW1hcHBpbmcgKi8KK2Jvb2wgaW92X3N1cHBvcnRzX3h0KHZvaWQpOwogaW50 IGFtZF9pb21tdV9zZXR1cF9pb2FwaWNfcmVtYXBwaW5nKHZvaWQpOwogdm9pZCAqYW1kX2lvbW11 X2FsbG9jX2ludHJlbWFwX3RhYmxlKHVuc2lnbmVkIGxvbmcgKiopOwogaW50IGFtZF9pb21tdV9m cmVlX2ludHJlbWFwX3RhYmxlKHUxNiBzZWcsIHN0cnVjdCBpdnJzX21hcHBpbmdzICopOwoKCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVs IG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0 cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==