From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: [RFC PATCH v2 09/26] ARM: GICv3: introduce separate pending_irq structs for LPIs Date: Thu, 22 Dec 2016 18:24:29 +0000 Message-ID: <20161222182446.18791-10-andre.przywara@arm.com> References: <20161222182446.18791-1-andre.przywara@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cK828-0005Jx-SZ for xen-devel@lists.xenproject.org; Thu, 22 Dec 2016 18:24:04 +0000 In-Reply-To: <20161222182446.18791-1-andre.przywara@arm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Julien Grall , Stefano Stabellini Cc: xen-devel@lists.xenproject.org, Vijay Kilari List-Id: xen-devel@lists.xenproject.org Rm9yIHRoZSBzYW1lIHJlYXNvbiB0aGF0IGFsbG9jYXRpbmcgYSBzdHJ1Y3QgaXJxX2Rlc2MgZm9y IGVhY2gKcG9zc2libGUgTFBJIGlzIG5vdCBhbiBvcHRpb24sIGhhdmluZyBhIHN0cnVjdCBwZW5k aW5nX2lycSBmb3IgZWFjaCBMUEkKaXMgYWxzbyBub3QgZmVhc2libGUuIEhvd2V2ZXIgd2UgYWN0 dWFsbHkgb25seSBuZWVkIHRob3NlIHdoZW4gYW4KaW50ZXJydXB0IGlzIG9uIGEgdkNQVSAob3Ig aXMgYWJvdXQgdG8gYmUgaW5qZWN0ZWQpLgpNYWludGFpbiBhIGxpc3Qgb2YgdGhvc2Ugc3RydWN0 cyB0aGF0IHdlIGNhbiB1c2UgZm9yIHRoZSBsaWZlY3ljbGUgb2YKYSBndWVzdCBMUEkuIFdlIGFs bG9jYXRlIG5ldyBlbnRyaWVzIGlmIG5lY2Vzc2FyeSwgaG93ZXZlciByZXVzZQpwcmUtb3duZWQg ZW50cmllcyB3aGVuZXZlciBwb3NzaWJsZS4KSSBhZGRlZCBzb21lIGxvY2tpbmcgYXJvdW5kIHRo aXMgbGlzdCBoZXJlLCBob3dldmVyIG15IGd1dCBmZWVsaW5nIGlzCnRoYXQgd2UgZG9uJ3QgbmVl ZCBvbmUgYmVjYXVzZSB0aGlzIGEgcGVyLVZDUFUgc3RydWN0dXJlIGFueXdheS4KSWYgc29tZW9u ZSBjb3VsZCBjb25maXJtIHRoaXMsIEknZCBiZSBncmF0ZWZ1bC4KVGVhY2ggdGhlIGV4aXN0aW5n IFZHSUMgZnVuY3Rpb25zIHRvIGZpbmQgdGhlIHJpZ2h0IHBvaW50ZXIgd2hlbiBiZWluZwpnaXZl biBhIHZpcnR1YWwgTFBJIG51bWJlci4KClNpZ25lZC1vZmYtYnk6IEFuZHJlIFByenl3YXJhIDxh bmRyZS5wcnp5d2FyYUBhcm0uY29tPgotLS0KIHhlbi9hcmNoL2FybS9naWMuYyAgICAgICAgICAg fCAgMyArKysKIHhlbi9hcmNoL2FybS92Z2ljLXYzLmMgICAgICAgfCAxMSArKysrKysrKwogeGVu L2FyY2gvYXJtL3ZnaWMuYyAgICAgICAgICB8IDY0ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tCiB4ZW4vaW5jbHVkZS9hc20tYXJtL2RvbWFpbi5oIHwgIDIgKysK IHhlbi9pbmNsdWRlL2FzbS1hcm0vdmdpYy5oICAgfCAxMCArKysrKysrCiA1IGZpbGVzIGNoYW5n ZWQsIDg3IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEveGVuL2Fy Y2gvYXJtL2dpYy5jIGIveGVuL2FyY2gvYXJtL2dpYy5jCmluZGV4IGE1MzQ4ZjIuLjZmMjU1MDEg MTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS9naWMuYworKysgYi94ZW4vYXJjaC9hcm0vZ2ljLmMK QEAgLTUwOSw2ICs1MDksOSBAQCBzdGF0aWMgdm9pZCBnaWNfdXBkYXRlX29uZV9scihzdHJ1Y3Qg dmNwdSAqdiwgaW50IGkpCiAgICAgICAgICAgICAgICAgc3RydWN0IHZjcHUgKnZfdGFyZ2V0ID0g dmdpY19nZXRfdGFyZ2V0X3ZjcHUodiwgaXJxKTsKICAgICAgICAgICAgICAgICBpcnFfc2V0X2Fm ZmluaXR5KHAtPmRlc2MsIGNwdW1hc2tfb2Yodl90YXJnZXQtPnByb2Nlc3NvcikpOwogICAgICAg ICAgICAgfQorICAgICAgICAgICAgLyogSWYgdGhpcyB3YXMgYW4gTFBJLCBtYXJrIHRoaXMgc3Ry dWN0IGFzIGF2YWlsYWJsZSBhZ2Fpbi4gKi8KKyAgICAgICAgICAgIGlmICggcC0+aXJxID49IDgx OTIgKQorICAgICAgICAgICAgICAgIHAtPmlycSA9IDA7CiAgICAgICAgIH0KICAgICB9CiB9CmRp ZmYgLS1naXQgYS94ZW4vYXJjaC9hcm0vdmdpYy12My5jIGIveGVuL2FyY2gvYXJtL3ZnaWMtdjMu YwppbmRleCBkNjE0NzlkLi4wZmZkZTc0IDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vdmdpYy12 My5jCisrKyBiL3hlbi9hcmNoL2FybS92Z2ljLXYzLmMKQEAgLTMzMSw2ICszMzEsMTQgQEAgcmVh ZF91bmtub3duOgogICAgIHJldHVybiAxOwogfQogCitpbnQgdmdpY19scGlfZ2V0X3ByaW9yaXR5 KHN0cnVjdCBkb21haW4gKmQsIHVpbnQzMl90IHZscGkpCit7CisgICAgaWYgKCB2bHBpID49IGQt PmFyY2gudmdpYy5ucl9scGlzICkKKyAgICAgICAgcmV0dXJuIEdJQ19QUklfSVJROworCisgICAg cmV0dXJuIGQtPmFyY2gudmdpYy5wcm9wdGFibGVbdmxwaSAtIDgxOTJdICYgMHhmYzsKK30KKwog c3RhdGljIGludCBfX3ZnaWNfdjNfcmRpc3RyX3JkX21taW9fd3JpdGUoc3RydWN0IHZjcHUgKnYs IG1taW9faW5mb190ICppbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdWludDMyX3QgZ2ljcl9yZWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZWdpc3Rlcl90IHIpCkBAIC0xNDI2LDYgKzE0MzQsOSBAQCBzdGF0aWMgaW50 IHZnaWNfdjNfdmNwdV9pbml0KHN0cnVjdCB2Y3B1ICp2KQogICAgIGlmICggdi0+dmNwdV9pZCA9 PSBsYXN0X2NwdSB8fCAodi0+dmNwdV9pZCA9PSAoZC0+bWF4X3ZjcHVzIC0gMSkpICkKICAgICAg ICAgdi0+YXJjaC52Z2ljLmZsYWdzIHw9IFZHSUNfVjNfUkRJU1RfTEFTVDsKIAorICAgIHNwaW5f bG9ja19pbml0KCZ2LT5hcmNoLnZnaWMucGVuZGluZ19scGlfbGlzdF9sb2NrKTsKKyAgICBJTklU X0xJU1RfSEVBRCgmdi0+YXJjaC52Z2ljLnBlbmRpbmdfbHBpX2xpc3QpOworCiAgICAgcmV0dXJu IDA7CiB9CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS92Z2ljLmMgYi94ZW4vYXJjaC9hcm0v dmdpYy5jCmluZGV4IGRlNzdhYWEuLmYxNWViM2UgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL2FybS92 Z2ljLmMKKysrIGIveGVuL2FyY2gvYXJtL3ZnaWMuYwpAQCAtMzEsNiArMzEsOCBAQAogI2luY2x1 ZGUgPGFzbS9tbWlvLmg+CiAjaW5jbHVkZSA8YXNtL2dpYy5oPgogI2luY2x1ZGUgPGFzbS92Z2lj Lmg+CisjaW5jbHVkZSA8YXNtL2dpY192M19kZWZzLmg+CisjaW5jbHVkZSA8YXNtL2dpYy1pdHMu aD4KIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgdmdpY19pcnFfcmFuayAqdmdpY19nZXRfcmFuayhz dHJ1Y3QgdmNwdSAqdiwgaW50IHJhbmspCiB7CkBAIC02MSw3ICs2Myw3IEBAIHN0cnVjdCB2Z2lj X2lycV9yYW5rICp2Z2ljX3JhbmtfaXJxKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgaXJx KQogICAgIHJldHVybiB2Z2ljX2dldF9yYW5rKHYsIHJhbmspOwogfQogCi1zdGF0aWMgdm9pZCB2 Z2ljX2luaXRfcGVuZGluZ19pcnEoc3RydWN0IHBlbmRpbmdfaXJxICpwLCB1bnNpZ25lZCBpbnQg dmlycSkKK3ZvaWQgdmdpY19pbml0X3BlbmRpbmdfaXJxKHN0cnVjdCBwZW5kaW5nX2lycSAqcCwg dW5zaWduZWQgaW50IHZpcnEpCiB7CiAgICAgSU5JVF9MSVNUX0hFQUQoJnAtPmluZmxpZ2h0KTsK ICAgICBJTklUX0xJU1RfSEVBRCgmcC0+bHJfcXVldWUpOwpAQCAtMjQ3LDEwICsyNDksMTQgQEAg c3RydWN0IHZjcHUgKnZnaWNfZ2V0X3RhcmdldF92Y3B1KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25l ZCBpbnQgdmlycSkKIAogc3RhdGljIGludCB2Z2ljX2dldF92aXJxX3ByaW9yaXR5KHN0cnVjdCB2 Y3B1ICp2LCB1bnNpZ25lZCBpbnQgdmlycSkKIHsKLSAgICBzdHJ1Y3QgdmdpY19pcnFfcmFuayAq cmFuayA9IHZnaWNfcmFua19pcnEodiwgdmlycSk7CisgICAgc3RydWN0IHZnaWNfaXJxX3Jhbmsg KnJhbms7CiAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKICAgICBpbnQgcHJpb3JpdHk7CiAKKyAg ICBpZiAoIHZpcnEgPj0gODE5MiApCisgICAgICAgIHJldHVybiB2Z2ljX2xwaV9nZXRfcHJpb3Jp dHkodi0+ZG9tYWluLCB2aXJxKTsKKworICAgIHJhbmsgPSB2Z2ljX3JhbmtfaXJxKHYsIHZpcnEp OwogICAgIHZnaWNfbG9ja19yYW5rKHYsIHJhbmssIGZsYWdzKTsKICAgICBwcmlvcml0eSA9IHJh bmstPnByaW9yaXR5W3ZpcnEgJiBJTlRFUlJVUFRfUkFOS19NQVNLXTsKICAgICB2Z2ljX3VubG9j a19yYW5rKHYsIHJhbmssIGZsYWdzKTsKQEAgLTQ0OSwxMyArNDU1LDYzIEBAIGJvb2wgdmdpY190 b19zZ2koc3RydWN0IHZjcHUgKnYsIHJlZ2lzdGVyX3Qgc2dpciwgZW51bSBnaWNfc2dpX21vZGUg aXJxbW9kZSwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorLyoKKyAqIEhvbGRpbmcgc3RydWN0IHBl bmRpbmdfaXJxJ3MgZm9yIGVhY2ggcG9zc2libGUgdmlydHVhbCBMUEkgaW4gZWFjaCBkb21haW4K KyAqIHJlcXVpcmVzIHRvbyBtdWNoIFhlbiBtZW1vcnksIGFsc28gYSBtYWxpY2lvdXMgZ3Vlc3Qg Y291bGQgcG90ZW50aWFsbHkKKyAqIHNwYW0gWGVuIHdpdGggTFBJIG1hcCByZXF1ZXN0cy4gV2Ug Y2Fubm90IGNvdmVyIHRob3NlIHdpdGggKGd1ZXN0IGFsbG9jYXRlZCkKKyAqIElUUyBtZW1vcnks IHNvIHdlIHVzZSBhIGR5bmFtaWMgc2NoZW1lIG9mIGFsbG9jYXRpbmcgc3RydWN0IHBlbmRpbmdf aXJxJ3MKKyAqIG9uIGRlbWFuZC4KKyAqLworc3RydWN0IHBlbmRpbmdfaXJxICpscGlfdG9fcGVu ZGluZyhzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IGxwaSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYm9vbCBhbGxvY2F0ZSkKK3sKKyAgICBzdHJ1Y3QgbHBpX3BlbmRp bmdfaXJxICpscGlfaXJxLCAqZW1wdHkgPSBOVUxMOworCisgICAgc3Bpbl9sb2NrKCZ2LT5hcmNo LnZnaWMucGVuZGluZ19scGlfbGlzdF9sb2NrKTsKKyAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KGxw aV9pcnEsICZ2LT5hcmNoLnZnaWMucGVuZGluZ19scGlfbGlzdCwgZW50cnkpCisgICAgeworICAg ICAgICBpZiAoIGxwaV9pcnEtPnBpcnEuaXJxID09IGxwaSApCisgICAgICAgIHsKKyAgICAgICAg ICAgIHNwaW5fdW5sb2NrKCZ2LT5hcmNoLnZnaWMucGVuZGluZ19scGlfbGlzdF9sb2NrKTsKKyAg ICAgICAgICAgIHJldHVybiAmbHBpX2lycS0+cGlycTsKKyAgICAgICAgfQorCisgICAgICAgIGlm ICggbHBpX2lycS0+cGlycS5pcnEgPT0gMCAmJiAhZW1wdHkgKQorICAgICAgICAgICAgZW1wdHkg PSBscGlfaXJxOworICAgIH0KKworICAgIGlmICggIWFsbG9jYXRlICkKKyAgICB7CisgICAgICAg IHNwaW5fdW5sb2NrKCZ2LT5hcmNoLnZnaWMucGVuZGluZ19scGlfbGlzdF9sb2NrKTsKKyAgICAg ICAgcmV0dXJuIE5VTEw7CisgICAgfQorCisgICAgaWYgKCAhZW1wdHkgKQorICAgIHsKKyAgICAg ICAgZW1wdHkgPSB4emFsbG9jKHN0cnVjdCBscGlfcGVuZGluZ19pcnEpOworICAgICAgICB2Z2lj X2luaXRfcGVuZGluZ19pcnEoJmVtcHR5LT5waXJxLCBscGkpOworICAgICAgICBsaXN0X2FkZF90 YWlsKCZlbXB0eS0+ZW50cnksICZ2LT5hcmNoLnZnaWMucGVuZGluZ19scGlfbGlzdCk7CisgICAg fSBlbHNlCisgICAgeworICAgICAgICBlbXB0eS0+cGlycS5zdGF0dXMgPSAwOworICAgICAgICBl bXB0eS0+cGlycS5pcnEgPSBscGk7CisgICAgfQorCisgICAgc3Bpbl91bmxvY2soJnYtPmFyY2gu dmdpYy5wZW5kaW5nX2xwaV9saXN0X2xvY2spOworCisgICAgcmV0dXJuICZlbXB0eS0+cGlycTsK K30KKwogc3RydWN0IHBlbmRpbmdfaXJxICppcnFfdG9fcGVuZGluZyhzdHJ1Y3QgdmNwdSAqdiwg dW5zaWduZWQgaW50IGlycSkKIHsKICAgICBzdHJ1Y3QgcGVuZGluZ19pcnEgKm47CisKICAgICAv KiBQZW5kaW5nIGlycXMgYWxsb2NhdGlvbiBzdHJhdGVneTogdGhlIGZpcnN0IHZnaWMubnJfc3Bp cyBpcnFzCiAgICAgICogYXJlIHVzZWQgZm9yIFNQSXM7IHRoZSByZXN0cyBhcmUgdXNlZCBmb3Ig cGVyIGNwdSBpcnFzICovCiAgICAgaWYgKCBpcnEgPCAzMiApCiAgICAgICAgIG4gPSAmdi0+YXJj aC52Z2ljLnBlbmRpbmdfaXJxc1tpcnFdOworICAgIGVsc2UgaWYgKCBpcnEgPj0gODE5MiApCisg ICAgICAgIG4gPSBscGlfdG9fcGVuZGluZyh2LCBpcnEsIHRydWUpOwogICAgIGVsc2UKICAgICAg ICAgbiA9ICZ2LT5kb21haW4tPmFyY2gudmdpYy5wZW5kaW5nX2lycXNbaXJxIC0gMzJdOwogICAg IHJldHVybiBuOwpAQCAtNDgzLDcgKzUzOSw3IEBAIHZvaWQgdmdpY19jbGVhcl9wZW5kaW5nX2ly cXMoc3RydWN0IHZjcHUgKnYpCiB2b2lkIHZnaWNfdmNwdV9pbmplY3RfaXJxKHN0cnVjdCB2Y3B1 ICp2LCB1bnNpZ25lZCBpbnQgdmlycSkKIHsKICAgICB1aW50OF90IHByaW9yaXR5OwotICAgIHN0 cnVjdCBwZW5kaW5nX2lycSAqaXRlciwgKm4gPSBpcnFfdG9fcGVuZGluZyh2LCB2aXJxKTsKKyAg ICBzdHJ1Y3QgcGVuZGluZ19pcnEgKml0ZXIsICpuOwogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7 CiAgICAgYm9vbCBydW5uaW5nOwogCkBAIC00OTEsNiArNTQ3LDggQEAgdm9pZCB2Z2ljX3ZjcHVf aW5qZWN0X2lycShzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IHZpcnEpCiAKICAgICBzcGlu X2xvY2tfaXJxc2F2ZSgmdi0+YXJjaC52Z2ljLmxvY2ssIGZsYWdzKTsKIAorICAgIG4gPSBpcnFf dG9fcGVuZGluZyh2LCB2aXJxKTsKKwogICAgIC8qIHZjcHUgb2ZmbGluZSAqLwogICAgIGlmICgg dGVzdF9iaXQoX1ZQRl9kb3duLCAmdi0+cGF1c2VfZmxhZ3MpICkKICAgICB7CmRpZmYgLS1naXQg YS94ZW4vaW5jbHVkZS9hc20tYXJtL2RvbWFpbi5oIGIveGVuL2luY2x1ZGUvYXNtLWFybS9kb21h aW4uaAppbmRleCA4Y2NjMzJhLi4wMmFlMmNkIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20t YXJtL2RvbWFpbi5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vZG9tYWluLmgKQEAgLTI1Niw2 ICsyNTYsOCBAQCBzdHJ1Y3QgYXJjaF92Y3B1CiAgICAgICAgIHBhZGRyX3QgcmRpc3RfYmFzZTsK ICNkZWZpbmUgVkdJQ19WM19SRElTVF9MQVNUICAoMSA8PCAwKSAgICAgICAgLyogbGFzdCB2Q1BV IG9mIHRoZSByZGlzdCAqLwogICAgICAgICB1aW50OF90IGZsYWdzOworICAgICAgICBzdHJ1Y3Qg bGlzdF9oZWFkIHBlbmRpbmdfbHBpX2xpc3Q7CisgICAgICAgIHNwaW5sb2NrX3QgcGVuZGluZ19s cGlfbGlzdF9sb2NrOyAgIC8qIHByb3RlY3RzIHRoZSBwZW5kaW5nX2xwaV9saXN0ICovCiAgICAg fSB2Z2ljOwogCiAgICAgLyogVGltZXIgcmVnaXN0ZXJzICAqLwpkaWZmIC0tZ2l0IGEveGVuL2lu Y2x1ZGUvYXNtLWFybS92Z2ljLmggYi94ZW4vaW5jbHVkZS9hc20tYXJtL3ZnaWMuaAppbmRleCA2 NzJmNjQ5Li5hNTAzMzIxIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL3ZnaWMuaAor KysgYi94ZW4vaW5jbHVkZS9hc20tYXJtL3ZnaWMuaApAQCAtODMsNiArODMsMTIgQEAgc3RydWN0 IHBlbmRpbmdfaXJxCiAgICAgc3RydWN0IGxpc3RfaGVhZCBscl9xdWV1ZTsKIH07CiAKK3N0cnVj dCBscGlfcGVuZGluZ19pcnEKK3sKKyAgICBzdHJ1Y3QgbGlzdF9oZWFkIGVudHJ5OworICAgIHN0 cnVjdCBwZW5kaW5nX2lycSBwaXJxOworfTsKKwogI2RlZmluZSBOUl9JTlRFUlJVUFRfUEVSX1JB TksgICAzMgogI2RlZmluZSBJTlRFUlJVUFRfUkFOS19NQVNLIChOUl9JTlRFUlJVUFRfUEVSX1JB TksgLSAxKQogCkBAIC0yOTYsMTMgKzMwMiwxNyBAQCBleHRlcm4gc3RydWN0IHZjcHUgKnZnaWNf Z2V0X3RhcmdldF92Y3B1KHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBpbnQgdmlycSk7CiBleHRl cm4gdm9pZCB2Z2ljX3ZjcHVfaW5qZWN0X2lycShzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50 IHZpcnEpOwogZXh0ZXJuIHZvaWQgdmdpY192Y3B1X2luamVjdF9zcGkoc3RydWN0IGRvbWFpbiAq ZCwgdW5zaWduZWQgaW50IHZpcnEpOwogZXh0ZXJuIHZvaWQgdmdpY19jbGVhcl9wZW5kaW5nX2ly cXMoc3RydWN0IHZjcHUgKnYpOworZXh0ZXJuIHZvaWQgdmdpY19pbml0X3BlbmRpbmdfaXJxKHN0 cnVjdCBwZW5kaW5nX2lycSAqcCwgdW5zaWduZWQgaW50IHZpcnEpOwogZXh0ZXJuIHN0cnVjdCBw ZW5kaW5nX2lycSAqaXJxX3RvX3BlbmRpbmcoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGludCBp cnEpOwogZXh0ZXJuIHN0cnVjdCBwZW5kaW5nX2lycSAqc3BpX3RvX3BlbmRpbmcoc3RydWN0IGRv bWFpbiAqZCwgdW5zaWduZWQgaW50IGlycSk7CitleHRlcm4gc3RydWN0IHBlbmRpbmdfaXJxICps cGlfdG9fcGVuZGluZyhzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IGlycSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYWxsb2NhdGUpOwogZXh0ZXJu IHN0cnVjdCB2Z2ljX2lycV9yYW5rICp2Z2ljX3Jhbmtfb2Zmc2V0KHN0cnVjdCB2Y3B1ICp2LCBp bnQgYiwgaW50IG4sIGludCBzKTsKIGV4dGVybiBzdHJ1Y3QgdmdpY19pcnFfcmFuayAqdmdpY19y YW5rX2lycShzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgaW50IGlycSk7CiBleHRlcm4gYm9vbCB2 Z2ljX2VtdWxhdGUoc3RydWN0IGNwdV91c2VyX3JlZ3MgKnJlZ3MsIHVuaW9uIGhzciBoc3IpOwog ZXh0ZXJuIHZvaWQgdmdpY19kaXNhYmxlX2lycXMoc3RydWN0IHZjcHUgKnYsIHVpbnQzMl90IHIs IGludCBuKTsKIGV4dGVybiB2b2lkIHZnaWNfZW5hYmxlX2lycXMoc3RydWN0IHZjcHUgKnYsIHVp bnQzMl90IHIsIGludCBuKTsKK2V4dGVybiBpbnQgdmdpY19scGlfZ2V0X3ByaW9yaXR5KHN0cnVj dCBkb21haW4gKmQsIHVpbnQzMl90IHZscGkpOwogZXh0ZXJuIHZvaWQgcmVnaXN0ZXJfdmdpY19v cHMoc3RydWN0IGRvbWFpbiAqZCwgY29uc3Qgc3RydWN0IHZnaWNfb3BzICpvcHMpOwogaW50IHZn aWNfdjJfaW5pdChzdHJ1Y3QgZG9tYWluICpkLCBpbnQgKm1taW9fY291bnQpOwogaW50IHZnaWNf djNfaW5pdChzdHJ1Y3QgZG9tYWluICpkLCBpbnQgKm1taW9fY291bnQpOwotLSAKMi45LjAKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9y Zy94ZW4tZGV2ZWwK