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=-9.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 3BD20C3A5A1 for ; Wed, 21 Aug 2019 14:59:59 +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 01DAD233FD for ; Wed, 21 Aug 2019 14:59:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=citrix.com header.i=@citrix.com header.b="Z4YZhQ3g" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 01DAD233FD Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=citrix.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 1i0S5U-00009s-Bw; Wed, 21 Aug 2019 14:59:48 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1i0S5T-00009V-6b for xen-devel@lists.xenproject.org; Wed, 21 Aug 2019 14:59:47 +0000 X-Inumbo-ID: 4ea4f138-c424-11e9-8980-bc764e2007e4 Received: from esa5.hc3370-68.iphmx.com (unknown [216.71.155.168]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 4ea4f138-c424-11e9-8980-bc764e2007e4; Wed, 21 Aug 2019 14:59:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=citrix.com; s=securemail; t=1566399582; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=qVmlfldA1+402OzpCAHEkAeeGY3Z8Bn3dYHMyvyNz/Y=; b=Z4YZhQ3g0rjc8Ilejf6R+Eq1xC3Vnoa+sIiXzuBiXKYi7zz33kPo3aPU WrH7THtkRIH0/xM2ILq27nwEGCCxytD7jkeUMT7fzXrS4UFLAhpxZf4kq PQwoxRv1IQ+vkVHRh8eRhZILO/iYngx6wv9HhFDimwpZbaOF/5l+oksO2 0=; Authentication-Results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=roger.pau@citrix.com; spf=Pass smtp.mailfrom=roger.pau@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa5.hc3370-68.iphmx.com: no sender authenticity information available from domain of roger.pau@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa5.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="roger.pau@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa5.hc3370-68.iphmx.com: domain of roger.pau@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa5.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="roger.pau@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ~all" Received-SPF: None (esa5.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa5.hc3370-68.iphmx.com; envelope-from="roger.pau@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: 09VmLrcV46hdc/5rjHRJMarFV0s0f235L3e8OAMOi+HfFFClapkUMmVNT+MxgxezMLjrO/nIOT 0KBLm+jOlRrq6DJ2nn/i1xe8U1IhqpZ5YjeGesKZWdldB4b6TCCcayfhk0Om9siPcke4iwVF3q uQnEjHQVmhBpbNOU+dflA7K1YSN04g3HnvlPjFVX2OuzBBfoZbiJFlYzJVQZkX1EstDx1fc6tf El9SgmoUpv0He7/dMiIyWH0fRfBosFxix9p7gRya8EEw3ByeBK9iee9G/AG05K3KbdzPp0g4ZP y1g= X-SBRS: 2.7 X-MesageID: 4717081 X-Ironport-Server: esa5.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.64,412,1559534400"; d="scan'208";a="4717081" From: Roger Pau Monne To: Date: Wed, 21 Aug 2019 16:59:01 +0200 Message-ID: <20190821145903.45934-6-roger.pau@citrix.com> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190821145903.45934-1-roger.pau@citrix.com> References: <20190821145903.45934-1-roger.pau@citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH 5/7] ioreq: allow decoding accesses to MMCFG regions 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 , Paul Durrant , Wei Liu , Jan Beulich , Roger Pau Monne Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Archived-At: List-Archive: UGljayB1cCBvbiB0aGUgaW5mcmFzdHJ1Y3R1cmUgYWxyZWFkeSBhZGRlZCBmb3IgdlBDSSBhbmQg YWxsb3cgaW9yZXEKdG8gZGVjb2RlIGFjY2Vzc2VzIHRvIE1NQ0ZHIHJlZ2lvbnMgcmVnaXN0ZXJl ZCBmb3IgYSBkb21haW4uIFRoaXMKaW5mcmFzdHJ1Y3R1cmUgaXMgc3RpbGwgb25seSBhY2Nlc3Np YmxlIGZyb20gaW50ZXJuYWwgY2FsbGVycywgc28KTU1DRkcgcmVnaW9ucyBjYW4gb25seSBiZSBy ZWdpc3RlcmVkIGZyb20gdGhlIGludGVybmFsIGRvbWFpbiBidWlsZGVyCnVzZWQgYnkgUFZIIGRv bTAuCgpOb3RlIHRoYXQgdGhlIHZQQ0kgaW5mcmFzdHJ1Y3R1cmUgdG8gZGVjb2RlIGFuZCBoYW5k bGUgYWNjZXNzZXMgdG8KTU1DRkcgcmVnaW9ucyB3aWxsIGJlIHJlbW92ZWQgaW4gZm9sbG93aW5n IHBhdGNoZXMgd2hlbiB2UENJIGlzCnN3aXRjaGVkIHRvIGJlY29tZSBhbiBpbnRlcm5hbCBpb3Jl cSBzZXJ2ZXIuCgpTaWduZWQtb2ZmLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0 cml4LmNvbT4KLS0tCiB4ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAgICAgICAgIHwgIDIgKy0KIHhl bi9hcmNoL3g4Ni9odm0vaW8uYyAgICAgICAgICAgfCAzNiArKysrKy0tLS0tLS0tLQogeGVuL2Fy Y2gveDg2L2h2bS9pb3JlcS5jICAgICAgICB8IDg4ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaW8uaCAgICB8IDEyICsrKystCiB4ZW4v aW5jbHVkZS9hc20teDg2L2h2bS9pb3JlcS5oIHwgIDYgKysrCiA1IGZpbGVzIGNoYW5nZWQsIDEx MyBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94 ODYvaHZtL2h2bS5jIGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRleCAwMjllZWEzYjg1Li5i N2E1MzM3N2E1IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBiL3hlbi9h cmNoL3g4Ni9odm0vaHZtLmMKQEAgLTc0MSw3ICs3NDEsNyBAQCB2b2lkIGh2bV9kb21haW5fZGVz dHJveShzdHJ1Y3QgZG9tYWluICpkKQogICAgICAgICB4ZnJlZShpb3BvcnQpOwogICAgIH0KIAot ICAgIGRlc3Ryb3lfdnBjaV9tbWNmZyhkKTsKKyAgICBodm1faW9yZXFfZnJlZV9tbWNmZyhkKTsK IH0KIAogc3RhdGljIGludCBodm1fc2F2ZV90c2NfYWRqdXN0KHN0cnVjdCB2Y3B1ICp2LCBodm1f ZG9tYWluX2NvbnRleHRfdCAqaCkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9odm0vaW8uYyBi L3hlbi9hcmNoL3g4Ni9odm0vaW8uYwppbmRleCBhNWIwYTIzZjA2Li42NTg1NzY3YzAzIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL2lvLmMKKysrIGIveGVuL2FyY2gveDg2L2h2bS9pby5j CkBAIC0yNzksNiArMjc5LDE4IEBAIHVuc2lnbmVkIGludCBodm1fcGNpX2RlY29kZV9hZGRyKHVu c2lnbmVkIGludCBjZjgsIHVuc2lnbmVkIGludCBhZGRyLAogICAgIHJldHVybiBDRjhfQUREUl9M TyhjZjgpIHwgKGFkZHIgJiAzKTsKIH0KIAordW5zaWduZWQgaW50IGh2bV9tbWNmZ19kZWNvZGVf YWRkcihjb25zdCBzdHJ1Y3QgaHZtX21tY2ZnICptbWNmZywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGFkZHJfdCBhZGRyLCBwY2lfc2JkZl90ICpzYmRmKQoreworICAgIGFk ZHIgLT0gbW1jZmctPmFkZHI7CisgICAgc2JkZi0+YmRmID0gTU1DRkdfQkRGKGFkZHIpOworICAg IHNiZGYtPmJ1cyArPSBtbWNmZy0+c3RhcnRfYnVzOworICAgIHNiZGYtPnNlZyA9IG1tY2ZnLT5z ZWdtZW50OworCisgICAgcmV0dXJuIGFkZHIgJiAoUENJX0NGR19TUEFDRV9FWFBfU0laRSAtIDEp OworfQorCisKIC8qIERvIHNvbWUgc2FuaXR5IGNoZWNrcy4gKi8KIHN0YXRpYyBib29sIHZwY2lf YWNjZXNzX2FsbG93ZWQodW5zaWduZWQgaW50IHJlZywgdW5zaWduZWQgaW50IGxlbikKIHsKQEAg LTM4MywxNCArMzk1LDYgQEAgdm9pZCByZWdpc3Rlcl92cGNpX3BvcnRpb19oYW5kbGVyKHN0cnVj dCBkb21haW4gKmQpCiAgICAgaGFuZGxlci0+b3BzID0gJnZwY2lfcG9ydGlvX29wczsKIH0KIAot c3RydWN0IGh2bV9tbWNmZyB7Ci0gICAgc3RydWN0IGxpc3RfaGVhZCBuZXh0OwotICAgIHBhZGRy X3QgYWRkcjsKLSAgICB1bnNpZ25lZCBpbnQgc2l6ZTsKLSAgICB1aW50MTZfdCBzZWdtZW50Owot ICAgIHVpbnQ4X3Qgc3RhcnRfYnVzOwotfTsKLQogLyogSGFuZGxlcnMgdG8gdHJhcCBQQ0kgTU1D RkcgY29uZmlnIGFjY2Vzc2VzLiAqLwogc3RhdGljIGNvbnN0IHN0cnVjdCBodm1fbW1jZmcgKnZw Y2lfbW1jZmdfZmluZChjb25zdCBzdHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkcl90IGFkZHIpCkBAIC01NTgsMjIgKzU2 Miw2IEBAIGludCByZWdpc3Rlcl92cGNpX21tY2ZnX2hhbmRsZXIoc3RydWN0IGRvbWFpbiAqZCwg cGFkZHJfdCBhZGRyLAogICAgIHJldHVybiAwOwogfQogCi12b2lkIGRlc3Ryb3lfdnBjaV9tbWNm ZyhzdHJ1Y3QgZG9tYWluICpkKQotewotICAgIHN0cnVjdCBsaXN0X2hlYWQgKm1tY2ZnX3JlZ2lv bnMgPSAmZC0+YXJjaC5odm0ubW1jZmdfcmVnaW9uczsKLQotICAgIHdyaXRlX2xvY2soJmQtPmFy Y2guaHZtLm1tY2ZnX2xvY2spOwotICAgIHdoaWxlICggIWxpc3RfZW1wdHkobW1jZmdfcmVnaW9u cykgKQotICAgIHsKLSAgICAgICAgc3RydWN0IGh2bV9tbWNmZyAqbW1jZmcgPSBsaXN0X2ZpcnN0 X2VudHJ5KG1tY2ZnX3JlZ2lvbnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgaHZtX21tY2ZnLCBuZXh0KTsKLQotICAgICAgICBsaXN0 X2RlbCgmbW1jZmctPm5leHQpOwotICAgICAgICB4ZnJlZShtbWNmZyk7Ci0gICAgfQotICAgIHdy aXRlX3VubG9jaygmZC0+YXJjaC5odm0ubW1jZmdfbG9jayk7Ci19Ci0KIC8qCiAgKiBMb2NhbCB2 YXJpYWJsZXM6CiAgKiBtb2RlOiBDCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2lvcmVx LmMgYi94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMKaW5kZXggZDhmZWExOTFhYS4uMTBjMGY3YTU3 NCAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L2h2bS9pb3JlcS5jCisrKyBiL3hlbi9hcmNoL3g4 Ni9odm0vaW9yZXEuYwpAQCAtNjkwLDYgKzY5MCwyMiBAQCBzdGF0aWMgdm9pZCBodm1faW9yZXFf c2VydmVyX2ZyZWVfcmFuZ2VzZXRzKHN0cnVjdCBodm1faW9yZXFfc2VydmVyICpzKQogICAgICAg ICByYW5nZXNldF9kZXN0cm95KHMtPnJhbmdlW2ldKTsKIH0KIAordm9pZCBodm1faW9yZXFfZnJl ZV9tbWNmZyhzdHJ1Y3QgZG9tYWluICpkKQoreworICAgIHN0cnVjdCBsaXN0X2hlYWQgKm1tY2Zn X3JlZ2lvbnMgPSAmZC0+YXJjaC5odm0ubW1jZmdfcmVnaW9uczsKKworICAgIHdyaXRlX2xvY2so JmQtPmFyY2guaHZtLm1tY2ZnX2xvY2spOworICAgIHdoaWxlICggIWxpc3RfZW1wdHkobW1jZmdf cmVnaW9ucykgKQorICAgIHsKKyAgICAgICAgc3RydWN0IGh2bV9tbWNmZyAqbW1jZmcgPSBsaXN0 X2ZpcnN0X2VudHJ5KG1tY2ZnX3JlZ2lvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaHZtX21tY2ZnLCBuZXh0KTsKKworICAgICAg ICBsaXN0X2RlbCgmbW1jZmctPm5leHQpOworICAgICAgICB4ZnJlZShtbWNmZyk7CisgICAgfQor ICAgIHdyaXRlX3VubG9jaygmZC0+YXJjaC5odm0ubW1jZmdfbG9jayk7Cit9CisKIHN0YXRpYyBp bnQgaHZtX2lvcmVxX3NlcnZlcl9hbGxvY19yYW5nZXNldHMoc3RydWN0IGh2bV9pb3JlcV9zZXJ2 ZXIgKnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlvc2Vy dmlkX3QgaWQpCiB7CkBAIC0xMzI5LDYgKzEzNDUsMTkgQEAgdm9pZCBodm1fZGVzdHJveV9hbGxf aW9yZXFfc2VydmVycyhzdHJ1Y3QgZG9tYWluICpkKQogICAgIHNwaW5fdW5sb2NrX3JlY3Vyc2l2 ZSgmZC0+YXJjaC5odm0uaW9yZXFfc2VydmVyLmxvY2spOwogfQogCitzdGF0aWMgY29uc3Qgc3Ry dWN0IGh2bV9tbWNmZyAqbW1jZmdfZmluZChjb25zdCBzdHJ1Y3QgZG9tYWluICpkLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZHJfdCBhZGRyKQoreworICAg IGNvbnN0IHN0cnVjdCBodm1fbW1jZmcgKm1tY2ZnOworCisgICAgbGlzdF9mb3JfZWFjaF9lbnRy eSAoIG1tY2ZnLCAmZC0+YXJjaC5odm0ubW1jZmdfcmVnaW9ucywgbmV4dCApCisgICAgICAgIGlm ICggYWRkciA+PSBtbWNmZy0+YWRkciAmJiBhZGRyIDwgbW1jZmctPmFkZHIgKyBtbWNmZy0+c2l6 ZSApCisgICAgICAgICAgICByZXR1cm4gbW1jZmc7CisKKyAgICByZXR1cm4gTlVMTDsKK30KKwor CiBzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZlciAqaHZtX3NlbGVjdF9pb3JlcV9zZXJ2ZXIoc3RydWN0 IGRvbWFpbiAqZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpb3JlcV90ICpwKQogewpAQCAtMTMzOCwyNyArMTM2NywzNCBAQCBzdHJ1Y3QgaHZtX2lv cmVxX3NlcnZlciAqaHZtX3NlbGVjdF9pb3JlcV9zZXJ2ZXIoc3RydWN0IGRvbWFpbiAqZCwKICAg ICB1aW50NjRfdCBhZGRyOwogICAgIHVuc2lnbmVkIGludCBpZDsKICAgICBib29sIGludGVybmFs ID0gdHJ1ZTsKKyAgICBjb25zdCBzdHJ1Y3QgaHZtX21tY2ZnICptbWNmZzsKIAogICAgIGlmICgg cC0+dHlwZSAhPSBJT1JFUV9UWVBFX0NPUFkgJiYgcC0+dHlwZSAhPSBJT1JFUV9UWVBFX1BJTyAp CiAgICAgICAgIHJldHVybiBOVUxMOwogCiAgICAgY2Y4ID0gZC0+YXJjaC5odm0ucGNpX2NmODsK IAotICAgIGlmICggcC0+dHlwZSA9PSBJT1JFUV9UWVBFX1BJTyAmJgotICAgICAgICAgKHAtPmFk ZHIgJiB+MykgPT0gMHhjZmMgJiYKLSAgICAgICAgIENGOF9FTkFCTEVEKGNmOCkgKQorICAgIHJl YWRfbG9jaygmZC0+YXJjaC5odm0ubW1jZmdfbG9jayk7CisgICAgaWYgKCAocC0+dHlwZSA9PSBJ T1JFUV9UWVBFX1BJTyAmJgorICAgICAgICAgIChwLT5hZGRyICYgfjMpID09IDB4Y2ZjICYmCisg ICAgICAgICAgQ0Y4X0VOQUJMRUQoY2Y4KSkgfHwKKyAgICAgICAgIChwLT50eXBlID09IElPUkVR X1RZUEVfQ09QWSAmJgorICAgICAgICAgIChtbWNmZyA9IG1tY2ZnX2ZpbmQoZCwgcC0+YWRkcikp ICE9IE5VTEwpICkKICAgICB7CiAgICAgICAgIHVpbnQzMl90IHg4Nl9mYW07CiAgICAgICAgIHBj aV9zYmRmX3Qgc2JkZjsKICAgICAgICAgdW5zaWduZWQgaW50IHJlZzsKIAotICAgICAgICByZWcg PSBodm1fcGNpX2RlY29kZV9hZGRyKGNmOCwgcC0+YWRkciwgJnNiZGYpOworICAgICAgICByZWcg PSBwLT50eXBlID09IElPUkVRX1RZUEVfUElPID8gaHZtX3BjaV9kZWNvZGVfYWRkcihjZjgsIHAt PmFkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICZzYmRmKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDogaHZtX21tY2ZnX2RlY29kZV9hZGRyKG1tY2ZnLCBwLT5hZGRyLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZzYmRm KTsKIAogICAgICAgICAvKiBQQ0kgY29uZmlnIGRhdGEgY3ljbGUgKi8KICAgICAgICAgdHlwZSA9 IFhFTl9ETU9QX0lPX1JBTkdFX1BDSTsKICAgICAgICAgYWRkciA9ICgodWludDY0X3Qpc2JkZi5z YmRmIDw8IDMyKSB8IHJlZzsKICAgICAgICAgLyogQU1EIGV4dGVuZGVkIGNvbmZpZ3VyYXRpb24g c3BhY2UgYWNjZXNzPyAqLwotICAgICAgICBpZiAoIENGOF9BRERSX0hJKGNmOCkgJiYKKyAgICAg ICAgaWYgKCBwLT50eXBlID09IElPUkVRX1RZUEVfUElPICYmIENGOF9BRERSX0hJKGNmOCkgJiYK ICAgICAgICAgICAgICBkLT5hcmNoLmNwdWlkLT54ODZfdmVuZG9yID09IFg4Nl9WRU5ET1JfQU1E ICYmCiAgICAgICAgICAgICAgKHg4Nl9mYW0gPSBnZXRfY3B1X2ZhbWlseSgKICAgICAgICAgICAg ICAgICAgZC0+YXJjaC5jcHVpZC0+YmFzaWMucmF3X2ZtcywgTlVMTCwgTlVMTCkpID4gMHgxMCAm JgpAQCAtMTM3Nyw2ICsxNDEzLDcgQEAgc3RydWN0IGh2bV9pb3JlcV9zZXJ2ZXIgKmh2bV9zZWxl Y3RfaW9yZXFfc2VydmVyKHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAgICAgICAgICAgWEVOX0RN T1BfSU9fUkFOR0VfUE9SVCA6IFhFTl9ETU9QX0lPX1JBTkdFX01FTU9SWTsKICAgICAgICAgYWRk ciA9IHAtPmFkZHI7CiAgICAgfQorICAgIHJlYWRfdW5sb2NrKCZkLT5hcmNoLmh2bS5tbWNmZ19s b2NrKTsKIAogIHJldHJ5OgogICAgIEZPUl9FQUNIX0lPUkVRX1NFUlZFUihkLCBpZCwgcykKQEAg LTE2MjksNiArMTY2Niw0NyBAQCB2b2lkIGh2bV9pb3JlcV9pbml0KHN0cnVjdCBkb21haW4gKmQp CiAgICAgcmVnaXN0ZXJfcG9ydGlvX2hhbmRsZXIoZCwgMHhjZjgsIDQsIGh2bV9hY2Nlc3NfY2Y4 KTsKIH0KIAoraW50IGh2bV9pb3JlcV9yZWdpc3Rlcl9tbWNmZyhzdHJ1Y3QgZG9tYWluICpkLCBw YWRkcl90IGFkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBz dGFydF9idXMsIHVuc2lnbmVkIGludCBlbmRfYnVzLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBpbnQgc2VnKQoreworICAgIHN0cnVjdCBodm1fbW1jZmcgKm1tY2ZnLCAq bmV3OworCisgICAgaWYgKCBzdGFydF9idXMgPiBlbmRfYnVzICkKKyAgICAgICAgcmV0dXJuIC1F SU5WQUw7CisKKyAgICBuZXcgPSB4bWFsbG9jKHN0cnVjdCBodm1fbW1jZmcpOworICAgIGlmICgg IW5ldyApCisgICAgICAgIHJldHVybiAtRU5PTUVNOworCisgICAgbmV3LT5hZGRyID0gYWRkciAr IChzdGFydF9idXMgPDwgMjApOworICAgIG5ldy0+c3RhcnRfYnVzID0gc3RhcnRfYnVzOworICAg IG5ldy0+c2VnbWVudCA9IHNlZzsKKyAgICBuZXctPnNpemUgPSAoZW5kX2J1cyAtIHN0YXJ0X2J1 cyArIDEpIDw8IDIwOworCisgICAgd3JpdGVfbG9jaygmZC0+YXJjaC5odm0ubW1jZmdfbG9jayk7 CisgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSAoIG1tY2ZnLCAmZC0+YXJjaC5odm0ubW1jZmdfcmVn aW9ucywgbmV4dCApCisgICAgICAgIGlmICggbmV3LT5hZGRyIDwgbW1jZmctPmFkZHIgKyBtbWNm Zy0+c2l6ZSAmJgorICAgICAgICAgICAgIG1tY2ZnLT5hZGRyIDwgbmV3LT5hZGRyICsgbmV3LT5z aXplICkKKyAgICAgICAgeworICAgICAgICAgICAgaW50IHJldCA9IC1FRVhJU1Q7CisKKyAgICAg ICAgICAgIGlmICggbmV3LT5hZGRyID09IG1tY2ZnLT5hZGRyICYmCisgICAgICAgICAgICAgICAg IG5ldy0+c3RhcnRfYnVzID09IG1tY2ZnLT5zdGFydF9idXMgJiYKKyAgICAgICAgICAgICAgICAg bmV3LT5zZWdtZW50ID09IG1tY2ZnLT5zZWdtZW50ICYmCisgICAgICAgICAgICAgICAgIG5ldy0+ c2l6ZSA9PSBtbWNmZy0+c2l6ZSApCisgICAgICAgICAgICAgICAgcmV0ID0gMDsKKyAgICAgICAg ICAgIHdyaXRlX3VubG9jaygmZC0+YXJjaC5odm0ubW1jZmdfbG9jayk7CisgICAgICAgICAgICB4 ZnJlZShuZXcpOworICAgICAgICAgICAgcmV0dXJuIHJldDsKKyAgICAgICAgfQorCisgICAgbGlz dF9hZGQoJm5ldy0+bmV4dCwgJmQtPmFyY2guaHZtLm1tY2ZnX3JlZ2lvbnMpOworICAgIHdyaXRl X3VubG9jaygmZC0+YXJjaC5odm0ubW1jZmdfbG9jayk7CisKKyAgICByZXR1cm4gMDsKK30KKwog LyoKICAqIExvY2FsIHZhcmlhYmxlczoKICAqIG1vZGU6IEMKZGlmZiAtLWdpdCBhL3hlbi9pbmNs dWRlL2FzbS14ODYvaHZtL2lvLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9pby5oCmluZGV4 IDdjZWIxMTliNjQuLjI2ZjA0ODkxNzEgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYv aHZtL2lvLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaW8uaApAQCAtMTY1LDkgKzE2 NSwxOSBAQCB2b2lkIHN0ZHZnYV9kZWluaXQoc3RydWN0IGRvbWFpbiAqZCk7CiAKIGV4dGVybiB2 b2lkIGh2bV9kcGNpX21zaV9lb2koc3RydWN0IGRvbWFpbiAqZCwgaW50IHZlY3Rvcik7CiAKLS8q IERlY29kZSBhIFBDSSBwb3J0IElPIGFjY2VzcyBpbnRvIGEgYnVzL3Nsb3QvZnVuYy9yZWcuICov CitzdHJ1Y3QgaHZtX21tY2ZnIHsKKyAgICBzdHJ1Y3QgbGlzdF9oZWFkIG5leHQ7CisgICAgcGFk ZHJfdCBhZGRyOworICAgIHVuc2lnbmVkIGludCBzaXplOworICAgIHVpbnQxNl90IHNlZ21lbnQ7 CisgICAgdWludDhfdCBzdGFydF9idXM7Cit9OworCisvKiBEZWNvZGUgYSBQQ0kgcG9ydCBJTyBv ciBNTUNGRyBhY2Nlc3MgaW50byBhIGJ1cy9zbG90L2Z1bmMvcmVnLiAqLwogdW5zaWduZWQgaW50 IGh2bV9wY2lfZGVjb2RlX2FkZHIodW5zaWduZWQgaW50IGNmOCwgdW5zaWduZWQgaW50IGFkZHIs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwY2lfc2JkZl90ICpzYmRmKTsKK3Vu c2lnbmVkIGludCBodm1fbW1jZmdfZGVjb2RlX2FkZHIoY29uc3Qgc3RydWN0IGh2bV9tbWNmZyAq bW1jZmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRyX3QgYWRkciwg cGNpX3NiZGZfdCAqc2JkZik7CiAKIC8qCiAgKiBIVk0gcG9ydCBJTyBoYW5kbGVyIHRoYXQgcGVy Zm9ybXMgZm9yd2FyZGluZyBvZiBndWVzdCBJTyBwb3J0cyBpbnRvIG1hY2hpbmUKZGlmZiAtLWdp dCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2lvcmVxLmggYi94ZW4vaW5jbHVkZS9hc20teDg2 L2h2bS9pb3JlcS5oCmluZGV4IDIxMzFjOTQ0ZDQuLjEwYjk1ODY4ODUgMTAwNjQ0Ci0tLSBhL3hl bi9pbmNsdWRlL2FzbS14ODYvaHZtL2lvcmVxLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9o dm0vaW9yZXEuaApAQCAtNTgsNiArNTgsMTIgQEAgdm9pZCBodm1faW9yZXFfaW5pdChzdHJ1Y3Qg ZG9tYWluICpkKTsKIGludCBodm1fYWRkX2lvcmVxX2hhbmRsZXIoc3RydWN0IGRvbWFpbiAqZCwg aW9zZXJ2aWRfdCBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqaGFuZGxlciko c3RydWN0IHZjcHUgKnYsIGlvcmVxX3QgKikpOwogCitpbnQgaHZtX2lvcmVxX3JlZ2lzdGVyX21t Y2ZnKHN0cnVjdCBkb21haW4gKmQsIHBhZGRyX3QgYWRkciwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IHN0YXJ0X2J1cywgdW5zaWduZWQgaW50IGVuZF9idXMsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBzZWcpOworCit2b2lkIGh2 bV9pb3JlcV9mcmVlX21tY2ZnKHN0cnVjdCBkb21haW4gKmQpOworCiAjZW5kaWYgLyogX19BU01f WDg2X0hWTV9JT1JFUV9IX18gKi8KIAogLyoKLS0gCjIuMjIuMAoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVu LWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVucHJvamVjdC5vcmcv bWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=