From mboxrd@z Thu Jan 1 00:00:00 1970 From: Roger Pau Monne Subject: [PATCH v2 01/11] vpci: move lock Date: Tue, 17 Jul 2018 11:48:20 +0200 Message-ID: <20180717094830.54806-2-roger.pau@citrix.com> References: <20180717094830.54806-1-roger.pau@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1ffMbZ-000236-RI for xen-devel@lists.xenproject.org; Tue, 17 Jul 2018 09:49:13 +0000 In-Reply-To: <20180717094830.54806-1-roger.pau@citrix.com> 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 , Wei Liu , George Dunlap , Andrew Cooper , Ian Jackson , Tim Deegan , Julien Grall , Jan Beulich , Roger Pau Monne List-Id: xen-devel@lists.xenproject.org VG8gdGhlIG91dHNpZGUgb2YgdGhlIHZwY2kgc3RydWN0LiBUaGlzIHdheSB0aGUgbG9jayBjYW4g YmUgdXNlZCB0bwpjaGVjayB3aGV0aGVyIHZwY2kgaXMgcHJlc2VudCwgYW5kIHJlbW92YWwgY2Fu IGJlIHBlcmZvcm1lZCB3aGlsZQpob2xkaW5nIHRoZSBsb2NrLCBpbiBvcmRlciB0byBtYWtlIHN1 cmUgdGhlcmUgYXJlIG5vIGFjY2Vzc2VzIHRvIHRoZQpjb250ZW50cyBvZiB0aGUgdnBjaSBzdHJ1 Y3QuIFByZXZpb3VzbHkgcmVtb3ZhbCBjb3VsZCByYWNlIHdpdGgKdnBjaV9yZWFkIGZvciBleGFt cGxlLCBzaW5jZSB0aGUgbG9jayB3YXMgZHJvcHBlZCBwcmlvciB0byBmcmVlaW5nCnBkZXYtPnZw Y2kuCgpTaWduZWQtb2ZmLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNv bT4KLS0tCkNjOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpDYzog R2VvcmdlIER1bmxhcCA8R2VvcmdlLkR1bmxhcEBldS5jaXRyaXguY29tPgpDYzogSWFuIEphY2tz b24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5jb20+CkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hA c3VzZS5jb20+CkNjOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgpDYzogS29u cmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgpDYzogU3RlZmFubyBT dGFiZWxsaW5pIDxzc3RhYmVsbGluaUBrZXJuZWwub3JnPgpDYzogVGltIERlZWdhbiA8dGltQHhl bi5vcmc+CkNjOiBXZWkgTGl1IDx3ZWkubGl1MkBjaXRyaXguY29tPgotLS0KQ2hhbmdlcyBzaW5j ZSB2MToKIC0gQXNzZXJ0IHRoYXQgdnBjaV9sb2NrIGlzIGxvY2tlZCBpbiB2cGNpX3JlbW92ZV9k ZXZpY2VfbG9ja2VkLgogLSBSZW1vdmUgZG91YmxlIG5ld2xpbmUuCiAtIFNocmluayBjcml0aWNh bCBzZWN0aW9uIGluIHZwY2lfe3JlYWQvd3JpdGV9LgotLS0KIHRvb2xzL3Rlc3RzL3ZwY2kvZW11 bC5oICAgICAgIHwgIDUgKystLQogdG9vbHMvdGVzdHMvdnBjaS9tYWluLmMgICAgICAgfCAgNCAr LS0KIHhlbi9hcmNoL3g4Ni9odm0vdm1zaS5jICAgICAgIHwgIDggKysrLS0tCiB4ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9wY2kuYyB8ICAxICsKIHhlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMgICAg IHwgMTkgKysrKysrKystLS0tCiB4ZW4vZHJpdmVycy92cGNpL21zaS5jICAgICAgICB8IDExICsr KysrLS0KIHhlbi9kcml2ZXJzL3ZwY2kvbXNpeC5jICAgICAgIHwgIDggKysrLS0tCiB4ZW4vZHJp dmVycy92cGNpL3ZwY2kuYyAgICAgICB8IDU0ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tCiB4ZW4vaW5jbHVkZS94ZW4vcGNpLmggICAgICAgICB8ICAxICsKIHhlbi9pbmNsdWRl L3hlbi92cGNpLmggICAgICAgIHwgIDMgKy0KIDEwIGZpbGVzIGNoYW5nZWQsIDcyIGluc2VydGlv bnMoKyksIDQyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3RzL3ZwY2kvZW11 bC5oIGIvdG9vbHMvdGVzdHMvdnBjaS9lbXVsLmgKaW5kZXggNWQ0NzU0NGJmNy4uZDM0NGVmNzFj OSAxMDA2NDQKLS0tIGEvdG9vbHMvdGVzdHMvdnBjaS9lbXVsLmgKKysrIGIvdG9vbHMvdGVzdHMv dnBjaS9lbXVsLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgc3RydWN0IGRvbWFpbiB7CiB9OwogCiBzdHJ1 Y3QgcGNpX2RldiB7CisgICAgYm9vbCB2cGNpX2xvY2s7CiAgICAgc3RydWN0IHZwY2kgKnZwY2k7 CiB9OwogCkBAIC01MywxMCArNTQsOCBAQCBzdHJ1Y3QgdmNwdQogfTsKIAogZXh0ZXJuIGNvbnN0 IHN0cnVjdCB2Y3B1ICpjdXJyZW50OwotZXh0ZXJuIGNvbnN0IHN0cnVjdCBwY2lfZGV2IHRlc3Rf cGRldjsKK2V4dGVybiBzdHJ1Y3QgcGNpX2RldiB0ZXN0X3BkZXY7CiAKLXR5cGVkZWYgYm9vbCBz cGlubG9ja190OwotI2RlZmluZSBzcGluX2xvY2tfaW5pdChsKSAoKihsKSA9IGZhbHNlKQogI2Rl ZmluZSBzcGluX2xvY2sobCkgKCoobCkgPSB0cnVlKQogI2RlZmluZSBzcGluX3VubG9jayhsKSAo KihsKSA9IGZhbHNlKQogCmRpZmYgLS1naXQgYS90b29scy90ZXN0cy92cGNpL21haW4uYyBiL3Rv b2xzL3Rlc3RzL3ZwY2kvbWFpbi5jCmluZGV4IGI5YTBhNjAwNmIuLjI2Yzk1YjA4YjYgMTAwNjQ0 Ci0tLSBhL3Rvb2xzL3Rlc3RzL3ZwY2kvbWFpbi5jCisrKyBiL3Rvb2xzL3Rlc3RzL3ZwY2kvbWFp bi5jCkBAIC0yMyw3ICsyMyw4IEBAIHN0YXRpYyBzdHJ1Y3QgdnBjaSB2cGNpOwogCiBjb25zdCBz dGF0aWMgc3RydWN0IGRvbWFpbiBkOwogCi1jb25zdCBzdHJ1Y3QgcGNpX2RldiB0ZXN0X3BkZXYg PSB7CitzdHJ1Y3QgcGNpX2RldiB0ZXN0X3BkZXYgPSB7CisgICAgLnZwY2lfbG9jayA9IGZhbHNl LAogICAgIC52cGNpID0gJnZwY2ksCiB9OwogCkBAIC0xNTgsNyArMTU5LDYgQEAgbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiAgICAgaW50IHJjOwogCiAgICAgSU5JVF9MSVNUX0hFQUQoJnZw Y2kuaGFuZGxlcnMpOwotICAgIHNwaW5fbG9ja19pbml0KCZ2cGNpLmxvY2spOwogCiAgICAgVlBD SV9BRERfUkVHKHZwY2lfcmVhZDMyLCB2cGNpX3dyaXRlMzIsIDAsIDQsIHIwKTsKICAgICBWUENJ X1JFQURfQ0hFQ0soMCwgNCwgcjApOwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS92bXNp LmMgYi94ZW4vYXJjaC94ODYvaHZtL3Ztc2kuYwppbmRleCAzMDAxZDVjNDg4Li45NDU1MGNiOGM0 IDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvaHZtL3Ztc2kuYworKysgYi94ZW4vYXJjaC94ODYv aHZtL3Ztc2kuYwpAQCAtODkzLDE0ICs4OTMsMTQgQEAgaW50IHZwY2lfbXNpeF9hcmNoX3ByaW50 KGNvbnN0IHN0cnVjdCB2cGNpX21zaXggKm1zaXgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHN0 cnVjdCBwY2lfZGV2ICpwZGV2ID0gbXNpeC0+cGRldjsKIAotICAgICAgICAgICAgc3Bpbl91bmxv Y2soJm1zaXgtPnBkZXYtPnZwY2ktPmxvY2spOworICAgICAgICAgICAgc3Bpbl91bmxvY2soJm1z aXgtPnBkZXYtPnZwY2lfbG9jayk7CiAgICAgICAgICAgICBwcm9jZXNzX3BlbmRpbmdfc29mdGly cXMoKTsKICAgICAgICAgICAgIC8qIE5COiB3ZSBhc3N1bWUgdGhhdCBwZGV2IGNhbm5vdCBnbyBh d2F5IGZvciBhbiBhbGl2ZSBkb21haW4uICovCi0gICAgICAgICAgICBpZiAoICFwZGV2LT52cGNp IHx8ICFzcGluX3RyeWxvY2soJnBkZXYtPnZwY2ktPmxvY2spICkKKyAgICAgICAgICAgIGlmICgg IXNwaW5fdHJ5bG9jaygmcGRldi0+dnBjaV9sb2NrKSApCiAgICAgICAgICAgICAgICAgcmV0dXJu IC1FQlVTWTsKLSAgICAgICAgICAgIGlmICggcGRldi0+dnBjaS0+bXNpeCAhPSBtc2l4ICkKKyAg ICAgICAgICAgIGlmICggIXBkZXYtPnZwY2kgfHwgcGRldi0+dnBjaS0+bXNpeCAhPSBtc2l4ICkK ICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmcGRldi0+dnBjaS0+ bG9jayk7CisgICAgICAgICAgICAgICAgc3Bpbl91bmxvY2soJnBkZXYtPnZwY2lfbG9jayk7CiAg ICAgICAgICAgICAgICAgcmV0dXJuIC1FQUdBSU47CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K ZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvcGNpLmMKaW5kZXggYzQ4OTBhNDI5NS4uYTVkNTliODNiNyAxMDA2NDQKLS0t IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvcGNpLmMKQEAgLTMxNSw2ICszMTUsNyBAQCBzdGF0aWMgc3RydWN0IHBjaV9kZXYgKmFs bG9jX3BkZXYoc3RydWN0IHBjaV9zZWcgKnBzZWcsIHU4IGJ1cywgdTggZGV2Zm4pCiAgICAgKigo dTgqKSAmcGRldi0+ZGV2Zm4pID0gZGV2Zm47CiAgICAgcGRldi0+ZG9tYWluID0gTlVMTDsKICAg ICBJTklUX0xJU1RfSEVBRCgmcGRldi0+bXNpX2xpc3QpOworICAgIHNwaW5fbG9ja19pbml0KCZw ZGV2LT52cGNpX2xvY2spOwogCiAgICAgaWYgKCBwY2lfZmluZF9jYXBfb2Zmc2V0KHBzZWctPm5y LCBidXMsIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQQ0lfQ0FQX0lEX01TSVgpICkKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJz L3ZwY2kvaGVhZGVyLmMgYi94ZW4vZHJpdmVycy92cGNpL2hlYWRlci5jCmluZGV4IDBlYzRjMDgy YTYuLjlkNTYwN2Q1ZjggMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3ZwY2kvaGVhZGVyLmMKKysr IGIveGVuL2RyaXZlcnMvdnBjaS9oZWFkZXIuYwpAQCAtMTMxLDExICsxMzEsMTIgQEAgYm9vbCB2 cGNpX3Byb2Nlc3NfcGVuZGluZyhzdHJ1Y3QgdmNwdSAqdikKICAgICAgICAgaWYgKCByYyA9PSAt RVJFU1RBUlQgKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICAgICAgc3Bpbl9sb2Nr KCZ2LT52cGNpLnBkZXYtPnZwY2ktPmxvY2spOwotICAgICAgICAvKiBEaXNhYmxlIG1lbW9yeSBk ZWNvZGluZyB1bmNvbmRpdGlvbmFsbHkgb24gZmFpbHVyZS4gKi8KLSAgICAgICAgbW9kaWZ5X2Rl Y29kaW5nKHYtPnZwY2kucGRldiwgIXJjICYmIHYtPnZwY2kubWFwLAotICAgICAgICAgICAgICAg ICAgICAgICAgIXJjICYmIHYtPnZwY2kucm9tX29ubHkpOwotICAgICAgICBzcGluX3VubG9jaygm di0+dnBjaS5wZGV2LT52cGNpLT5sb2NrKTsKKyAgICAgICAgc3Bpbl9sb2NrKCZ2LT52cGNpLnBk ZXYtPnZwY2lfbG9jayk7CisgICAgICAgIGlmICggdi0+dnBjaS5wZGV2LT52cGNpICkKKyAgICAg ICAgICAgIC8qIERpc2FibGUgbWVtb3J5IGRlY29kaW5nIHVuY29uZGl0aW9uYWxseSBvbiBmYWls dXJlLiAqLworICAgICAgICAgICAgbW9kaWZ5X2RlY29kaW5nKHYtPnZwY2kucGRldiwgIXJjICYm IHYtPnZwY2kubWFwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICFyYyAmJiB2LT52cGNp LnJvbV9vbmx5KTsKKyAgICAgICAgc3Bpbl91bmxvY2soJnYtPnZwY2kucGRldi0+dnBjaV9sb2Nr KTsKIAogICAgICAgICByYW5nZXNldF9kZXN0cm95KHYtPnZwY2kubWVtKTsKICAgICAgICAgdi0+ dnBjaS5tZW0gPSBOVUxMOwpAQCAtMjY3LDYgKzI2OCwxMiBAQCBzdGF0aWMgaW50IG1vZGlmeV9i YXJzKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBib29sIG1hcCwgYm9vbCByb21fb25seSkK ICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCisgICAgICAgIHNwaW5fbG9j aygmdG1wLT52cGNpX2xvY2spOworICAgICAgICBpZiAoICF0bXAtPnZwY2kgKQorICAgICAgICB7 CisgICAgICAgICAgICBzcGluX3VubG9jaygmdG1wLT52cGNpX2xvY2spOworICAgICAgICAgICAg Y29udGludWU7CisgICAgICAgIH0KICAgICAgICAgZm9yICggaSA9IDA7IGkgPCBBUlJBWV9TSVpF KHRtcC0+dnBjaS0+aGVhZGVyLmJhcnMpOyBpKysgKQogICAgICAgICB7CiAgICAgICAgICAgICBj b25zdCBzdHJ1Y3QgdnBjaV9iYXIgKmJhciA9ICZ0bXAtPnZwY2ktPmhlYWRlci5iYXJzW2ldOwpA QCAtMjg1LDEyICsyOTIsMTQgQEAgc3RhdGljIGludCBtb2RpZnlfYmFycyhjb25zdCBzdHJ1Y3Qg cGNpX2RldiAqcGRldiwgYm9vbCBtYXAsIGJvb2wgcm9tX29ubHkpCiAgICAgICAgICAgICByYyA9 IHJhbmdlc2V0X3JlbW92ZV9yYW5nZShtZW0sIHN0YXJ0LCBlbmQpOwogICAgICAgICAgICAgaWYg KCByYyApCiAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgc3Bpbl91bmxvY2soJnRtcC0+ dnBjaV9sb2NrKTsKICAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfV0FSTklORyAiRmFp bGVkIHRvIHJlbW92ZSBbJWx4LCAlbHhdOiAlZFxuIiwKICAgICAgICAgICAgICAgICAgICAgICAg c3RhcnQsIGVuZCwgcmMpOwogICAgICAgICAgICAgICAgIHJhbmdlc2V0X2Rlc3Ryb3kobWVtKTsK ICAgICAgICAgICAgICAgICByZXR1cm4gcmM7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKyAg ICAgICAgc3Bpbl91bmxvY2soJnRtcC0+dnBjaV9sb2NrKTsKICAgICB9CiAKICAgICBBU1NFUlQo ZGV2KTsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3ZwY2kvbXNpLmMgYi94ZW4vZHJpdmVycy92 cGNpL21zaS5jCmluZGV4IDhmMTVhZDdiZjIuLjEwOGU4NzFkMWMgMTAwNjQ0Ci0tLSBhL3hlbi9k cml2ZXJzL3ZwY2kvbXNpLmMKKysrIGIveGVuL2RyaXZlcnMvdnBjaS9tc2kuYwpAQCAtMjc1LDcg KzI3NSw3IEBAIHZvaWQgdnBjaV9kdW1wX21zaSh2b2lkKQogICAgIHJjdV9yZWFkX2xvY2soJmRv bWxpc3RfcmVhZF9sb2NrKTsKICAgICBmb3JfZWFjaF9kb21haW4gKCBkICkKICAgICB7Ci0gICAg ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2OworICAgICAgICBzdHJ1Y3QgcGNpX2RldiAq cGRldjsKIAogICAgICAgICBpZiAoICFoYXNfdnBjaShkKSApCiAgICAgICAgICAgICBjb250aW51 ZTsKQEAgLTI4Nyw4ICsyODcsMTMgQEAgdm9pZCB2cGNpX2R1bXBfbXNpKHZvaWQpCiAgICAgICAg ICAgICBjb25zdCBzdHJ1Y3QgdnBjaV9tc2kgKm1zaTsKICAgICAgICAgICAgIGNvbnN0IHN0cnVj dCB2cGNpX21zaXggKm1zaXg7CiAKLSAgICAgICAgICAgIGlmICggIXBkZXYtPnZwY2kgfHwgIXNw aW5fdHJ5bG9jaygmcGRldi0+dnBjaS0+bG9jaykgKQorICAgICAgICAgICAgaWYgKCAhc3Bpbl90 cnlsb2NrKCZwZGV2LT52cGNpX2xvY2spICkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg ICAgICAgICAgIGlmICggIXBkZXYtPnZwY2kgKQorICAgICAgICAgICAgeworICAgICAgICAgICAg ICAgIHNwaW5fdW5sb2NrKCZwZGV2LT52cGNpX2xvY2spOworICAgICAgICAgICAgICAgIGNvbnRp bnVlOworICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBtc2kgPSBwZGV2LT52cGNpLT5tc2k7 CiAgICAgICAgICAgICBpZiAoIG1zaSAmJiBtc2ktPmVuYWJsZWQgKQpAQCAtMzMwLDcgKzMzNSw3 IEBAIHZvaWQgdnBjaV9kdW1wX21zaSh2b2lkKQogICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgIH0KIAotICAgICAgICAgICAgc3Bpbl91bmxvY2soJnBkZXYtPnZwY2ktPmxvY2spOworICAg ICAgICAgICAgc3Bpbl91bmxvY2soJnBkZXYtPnZwY2lfbG9jayk7CiAgICAgICAgICAgICBwcm9j ZXNzX3BlbmRpbmdfc29mdGlycXMoKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL3hl bi9kcml2ZXJzL3ZwY2kvbXNpeC5jIGIveGVuL2RyaXZlcnMvdnBjaS9tc2l4LmMKaW5kZXggYmNm NjMyNTZmNi4uZTI4MDk2MzI5ZCAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvdnBjaS9tc2l4LmMK KysrIGIveGVuL2RyaXZlcnMvdnBjaS9tc2l4LmMKQEAgLTIzNiw3ICsyMzYsNyBAQCBzdGF0aWMg aW50IG1zaXhfcmVhZChzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25l ZCBpbnQgbGVuLAogICAgICAgICByZXR1cm4gWDg2RU1VTF9PS0FZOwogICAgIH0KIAotICAgIHNw aW5fbG9jaygmbXNpeC0+cGRldi0+dnBjaS0+bG9jayk7CisgICAgc3Bpbl9sb2NrKCZtc2l4LT5w ZGV2LT52cGNpX2xvY2spOwogICAgIGVudHJ5ID0gZ2V0X2VudHJ5KG1zaXgsIGFkZHIpOwogICAg IG9mZnNldCA9IGFkZHIgJiAoUENJX01TSVhfRU5UUllfU0laRSAtIDEpOwogCkBAIC0yNjUsNyAr MjY1LDcgQEAgc3RhdGljIGludCBtc2l4X3JlYWQoc3RydWN0IHZjcHUgKnYsIHVuc2lnbmVkIGxv bmcgYWRkciwgdW5zaWduZWQgaW50IGxlbiwKICAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7 CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBzcGluX3VubG9jaygmbXNpeC0+cGRldi0+dnBj aS0+bG9jayk7CisgICAgc3Bpbl91bmxvY2soJm1zaXgtPnBkZXYtPnZwY2lfbG9jayk7CiAKICAg ICByZXR1cm4gWDg2RU1VTF9PS0FZOwogfQpAQCAtMzA4LDcgKzMwOCw3IEBAIHN0YXRpYyBpbnQg bXNpeF93cml0ZShzdHJ1Y3QgdmNwdSAqdiwgdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25lZCBp bnQgbGVuLAogICAgICAgICByZXR1cm4gWDg2RU1VTF9PS0FZOwogICAgIH0KIAotICAgIHNwaW5f bG9jaygmbXNpeC0+cGRldi0+dnBjaS0+bG9jayk7CisgICAgc3Bpbl9sb2NrKCZtc2l4LT5wZGV2 LT52cGNpX2xvY2spOwogICAgIGVudHJ5ID0gZ2V0X2VudHJ5KG1zaXgsIGFkZHIpOwogICAgIG9m ZnNldCA9IGFkZHIgJiAoUENJX01TSVhfRU5UUllfU0laRSAtIDEpOwogCkBAIC0zODQsNyArMzg0 LDcgQEAgc3RhdGljIGludCBtc2l4X3dyaXRlKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBsb25n IGFkZHIsIHVuc2lnbmVkIGludCBsZW4sCiAgICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOwog ICAgICAgICBicmVhazsKICAgICB9Ci0gICAgc3Bpbl91bmxvY2soJm1zaXgtPnBkZXYtPnZwY2kt PmxvY2spOworICAgIHNwaW5fdW5sb2NrKCZtc2l4LT5wZGV2LT52cGNpX2xvY2spOwogCiAgICAg cmV0dXJuIFg4NkVNVUxfT0tBWTsKIH0KZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3ZwY2kvdnBj aS5jIGIveGVuL2RyaXZlcnMvdnBjaS92cGNpLmMKaW5kZXggODI2MDdiZGI5YS4uMGU2ZmYwOWM5 YSAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvdnBjaS92cGNpLmMKKysrIGIveGVuL2RyaXZlcnMv dnBjaS92cGNpLmMKQEAgLTM1LDkgKzM1LDEwIEBAIGV4dGVybiB2cGNpX3JlZ2lzdGVyX2luaXRf dCAqY29uc3QgX19zdGFydF92cGNpX2FycmF5W107CiBleHRlcm4gdnBjaV9yZWdpc3Rlcl9pbml0 X3QgKmNvbnN0IF9fZW5kX3ZwY2lfYXJyYXlbXTsKICNkZWZpbmUgTlVNX1ZQQ0lfSU5JVCAoX19l bmRfdnBjaV9hcnJheSAtIF9fc3RhcnRfdnBjaV9hcnJheSkKIAotdm9pZCB2cGNpX3JlbW92ZV9k ZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYpCitzdGF0aWMgdm9pZCB2cGNpX3JlbW92ZV9kZXZp Y2VfbG9ja2VkKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogewotICAgIHNwaW5fbG9jaygmcGRldi0+ dnBjaS0+bG9jayk7CisgICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZwZGV2LT52cGNpX2xvY2sp KTsKKwogICAgIHdoaWxlICggIWxpc3RfZW1wdHkoJnBkZXYtPnZwY2ktPmhhbmRsZXJzKSApCiAg ICAgewogICAgICAgICBzdHJ1Y3QgdnBjaV9yZWdpc3RlciAqciA9IGxpc3RfZmlyc3RfZW50cnko JnBkZXYtPnZwY2ktPmhhbmRsZXJzLApAQCAtNDcsMTMgKzQ4LDIwIEBAIHZvaWQgdnBjaV9yZW1v dmVfZGV2aWNlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogICAgICAgICBsaXN0X2RlbCgmci0+bm9k ZSk7CiAgICAgICAgIHhmcmVlKHIpOwogICAgIH0KLSAgICBzcGluX3VubG9jaygmcGRldi0+dnBj aS0+bG9jayk7CiAgICAgeGZyZWUocGRldi0+dnBjaS0+bXNpeCk7CiAgICAgeGZyZWUocGRldi0+ dnBjaS0+bXNpKTsKICAgICB4ZnJlZShwZGV2LT52cGNpKTsKICAgICBwZGV2LT52cGNpID0gTlVM TDsKIH0KIAordm9pZCB2cGNpX3JlbW92ZV9kZXZpY2Uoc3RydWN0IHBjaV9kZXYgKnBkZXYpCit7 CisgICAgc3Bpbl9sb2NrKCZwZGV2LT52cGNpX2xvY2spOworICAgIGlmICggcGRldi0+dnBjaSAp CisgICAgICAgIHZwY2lfcmVtb3ZlX2RldmljZV9sb2NrZWQocGRldik7CisgICAgc3Bpbl91bmxv Y2soJnBkZXYtPnZwY2lfbG9jayk7Cit9CisKIGludCBfX2h3ZG9tX2luaXQgdnBjaV9hZGRfaGFu ZGxlcnMoc3RydWN0IHBjaV9kZXYgKnBkZXYpCiB7CiAgICAgdW5zaWduZWQgaW50IGk7CkBAIC02 MiwxMiArNzAsMTUgQEAgaW50IF9faHdkb21faW5pdCB2cGNpX2FkZF9oYW5kbGVycyhzdHJ1Y3Qg cGNpX2RldiAqcGRldikKICAgICBpZiAoICFoYXNfdnBjaShwZGV2LT5kb21haW4pICkKICAgICAg ICAgcmV0dXJuIDA7CiAKKyAgICBzcGluX2xvY2soJnBkZXYtPnZwY2lfbG9jayk7CiAgICAgcGRl di0+dnBjaSA9IHh6YWxsb2Moc3RydWN0IHZwY2kpOwogICAgIGlmICggIXBkZXYtPnZwY2kgKQor ICAgIHsKKyAgICAgICAgc3Bpbl91bmxvY2soJnBkZXYtPnZwY2lfbG9jayk7CiAgICAgICAgIHJl dHVybiAtRU5PTUVNOworICAgIH0KIAogICAgIElOSVRfTElTVF9IRUFEKCZwZGV2LT52cGNpLT5o YW5kbGVycyk7Ci0gICAgc3Bpbl9sb2NrX2luaXQoJnBkZXYtPnZwY2ktPmxvY2spOwogCiAgICAg Zm9yICggaSA9IDA7IGkgPCBOVU1fVlBDSV9JTklUOyBpKysgKQogICAgIHsKQEAgLTc3LDcgKzg4 LDggQEAgaW50IF9faHdkb21faW5pdCB2cGNpX2FkZF9oYW5kbGVycyhzdHJ1Y3QgcGNpX2RldiAq cGRldikKICAgICB9CiAKICAgICBpZiAoIHJjICkKLSAgICAgICAgdnBjaV9yZW1vdmVfZGV2aWNl KHBkZXYpOworICAgICAgICB2cGNpX3JlbW92ZV9kZXZpY2VfbG9ja2VkKHBkZXYpOworICAgIHNw aW5fdW5sb2NrKCZwZGV2LT52cGNpX2xvY2spOwogCiAgICAgcmV0dXJuIHJjOwogfQpAQCAtMTQ4 LDggKzE2MCw2IEBAIGludCB2cGNpX2FkZF9yZWdpc3RlcihzdHJ1Y3QgdnBjaSAqdnBjaSwgdnBj aV9yZWFkX3QgKnJlYWRfaGFuZGxlciwKICAgICByLT5vZmZzZXQgPSBvZmZzZXQ7CiAgICAgci0+ cHJpdmF0ZSA9IGRhdGE7CiAKLSAgICBzcGluX2xvY2soJnZwY2ktPmxvY2spOwotCiAgICAgLyog VGhlIGxpc3Qgb2YgaGFuZGxlcnMgbXVzdCBiZSBrZXB0IHNvcnRlZCBhdCBhbGwgdGltZXMuICov CiAgICAgbGlzdF9mb3JfZWFjaCAoIHByZXYsICZ2cGNpLT5oYW5kbGVycyApCiAgICAgewpAQCAt MTYxLDE0ICsxNzEsMTIgQEAgaW50IHZwY2lfYWRkX3JlZ2lzdGVyKHN0cnVjdCB2cGNpICp2cGNp LCB2cGNpX3JlYWRfdCAqcmVhZF9oYW5kbGVyLAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg IGlmICggY21wID09IDAgKQogICAgICAgICB7Ci0gICAgICAgICAgICBzcGluX3VubG9jaygmdnBj aS0+bG9jayk7CiAgICAgICAgICAgICB4ZnJlZShyKTsKICAgICAgICAgICAgIHJldHVybiAtRUVY SVNUOwogICAgICAgICB9CiAgICAgfQogCiAgICAgbGlzdF9hZGRfdGFpbCgmci0+bm9kZSwgcHJl dik7Ci0gICAgc3Bpbl91bmxvY2soJnZwY2ktPmxvY2spOwogCiAgICAgcmV0dXJuIDA7CiB9CkBA IC0xNzksNyArMTg3LDYgQEAgaW50IHZwY2lfcmVtb3ZlX3JlZ2lzdGVyKHN0cnVjdCB2cGNpICp2 cGNpLCB1bnNpZ25lZCBpbnQgb2Zmc2V0LAogICAgIGNvbnN0IHN0cnVjdCB2cGNpX3JlZ2lzdGVy IHIgPSB7IC5vZmZzZXQgPSBvZmZzZXQsIC5zaXplID0gc2l6ZSB9OwogICAgIHN0cnVjdCB2cGNp X3JlZ2lzdGVyICpybTsKIAotICAgIHNwaW5fbG9jaygmdnBjaS0+bG9jayk7CiAgICAgbGlzdF9m b3JfZWFjaF9lbnRyeSAoIHJtLCAmdnBjaS0+aGFuZGxlcnMsIG5vZGUgKQogICAgIHsKICAgICAg ICAgaW50IGNtcCA9IHZwY2lfcmVnaXN0ZXJfY21wKCZyLCBybSk7CkBAIC0xOTEsMTQgKzE5OCwx MiBAQCBpbnQgdnBjaV9yZW1vdmVfcmVnaXN0ZXIoc3RydWN0IHZwY2kgKnZwY2ksIHVuc2lnbmVk IGludCBvZmZzZXQsCiAgICAgICAgIGlmICggIWNtcCAmJiBybS0+b2Zmc2V0ID09IG9mZnNldCAm JiBybS0+c2l6ZSA9PSBzaXplICkKICAgICAgICAgewogICAgICAgICAgICAgbGlzdF9kZWwoJnJt LT5ub2RlKTsKLSAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZ2cGNpLT5sb2NrKTsKICAgICAgICAg ICAgIHhmcmVlKHJtKTsKICAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgICB9CiAgICAgICAg IGlmICggY21wIDw9IDAgKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIHNwaW5fdW5s b2NrKCZ2cGNpLT5sb2NrKTsKIAogICAgIHJldHVybiAtRU5PRU5UOwogfQpAQCAtMzE1LDcgKzMy MCw3IEBAIHN0YXRpYyB1aW50MzJfdCBtZXJnZV9yZXN1bHQodWludDMyX3QgZGF0YSwgdWludDMy X3QgbmV3LCB1bnNpZ25lZCBpbnQgc2l6ZSwKIHVpbnQzMl90IHZwY2lfcmVhZChwY2lfc2JkZl90 IHNiZGYsIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGludCBzaXplKQogewogICAgIGNvbnN0 IHN0cnVjdCBkb21haW4gKmQgPSBjdXJyZW50LT5kb21haW47Ci0gICAgY29uc3Qgc3RydWN0IHBj aV9kZXYgKnBkZXY7CisgICAgc3RydWN0IHBjaV9kZXYgKnBkZXY7CiAgICAgY29uc3Qgc3RydWN0 IHZwY2lfcmVnaXN0ZXIgKnI7CiAgICAgdW5zaWduZWQgaW50IGRhdGFfb2Zmc2V0ID0gMDsKICAg ICB1aW50MzJfdCBkYXRhID0gfih1aW50MzJfdCkwOwpAQCAtMzMxLDcgKzMzNiwxMiBAQCB1aW50 MzJfdCB2cGNpX3JlYWQocGNpX3NiZGZfdCBzYmRmLCB1bnNpZ25lZCBpbnQgcmVnLCB1bnNpZ25l ZCBpbnQgc2l6ZSkKICAgICBpZiAoICFwZGV2ICkKICAgICAgICAgcmV0dXJuIHZwY2lfcmVhZF9o dyhzYmRmLCByZWcsIHNpemUpOwogCi0gICAgc3Bpbl9sb2NrKCZwZGV2LT52cGNpLT5sb2NrKTsK KyAgICBzcGluX2xvY2soJnBkZXYtPnZwY2lfbG9jayk7CisgICAgaWYgKCAhcGRldi0+dnBjaSAp CisgICAgeworICAgICAgICBzcGluX3VubG9jaygmcGRldi0+dnBjaV9sb2NrKTsKKyAgICAgICAg cmV0dXJuIHZwY2lfcmVhZF9odyhzYmRmLCByZWcsIHNpemUpOworICAgIH0KIAogICAgIC8qIFJl YWQgZnJvbSB0aGUgaGFyZHdhcmUgb3IgdGhlIGVtdWxhdGVkIHJlZ2lzdGVyIGhhbmRsZXJzLiAq LwogICAgIGxpc3RfZm9yX2VhY2hfZW50cnkgKCByLCAmcGRldi0+dnBjaS0+aGFuZGxlcnMsIG5v ZGUgKQpAQCAtMzc0LDYgKzM4NCw3IEBAIHVpbnQzMl90IHZwY2lfcmVhZChwY2lfc2JkZl90IHNi ZGYsIHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGludCBzaXplKQogICAgICAgICAgICAgYnJl YWs7CiAgICAgICAgIEFTU0VSVChkYXRhX29mZnNldCA8IHNpemUpOwogICAgIH0KKyAgICBzcGlu X3VubG9jaygmcGRldi0+dnBjaV9sb2NrKTsKIAogICAgIGlmICggZGF0YV9vZmZzZXQgPCBzaXpl ICkKICAgICB7CkBAIC0zODMsNyArMzk0LDYgQEAgdWludDMyX3QgdnBjaV9yZWFkKHBjaV9zYmRm X3Qgc2JkZiwgdW5zaWduZWQgaW50IHJlZywgdW5zaWduZWQgaW50IHNpemUpCiAKICAgICAgICAg ZGF0YSA9IG1lcmdlX3Jlc3VsdChkYXRhLCB0bXBfZGF0YSwgc2l6ZSAtIGRhdGFfb2Zmc2V0LCBk YXRhX29mZnNldCk7CiAgICAgfQotICAgIHNwaW5fdW5sb2NrKCZwZGV2LT52cGNpLT5sb2NrKTsK IAogICAgIHJldHVybiBkYXRhICYgKDB4ZmZmZmZmZmYgPj4gKDMyIC0gOCAqIHNpemUpKTsKIH0K QEAgLTQxOCw3ICs0MjgsNyBAQCB2b2lkIHZwY2lfd3JpdGUocGNpX3NiZGZfdCBzYmRmLCB1bnNp Z25lZCBpbnQgcmVnLCB1bnNpZ25lZCBpbnQgc2l6ZSwKICAgICAgICAgICAgICAgICB1aW50MzJf dCBkYXRhKQogewogICAgIGNvbnN0IHN0cnVjdCBkb21haW4gKmQgPSBjdXJyZW50LT5kb21haW47 Ci0gICAgY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXY7CisgICAgc3RydWN0IHBjaV9kZXYgKnBk ZXY7CiAgICAgY29uc3Qgc3RydWN0IHZwY2lfcmVnaXN0ZXIgKnI7CiAgICAgdW5zaWduZWQgaW50 IGRhdGFfb2Zmc2V0ID0gMDsKIApAQCAtNDM5LDcgKzQ0OSwxNCBAQCB2b2lkIHZwY2lfd3JpdGUo cGNpX3NiZGZfdCBzYmRmLCB1bnNpZ25lZCBpbnQgcmVnLCB1bnNpZ25lZCBpbnQgc2l6ZSwKICAg ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNwaW5fbG9jaygmcGRldi0+dnBjaS0+bG9jayk7 CisgICAgc3Bpbl9sb2NrKCZwZGV2LT52cGNpX2xvY2spOworICAgIGlmICggIXBkZXYtPnZwY2kg KQorICAgIHsKKyAgICAgICAgc3Bpbl91bmxvY2soJnBkZXYtPnZwY2lfbG9jayk7CisgICAgICAg IHZwY2lfd3JpdGVfaHcoc2JkZiwgcmVnLCBzaXplLCBkYXRhKTsKKyAgICAgICAgcmV0dXJuOwor ICAgIH0KKwogCiAgICAgLyogV3JpdGUgdGhlIHZhbHVlIHRvIHRoZSBoYXJkd2FyZSBvciBlbXVs YXRlZCByZWdpc3RlcnMuICovCiAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSAoIHIsICZwZGV2LT52 cGNpLT5oYW5kbGVycywgbm9kZSApCkBAIC00NzQsMTMgKzQ5MSwxMiBAQCB2b2lkIHZwY2lfd3Jp dGUocGNpX3NiZGZfdCBzYmRmLCB1bnNpZ25lZCBpbnQgcmVnLCB1bnNpZ25lZCBpbnQgc2l6ZSwK ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBBU1NFUlQoZGF0YV9vZmZzZXQgPCBzaXplKTsK ICAgICB9CisgICAgc3Bpbl91bmxvY2soJnBkZXYtPnZwY2lfbG9jayk7CiAKICAgICBpZiAoIGRh dGFfb2Zmc2V0IDwgc2l6ZSApCiAgICAgICAgIC8qIFRhaWxpbmcgZ2FwLCB3cml0ZSB0aGUgcmVt YWluaW5nLiAqLwogICAgICAgICB2cGNpX3dyaXRlX2h3KHNiZGYsIHJlZyArIGRhdGFfb2Zmc2V0 LCBzaXplIC0gZGF0YV9vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA+PiAoZGF0 YV9vZmZzZXQgKiA4KSk7Ci0KLSAgICBzcGluX3VubG9jaygmcGRldi0+dnBjaS0+bG9jayk7CiB9 CiAKIC8qCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vcGNpLmggYi94ZW4vaW5jbHVkZS94 ZW4vcGNpLmgKaW5kZXggNGNmYTc3NDYxNS4uZTU1NGMxNGIyZiAxMDA2NDQKLS0tIGEveGVuL2lu Y2x1ZGUveGVuL3BjaS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9wY2kuaApAQCAtMTE0LDYgKzEx NCw3IEBAIHN0cnVjdCBwY2lfZGV2IHsKICAgICB1NjQgdmZfcmxlbls2XTsKIAogICAgIC8qIERh dGEgZm9yIHZQQ0kuICovCisgICAgc3BpbmxvY2tfdCB2cGNpX2xvY2s7CiAgICAgc3RydWN0IHZw Y2kgKnZwY2k7CiB9OwogCmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vdnBjaS5oIGIveGVu L2luY2x1ZGUveGVuL3ZwY2kuaAppbmRleCBhZjJiODU4MGVlLi45ODU1NmQzMWVkIDEwMDY0NAot LS0gYS94ZW4vaW5jbHVkZS94ZW4vdnBjaS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi92cGNpLmgK QEAgLTI5LDcgKzI5LDcgQEAgaW50IF9fbXVzdF9jaGVjayB2cGNpX2FkZF9oYW5kbGVycyhzdHJ1 Y3QgcGNpX2RldiAqZGV2KTsKIC8qIFJlbW92ZSBhbGwgaGFuZGxlcnMgYW5kIGZyZWUgdnBjaSBy ZWxhdGVkIHN0cnVjdHVyZXMuICovCiB2b2lkIHZwY2lfcmVtb3ZlX2RldmljZShzdHJ1Y3QgcGNp X2RldiAqcGRldik7CiAKLS8qIEFkZC9yZW1vdmUgYSByZWdpc3RlciBoYW5kbGVyLiAqLworLyog QWRkL3JlbW92ZSBhIHJlZ2lzdGVyIGhhbmRsZXIuIE11c3QgYmUgY2FsbGVkIGhvbGRpbmcgdGhl IHZwY2lfbG9jay4gKi8KIGludCBfX211c3RfY2hlY2sgdnBjaV9hZGRfcmVnaXN0ZXIoc3RydWN0 IHZwY2kgKnZwY2ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZwY2lfcmVh ZF90ICpyZWFkX2hhbmRsZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZw Y2lfd3JpdGVfdCAqd3JpdGVfaGFuZGxlciwKQEAgLTU4LDcgKzU4LDYgQEAgYm9vbCBfX211c3Rf Y2hlY2sgdnBjaV9wcm9jZXNzX3BlbmRpbmcoc3RydWN0IHZjcHUgKnYpOwogc3RydWN0IHZwY2kg ewogICAgIC8qIExpc3Qgb2YgdlBDSSBoYW5kbGVycyBmb3IgYSBkZXZpY2UuICovCiAgICAgc3Ry dWN0IGxpc3RfaGVhZCBoYW5kbGVyczsKLSAgICBzcGlubG9ja190IGxvY2s7CiAKICNpZmRlZiBf X1hFTl9fCiAgICAgLyogSGlkZSB0aGUgcmVzdCBvZiB0aGUgdnBjaSBzdHJ1Y3QgZnJvbSB0aGUg dXNlci1zcGFjZSB0ZXN0IGhhcm5lc3MuICovCi0tIAoyLjE3LjEKCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl bi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3Jn L21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs