From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Gao Subject: [PATCH v4 21/28] vvtd: update hvm_gmsi_info when binding guest msi with pirq or Date: Fri, 17 Nov 2017 14:22:28 +0800 Message-ID: <1510899755-40237-22-git-send-email-chao.gao@intel.com> References: <1510899755-40237-1-git-send-email-chao.gao@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1510899755-40237-1-git-send-email-chao.gao@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Lan Tianyu , Kevin Tian , Stefano Stabellini , Wei Liu , Konrad Rzeszutek Wilk , George Dunlap , Tim Deegan , Ian Jackson , Jan Beulich , Andrew Cooper , Chao Gao , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org Li4uIGhhbmRsZGluZyBndWVzdCdzIGludmFsaWRhdGlvbiByZXF1ZXN0LgoKVG8gc3VwcG9ydCBw aXJxIG1pZ3JhdGlvbiBvcHRpbWl6YXRpb24gYW5kIHVzaW5nIFZULWQgcG9zdGVkIGludGVycnVw dCB0bwppbmplY3QgbXNpIGZyb20gYXNzaWduZWQgZGV2aWNlcywgZWFjaCB0aW1lIGd1ZXN0IHBy b2dyYW1zIG1zaSBpbmZvcm1hdGlvbgooYWZmaW5pdHksIHZlY3RvciksIHRoZSBzdHJ1Y3QgaHZt X2dtc2lfaW5mbyBzaG91bGQgYmUgdXBkYXRlZCBhY2NvcmRpbmdseS4KQnV0IGFmdGVyIGludHJv ZHVjaW5nIHZ2dGQsIGd1ZXN0IG9ubHkgbmVlZHMgdG8gdXBkYXRlIGFuIElSVEUsIHdoaWNoIGlz IGluCmd1ZXN0IG1lbW9yeSwgdG8gcHJvZ3JhbSBtc2kgaW5mb3JtYXRpb24uICB2dnRkIGRvZXNu J3QgdHJhcCByL3cgdG8gdGhlIG1lbW9yeQpyYW5nZS4gSW5zdGVhZCwgaXQgdHJhcHMgdGhlIHF1 ZXVlIGludmFsaWRhdGlvbiwgd2hpY2ggaXMgYSBtZXRob2QgdXNlZCB0bwpub3RpZnkgVlQtZCBo YXJkd2FyZSB0aGF0IGFuIElSVEUgaGFzIGNoYW5nZWQuCgpUaGlzIHBhdGNoIHVwZGF0ZXMgaHZt X2dtc2lfaW5mbyBzdHJ1Y3R1cmUgYW5kIHByb2dyYW1zIHBoeXNpY2FsIElSVEVzIHRvIHVzZQpW VC1kIHBvc3RlZCBpbnRlcnJ1cHQgaWYgcG9zc2libGUgd2hlbiBiaW5kaW5nIGd1ZXN0IG1zaSB3 aXRoIHBpcnEgb3IgaGFuZGxpbmcKZ3Vlc3QncyBpbnZhbGlkYXRpb24gcmVxdWVzdC4gRm9yIHRo ZSBsYXR0ZXIsIGFsbCBwaHlzaWNhbCBpbnRlcnJ1cHRzIGJvdW5kCndpdGggdGhlIGRvbWFpbiBh cmUgZ29uZSB0aHJvdWdoIHRvIGZpbmQgdGhlIG9uZXMgbWF0Y2hpbmcgd2l0aCB0aGUgSVJURS4K Ck5vdGVzOiBjYWxsaW5nIHZ2dGRfcHJvY2Vzc19pcSgpIGluIHZ2dGRfcmVhZCgpIHJhdGhlciB0 aGFuIGluCnZ2dGRfaGFuZGxlX2lycV9yZXF1ZXN0KCkgaXMgdG8gYXZvaWQgQUJCQSBkZWFkbG9j ayBvZiBkLT5ldmVudF9sb2NrIGFuZAp2dnRkLT5pZV9sb2NrLgoKU2lnbmVkLW9mZi1ieTogQ2hh byBHYW8gPGNoYW8uZ2FvQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogTGFuIFRpYW55dSA8dGlh bnl1LmxhbkBpbnRlbC5jb20+Ci0tLQp2NDoKIC0gbmV3Ci0tLQogeGVuL2FyY2gveDg2L2h2bS9o dm0uYyAgICAgICAgICAgICB8ICAyICstCiB4ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pby5jICAg ICAgIHwgODkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KIHhlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC92dnRkLmMgfCA3MCArKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0KIHhlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2h2bS5oICAgICAgfCAgMiArCiB4ZW4vaW5j bHVkZS9hc20teDg2L2h2bS9pcnEuaCAgICAgIHwgIDEgKwogeGVuL2luY2x1ZGUvYXNtLXg4Ni92 aW9tbXUuaCAgICAgICB8IDExICsrKysrCiA2IGZpbGVzIGNoYW5nZWQsIDE0NyBpbnNlcnRpb25z KCspLCAyOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5j IGIveGVuL2FyY2gveDg2L2h2bS9odm0uYwppbmRleCA5NjQ0MThhLi5kMmMxMzcyIDEwMDY0NAot LS0gYS94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaHZtLmMK QEAgLTQ2Miw3ICs0NjIsNyBAQCB2b2lkIGh2bV9taWdyYXRlX3RpbWVycyhzdHJ1Y3QgdmNwdSAq dikKICAgICBwdF9taWdyYXRlKHYpOwogfQogCi1zdGF0aWMgaW50IGh2bV9taWdyYXRlX3BpcnEo c3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGh2bV9waXJxX2RwY2kgKnBpcnFfZHBjaSwKK2ludCBo dm1fbWlncmF0ZV9waXJxKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBodm1fcGlycV9kcGNpICpw aXJxX2RwY2ksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAqYXJnKQogewogICAg IHN0cnVjdCB2Y3B1ICp2ID0gYXJnOwpkaWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvaW8uYyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvLmMKaW5kZXggZDhjNjZiZi4uOTE5 OGVmNSAxMDA2NDQKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvaW8uYworKysgYi94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC9pby5jCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSA8eGVu L2lvbW11Lmg+CiAjaW5jbHVkZSA8eGVuL2NwdS5oPgogI2luY2x1ZGUgPHhlbi9pcnEuaD4KKyNp bmNsdWRlIDx4ZW4vdmlvbW11Lmg+CiAjaW5jbHVkZSA8YXNtL2h2bS9pcnEuaD4KICNpbmNsdWRl IDxhc20vaHZtL3N1cHBvcnQuaD4KICNpbmNsdWRlIDxhc20vaW9fYXBpYy5oPgpAQCAtMjc1LDYg KzI3Niw2MSBAQCBzdGF0aWMgc3RydWN0IHZjcHUgKnZlY3Rvcl9oYXNoaW5nX2Rlc3QoY29uc3Qg c3RydWN0IGRvbWFpbiAqZCwKICAgICByZXR1cm4gZGVzdDsKIH0KIAordm9pZCBwdF91cGRhdGVf Z21zaShzdHJ1Y3QgZG9tYWluICpkLCBzdHJ1Y3QgaHZtX3BpcnFfZHBjaSAqcGlycV9kcGNpKQor eworICAgIHVpbnQ4X3QgZGVzdCwgZGVsaXZlcnlfbW9kZTsKKyAgICBib29sIGRlc3RfbW9kZTsK KyAgICBpbnQgZGVzdF92Y3B1X2lkOworICAgIGNvbnN0IHN0cnVjdCB2Y3B1ICp2Y3B1OworICAg IHN0cnVjdCBhcmNoX2lycV9yZW1hcHBpbmdfcmVxdWVzdCByZXF1ZXN0OworICAgIHN0cnVjdCBh cmNoX2lycV9yZW1hcHBpbmdfaW5mbyByZW1hcF9pbmZvOworCisgICAgQVNTRVJUKHNwaW5faXNf bG9ja2VkKCZkLT5ldmVudF9sb2NrKSk7CisKKyAgICAvKiBDYWxjdWxhdGUgZGVzdF92Y3B1X2lk IGZvciBNU0ktdHlwZSBwaXJxIG1pZ3JhdGlvbi4gKi8KKyAgICBpcnFfcmVxdWVzdF9tc2lfZmls bCgmcmVxdWVzdCwgcGlycV9kcGNpLT5nbXNpLmFkZHIsIHBpcnFfZHBjaS0+Z21zaS5kYXRhKTsK KyAgICBpZiAoIHZpb21tdV9jaGVja19pcnFfcmVtYXBwaW5nKGQsICZyZXF1ZXN0KSApCisgICAg eworICAgICAgICAvKiBBbiBlcnJvciBpbiBJUlRFLCBkb24ndCBwZXJmb3JtIHRoZSBvcHRpbWl6 YXRpb24gKi8KKyAgICAgICAgaWYgKCB2aW9tbXVfZ2V0X2lycV9pbmZvKGQsICZyZXF1ZXN0LCAm cmVtYXBfaW5mbykgKQorICAgICAgICB7CisgICAgICAgICAgICBwaXJxX2RwY2ktPmdtc2kucG9z dGVkID0gZmFsc2U7CisgICAgICAgICAgICBwaXJxX2RwY2ktPmdtc2kuZGVzdF92Y3B1X2lkID0g LTE7CisgICAgICAgICAgICBwaXJxX2RwY2ktPmdtc2kuZ3ZlYyA9IDA7CisgICAgICAgICAgICBy ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBkZXN0ID0gcmVtYXBfaW5mby5kZXN0OworICAg ICAgICBkZXN0X21vZGUgPSByZW1hcF9pbmZvLmRlc3RfbW9kZTsKKyAgICAgICAgZGVsaXZlcnlf bW9kZSA9IHJlbWFwX2luZm8uZGVsaXZlcnlfbW9kZTsKKyAgICAgICAgcGlycV9kcGNpLT5nbXNp Lmd2ZWMgPSByZW1hcF9pbmZvLnZlY3RvcjsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAg ICAgZGVzdCA9IE1BU0tfRVhUUihwaXJxX2RwY2ktPmdtc2kuYWRkciwgTVNJX0FERFJfREVTVF9J RF9NQVNLKTsKKyAgICAgICAgZGVzdF9tb2RlID0gcGlycV9kcGNpLT5nbXNpLmFkZHIgJiBNU0lf QUREUl9ERVNUTU9ERV9NQVNLOworICAgICAgICBkZWxpdmVyeV9tb2RlID0gTUFTS19FWFRSKHBp cnFfZHBjaS0+Z21zaS5kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1T SV9EQVRBX0RFTElWRVJZX01PREVfTUFTSyk7CisgICAgICAgIHBpcnFfZHBjaS0+Z21zaS5ndmVj ID0gcGlycV9kcGNpLT5nbXNpLmRhdGEgJiBNU0lfREFUQV9WRUNUT1JfTUFTSzsKKyAgICB9CisK KyAgICBkZXN0X3ZjcHVfaWQgPSBodm1fZ2lycV9kZXN0XzJfdmNwdV9pZChkLCBkZXN0LCBkZXN0 X21vZGUpOworICAgIHBpcnFfZHBjaS0+Z21zaS5kZXN0X3ZjcHVfaWQgPSBkZXN0X3ZjcHVfaWQ7 CisKKyAgICBwaXJxX2RwY2ktPmdtc2kucG9zdGVkID0gZmFsc2U7CisgICAgdmNwdSA9IChkZXN0 X3ZjcHVfaWQgPj0gMCkgPyBkLT52Y3B1W2Rlc3RfdmNwdV9pZF0gOiBOVUxMOworICAgIGlmICgg aW9tbXVfaW50cG9zdCApCisgICAgeworICAgICAgICBpZiAoIGRlbGl2ZXJ5X21vZGUgPT0gZGVz dF9Mb3dlc3RQcmlvICkKKyAgICAgICAgICAgIHZjcHUgPSB2ZWN0b3JfaGFzaGluZ19kZXN0KGQs IGRlc3QsIGRlc3RfbW9kZSwgcGlycV9kcGNpLT5nbXNpLmd2ZWMpOworICAgICAgICBpZiAoIHZj cHUgKQorICAgICAgICB7CisgICAgICAgICAgICBwaXJxX2RwY2ktPmdtc2kucG9zdGVkID0gdHJ1 ZTsKKyAgICAgICAgICAgIHBpcnFfZHBjaS0+Z21zaS5kZXN0X3ZjcHVfaWQgPSB2Y3B1LT52Y3B1 X2lkOworICAgICAgICB9CisgICAgfQorfQorCiBpbnQgcHRfaXJxX2NyZWF0ZV9iaW5kKAogICAg IHN0cnVjdCBkb21haW4gKmQsIGNvbnN0IHN0cnVjdCB4ZW5fZG9tY3RsX2JpbmRfcHRfaXJxICpw dF9pcnFfYmluZCkKIHsKQEAgLTMzOSw5ICszOTUsNiBAQCBpbnQgcHRfaXJxX2NyZWF0ZV9iaW5k KAogICAgIHsKICAgICBjYXNlIFBUX0lSUV9UWVBFX01TSToKICAgICB7Ci0gICAgICAgIHVpbnQ4 X3QgZGVzdCwgZGVsaXZlcnlfbW9kZSwgZ3ZlYzsKLSAgICAgICAgYm9vbCBkZXN0X21vZGU7Ci0g ICAgICAgIGludCBkZXN0X3ZjcHVfaWQ7CiAgICAgICAgIGNvbnN0IHN0cnVjdCB2Y3B1ICp2Y3B1 OwogCiAgICAgICAgIGlmICggIShwaXJxX2RwY2ktPmZsYWdzICYgSFZNX0lSUV9EUENJX01BUFBF RCkgKQpAQCAtNDExLDM1ICs0NjQsMjMgQEAgaW50IHB0X2lycV9jcmVhdGVfYmluZCgKICAgICAg ICAgICAgICAgICBwaXJxX2RwY2ktPmdtc2kuYWRkciA9IHB0X2lycV9iaW5kLT51Lm1zaS5hZGRy OwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIC8qIENhbGN1bGF0ZSBkZXN0X3Zj cHVfaWQgZm9yIE1TSS10eXBlIHBpcnEgbWlncmF0aW9uLiAqLwotICAgICAgICBkZXN0ID0gTUFT S19FWFRSKHBpcnFfZHBjaS0+Z21zaS5hZGRyLCBNU0lfQUREUl9ERVNUX0lEX01BU0spOwotICAg ICAgICBkZXN0X21vZGUgPSBwaXJxX2RwY2ktPmdtc2kuYWRkciAmIE1TSV9BRERSX0RFU1RNT0RF X01BU0s7Ci0gICAgICAgIGRlbGl2ZXJ5X21vZGUgPSBNQVNLX0VYVFIocGlycV9kcGNpLT5nbXNp LmRhdGEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTVNJX0RBVEFfREVMSVZF UllfTU9ERV9NQVNLKTsKLSAgICAgICAgZ3ZlYyA9IHBpcnFfZHBjaS0+Z21zaS5kYXRhICYgTVNJ X0RBVEFfVkVDVE9SX01BU0s7Ci0gICAgICAgIHBpcnFfZHBjaS0+Z21zaS5ndmVjID0gZ3ZlYzsK IAotICAgICAgICBkZXN0X3ZjcHVfaWQgPSBodm1fZ2lycV9kZXN0XzJfdmNwdV9pZChkLCBkZXN0 LCBkZXN0X21vZGUpOwotICAgICAgICBwaXJxX2RwY2ktPmdtc2kuZGVzdF92Y3B1X2lkID0gZGVz dF92Y3B1X2lkOworICAgICAgICBwdF91cGRhdGVfZ21zaShkLCBwaXJxX2RwY2kpOwogICAgICAg ICBzcGluX3VubG9jaygmZC0+ZXZlbnRfbG9jayk7CiAKLSAgICAgICAgcGlycV9kcGNpLT5nbXNp LnBvc3RlZCA9IGZhbHNlOwotICAgICAgICB2Y3B1ID0gKGRlc3RfdmNwdV9pZCA+PSAwKSA/IGQt PnZjcHVbZGVzdF92Y3B1X2lkXSA6IE5VTEw7Ci0gICAgICAgIGlmICggaW9tbXVfaW50cG9zdCAp Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICggZGVsaXZlcnlfbW9kZSA9PSBkZXN0X0xvd2Vz dFByaW8gKQotICAgICAgICAgICAgICAgIHZjcHUgPSB2ZWN0b3JfaGFzaGluZ19kZXN0KGQsIGRl c3QsIGRlc3RfbW9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwaXJxX2RwY2ktPmdtc2kuZ3ZlYyk7Ci0gICAgICAgICAgICBpZiAoIHZjcHUgKQotICAgICAg ICAgICAgICAgIHBpcnFfZHBjaS0+Z21zaS5wb3N0ZWQgPSB0cnVlOwotICAgICAgICB9Ci0gICAg ICAgIGlmICggZGVzdF92Y3B1X2lkID49IDAgKQotICAgICAgICAgICAgaHZtX21pZ3JhdGVfcGly cXMoZC0+dmNwdVtkZXN0X3ZjcHVfaWRdKTsKKyAgICAgICAgaWYgKCBwaXJxX2RwY2ktPmdtc2ku ZGVzdF92Y3B1X2lkID49IDAgKQorICAgICAgICAgICAgaHZtX21pZ3JhdGVfcGlycXMoZC0+dmNw dVtwaXJxX2RwY2ktPmdtc2kuZGVzdF92Y3B1X2lkXSk7CiAKICAgICAgICAgLyogVXNlIGludGVy cnVwdCBwb3N0aW5nIGlmIGl0IGlzIHN1cHBvcnRlZC4gKi8KICAgICAgICAgaWYgKCBpb21tdV9p bnRwb3N0ICkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCBwaXJxX2RwY2ktPmdtc2kucG9z dGVkICkKKyAgICAgICAgICAgICAgICB2Y3B1ID0gZC0+dmNwdVtwaXJxX2RwY2ktPmdtc2kuZGVz dF92Y3B1X2lkXTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB2Y3B1ID0gTlVM TDsKICAgICAgICAgICAgIHBpX3VwZGF0ZV9pcnRlKHZjcHUgPyAmdmNwdS0+YXJjaC5odm1fdm14 LnBpX2Rlc2MgOiBOVUxMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mbywgcGlycV9k cGNpLT5nbXNpLmd2ZWMpOworICAgICAgICB9CiAKICAgICAgICAgaWYgKCBwdF9pcnFfYmluZC0+ dS5tc2kuZ2ZsYWdzICYgWEVOX0RPTUNUTF9WTVNJX1g4Nl9VTk1BU0tFRCApCiAgICAgICAgIHsK ZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC92dnRkLmMgYi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC92dGQvdnZ0ZC5jCmluZGV4IGY2YmRlNjkuLmQxMmFkMWQgMTAwNjQ0 Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC92dnRkLmMKKysrIGIveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvdnRkL3Z2dGQuYwpAQCAtNDc3LDYgKzQ3Nyw1MCBAQCBzdGF0aWMgaW50 IHZ2dGRfcmVjb3JkX2ZhdWx0KHN0cnVjdCB2dnRkICp2dnRkLAogfQogCiAvKgorICogJ2FyZycg aXMgdGhlIGluZGV4IG9mIGludGVycnVwdCByZW1hcHBpbmcgdGFibGUuIFRoaXMgaW5kZXggaXMg dXNlZCB0bworICogc2VhcmNoIHBoeXNpY2FsIGlycXMgd2hpY2ggc2F0aWZ5IHRoYXQgdGhlIGdt c2kgbWFwcGVkIHdpdGggdGhlIHBoeXNpY2FsIGlycQorICogaXMgdHJhbmxhdGVkIGJ5IHRoZSBJ UlRFIHJlZmVyZWQgdG8gYnkgdGhlIGluZGV4LiBUaGUgc3RydWN0IGh2bV9nbXNpX2luZm8KKyAq IGNvbnRhaW5zIHNvbWUgZmllbGRzIGFyZSBpbmZlcmVkIGZyb20gYW4gdmlydHVhbCBJUlRFLiBU aGVzZSBmaWVsZHMgc2hvdWxkCisgKiBiZSB1cGRhdGVkIHdoZW4gZ3Vlc3QgaW52YWxpZGF0ZXMg YW4gSVJURS4gRnVydGhlcm1vcmUsIHRoZSBwaHlzaWNhbCBJUlRFCisgKiBpcyB1cGRhdGVkIGFj Y29yZGluZ2x5IHRvIHJlZHVjZSBJUElzIG9yIHV0aWxpemUgVlQtZCBwb3N0ZWQgaW50ZXJydXB0 LgorICoKKyAqIGlmICdhcmcnIGlzIC0xLCBwZXJmb3JtIGEgZ2xvYmFsIGludmFsaWRhdGlvbi4K KyAqLworc3RhdGljIGludCBpbnZhbGlkYXRlX2dtc2koc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0 IGh2bV9waXJxX2RwY2kgKnBpcnFfZHBjaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB2b2lk ICphcmcpCit7CisgICAgaWYgKCBwaXJxX2RwY2ktPmZsYWdzICYgSFZNX0lSUV9EUENJX0dVRVNU X01TSSApCisgICAgeworICAgICAgICB1aW50MzJfdCBpbmRleCwgdGFyZ2V0ID0gKGxvbmcpYXJn OworICAgICAgICBzdHJ1Y3QgYXJjaF9pcnFfcmVtYXBwaW5nX3JlcXVlc3QgcmVxOworICAgICAg ICBjb25zdCBzdHJ1Y3QgdmNwdSAqdmNwdTsKKworICAgICAgICBpcnFfcmVxdWVzdF9tc2lfZmls bCgmcmVxLCBwaXJxX2RwY2ktPmdtc2kuYWRkciwgcGlycV9kcGNpLT5nbXNpLmRhdGEpOworICAg ICAgICBpZiAoICFpcnFfcmVtYXBwaW5nX3JlcXVlc3RfaW5kZXgoJnJlcSwgJmluZGV4KSAmJgor ICAgICAgICAgICAgICgodGFyZ2V0ID09IC0xKSB8fCAodGFyZ2V0ID09IGluZGV4KSkgKQorICAg ICAgICB7CisgICAgICAgICAgICBwdF91cGRhdGVfZ21zaShkLCBwaXJxX2RwY2kpOworICAgICAg ICAgICAgaWYgKCBwaXJxX2RwY2ktPmdtc2kuZGVzdF92Y3B1X2lkID49IDAgKQorICAgICAgICAg ICAgICAgIGh2bV9taWdyYXRlX3BpcnEoZCwgcGlycV9kcGNpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZC0+dmNwdVtwaXJxX2RwY2ktPmdtc2kuZGVzdF92Y3B1X2lkXSk7CisK KyAgICAgICAgICAgIC8qIFVzZSBpbnRlcnJ1cHQgcG9zdGluZyBpZiBpdCBpcyBzdXBwb3J0ZWQu ICovCisgICAgICAgICAgICBpZiAoIGlvbW11X2ludHBvc3QgKQorICAgICAgICAgICAgeworICAg ICAgICAgICAgICAgIGlmICggcGlycV9kcGNpLT5nbXNpLnBvc3RlZCApCisgICAgICAgICAgICAg ICAgICAgIHZjcHUgPSBkLT52Y3B1W3BpcnFfZHBjaS0+Z21zaS5kZXN0X3ZjcHVfaWRdOworICAg ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgdmNwdSA9IE5VTEw7CisgICAg ICAgICAgICAgICAgcGlfdXBkYXRlX2lydGUodmNwdSA/ICZ2Y3B1LT5hcmNoLmh2bV92bXgucGlf ZGVzYyA6IE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHBjaV9waXJxKHBp cnFfZHBjaSksIHBpcnFfZHBjaS0+Z21zaS5ndmVjKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg fQorICAgIH0KKworICAgIHJldHVybiAwOworfQorCisvKgogICogUHJvY2VzcyBhbiBpbnZhbGlk YXRpb24gZGVzY3JpcHRvci4gQ3VycmVudGx5LCBvbmx5IHR3byB0eXBlcyBkZXNjcmlwdG9ycywK ICAqIEludGVycnVwdCBFbnRyeSBDYWNoZSBJbnZhbGlkYXRpb24gRGVzY3JpdG9yIGFuZCBJbnZh bGlkYXRpb24gV2FpdAogICogRGVzY3JpcHRvciBhcmUgaGFuZGxlZC4KQEAgLTUzMCw3ICs1NzQs MjYgQEAgc3RhdGljIGludCBwcm9jZXNzX2lxZShzdHJ1Y3QgdnZ0ZCAqdnZ0ZCwgdWludDMyX3Qg aSkKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIFRZUEVfSU5WQUxfSUVDOgotICAgICAgICAv KiBObyBjYWNoZSBpcyBwcmVzZXJ2ZWQgaW4gdnZ0ZCwgbm90aGluZyBpcyBuZWVkZWQgdG8gYmUg Zmx1c2hlZCAqLworICAgICAgICAvKgorICAgICAgICAgKiBJZiBWVC1kIHBpIGlzIGVuYWJsZWQs IHBpX3VwZGF0ZV9pcnRlKCkgbWF5IGJlIGNhbGxlZC4gSXQgYXNzdW1lcworICAgICAgICAgKiBw Y2lkZXZzX2xvY2tlZCgpLgorICAgICAgICAgKi8KKyAgICAgICAgcGNpZGV2c19sb2NrKCk7Cisg ICAgICAgIHNwaW5fbG9jaygmdnZ0ZC0+ZG9tYWluLT5ldmVudF9sb2NrKTsKKyAgICAgICAgLyog QSBnbG9iYWwgaW52YWxpZGF0aW9uIG9mIHRoZSBjYWNoZSBpcyByZXF1ZXN0ZWQgKi8KKyAgICAg ICAgaWYgKCAhcWludmFsLnEuaWVjX2ludl9kc2MubG8uZ3JhbnUgKQorICAgICAgICAgICAgcHRf cGlycV9pdGVyYXRlKHZ2dGQtPmRvbWFpbiwgaW52YWxpZGF0ZV9nbXNpLCAodm9pZCAqKShsb25n KS0xKTsKKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICB1aW50MzJfdCBpaWR4 ID0gcWludmFsLnEuaWVjX2ludl9kc2MubG8uaWlkeDsKKyAgICAgICAgICAgIHVpbnQzMl90IG5y ID0gMSA8PCBxaW52YWwucS5pZWNfaW52X2RzYy5sby5pbTsKKworICAgICAgICAgICAgZm9yICgg OyBucjsgbnItLSwgaWlkeCsrKQorICAgICAgICAgICAgICAgIHB0X3BpcnFfaXRlcmF0ZSh2dnRk LT5kb21haW4sIGludmFsaWRhdGVfZ21zaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHZvaWQgKikobG9uZylpaWR4KTsKKyAgICAgICAgfQorICAgICAgICBzcGluX3VubG9jaygm dnZ0ZC0+ZG9tYWluLT5ldmVudF9sb2NrKTsKKyAgICAgICAgcGNpZGV2c191bmxvY2soKTsKICAg ICAgICAgYnJlYWs7CiAKICAgICBkZWZhdWx0OgpAQCAtODM5LDYgKzkwMiw4IEBAIHN0YXRpYyBp bnQgdnZ0ZF9yZWFkKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBsb25nIGFkZHIsCiAgICAgZWxz ZQogICAgICAgICAqcHZhbCA9IHZ2dGRfZ2V0X3JlZ19xdWFkKHZ2dGQsIG9mZnNldCk7CiAKKyAg ICBpZiAoICFhdG9taWNfcmVhZCgmdnZ0ZC0+aW5mbGlnaHRfaW50cikgKQorICAgICAgICB2dnRk X3Byb2Nlc3NfaXEodnZ0ZCk7CiAgICAgcmV0dXJuIFg4NkVNVUxfT0tBWTsKIH0KIApAQCAtMTA4 OCw4ICsxMTUzLDcgQEAgc3RhdGljIGludCB2dnRkX2hhbmRsZV9pcnFfcmVxdWVzdChjb25zdCBz dHJ1Y3QgZG9tYWluICpkLAogICAgICAgICAgICAgICAgICAgICAgICAgaXJ0ZS5yZW1hcC50bSk7 CiAKICBvdXQ6Ci0gICAgaWYgKCAhYXRvbWljX2RlY19hbmRfdGVzdCgmdnZ0ZC0+aW5mbGlnaHRf aW50cikgKQotICAgICAgICB2dnRkX3Byb2Nlc3NfaXEodnZ0ZCk7CisgICAgYXRvbWljX2RlYygm dnZ0ZC0+aW5mbGlnaHRfaW50cik7CiAgICAgcmV0dXJuIHJldDsKIH0KIApkaWZmIC0tZ2l0IGEv eGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaHZtLmggYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9o dm0uaAppbmRleCBiNjg3ZTAzLi5mMjc2YWI2IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9hc20t eDg2L2h2bS9odm0uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS9odm0uaApAQCAtMzk0 LDYgKzM5NCw4IEBAIGJvb2wgaHZtX3NldF9ndWVzdF9ibmRjZmdzKHN0cnVjdCB2Y3B1ICp2LCB1 NjQgdmFsKTsKIGJvb2wgaHZtX2NoZWNrX2NwdWlkX2ZhdWx0aW5nKHN0cnVjdCB2Y3B1ICp2KTsK IHZvaWQgaHZtX21pZ3JhdGVfdGltZXJzKHN0cnVjdCB2Y3B1ICp2KTsKIHZvaWQgaHZtX2RvX3Jl c3VtZShzdHJ1Y3QgdmNwdSAqdik7CitpbnQgaHZtX21pZ3JhdGVfcGlycShzdHJ1Y3QgZG9tYWlu ICpkLCBzdHJ1Y3QgaHZtX3BpcnFfZHBjaSAqcGlycV9kcGNpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHZvaWQgKmFyZyk7CiB2b2lkIGh2bV9taWdyYXRlX3BpcnFzKHN0cnVjdCB2Y3B1 ICp2KTsKIAogdm9pZCBodm1faW5qZWN0X2V2ZW50KGNvbnN0IHN0cnVjdCB4ODZfZXZlbnQgKmV2 ZW50KTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL2lycS5oIGIveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9odm0vaXJxLmgKaW5kZXggM2E4ODMyYy4uMzI3OTM3MSAxMDA2NDQKLS0t IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vaXJxLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4 Ni9odm0vaXJxLmgKQEAgLTE3Niw2ICsxNzYsNyBAQCBzdHJ1Y3QgaHZtX3BpcnFfZHBjaSB7CiAK IHZvaWQgcHRfcGlycV9pbml0KHN0cnVjdCBkb21haW4gKiwgc3RydWN0IGh2bV9waXJxX2RwY2kg Kik7CiBib29sIHB0X3BpcnFfY2xlYW51cF9jaGVjayhzdHJ1Y3QgaHZtX3BpcnFfZHBjaSAqKTsK K3ZvaWQgcHRfdXBkYXRlX2dtc2koc3RydWN0IGRvbWFpbiAqZCwgc3RydWN0IGh2bV9waXJxX2Rw Y2kgKnBpcnFfZHBjaSk7CiBpbnQgcHRfcGlycV9pdGVyYXRlKHN0cnVjdCBkb21haW4gKmQsCiAg ICAgICAgICAgICAgICAgICAgIGludCAoKmNiKShzdHJ1Y3QgZG9tYWluICosCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgaHZtX3BpcnFfZHBjaSAqLCB2b2lkICphcmcpLApk aWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni92aW9tbXUuaCBiL3hlbi9pbmNsdWRlL2Fz bS14ODYvdmlvbW11LmgKaW5kZXggZTUyNmUzOC4uOTFlYmM2NCAxMDA2NDQKLS0tIGEveGVuL2lu Y2x1ZGUvYXNtLXg4Ni92aW9tbXUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3Zpb21tdS5o CkBAIC01OCw2ICs1OCwxNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaXJxX3JlcXVlc3RfaW9hcGlj X2ZpbGwoCiAgICAgcmVxLT5tc2cucnRlID0gcnRlOwogfQogCitzdGF0aWMgaW5saW5lIHZvaWQg aXJxX3JlcXVlc3RfbXNpX2ZpbGwoCisgICAgc3RydWN0IGFyY2hfaXJxX3JlbWFwcGluZ19yZXF1 ZXN0ICpyZXEsIHVpbnQ2NF90IGFkZHIsIHVpbnQzMl90IGRhdGEpCit7CisgICAgQVNTRVJUKHJl cSk7CisgICAgcmVxLT50eXBlID0gVklPTU1VX1JFUVVFU1RfSVJRX01TSTsKKyAgICAvKiBTb3Vy Y2UgSUQgaXNuJ3QgaW4gdXNlICovCisgICAgcmVxLT5zb3VyY2VfaWQgPSAwOworICAgIHJlcS0+ bXNnLm1zaS5hZGRyID0gYWRkcjsKKyAgICByZXEtPm1zZy5tc2kuZGF0YSA9IGRhdGE7Cit9CisK ICNlbmRpZiAvKiBfX0FSQ0hfWDg2X1ZJT01NVV9IX18gKi8KIAogLyoKLS0gCjEuOC4zLjEKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9y Zy94ZW4tZGV2ZWwK