From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id C373EA04C9; Mon, 14 Sep 2020 00:19:09 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 40BF61C0D8; Mon, 14 Sep 2020 00:19:03 +0200 (CEST) Received: from out4435.biz.mail.alibaba.com (out4435.biz.mail.alibaba.com [47.88.44.35]) by dpdk.org (Postfix) with ESMTP id 4B628E07 for ; Fri, 11 Sep 2020 17:06:12 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alibaba-inc.com; s=default; t=1599836173; h=Date:From:To:Message-ID:Subject:MIME-Version:Content-Type; bh=hHhPL48BMs4Dm/u/lXbsbsyeIK9uWHyqBNolX9GhdCA=; b=V6voClIjVIxApq7N6w+/0SgNtB9eqmanF8E/LSuugiTG2LZWiUmyfYxEsacpUPWz1Nj9hx7IhTeIbLQS9uHGP/yjlzbFneXHTvWRSbYsexBpAvMQmn2BUe70I6kqtFMOij4m23bqeD5WB2w9V6zDI+q2mfjZWAHd1xNCne6FffY= X-Alimail-AntiSpam: AC=PASS; BC=-1|-1; BR=01201311R151e4; CH=green; DM=||false|; DS=||; FP=0|-1|-1|-1|0|-1|-1|-1; HT=e02c03302; MF=huawei.xhw@alibaba-inc.com; NM=1; PH=DW; RN=5; SR=0; TI=W4_5948689_v5ForDing_0A930E48_1599829141053_o7001c30119; Received: from WS-web (huawei.xhw@alibaba-inc.com[W4_5948689_v5ForDing_0A930E48_1599829141053_o7001c30119]) by ay29a011140100187.et135 at Fri, 11 Sep 2020 22:56:11 +0800 Date: Fri, 11 Sep 2020 22:56:11 +0800 From: "=?UTF-8?B?6LCi5Y2O5LyfKOatpOaXtuatpOWIu++8iQ==?=" To: "Chris" , "ferruh.yigit" Cc: "dev" , "=?UTF-8?B?V2FuZywgWmhpaG9uZw==?=" , "=?UTF-8?B?WGlhLCBDaGVuYm8=?=" Message-ID: <0e325bbb-cc03-446a-9760-bac267582433.huawei.xhw@alibaba-inc.com> X-Mailer: [Alimail-Mailagent][W4_5948689][v5ForDing][Chrome] MIME-Version: 1.0 References: , <19b35451-45bb-4090-a3cf-31954d7c9c44.> x-aliyun-mail-creator: W4_5948689_v5ForDing_BkaTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV09XNjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS84My4wLjQxMDMuOTcgU2FmYXJpLzUzNy4zNiBkaW5ndGFsay13aW4vMS4wLjAgbncoMC4xNC43KSBEaW5nVGFsayg1LjMuNi1SZWxlYXNlLjM4MzgpIE1vam8vMS4wLjAgTmF0aXZlIEFwcFR5cGUocmVsZWFzZSkgQ2hhbm5lbC8yMDEyMDA=zN In-Reply-To: <19b35451-45bb-4090-a3cf-31954d7c9c44.> X-Mailman-Approved-At: Mon, 14 Sep 2020 00:19:00 +0200 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: Re: [dpdk-dev] =?utf-8?q?=5BPATCH=5D_pci=3A_support_both_io_and_mmio_?= =?utf-8?q?bar_for_legacy_virtio_on_x86?= X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: =?UTF-8?B?6LCi5Y2O5LyfKOatpOaXtuatpOWIu++8iQ==?= List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" CkhpIEZlcnJ1aDoKVGhpcyBwYXRjaCBpcyB0byBzdXBwb3J0IGJvdGggTU1JTyBhbmQgUElPIGJh ciBmb3IgbGVnYWN5IHZpcnRpby4gV2UgdXNlIE1NIGJhciBmb3IgbGVnYWN5IHZpcnRpbyBvbiB4 ODYgYmVjYXVzZSB3ZSBjcmVhdGUgbG90cyBvZiB2aXJ0aW8gZGV2aWNlcyBhcyBQSU8gcmVzb3Vy Y2UgaXMgdmVyeSBsaW1pdGVkLgp2aXJ0aW8gb24geDg2IGlzIHRoZSBvbmx5IFBNRCB3aGljaCBt aWdodCB1c2UgUElPLiBrZXJuZWwgdmlydGlvLXBjaSBkcml2ZXIgc3VwcG9ydHMgYm90aCBQSU8g YmFyIGFuZCBNTUlPIGJhci4gVGhpcyBwYXRjaCBoYW5kbGVzIE1NSU8gYW5kIFBJTyBpbiB0aGUg c2FtZSB3YXkuCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGcm9tOkNocmlzIDxodWF3ZWkueGh3QGFsaWJhYmEtaW5j LmNvbT4KU2VudCBBdDoyMDIwIFNlcC4gMTEgKEZyaS4pIDIwOjU3ClRvOmZlcnJ1aC55aWdpdCA8 ZmVycnVoLnlpZ2l0QGludGVsLmNvbT4KQ2M6ZGV2IDxkZXZAZHBkay5vcmc+OyAiV2FuZywgWmhp aG9uZyIgPHpoaWhvbmcud2FuZ0BpbnRlbC5jb20+OyAiWGlhLCBDaGVuYm8iIDxjaGVuYm8ueGlh QGludGVsLmNvbT4KU3ViamVjdDpbUEFUQ0hdIHBjaTogc3VwcG9ydCBib3RoIGlvIGFuZCBtbWlv IGJhciBmb3IgbGVnYWN5IHZpcnRpbyBvbiB4ODYKClNpZ25lZC1vZmYtYnk6IGh1YXdlaS54aHcg PGh1YXdlaS54aHdAYWxpYmFiYS1pbmMuY29tPgoKLS0tCgogZHJpdmVycy9idXMvcGNpL2xpbnV4 L3BjaS5jICAgICB8ICA3MSAtLS0tLS0tLS0tLS0tLS0tLS0KCiBkcml2ZXJzL2J1cy9wY2kvbGlu dXgvcGNpX3Vpby5jIHwgMTU0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0KCiAyIGZpbGVzIGNoYW5nZWQsIDEwNiBpbnNlcnRpb25zKCspLCAxMTkgZGVsZXRpb25zKC0p CgoKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2J1cy9wY2kvbGludXgvcGNpLmMgYi9kcml2ZXJzL2J1 cy9wY2kvbGludXgvcGNpLmMKCmluZGV4IGEyMTk4YWIuLjYxOWRmZWMgMTAwNjQ0CgotLS0gYS9k cml2ZXJzL2J1cy9wY2kvbGludXgvcGNpLmMKCisrKyBiL2RyaXZlcnMvYnVzL3BjaS9saW51eC9w Y2kuYwoKQEAgLTY4Nyw3MSArNjg3LDYgQEAgaW50IHJ0ZV9wY2lfd3JpdGVfY29uZmlnKGNvbnN0 IHN0cnVjdCBydGVfcGNpX2RldmljZSAqZGV2aWNlLAoKICAgICAgICB9CgogfQoKCgotI2lmIGRl ZmluZWQoUlRFX0FSQ0hfWDg2KQoKLXN0YXRpYyBpbnQKCi1wY2lfaW9wb3J0X21hcChzdHJ1Y3Qg cnRlX3BjaV9kZXZpY2UgKmRldiwgaW50IGJhciBfX3J0ZV91bnVzZWQsCgotICAgICAgICAgICAg ICAgc3RydWN0IHJ0ZV9wY2lfaW9wb3J0ICpwKQoKLXsKCi0gICAgICAgdWludDE2X3Qgc3RhcnQs IGVuZDsKCi0gICAgICAgRklMRSAqZnA7CgotICAgICAgIGNoYXIgKmxpbmUgPSBOVUxMOwoKLSAg ICAgICBjaGFyIHBjaV9pZFsxNl07CgotICAgICAgIGludCBmb3VuZCA9IDA7CgotICAgICAgIHNp emVfdCBsaW5lc3o7CgotCgotICAgICAgIGlmIChydGVfZWFsX2lvcGxfaW5pdCgpICE9IDApIHsK Ci0gICAgICAgICAgICAgICBSVEVfTE9HKEVSUiwgRUFMLCAiJXMoKTogaW5zdWZmaWNpZW50IGlv cG9ydCBwZXJtaXNzaW9ucyBmb3IgUENJIGRldmljZSAlc1xuIiwKCi0gICAgICAgICAgICAgICAg ICAgICAgIF9fZnVuY19fLCBkZXYtPm5hbWUpOwoKLSAgICAgICAgICAgICAgIHJldHVybiAtMTsK Ci0gICAgICAgfQoKLQoKLSAgICAgICBzbnByaW50ZihwY2lfaWQsIHNpemVvZihwY2lfaWQpLCBQ Q0lfUFJJX0ZNVCwKCi0gICAgICAgICAgICAgICAgZGV2LT5hZGRyLmRvbWFpbiwgZGV2LT5hZGRy LmJ1cywKCi0gICAgICAgICAgICAgICAgZGV2LT5hZGRyLmRldmlkLCBkZXYtPmFkZHIuZnVuY3Rp b24pOwoKLQoKLSAgICAgICBmcCA9IGZvcGVuKCIvcHJvYy9pb3BvcnRzIiwgInIiKTsKCi0gICAg ICAgaWYgKGZwID09IE5VTEwpIHsKCi0gICAgICAgICAgICAgICBSVEVfTE9HKEVSUiwgRUFMLCAi JXMoKTogY2FuJ3Qgb3BlbiBpb3BvcnRzXG4iLCBfX2Z1bmNfXyk7CgotICAgICAgICAgICAgICAg cmV0dXJuIC0xOwoKLSAgICAgICB9CgotCgotICAgICAgIHdoaWxlIChnZXRkZWxpbSgmbGluZSwg JmxpbmVzeiwgJ1xuJywgZnApID4gMCkgewoKLSAgICAgICAgICAgICAgIGNoYXIgKnB0ciA9IGxp bmU7CgotICAgICAgICAgICAgICAgY2hhciAqbGVmdDsKCi0gICAgICAgICAgICAgICBpbnQgbjsK Ci0KCi0gICAgICAgICAgICAgICBuID0gc3RyY3NwbihwdHIsICI6Iik7CgotICAgICAgICAgICAg ICAgcHRyW25dID0gMDsKCi0gICAgICAgICAgICAgICBsZWZ0ID0gJnB0cltuICsgMV07CgotCgot ICAgICAgICAgICAgICAgd2hpbGUgKCpsZWZ0ICYmIGlzc3BhY2UoKmxlZnQpKQoKLSAgICAgICAg ICAgICAgICAgICAgICAgbGVmdCsrOwoKLQoKLSAgICAgICAgICAgICAgIGlmICghc3RybmNtcChs ZWZ0LCBwY2lfaWQsIHN0cmxlbihwY2lfaWQpKSkgewoKLSAgICAgICAgICAgICAgICAgICAgICAg Zm91bmQgPSAxOwoKLQoKLSAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCpwdHIgJiYgaXNz cGFjZSgqcHRyKSkKCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyKys7CgotCgot ICAgICAgICAgICAgICAgICAgICAgICBzc2NhbmYocHRyLCAiJTA0aHgtJTA0aHgiLCAmc3RhcnQs ICZlbmQpOwoKLQoKLSAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgotICAgICAgICAgICAg ICAgfQoKLSAgICAgICB9CgotCgotICAgICAgIGZyZWUobGluZSk7CgotICAgICAgIGZjbG9zZShm cCk7CgotCgotICAgICAgIGlmICghZm91bmQpCgotICAgICAgICAgICAgICAgcmV0dXJuIC0xOwoK LQoKLSAgICAgICBwLT5iYXNlID0gc3RhcnQ7CgotICAgICAgIFJURV9MT0coREVCVUcsIEVBTCwg IlBDSSBQb3J0IElPIGZvdW5kIHN0YXJ0PTB4JXhcbiIsIHN0YXJ0KTsKCi0KCi0gICAgICAgcmV0 dXJuIDA7CgotfQoKLSNlbmRpZgoKLQoKIGludAoKIHJ0ZV9wY2lfaW9wb3J0X21hcChzdHJ1Y3Qg cnRlX3BjaV9kZXZpY2UgKmRldiwgaW50IGJhciwKCiAgICAgICAgICAgICAgICBzdHJ1Y3QgcnRl X3BjaV9pb3BvcnQgKnApCgpAQCAtNzY2LDE0ICs3MDEsOCBAQCBpbnQgcnRlX3BjaV93cml0ZV9j b25maWcoY29uc3Qgc3RydWN0IHJ0ZV9wY2lfZGV2aWNlICpkZXZpY2UsCgogICAgICAgICAgICAg ICAgYnJlYWs7CgogI2VuZGlmCgogICAgICAgIGNhc2UgUlRFX0tEUlZfSUdCX1VJTzoKCi0gICAg ICAgICAgICAgICByZXQgPSBwY2lfdWlvX2lvcG9ydF9tYXAoZGV2LCBiYXIsIHApOwoKLSAgICAg ICAgICAgICAgIGJyZWFrOwoKICAgICAgICBjYXNlIFJURV9LRFJWX1VJT19HRU5FUklDOgoKLSNp ZiBkZWZpbmVkKFJURV9BUkNIX1g4NikKCi0gICAgICAgICAgICAgICByZXQgPSBwY2lfaW9wb3J0 X21hcChkZXYsIGJhciwgcCk7CgotI2Vsc2UKCiAgICAgICAgICAgICAgICByZXQgPSBwY2lfdWlv X2lvcG9ydF9tYXAoZGV2LCBiYXIsIHApOwoKLSNlbmRpZgoKICAgICAgICAgICAgICAgIGJyZWFr OwoKICAgICAgICBkZWZhdWx0OgoKICAgICAgICAgICAgICAgIGJyZWFrOwoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvYnVzL3BjaS9saW51eC9wY2lfdWlvLmMgYi9kcml2ZXJzL2J1cy9wY2kvbGludXgv cGNpX3Vpby5jCgppbmRleCAwOTdkYzE5Li42N2RkYmMwIDEwMDY0NAoKLS0tIGEvZHJpdmVycy9i dXMvcGNpL2xpbnV4L3BjaV91aW8uYwoKKysrIGIvZHJpdmVycy9idXMvcGNpL2xpbnV4L3BjaV91 aW8uYwoKQEAgLTM3MiwxMiArMzcyLDUwIEBACgogcGNpX3Vpb19pb3BvcnRfbWFwKHN0cnVjdCBy dGVfcGNpX2RldmljZSAqZGV2LCBpbnQgYmFyLAoKICAgICAgICAgICAgICAgICAgIHN0cnVjdCBy dGVfcGNpX2lvcG9ydCAqcCkKCiB7CgorICAgICAgIEZJTEUgKmY7CgogICAgICAgIGNoYXIgZGly bmFtZVtQQVRIX01BWF07CgogICAgICAgIGNoYXIgZmlsZW5hbWVbUEFUSF9NQVhdOwoKKyAgICAg ICBjaGFyIGJ1ZltCVUZTSVpdOwoKKyAgICAgICB1aW50NjRfdCBwaHlzX2FkZHIsIGVuZF9hZGRy LCBmbGFnczsKCiAgICAgICAgaW50IHVpb19udW07CgotICAgICAgIHVuc2lnbmVkIGxvbmcgc3Rh cnQ7CgorICAgICAgIHVuc2lnbmVkIGxvbmcgYmFzZTsKCisgICAgICAgYm9vbCBpb2JhcjsKCisg ICAgICAgaW50IGk7CgoKCi0gICAgICAgaWYgKHJ0ZV9lYWxfaW9wbF9pbml0KCkgIT0gMCkgewoK KyAgICAgICAvKiBvcGVuIGFuZCByZWFkIGFkZHJlc3NlcyBvZiB0aGUgY29ycmVzcG9uZGluZyBy ZXNvdXJjZSBpbiBzeXNmcyAqLwoKKyAgICAgICBzbnByaW50ZihmaWxlbmFtZSwgc2l6ZW9mKGZp bGVuYW1lKSwgIiVzLyIgUENJX1BSSV9GTVQgIi9yZXNvdXJjZSIsCgorICAgICAgICAgICAgICAg cnRlX3BjaV9nZXRfc3lzZnNfcGF0aCgpLCBkZXYtPmFkZHIuZG9tYWluLCBkZXYtPmFkZHIuYnVz LAoKKyAgICAgICAgICAgICAgIGRldi0+YWRkci5kZXZpZCwgZGV2LT5hZGRyLmZ1bmN0aW9uKTsK CisgICAgICAgZiA9IGZvcGVuKGZpbGVuYW1lLCAiciIpOwoKKyAgICAgICBpZiAoZiA9PSBOVUxM KSB7CgorICAgICAgICAgICAgICAgUlRFX0xPRyhFUlIsIEVBTCwgIkNhbm5vdCBvcGVuIHN5c2Zz IHJlc291cmNlOiAlc1xuIiwKCisgICAgICAgICAgICAgICAgICAgICAgIHN0cmVycm9yKGVycm5v KSk7CgorICAgICAgICAgICAgICAgcmV0dXJuIC0xOwoKKyAgICAgICB9CgorICAgICAgIGZvciAo aSA9IDA7IGkgPCBiYXIgKyAxOyBpKyspIHsKCisgICAgICAgICAgICAgICBpZiAoZmdldHMoYnVm LCBzaXplb2YoYnVmKSwgZikgPT0gTlVMTCkgewoKKyAgICAgICAgICAgICAgICAgICAgICAgUlRF X0xPRyhFUlIsIEVBTCwgIkNhbm5vdCByZWFkIHN5c2ZzIHJlc291cmNlXG4iKTsKCisgICAgICAg ICAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CgorICAgICAgICAgICAgICAgfQoKKyAgICAgICB9 CgorICAgICAgIGlmIChwY2lfcGFyc2Vfb25lX3N5c2ZzX3Jlc291cmNlKGJ1Ziwgc2l6ZW9mKGJ1 ZiksICZwaHlzX2FkZHIsCgorICAgICAgICAgICAgICAgICAgICAgICAmZW5kX2FkZHIsICZmbGFn cykgPCAwKQoKKyAgICAgICAgICAgICAgIGdvdG8gZXJyb3I7CgorCgorICAgICAgIGlmIChmbGFn cyAmIElPUkVTT1VSQ0VfSU8pIHsKCisgICAgICAgICAgICAgICBpb2JhciA9IDE7CgorICAgICAg ICAgICAgICAgYmFzZSA9ICh1bnNpZ25lZCBsb25nKXBoeXNfYWRkcjsKCisgICAgICAgICAgICAg ICBSVEVfTE9HKElORk8sIEVBTCwgIiVzKCk6IGlvYmFyICUwOGx4IGRldGVjdGVkXG4iLCBfX2Z1 bmNfXywgYmFzZSk7CgorICAgICAgIH0gZWxzZSBpZiAoZmxhZ3MgJiBJT1JFU09VUkNFX01FTSkg ewoKKyAgICAgICAgICAgICAgIGlvYmFyID0gMDsKCisgICAgICAgICAgICAgICBiYXNlID0gKHVu c2lnbmVkIGxvbmcpZGV2LT5tZW1fcmVzb3VyY2VbYmFyXS5hZGRyOwoKKyAgICAgICAgICAgICAg IFJURV9MT0coSU5GTywgRUFMLCAiJXMoKe+8mm1lbWJhciAlMDhseCBkZXRlY3RlZFxuIiwgX19m dW5jX18sIGJhc2UpOwoKKyAgICAgICB9IGVsc2UgewoKKyAgICAgICAgICAgICAgIFJURV9MT0co RVJSLCBFQUwsICIlcygpOiB1bmtub3cgYmFyIHR5cGVcbiIsIF9fZnVuY19fKTsKCisgICAgICAg ICAgICAgICBnb3RvIGVycm9yOwoKKyAgICAgICB9CgorCgorICAgICAgIGlmIChpb2JhciAmJiBy dGVfZWFsX2lvcGxfaW5pdCgpICE9IDApIHsKCiAgICAgICAgICAgICAgICBSVEVfTE9HKEVSUiwg RUFMLCAiJXMoKTogaW5zdWZmaWNpZW50IGlvcG9ydCBwZXJtaXNzaW9ucyBmb3IgUENJIGRldmlj ZSAlc1xuIiwKCiAgICAgICAgICAgICAgICAgICAgICAgIF9fZnVuY19fLCBkZXYtPm5hbWUpOwoK ICAgICAgICAgICAgICAgIHJldHVybiAtMTsKCkBAIC0zODcsMjIgKzQyNSw4IEBACgogICAgICAg IGlmICh1aW9fbnVtIDwgMCkKCiAgICAgICAgICAgICAgICByZXR1cm4gLTE7CgoKCi0gICAgICAg LyogZ2V0IHBvcnRpbyBzdGFydCAqLwoKLSAgICAgICBzbnByaW50ZihmaWxlbmFtZSwgc2l6ZW9m KGZpbGVuYW1lKSwKCi0gICAgICAgICAgICAgICAgIiVzL3BvcnRpby9wb3J0JWQvc3RhcnQiLCBk aXJuYW1lLCBiYXIpOwoKLSAgICAgICBpZiAoZWFsX3BhcnNlX3N5c2ZzX3ZhbHVlKGZpbGVuYW1l LCAmc3RhcnQpIDwgMCkgewoKLSAgICAgICAgICAgICAgIFJURV9MT0coRVJSLCBFQUwsICIlcygp OiBjYW5ub3QgcGFyc2UgcG9ydGlvIHN0YXJ0XG4iLAoKLSAgICAgICAgICAgICAgICAgICAgICAg X19mdW5jX18pOwoKLSAgICAgICAgICAgICAgIHJldHVybiAtMTsKCi0gICAgICAgfQoKLSAgICAg ICAvKiBlbnN1cmUgd2UgZG9uJ3QgZ2V0IGFueXRoaW5nIGZ1bm55IGhlcmUsIHJlYWQvd3JpdGUg d2lsbCBjYXN0IHRvCgotICAgICAgICAqIHVpbjE2X3QgKi8KCi0gICAgICAgaWYgKHN0YXJ0ID4g VUlOVDE2X01BWCkKCi0gICAgICAgICAgICAgICByZXR1cm4gLTE7CgotCgogICAgICAgIC8qIEZJ WE1FIG9ubHkgZm9yIHByaW1hcnkgcHJvY2VzcyA/ICovCgogICAgICAgIGlmIChkZXYtPmludHJf aGFuZGxlLnR5cGUgPT0gUlRFX0lOVFJfSEFORExFX1VOS05PV04pIHsKCi0KCiAgICAgICAgICAg ICAgICBzbnByaW50ZihmaWxlbmFtZSwgc2l6ZW9mKGZpbGVuYW1lKSwgIi9kZXYvdWlvJXUiLCB1 aW9fbnVtKTsKCiAgICAgICAgICAgICAgICBkZXYtPmludHJfaGFuZGxlLmZkID0gb3BlbihmaWxl bmFtZSwgT19SRFdSKTsKCiAgICAgICAgICAgICAgICBpZiAoZGV2LT5pbnRyX2hhbmRsZS5mZCA8 IDApIHsKCkBAIC00MTMsMTEgKzQzNywxNCBAQAoKICAgICAgICAgICAgICAgIGRldi0+aW50cl9o YW5kbGUudHlwZSA9IFJURV9JTlRSX0hBTkRMRV9VSU87CgogICAgICAgIH0KCgoKLSAgICAgICBS VEVfTE9HKERFQlVHLCBFQUwsICJQQ0kgUG9ydCBJTyBmb3VuZCBzdGFydD0weCVseFxuIiwgc3Rh cnQpOwoKKyAgICAgICBSVEVfTE9HKERFQlVHLCBFQUwsICJQQ0kgUG9ydCBJTyBmb3VuZCBzdGFy dD0weCVseFxuIiwgYmFzZSk7CgoKCi0gICAgICAgcC0+YmFzZSA9IHN0YXJ0OwoKKyAgICAgICBw LT5iYXNlID0gYmFzZTsKCiAgICAgICAgcC0+bGVuID0gMDsKCiAgICAgICAgcmV0dXJuIDA7Cgor ZXJyb3I6CgorICAgICAgIGZjbG9zZShmKTsKCisgICAgICAgcmV0dXJuIC0xOwoKIH0KCiAjZWxz ZQoKIGludAoKQEAgLTQ4OCw2ICs1MTUsNjEgQEAKCiB9CgogI2VuZGlmCgoKCisjZGVmaW5lIFBJ T19NQVggMHgxMDAwMAoKK3N0YXRpYyBpbmxpbmUgdWludDhfdCBpb3JlYWQ4KHZvaWQgKmFkZHIp CgorewoKKyAgICAgICB1aW50OF90IHZhbDsKCisKCisgICAgICAgdmFsID0gKHVpbnQ2NF90KSh1 aW50cHRyX3QpYWRkciA+PSBQSU9fTUFYID8KCisgICAgICAgICAgICAgICAqKHZvbGF0aWxlIHVp bnQ4X3QgKilhZGRyIDoKCisgICAgICAgICAgICAgICBpbmIoKHVuc2lnbmVkIGxvbmcpYWRkcik7 CgorCgorICAgICAgIHJldHVybiB2YWw7CgorfQoKKwoKK3N0YXRpYyBpbmxpbmUgdWludDE2X3Qg aW9yZWFkMTYodm9pZCAqYWRkcikKCit7CgorICAgICAgIHVpbnQxNl90IHZhbDsKCisKCisgICAg ICAgdmFsID0gKHVpbnQ2NF90KSh1aW50cHRyX3QpYWRkciA+PSBQSU9fTUFYID8KCisgICAgICAg ICAgICAgICAqKHZvbGF0aWxlIHVpbnQxNl90ICopYWRkciA6CgorICAgICAgICAgICAgICAgaW53 KCh1bnNpZ25lZCBsb25nKWFkZHIpOwoKKwoKKyAgICAgICByZXR1cm4gdmFsOwoKK30KCisKCitz dGF0aWMgaW5saW5lIHVpbnQzMl90IGlvcmVhZDMyKHZvaWQgKmFkZHIpCgorewoKKyAgICAgICB1 aW50MzJfdCB2YWw7CgorCgorICAgICAgIHZhbCA9ICh1aW50NjRfdCkodWludHB0cl90KWFkZHIg Pj0gUElPX01BWCA/CgorICAgICAgICAgICAgICAgKih2b2xhdGlsZSB1aW50MzJfdCAqKWFkZHIg OgoKKyAgICAgICAgICAgICAgIGlubCgodW5zaWduZWQgbG9uZylhZGRyKTsKCisKCisgICAgICAg cmV0dXJuIHZhbDsKCit9CgorCgorc3RhdGljIGlubGluZSB2b2lkIGlvd3JpdGU4KHVpbnQ4X3Qg dmFsLCB2b2lkICphZGRyKQoKK3sKCisgICAgICAgKHVpbnQ2NF90KSh1aW50cHRyX3QpYWRkciA+ PSBQSU9fTUFYID8KCisgICAgICAgICAgICAgICAqKHZvbGF0aWxlIHVpbnQ4X3QgKilhZGRyID0g dmFsIDoKCisgICAgICAgICAgICAgICBvdXRiKHZhbCwgKHVuc2lnbmVkIGxvbmcpYWRkcik7Cgor fQoKKwoKK3N0YXRpYyBpbmxpbmUgdm9pZCBpb3dyaXRlMTYodWludDE2X3QgdmFsLCB2b2lkICph ZGRyKQoKK3sKCisgICAgICAgKHVpbnQ2NF90KSh1aW50cHRyX3QpYWRkciA+PSBQSU9fTUFYID8K CisgICAgICAgICAgICAgICAqKHZvbGF0aWxlIHVpbnQxNl90ICopYWRkciA9IHZhbCA6CgorICAg ICAgICAgICAgICAgb3V0dyh2YWwsICh1bnNpZ25lZCBsb25nKWFkZHIpOwoKK30KCisKCitzdGF0 aWMgaW5saW5lIHZvaWQgaW93cml0ZTMyKHVpbnQzMl90IHZhbCwgdm9pZCAqYWRkcikKCit7Cgor ICAgICAgICh1aW50NjRfdCkodWludHB0cl90KWFkZHIgPj0gUElPX01BWCA/CgorICAgICAgICAg ICAgICAgKih2b2xhdGlsZSB1aW50MzJfdCAqKWFkZHIgPSB2YWwgOgoKKyAgICAgICAgICAgICAg IG91dGwodmFsLCAodW5zaWduZWQgbG9uZylhZGRyKTsKCit9CgorCgogdm9pZAoKIHBjaV91aW9f aW9wb3J0X3JlYWQoc3RydWN0IHJ0ZV9wY2lfaW9wb3J0ICpwLAoKICAgICAgICAgICAgICAgICAg ICB2b2lkICpkYXRhLCBzaXplX3QgbGVuLCBvZmZfdCBvZmZzZXQpCgpAQCAtNDk5LDI1ICs1ODEs MTMgQEAKCiAgICAgICAgZm9yIChkID0gZGF0YTsgbGVuID4gMDsgZCArPSBzaXplLCByZWcgKz0g c2l6ZSwgbGVuIC09IHNpemUpIHsKCiAgICAgICAgICAgICAgICBpZiAobGVuID49IDQpIHsKCiAg ICAgICAgICAgICAgICAgICAgICAgIHNpemUgPSA0OwoKLSNpZiBkZWZpbmVkKFJURV9BUkNIX1g4 NikKCi0gICAgICAgICAgICAgICAgICAgICAgICoodWludDMyX3QgKilkID0gaW5sKHJlZyk7Cgot I2Vsc2UKCi0gICAgICAgICAgICAgICAgICAgICAgICoodWludDMyX3QgKilkID0gKih2b2xhdGls ZSB1aW50MzJfdCAqKXJlZzsKCi0jZW5kaWYKCisgICAgICAgICAgICAgICAgICAgICAgICoodWlu dDMyX3QgKilkID0gaW9yZWFkMzIoKHZvaWQgKilyZWcpOwoKICAgICAgICAgICAgICAgIH0gZWxz ZSBpZiAobGVuID49IDIpIHsKCiAgICAgICAgICAgICAgICAgICAgICAgIHNpemUgPSAyOwoKLSNp ZiBkZWZpbmVkKFJURV9BUkNIX1g4NikKCi0gICAgICAgICAgICAgICAgICAgICAgICoodWludDE2 X3QgKilkID0gaW53KHJlZyk7CgotI2Vsc2UKCi0gICAgICAgICAgICAgICAgICAgICAgICoodWlu dDE2X3QgKilkID0gKih2b2xhdGlsZSB1aW50MTZfdCAqKXJlZzsKCi0jZW5kaWYKCisgICAgICAg ICAgICAgICAgICAgICAgICoodWludDE2X3QgKilkID0gaW9yZWFkMTYoKHZvaWQgKilyZWcpOwoK ICAgICAgICAgICAgICAgIH0gZWxzZSB7CgogICAgICAgICAgICAgICAgICAgICAgICBzaXplID0g MTsKCi0jaWYgZGVmaW5lZChSVEVfQVJDSF9YODYpCgotICAgICAgICAgICAgICAgICAgICAgICAq ZCA9IGluYihyZWcpOwoKLSNlbHNlCgotICAgICAgICAgICAgICAgICAgICAgICAqZCA9ICoodm9s YXRpbGUgdWludDhfdCAqKXJlZzsKCi0jZW5kaWYKCisgICAgICAgICAgICAgICAgICAgICAgICpk ID0gaW9yZWFkOCgodm9pZCAqKXJlZyk7CgogICAgICAgICAgICAgICAgfQoKICAgICAgICB9Cgog fQoKQEAgLTUzMywyNSArNjAzLDEzIEBACgogICAgICAgIGZvciAocyA9IGRhdGE7IGxlbiA+IDA7 IHMgKz0gc2l6ZSwgcmVnICs9IHNpemUsIGxlbiAtPSBzaXplKSB7CgogICAgICAgICAgICAgICAg aWYgKGxlbiA+PSA0KSB7CgogICAgICAgICAgICAgICAgICAgICAgICBzaXplID0gNDsKCi0jaWYg ZGVmaW5lZChSVEVfQVJDSF9YODYpCgotICAgICAgICAgICAgICAgICAgICAgICBvdXRsX3AoKihj b25zdCB1aW50MzJfdCAqKXMsIHJlZyk7CgotI2Vsc2UKCi0gICAgICAgICAgICAgICAgICAgICAg ICoodm9sYXRpbGUgdWludDMyX3QgKilyZWcgPSAqKGNvbnN0IHVpbnQzMl90ICopczsKCi0jZW5k aWYKCisgICAgICAgICAgICAgICAgICAgICAgIGlvd3JpdGUzMigqKGNvbnN0IHVpbnQzMl90ICop cywgKHZvaWQgKilyZWcpOwoKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobGVuID49IDIpIHsK CiAgICAgICAgICAgICAgICAgICAgICAgIHNpemUgPSAyOwoKLSNpZiBkZWZpbmVkKFJURV9BUkNI X1g4NikKCi0gICAgICAgICAgICAgICAgICAgICAgIG91dHdfcCgqKGNvbnN0IHVpbnQxNl90ICop cywgcmVnKTsKCi0jZWxzZQoKLSAgICAgICAgICAgICAgICAgICAgICAgKih2b2xhdGlsZSB1aW50 MTZfdCAqKXJlZyA9ICooY29uc3QgdWludDE2X3QgKilzOwoKLSNlbmRpZgoKKyAgICAgICAgICAg ICAgICAgICAgICAgaW93cml0ZTE2KCooY29uc3QgdWludDE2X3QgKilzLCAodm9pZCAqKXJlZyk7 CgogICAgICAgICAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAgICAgICAgICAgICAgIHNpemUg PSAxOwoKLSNpZiBkZWZpbmVkKFJURV9BUkNIX1g4NikKCi0gICAgICAgICAgICAgICAgICAgICAg IG91dGJfcCgqcywgcmVnKTsKCi0jZWxzZQoKLSAgICAgICAgICAgICAgICAgICAgICAgKih2b2xh dGlsZSB1aW50OF90ICopcmVnID0gKnM7CgotI2VuZGlmCgorICAgICAgICAgICAgICAgICAgICAg ICBpb3dyaXRlOCgqcywgKHZvaWQgKilyZWcpOwoKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg fQoKIH0KCi0tCgoxLjguMy4xCg==