From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexey Gerasimenko Subject: [RFC PATCH 13/30] pc/xen: Xen Q35 support: provide IRQ handling for PCI devices Date: Tue, 13 Mar 2018 04:33:58 +1000 Message-ID: <6067bc3c91c9ee629a35723dfb474ef168ff4ebf.1520867955.git.x1917x@gmail.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1evSI8-0007bV-I6 for xen-devel@lists.xenproject.org; Mon, 12 Mar 2018 18:35:24 +0000 Received: by mail-pl0-x244.google.com with SMTP id f23-v6so9824077plr.10 for ; Mon, 12 Mar 2018 11:35:22 -0700 (PDT) In-Reply-To: In-Reply-To: References: 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 , Eduardo Habkost , "Michael S. Tsirkin" , qemu-devel@nongnu.org, Anthony Perard , Alexey Gerasimenko , Marcel Apfelbaum , Paolo Bonzini , Richard Henderson List-Id: xen-devel@lists.xenproject.org VGhlIHByaW1hcnkgZGlmZmVyZW5jZSBpbiBQQ0kgZGV2aWNlIElSUSBtYW5hZ2VtZW50IGJldHdl ZW4gWGVuIEhWTSBhbmQKUUVNVSBpcyB0aGF0IFhlbiBQQ0kgSVJRcyBhcmUgImRldmljZS1jZW50 cmljIiB3aGlsZSBRRU1VIFBDSSBJUlFzIGFyZQoiY2hpcHNldC1jZW50cmljIi4gTmFtZWx5LCBY ZW4gdXNlcyBQQ0kgZGV2aWNlIEJERiBhbmQgSU5UeCBhcyBjb29yZGluYXRlcwp0byBhc3NlcnQg SVJRIHdoaWxlIFFFTVUgZmluZHMgb3V0IHRvIHdoaWNoIGNoaXBzZXQgUElSUSB0aGUgSVJRIGlz IHJvdXRlZAp0aHJvdWdoIHRoZSBoaWVyYXJjaHkgb2YgUENJIGJ1c2VzIGFuZCBtYW5hZ2VzIElS USBhc3NlcnRpb24gb24gY2hpcHNldApzaWRlIChhcyBQSVJRIGlucHV0cykuCgpUd28gY2FsbGJh Y2sgZnVuY3Rpb25zIGFyZSB1c2VkIGZvciB0aGlzIHB1cnBvc2U6IC5tYXBfaXJxIGFuZCAuc2V0 X2lycQoobmFtZWQgYWZ0ZXIgY29ycmVzcG9uZGluZyBzdHJ1Y3R1cmUgZmllbGRzKS4gQ29ycmVz cG9uZGluZyBYZW4tc3BlY2lmaWMKY2FsbGJhY2sgZnVuY3Rpb25zIGFyZSBwaWl4M19zZXRfaXJx KCkgYW5kIHBjaV9zbG90X2dldF9waXJxKCkuIEluIFhlbgpjYXNlIHRoZXNlIGZ1bmN0aW9ucyBk byBub3Qgb3BlcmF0ZSBvbiBwaXJxIHBpbiBudW1iZXJzLiBJbnN0ZWFkLCB0aGV5IHVzZQphIHNw ZWNpZmljIHZhbHVlIHRvIHBhc3MgQkRGL0lOVHggaW5mb3JtYXRpb24gYmV0d2VlbiAubWFwX2ly cSBhbmQKLnNldF9pcnEgLS0gUENJIGRldmljZSBkZXZmbiBhbmQgSU5UeCBwaW4gbnVtYmVyIGFy ZSBjb21iaW5lZCBpbnRvCnBzZXVkby1QSVJRIGluIHBjaV9zbG90X2dldF9waXJxLCB3aGljaCBw aWl4M19zZXRfaXJxIGxhdGVyIGRlY29kZXMgYmFjawppbnRvIGRldmZuIGFuZCBJTlR4IG51bWJl ciBmb3IgcGFzc2luZyB0byAqc2V0X3BjaV9pbnR4X2xldmVsKCkgY2FsbC4KCkZvciBYZW4gb24g UTM1IHRoaXMgc2NoZW1lIGlzIHN0aWxsIGFwcGxpY2FibGUsIHdpdGggdGhlIGV4Y2VwdGlvbiB0 aGF0CmZ1bmN0aW9uIG5hbWVzIGFyZSBub24tZGVzY3JpcHRpdmUgbm93IGFuZCBuZWVkIHRvIGJl IHJlbmFtZWQgdG8gc2hvdwp0aGVpciBjb21tb24gaTQ0MC9RMzUgbmF0dXJlLiBQcm9wb3NlZCBu ZXcgbmFtZXMgYXJlOgoKeGVuX3BjaV9zbG90X2dldF9waXJxIC0tPiB4ZW5fY21uX3BjaV9zbG90 X2dldF9waXJxCnhlbl9waWl4M19zZXRfaXJxICAgICAtLT4geGVuX2Ntbl9zZXRfaXJxCgpBbm90 aGVyIElSUS1yZWxhdGVkIGRpZmZlcmVuY2UgYmV0d2VlbiBpNDQwIGFuZCBRMzUgaXMgdGhlIG51 bWJlciBvZiBQSVJRCmlucHV0cyBhbmQgUElSUSByb3V0ZXJzIChQQ0kgSVJRIGxpbmtzIGluIHRl cm1zIG9mIEFDUEkpIGF2YWlsYWJsZS4gaTQ0MApoYXMgNCBQQ0kgaW50ZXJydXB0IGxpbmtzLCB3 aGlsZSBRMzUgaGFzIDggKFBJUlFBLi4uUElSUUgpLgpDdXJyZW50bHkgWGVuIGhhdmUgc3VwcG9y dCBmb3Igb25seSA0IFBDSSBsaW5rcywgc28gd2UgZGVzY3JpYmUgb25seSA0IG9mCjggUENJIGxp bmtzIGluIEFDUEkgdGFibGVzLiBBbHNvLCBodm1sb2FkZXIgZGlzYWJsZXMgUElSUSByb3V0aW5n IGZvcgpQSVJRRS4uUElSUUggYnkgd3JpdGluZyA4MGggaW50byBjb3JyZXNwb25kaW5nIFBJUlFb bl1fUk9VVCByZWdpc3RlcnMuCgpBbGwgdGhpcyBQQ0kgaW50ZXJydXB0IHJvdXRpbmcgc3R1ZmYg aXMgbGFyZ2VseSBhbiBhbmNpZW50IGxlZ2FjeSBmcm9tIFBJQwplcmEuIEl0J3MgaGFyZGx5IHdv cnRoIHRvIGV4dGVuZCBudW1iZXIgb2YgUENJIGxpbmtzIHN1cHBvcnRlZCBhcyB3ZQpub3JtYWxs eSBkZWFsIHdpdGggQVBJQyBtb2RlIGFuZC9vciBNU0kgaW50ZXJydXB0cy4KClRoZSBvbmx5IHVz ZWZ1bCB0aGluZyB0byBkbyB3aXRoIFBJUlFFLi5QSVJRSCByb3V0aW5nIGN1cnJlbnRseSBpcyB0 bwpjaGVjayBpZiBndWVzdCBhY3R1YWxseSBhdHRlbXB0cyB0byB1c2UgaXQgZm9yIHNvbWUgcmVh c29uIChkZXNwaXRlIEFDUEkKUENJIHJvdXRpbmcgaW5mb3JtYXRpb24gcHJvdmlkZWQpLiBJbiB0 aGlzIGNhc2UsIGEgd2FybmluZyBpcyBsb2dnZWQuCgpTaWduZWQtb2ZmLWJ5OiBBbGV4ZXkgR2Vy YXNpbWVua28gPHgxOTE3eEBnbWFpbC5jb20+Ci0tLQogaHcvaTM4Ni9wY19xMzUuYyAgICAgICB8 IDEzICsrKysrKysrKystLS0KIGh3L2kzODYveGVuL3hlbi1odm0uYyAgfCAzMiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKy0tLQogaHcvaXNhL2xwY19pY2g5LmMgICAgICB8ICA0ICsrKysK IGh3L3BjaS1ob3N0L3BpaXguYyAgICAgfCAgMiArLQogaW5jbHVkZS9ody9pMzg2L2ljaDkuaCB8 ICAxICsKIGluY2x1ZGUvaHcveGVuL3hlbi5oICAgfCAgNSArKystLQogc3R1YnMveGVuLWh2bS5j ICAgICAgICB8ICA4ICsrKysrKy0tCiA3IGZpbGVzIGNoYW5nZWQsIDU0IGluc2VydGlvbnMoKyks IDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2h3L2kzODYvcGNfcTM1LmMgYi9ody9pMzg2 L3BjX3EzNS5jCmluZGV4IDBjMGJjNDgxMzcuLjBkYjY3MGY2ZDcgMTAwNjQ0Ci0tLSBhL2h3L2kz ODYvcGNfcTM1LmMKKysrIGIvaHcvaTM4Ni9wY19xMzUuYwpAQCAtMjAzLDkgKzIwMywxNiBAQCBz dGF0aWMgdm9pZCBwY19xMzVfaW5pdChNYWNoaW5lU3RhdGUgKm1hY2hpbmUpCiAgICAgZm9yIChp ID0gMDsgaSA8IEdTSV9OVU1fUElOUzsgaSsrKSB7CiAgICAgICAgIHFkZXZfY29ubmVjdF9ncGlv X291dF9uYW1lZChscGNfZGV2LCBJQ0g5X0dQSU9fR1NJLCBpLCBwY21zLT5nc2lbaV0pOwogICAg IH0KLSAgICBwY2lfYnVzX2lycXMoaG9zdF9idXMsIGljaDlfbHBjX3NldF9pcnEsIGljaDlfbHBj X21hcF9pcnEsIGljaDlfbHBjLAotICAgICAgICAgICAgICAgICBJQ0g5X0xQQ19OQl9QSVJRUyk7 Ci0gICAgcGNpX2J1c19zZXRfcm91dGVfaXJxX2ZuKGhvc3RfYnVzLCBpY2g5X3JvdXRlX2ludHhf cGluX3RvX2lycSk7CisKKyAgICBpZiAoeGVuX2VuYWJsZWQoKSkgeworICAgICAgICBwY2lfYnVz X2lycXMoaG9zdF9idXMsIHhlbl9jbW5fc2V0X2lycSwgeGVuX2Ntbl9wY2lfc2xvdF9nZXRfcGly cSwKKyAgICAgICAgICAgICAgICAgICAgIGljaDlfbHBjLCBJQ0g5X1hFTl9OVU1fSVJRX1NPVVJD RVMpOworICAgIH0gZWxzZSB7CisgICAgICAgIHBjaV9idXNfaXJxcyhob3N0X2J1cywgaWNoOV9s cGNfc2V0X2lycSwgaWNoOV9scGNfbWFwX2lycSwgaWNoOV9scGMsCisgICAgICAgICAgICAgICAg ICAgICBJQ0g5X0xQQ19OQl9QSVJRUyk7CisgICAgICAgIHBjaV9idXNfc2V0X3JvdXRlX2lycV9m bihob3N0X2J1cywgaWNoOV9yb3V0ZV9pbnR4X3Bpbl90b19pcnEpOworICAgIH0KKwogICAgIGlz YV9idXMgPSBpY2g5X2xwYy0+aXNhX2J1czsKIAogICAgIGlmIChrdm1fcGljX2luX2tlcm5lbCgp KSB7CmRpZmYgLS1naXQgYS9ody9pMzg2L3hlbi94ZW4taHZtLmMgYi9ody9pMzg2L3hlbi94ZW4t aHZtLmMKaW5kZXggZjI0YjdkNDkyMy4uNDBhNWMxM2ZhNiAxMDA2NDQKLS0tIGEvaHcvaTM4Ni94 ZW4veGVuLWh2bS5jCisrKyBiL2h3L2kzODYveGVuL3hlbi1odm0uYwpAQCAtMTMsNiArMTMsNyBA QAogI2luY2x1ZGUgImNwdS5oIgogI2luY2x1ZGUgImh3L3BjaS9wY2kuaCIKICNpbmNsdWRlICJo dy9pMzg2L3BjLmgiCisjaW5jbHVkZSAiaHcvaTM4Ni9pY2g5LmgiCiAjaW5jbHVkZSAiaHcvaTM4 Ni9hcGljLW1zaWRlZi5oIgogI2luY2x1ZGUgImh3L3hlbi94ZW5fY29tbW9uLmgiCiAjaW5jbHVk ZSAiaHcveGVuL3hlbl9iYWNrZW5kLmgiCkBAIC0xMTUsMTQgKzExNiwxNCBAQCB0eXBlZGVmIHN0 cnVjdCBYZW5JT1N0YXRlIHsKICAgICBOb3RpZmllciB3YWtldXA7CiB9IFhlbklPU3RhdGU7CiAK LS8qIFhlbiBzcGVjaWZpYyBmdW5jdGlvbiBmb3IgcGlpeCBwY2kgKi8KKy8qIFhlbi1zcGVjaWZp YyBmdW5jdGlvbnMgZm9yIHBjaSBkZXYgSVJRIGhhbmRsaW5nICovCiAKLWludCB4ZW5fcGNpX3Ns b3RfZ2V0X3BpcnEoUENJRGV2aWNlICpwY2lfZGV2LCBpbnQgaXJxX251bSkKK2ludCB4ZW5fY21u X3BjaV9zbG90X2dldF9waXJxKFBDSURldmljZSAqcGNpX2RldiwgaW50IGlycV9udW0pCiB7CiAg ICAgcmV0dXJuIGlycV9udW0gKyAoKHBjaV9kZXYtPmRldmZuID4+IDMpIDw8IDIpOwogfQogCi12 b2lkIHhlbl9waWl4M19zZXRfaXJxKHZvaWQgKm9wYXF1ZSwgaW50IGlycV9udW0sIGludCBsZXZl bCkKK3ZvaWQgeGVuX2Ntbl9zZXRfaXJxKHZvaWQgKm9wYXF1ZSwgaW50IGlycV9udW0sIGludCBs ZXZlbCkKIHsKICAgICB4ZW5fc2V0X3BjaV9pbnR4X2xldmVsKHhlbl9kb21pZCwgMCwgMCwgaXJx X251bSA+PiAyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaXJxX251bSAmIDMsIGxldmVs KTsKQEAgLTE0NSw2ICsxNDYsMzEgQEAgdm9pZCB4ZW5fcGlpeF9wY2lfd3JpdGVfY29uZmlnX2Ns aWVudCh1aW50MzJfdCBhZGRyZXNzLCB1aW50MzJfdCB2YWwsIGludCBsZW4pCiAgICAgfQogfQog Cit2b2lkIHhlbl9pY2g5X3BjaV93cml0ZV9jb25maWdfY2xpZW50KHVpbnQzMl90IGFkZHJlc3Ms IHVpbnQzMl90IHZhbCwgaW50IGxlbikKK3sKKyAgICBzdGF0aWMgYm9vbCBwaXJxZV9mX3dhcm5l ZCA9IGZhbHNlOworCisgICAgaWYgKHJhbmdlc19vdmVybGFwKGFkZHJlc3MsIGxlbiwgSUNIOV9M UENfUElSUUFfUk9VVCwgNCkpIHsKKyAgICAgICAgLyogaGFuZGxlIFBJUlFBLi5QSVJRRCByb3V0 aW5nICovCisgICAgICAgIHhlbl9waWl4X3BjaV93cml0ZV9jb25maWdfY2xpZW50KGFkZHJlc3Ms IHZhbCwgbGVuKTsKKyAgICB9IGVsc2UgaWYgKHJhbmdlc19vdmVybGFwKGFkZHJlc3MsIGxlbiwg SUNIOV9MUENfUElSUUVfUk9VVCwgNCkpIHsKKyAgICAgICAgd2hpbGUgKGxlbi0tKSB7CisgICAg ICAgICAgICBpZiAocmFuZ2VfY292ZXJzX2J5dGUoSUNIOV9MUENfUElSUUVfUk9VVCwgNCwgYWRk cmVzcykgJiYKKyAgICAgICAgICAgICAgICAodmFsICYgMHg4MCkgPT0gMCkgeworICAgICAgICAg ICAgICAgIC8qIHByaW50IHdhcm5pbmcgb25seSBvbmNlICovCisgICAgICAgICAgICAgICAgaWYg KCFwaXJxZV9mX3dhcm5lZCkgeworICAgICAgICAgICAgICAgICAgICBwaXJxZV9mX3dhcm5lZCA9 IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiV0FSTklORzogZ3Vl c3QgZG9tYWluIGF0dGVtcHRlZCB0byB1c2UgUElSUSVjICIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAicm91dGluZyB3aGljaCBpcyBub3Qgc3VwcG9ydGVkIGZvciBYZW4vUTM1IGN1cnJl bnRseVxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhcikoYWRkcmVzcyAtIElD SDlfTFBDX1BJUlFFX1JPVVQgKyAnRScpKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgYWRkcmVzcysrLCB2 YWwgPj49IDg7CisgICAgICAgIH0KKyAgICB9Cit9CisKIGludCB4ZW5faXNfcGlycV9tc2kodWlu dDMyX3QgbXNpX2RhdGEpCiB7CiAgICAgLyogSWYgdmVjdG9yIGlzIDAsIHRoZSBtc2kgaXMgcmVt YXBwZWQgaW50byBhIHBpcnEsIHBhc3NlZCBhcwpkaWZmIC0tZ2l0IGEvaHcvaXNhL2xwY19pY2g5 LmMgYi9ody9pc2EvbHBjX2ljaDkuYwppbmRleCBlNjkyYjlmZGMxLi5iMTdhYzgyZWQ2IDEwMDY0 NAotLS0gYS9ody9pc2EvbHBjX2ljaDkuYworKysgYi9ody9pc2EvbHBjX2ljaDkuYwpAQCAtNDks NiArNDksNyBAQAogI2luY2x1ZGUgInFvbS9jcHUuaCIKICNpbmNsdWRlICJody9udnJhbS9md19j ZmcuaCIKICNpbmNsdWRlICJxZW11L2N1dGlscy5oIgorI2luY2x1ZGUgImh3L3hlbi94ZW4uaCIK IAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLwogLyogSUNIOSBMUEMgUENJIHRvIElTQSBicmlkZ2Ug Ki8KQEAgLTUxNCw2ICs1MTUsOSBAQCBzdGF0aWMgdm9pZCBpY2g5X2xwY19jb25maWdfd3JpdGUo UENJRGV2aWNlICpkLAogICAgIElDSDlMUENTdGF0ZSAqbHBjID0gSUNIOV9MUENfREVWSUNFKGQp OwogICAgIHVpbnQzMl90IHJjYmFfb2xkID0gcGNpX2dldF9sb25nKGQtPmNvbmZpZyArIElDSDlf TFBDX1JDQkEpOwogCisgICAgaWYgKHhlbl9lbmFibGVkKCkpeworICAgICAgICB4ZW5faWNoOV9w Y2lfd3JpdGVfY29uZmlnX2NsaWVudChhZGRyLCB2YWwsIGxlbik7CisgICAgfQogICAgIHBjaV9k ZWZhdWx0X3dyaXRlX2NvbmZpZyhkLCBhZGRyLCB2YWwsIGxlbik7CiAgICAgaWYgKHJhbmdlc19v dmVybGFwKGFkZHIsIGxlbiwgSUNIOV9MUENfUE1CQVNFLCA0KSB8fAogICAgICAgICByYW5nZXNf b3ZlcmxhcChhZGRyLCBsZW4sIElDSDlfTFBDX0FDUElfQ1RSTCwgMSkpIHsKZGlmZiAtLWdpdCBh L2h3L3BjaS1ob3N0L3BpaXguYyBiL2h3L3BjaS1ob3N0L3BpaXguYwppbmRleCAwZTYwODM0N2Mx Li4yNjI3YzA2ZmFlIDEwMDY0NAotLS0gYS9ody9wY2ktaG9zdC9waWl4LmMKKysrIGIvaHcvcGNp LWhvc3QvcGlpeC5jCkBAIC00MTUsNyArNDE1LDcgQEAgUENJQnVzICppNDQwZnhfaW5pdChjb25z dCBjaGFyICpob3N0X3R5cGUsIGNvbnN0IGNoYXIgKnBjaV90eXBlLAogICAgICAgICBQQ0lEZXZp Y2UgKnBjaV9kZXYgPSBwY2lfY3JlYXRlX3NpbXBsZV9tdWx0aWZ1bmN0aW9uKGIsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC0xLCB0cnVlLCAiUElJWDMteGVuIik7CiAgICAgICAgIHBp aXgzID0gUElJWDNfUENJX0RFVklDRShwY2lfZGV2KTsKLSAgICAgICAgcGNpX2J1c19pcnFzKGIs IHhlbl9waWl4M19zZXRfaXJxLCB4ZW5fcGNpX3Nsb3RfZ2V0X3BpcnEsCisgICAgICAgIHBjaV9i dXNfaXJxcyhiLCB4ZW5fY21uX3NldF9pcnEsIHhlbl9jbW5fcGNpX3Nsb3RfZ2V0X3BpcnEsCiAg ICAgICAgICAgICAgICAgcGlpeDMsIFhFTl9QSUlYX05VTV9QSVJRUyk7CiAgICAgfSBlbHNlIHsK ICAgICAgICAgUENJRGV2aWNlICpwY2lfZGV2ID0gcGNpX2NyZWF0ZV9zaW1wbGVfbXVsdGlmdW5j dGlvbihiLApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9ody9pMzg2L2ljaDkuaCBiL2luY2x1ZGUvaHcv aTM4Ni9pY2g5LmgKaW5kZXggNjczZDEzZDI4Zi4uM2RjNDJmY2JjZSAxMDA2NDQKLS0tIGEvaW5j bHVkZS9ody9pMzg2L2ljaDkuaAorKysgYi9pbmNsdWRlL2h3L2kzODYvaWNoOS5oCkBAIC0xNDMs NiArMTQzLDcgQEAgT2JqZWN0ICppY2g5X2xwY19maW5kKHZvaWQpOwogCiAjZGVmaW5lIElDSDlf QTJfTFBDX1JFVklTSU9OICAgICAgICAgICAgICAgICAgICAweDIKICNkZWZpbmUgSUNIOV9MUENf TkJfUElSUVMgICAgICAgICAgICAgICAgICAgICAgIDggICAgICAgLyogUENJIEEtSCAqLworI2Rl ZmluZSBJQ0g5X1hFTl9OVU1fSVJRX1NPVVJDRVMgICAgICAgICAgICAgICAgMTI4CiAKICNkZWZp bmUgSUNIOV9MUENfUE1CQVNFICAgICAgICAgICAgICAgICAgICAgICAgIDB4NDAKICNkZWZpbmUg SUNIOV9MUENfUE1CQVNFX0JBU0VfQUREUkVTU19NQVNLICAgICAgIFEzNV9NQVNLKDMyLCAxNSwg NykKZGlmZiAtLWdpdCBhL2luY2x1ZGUvaHcveGVuL3hlbi5oIGIvaW5jbHVkZS9ody94ZW4veGVu LmgKaW5kZXggN2VmY2RhYThmZS4uNTVjNmNhZDU0MyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9ody94 ZW4veGVuLmgKKysrIGIvaW5jbHVkZS9ody94ZW4veGVuLmgKQEAgLTMwLDkgKzMwLDEwIEBAIHN0 YXRpYyBpbmxpbmUgYm9vbCB4ZW5fZW5hYmxlZCh2b2lkKQogICAgIHJldHVybiB4ZW5fYWxsb3dl ZDsKIH0KIAotaW50IHhlbl9wY2lfc2xvdF9nZXRfcGlycShQQ0lEZXZpY2UgKnBjaV9kZXYsIGlu dCBpcnFfbnVtKTsKLXZvaWQgeGVuX3BpaXgzX3NldF9pcnEodm9pZCAqb3BhcXVlLCBpbnQgaXJx X251bSwgaW50IGxldmVsKTsKK2ludCB4ZW5fY21uX3BjaV9zbG90X2dldF9waXJxKFBDSURldmlj ZSAqcGNpX2RldiwgaW50IGlycV9udW0pOwordm9pZCB4ZW5fY21uX3NldF9pcnEodm9pZCAqb3Bh cXVlLCBpbnQgaXJxX251bSwgaW50IGxldmVsKTsKIHZvaWQgeGVuX3BpaXhfcGNpX3dyaXRlX2Nv bmZpZ19jbGllbnQodWludDMyX3QgYWRkcmVzcywgdWludDMyX3QgdmFsLCBpbnQgbGVuKTsKK3Zv aWQgeGVuX2ljaDlfcGNpX3dyaXRlX2NvbmZpZ19jbGllbnQodWludDMyX3QgYWRkcmVzcywgdWlu dDMyX3QgdmFsLCBpbnQgbGVuKTsKIHZvaWQgeGVuX2h2bV9pbmplY3RfbXNpKHVpbnQ2NF90IGFk ZHIsIHVpbnQzMl90IGRhdGEpOwogaW50IHhlbl9pc19waXJxX21zaSh1aW50MzJfdCBtc2lfZGF0 YSk7CiAKZGlmZiAtLWdpdCBhL3N0dWJzL3hlbi1odm0uYyBiL3N0dWJzL3hlbi1odm0uYwppbmRl eCAwMDY3YmNjNmRiLi5jMWJjNDU3NDRjIDEwMDY0NAotLS0gYS9zdHVicy94ZW4taHZtLmMKKysr IGIvc3R1YnMveGVuLWh2bS5jCkBAIC0xNCwxMiArMTQsMTIgQEAKICNpbmNsdWRlICJleGVjL21l bW9yeS5oIgogI2luY2x1ZGUgInFhcGkvcWFwaS1jb21tYW5kcy1taXNjLmgiCiAKLWludCB4ZW5f cGNpX3Nsb3RfZ2V0X3BpcnEoUENJRGV2aWNlICpwY2lfZGV2LCBpbnQgaXJxX251bSkKK2ludCB4 ZW5fY21uX3BjaV9zbG90X2dldF9waXJxKFBDSURldmljZSAqcGNpX2RldiwgaW50IGlycV9udW0p CiB7CiAgICAgcmV0dXJuIC0xOwogfQogCi12b2lkIHhlbl9waWl4M19zZXRfaXJxKHZvaWQgKm9w YXF1ZSwgaW50IGlycV9udW0sIGludCBsZXZlbCkKK3ZvaWQgeGVuX2Ntbl9zZXRfaXJxKHZvaWQg Km9wYXF1ZSwgaW50IGlycV9udW0sIGludCBsZXZlbCkKIHsKIH0KIApAQCAtMjcsNiArMjcsMTAg QEAgdm9pZCB4ZW5fcGlpeF9wY2lfd3JpdGVfY29uZmlnX2NsaWVudCh1aW50MzJfdCBhZGRyZXNz LCB1aW50MzJfdCB2YWwsIGludCBsZW4pCiB7CiB9CiAKK3ZvaWQgeGVuX2ljaDlfcGNpX3dyaXRl X2NvbmZpZ19jbGllbnQodWludDMyX3QgYWRkcmVzcywgdWludDMyX3QgdmFsLCBpbnQgbGVuKQor eworfQorCiB2b2lkIHhlbl9odm1faW5qZWN0X21zaSh1aW50NjRfdCBhZGRyLCB1aW50MzJfdCBk YXRhKQogewogfQotLSAKMi4xMS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVu cHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZv L3hlbi1kZXZlbA==