From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Gao Subject: [PATCH v11 2/6] VT-d: Introduce new fields in msi_desc to track binding with guest interrupt Date: Wed, 29 Mar 2017 13:11:51 +0800 Message-ID: <1490764315-7162-3-git-send-email-chao.gao@intel.com> References: <1490764315-7162-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: <1490764315-7162-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: Kevin Tian , Feng Wu , Jun Nakajima , George Dunlap , Andrew Cooper , Dario Faggioli , Jan Beulich , Chao Gao List-Id: xen-devel@lists.xenproject.org bXNpX21zZ190b19yZW1hcF9lbnRyeSgpIGlzIGJ1Z2d5IHdoZW4gdGhlIGxpdmUgSVJURSBpcyBp biBwb3N0ZWQgZm9ybWF0LiBJdAp3cm9uZ2x5IGluaGVyaXRzIHRoZSAnaW0nIGZpZWxkIG1lYW5p bmcgdGhlIElSVEUgaXMgaW4gcG9zdGVkIGZvcm1hdCBidXQKdXBkYXRlcyBhbGwgdGhlIG90aGVy IGZpZWxkcyB0byByZW1hcHBpbmcgZm9ybWF0LgoKVGhlcmUgYXJlIGFsc28gdHdvIHNpdHVhdGlv bnMgdGhhdCBsZWFkIHRvIHRoZSBhYm92ZSBpc3N1ZS4gT25lIGlzIHNvbWUgY2FsbGVycwpyZWFs bHkgd2FudCB0byBjaGFuZ2UgdGhlIElSVEUgdG8gcmVtYXBwZWQgZm9ybWF0LiBUaGUgb3RoZXIg aXMgc29tZSBjYWxsZXJzCm9ubHkgd2FudCB0byB1cGRhdGUgbXNpIG1lc3NhZ2UgKGUuZy4gc2V0 IG1zaSBhZmZpbml0eSkgZm9yIHRoZXkgZG9uJ3QgYXdhcmUKdGhhdCB0aGlzIG1zaSBpcyBiaW5k ZWQgd2l0aCBhIGd1ZXN0IGludGVycnVwdC4gV2Ugc2hvdWxkIHN1cHByZXNzIHVwZGF0ZQppbiB0 aGUgc2Vjb25kIHNpdHVhdGlvbi4gVG8gZGlzdGluZ3Vpc2ggdGhlbSwgc3RyYWlnaHRmb3J3YXJk bHksIHdlIGNhbiBsZXQKY2FsbGVyIHNwZWNpZnkgd2hpY2ggZm9ybWF0IG9mIElSVEUgdGhleSB3 YW50IHVwZGF0ZSB0by4gSXQgaXNuJ3QgZmVhc2libGUgZm9yCm1ha2luZyBhbGwgY2FsbGVycyBi ZSBhd2FyZSBvZiB0aGUgYmluZGluZyB3aXRoIGd1ZXN0IGludGVycnVwdCB3aWxsIGNhdXNlIGEK ZmFyIG1vcmUgY29tcGxpY2F0ZWQgY2hhbmdlIChpbmNsdWRpbmcgdGhlIGludGVyZmFjZXMgZXhw b3NlZCB0byBJT0FQSUMgYW5kCk1TSSkuIEFsc28gc29tZSBjYWxsaW5ncyBoYXBwZW4gaW4gaW50 ZXJydXB0IGNvbnRleHQgd2hlcmUgd2UgY2FuJ3QgYWNxdWlyZQpkLT5ldmVudF9sb2NrIHRvIHJl YWQgc3RydWN0IGh2bV9waXJxX2RwY2kuCgpUaGlzIHBhdGNoIGludHJvZHVjZXMgdHdvIG5ldyBm aWVsZHMgaW4gbXNpX2Rlc2MgdG8gdHJhY2sgYmluZGluZyB3aXRoIGEgZ3Vlc3QKaW50ZXJydXB0 IHN1Y2ggdGhhdCBtc2lfbXNnX3RvX3JlbWFwX2VudHJ5KCkgY2FuIGdldCB0aGUgYmluZGluZyBh bmQgdXBkYXRlCklSVEUgYWNjb3JkaW5nbHkuIEFmdGVyIHRoYXQgY2hhbmdlLCBwaV91cGRhdGVf aXJ0ZSgpIGNhbiB1dGlsaXplCm1zaV9tc2dfdG9fcmVtYXBfZW50cnkoKSB0byB1cGRhdGUgSVJU RSB0byBwb3N0ZWQgZm9ybWF0LgoKU2lnbmVkLW9mZi1ieTogRmVuZyBXdSA8ZmVuZy53dUBpbnRl bC5jb20+ClNpZ25lZC1vZmYtYnk6IENoYW8gR2FvIDxjaGFvLmdhb0BpbnRlbC5jb20+Ci0tLQp2 MTE6Ci0gQ29tbWl0IG1lc3NhZ2UgY2hhbmdlcy4KLSBBZGQgY29kZSB0byBjbGVhciB0aGUgdHdv IG5ldyBmaWVsZHMgaW50cm9kdWNlZCBpbiB0aGlzIHBhdGNoLgoKdjEwOgotIE5ld2x5IGFkZGVk LgoKIHhlbi9hcmNoL3g4Ni9tc2kuYyAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHhlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL2lvLmMgICAgICAgICAgIHwgICAyICsKIHhlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3Z0ZC9pbnRyZW1hcC5jIHwgMTUwICsrKysrKystLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9tc2kuaCAgICAgICAgICAgICAgfCAgIDIgKwog NCBmaWxlcyBjaGFuZ2VkLCAzNiBpbnNlcnRpb25zKCspLCAxMTkgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEveGVuL2FyY2gveDg2L21zaS5jIGIveGVuL2FyY2gveDg2L21zaS5jCmluZGV4IGE4 NjgwMDcuLjMzNzRjZDQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9tc2kuYworKysgYi94ZW4v YXJjaC94ODYvbXNpLmMKQEAgLTU3OCw2ICs1NzgsNyBAQCBzdGF0aWMgc3RydWN0IG1zaV9kZXNj ICphbGxvY19tc2lfZW50cnkodW5zaWduZWQgaW50IG5yKQogICAgICAgICBlbnRyeVtucl0uZGV2 ID0gTlVMTDsKICAgICAgICAgZW50cnlbbnJdLmlycSA9IC0xOwogICAgICAgICBlbnRyeVtucl0u cmVtYXBfaW5kZXggPSAtMTsKKyAgICAgICAgZW50cnlbbnJdLnBpX2Rlc2MgPSBOVUxMOwogICAg IH0KIAogICAgIHJldHVybiBlbnRyeTsKZGlmZiAtLWdpdCBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL2lvLmMgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pby5jCmluZGV4IGQ1Mzk3NmMuLjVk YmZlNTMgMTAwNjQ0Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvLmMKKysrIGIveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvaW8uYwpAQCAtNjE4LDYgKzYxOCw4IEBAIGludCBwdF9pcnFf ZGVzdHJveV9iaW5kKAogICAgICAgICBlbHNlCiAgICAgICAgICAgICB3aGF0ID0gImJvZ3VzIjsK ICAgICB9CisgICAgZWxzZSBpZiAoIGlvbW11X2ludHBvc3QgJiYgcGlycSAmJiBwaXJxX2RwY2kt Pmdtc2kucG9zdGVkICkKKyAgICAgICAgcGlfdXBkYXRlX2lydGUoTlVMTCwgcGlycSwgMCk7CiAK ICAgICBpZiAoIHBpcnFfZHBjaSAmJiAocGlycV9kcGNpLT5mbGFncyAmIEhWTV9JUlFfRFBDSV9N QVBQRUQpICYmCiAgICAgICAgICBsaXN0X2VtcHR5KCZwaXJxX2RwY2ktPmRpZ2xfbGlzdCkgKQpk aWZmIC0tZ2l0IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2ludHJlbWFwLmMgYi94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW50cmVtYXAuYwppbmRleCBiZmQ0NjhiLi45YmJmMGY2 IDEwMDY0NAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW50cmVtYXAuYworKysg Yi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW50cmVtYXAuYwpAQCAtNTUxLDEyICs1NTEs MTIgQEAgc3RhdGljIGludCBtc2lfbXNnX3RvX3JlbWFwX2VudHJ5KAogICAgIHN0cnVjdCBpb21t dSAqaW9tbXUsIHN0cnVjdCBwY2lfZGV2ICpwZGV2LAogICAgIHN0cnVjdCBtc2lfZGVzYyAqbXNp X2Rlc2MsIHN0cnVjdCBtc2lfbXNnICptc2cpCiB7Ci0gICAgc3RydWN0IGlyZW1hcF9lbnRyeSAq aXJlbWFwX2VudHJ5ID0gTlVMTCwgKmlyZW1hcF9lbnRyaWVzOwotICAgIHN0cnVjdCBpcmVtYXBf ZW50cnkgbmV3X2lyZTsKKyAgICBzdHJ1Y3QgaXJlbWFwX2VudHJ5ICppcmVtYXBfZW50cnkgPSBO VUxMLCAqaXJlbWFwX2VudHJpZXMsIG5ld19pcmUgPSB7IH07CiAgICAgc3RydWN0IG1zaV9tc2df cmVtYXBfZW50cnkgKnJlbWFwX3J0ZTsKICAgICB1bnNpZ25lZCBpbnQgaW5kZXgsIGksIG5yID0g MTsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwogICAgIHN0cnVjdCBpcl9jdHJsICppcl9jdHJs ID0gaW9tbXVfaXJfY3RybChpb21tdSk7CisgICAgY29uc3Qgc3RydWN0IHBpX2Rlc2MgKnBpX2Rl c2MgPSBtc2lfZGVzYy0+cGlfZGVzYzsKIAogICAgIGlmICggbXNpX2Rlc2MtPm1zaV9hdHRyaWIu dHlwZSA9PSBQQ0lfQ0FQX0lEX01TSSApCiAgICAgICAgIG5yID0gbXNpX2Rlc2MtPm1zaS5udmVj OwpAQCAtNTk1LDMzICs1OTUsMzUgQEAgc3RhdGljIGludCBtc2lfbXNnX3RvX3JlbWFwX2VudHJ5 KAogICAgIEdFVF9JUkVNQVBfRU5UUlkoaXJfY3RybC0+aXJlbWFwX21hZGRyLCBpbmRleCwKICAg ICAgICAgICAgICAgICAgICAgIGlyZW1hcF9lbnRyaWVzLCBpcmVtYXBfZW50cnkpOwogCi0gICAg bWVtY3B5KCZuZXdfaXJlLCBpcmVtYXBfZW50cnksIHNpemVvZihzdHJ1Y3QgaXJlbWFwX2VudHJ5 KSk7Ci0KLSAgICAvKiBTZXQgaW50ZXJydXB0IHJlbWFwcGluZyB0YWJsZSBlbnRyeSAqLwotICAg IG5ld19pcmUucmVtYXAuZnBkID0gMDsKLSAgICBuZXdfaXJlLnJlbWFwLmRtID0gKG1zZy0+YWRk cmVzc19sbyA+PiBNU0lfQUREUl9ERVNUTU9ERV9TSElGVCkgJiAweDE7Ci0gICAgbmV3X2lyZS5y ZW1hcC50bSA9IChtc2ctPmRhdGEgPj4gTVNJX0RBVEFfVFJJR0dFUl9TSElGVCkgJiAweDE7Ci0g ICAgbmV3X2lyZS5yZW1hcC5kbG0gPSAobXNnLT5kYXRhID4+IE1TSV9EQVRBX0RFTElWRVJZX01P REVfU0hJRlQpICYgMHgxOwotICAgIC8qIEhhcmR3YXJlIHJlcXVpcmUgUkggPSAxIGZvciBMUFIg ZGVsaXZlcnkgbW9kZSAqLwotICAgIG5ld19pcmUucmVtYXAucmggPSAobmV3X2lyZS5yZW1hcC5k bG0gPT0gZGVzdF9Mb3dlc3RQcmlvKTsKLSAgICBuZXdfaXJlLnJlbWFwLmF2YWlsID0gMDsKLSAg ICBuZXdfaXJlLnJlbWFwLnJlc18xID0gMDsKLSAgICBuZXdfaXJlLnJlbWFwLnZlY3RvciA9ICht c2ctPmRhdGEgPj4gTVNJX0RBVEFfVkVDVE9SX1NISUZUKSAmCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgTVNJX0RBVEFfVkVDVE9SX01BU0s7Ci0gICAgbmV3X2lyZS5yZW1hcC5yZXNfMiA9 IDA7Ci0gICAgaWYgKCB4MmFwaWNfZW5hYmxlZCApCi0gICAgICAgIG5ld19pcmUucmVtYXAuZHN0 ID0gbXNnLT5kZXN0MzI7CisgICAgaWYgKCAhcGlfZGVzYyApCisgICAgeworICAgICAgICBuZXdf aXJlLnJlbWFwLmRtID0gbXNnLT5hZGRyZXNzX2xvID4+IE1TSV9BRERSX0RFU1RNT0RFX1NISUZU OworICAgICAgICBuZXdfaXJlLnJlbWFwLnRtID0gbXNnLT5kYXRhID4+IE1TSV9EQVRBX1RSSUdH RVJfU0hJRlQ7CisgICAgICAgIG5ld19pcmUucmVtYXAuZGxtID0gbXNnLT5kYXRhID4+IE1TSV9E QVRBX0RFTElWRVJZX01PREVfU0hJRlQ7CisgICAgICAgIC8qIEhhcmR3YXJlIHJlcXVpcmVzIFJI ID0gMSBmb3IgbG93ZXN0IHByaW9yaXR5IGRlbGl2ZXJ5IG1vZGUgKi8KKyAgICAgICAgbmV3X2ly ZS5yZW1hcC5yaCA9IChuZXdfaXJlLnJlbWFwLmRsbSA9PSBkZXN0X0xvd2VzdFByaW8pOworICAg ICAgICBuZXdfaXJlLnJlbWFwLnZlY3RvciA9IChtc2ctPmRhdGEgPj4gTVNJX0RBVEFfVkVDVE9S X1NISUZUKSAmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1TSV9EQVRBX1ZFQ1RP Ul9NQVNLOworICAgICAgICBpZiAoIHgyYXBpY19lbmFibGVkICkKKyAgICAgICAgICAgIG5ld19p cmUucmVtYXAuZHN0ID0gbXNnLT5kZXN0MzI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG5l d19pcmUucmVtYXAuZHN0ID0KKyAgICAgICAgICAgICAgICBNQVNLX0VYVFIobXNnLT5hZGRyZXNz X2xvLCBNU0lfQUREUl9ERVNUX0lEX01BU0spIDw8IDg7CisgICAgICAgIG5ld19pcmUucmVtYXAu cCA9IDE7CisgICAgfQogICAgIGVsc2UKLSAgICAgICAgbmV3X2lyZS5yZW1hcC5kc3QgPSAoKG1z Zy0+YWRkcmVzc19sbyA+PiBNU0lfQUREUl9ERVNUX0lEX1NISUZUKQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmIDB4ZmYpIDw8IDg7CisgICAgeworICAgICAgICBuZXdfaXJlLnBvc3Qu aW0gPSAxOworICAgICAgICBuZXdfaXJlLnBvc3QudmVjdG9yID0gbXNpX2Rlc2MtPmd2ZWM7Cisg ICAgICAgIG5ld19pcmUucG9zdC5wZGFfbCA9IHZpcnRfdG9fbWFkZHIocGlfZGVzYykgPj4gKDMy IC0gUERBX0xPV19CSVQpOworICAgICAgICBuZXdfaXJlLnBvc3QucGRhX2ggPSB2aXJ0X3RvX21h ZGRyKHBpX2Rlc2MpID4+IDMyOworICAgICAgICBuZXdfaXJlLnBvc3QucCA9IDE7CisgICAgfQog CiAgICAgaWYgKCBwZGV2ICkKICAgICAgICAgc2V0X21zaV9zb3VyY2VfaWQocGRldiwgJm5ld19p cmUpOwogICAgIGVsc2UKICAgICAgICAgc2V0X2hwZXRfc291cmNlX2lkKG1zaV9kZXNjLT5ocGV0 X2lkLCAmbmV3X2lyZSk7Ci0gICAgbmV3X2lyZS5yZW1hcC5yZXNfMyA9IDA7Ci0gICAgbmV3X2ly ZS5yZW1hcC5yZXNfNCA9IDA7Ci0gICAgbmV3X2lyZS5yZW1hcC5wID0gMTsgICAgLyogZmluYWxs eSwgc2V0IHByZXNlbnQgYml0ICovCiAKICAgICAvKiBub3cgY29uc3RydWN0IG5ldyBNU0kvTVNJ LVggcnRlIGVudHJ5ICovCiAgICAgcmVtYXBfcnRlID0gKHN0cnVjdCBtc2lfbXNnX3JlbWFwX2Vu dHJ5ICopbXNnOwpAQCAtOTAyLDQyICs5MDQsNiBAQCB2b2lkIGlvbW11X2Rpc2FibGVfeDJhcGlj X0lSKHZvaWQpCiAgICAgICAgIGRpc2FibGVfcWludmFsKGRyaGQtPmlvbW11KTsKIH0KIAotc3Rh dGljIHZvaWQgc2V0dXBfcG9zdGVkX2lydGUoCi0gICAgc3RydWN0IGlyZW1hcF9lbnRyeSAqbmV3 X2lyZSwgY29uc3Qgc3RydWN0IGlyZW1hcF9lbnRyeSAqb2xkX2lyZSwKLSAgICBjb25zdCBzdHJ1 Y3QgcGlfZGVzYyAqcGlfZGVzYywgY29uc3QgdWludDhfdCBndmVjKQotewotICAgIG1lbXNldChu ZXdfaXJlLCAwLCBzaXplb2YoKm5ld19pcmUpKTsKLQotICAgIC8qCi0gICAgICogJ2ltJyBmaWxl ZCBkZWNpZGVzIHdoZXRoZXIgdGhlIGlydGUgaXMgaW4gcG9zdGVkIGZvcm1hdCAod2l0aCB2YWx1 ZSAxKQotICAgICAqIG9yIHJlbWFwcGVkIGZvcm1hdCAod2l0aCB2YWx1ZSAwKSwgaWYgdGhlIG9s ZCBpcnRlIGlzIGluIHJlbWFwcGVkIGZvcm1hdCwKLSAgICAgKiB3ZSBjb3B5IHRoaW5ncyBmcm9t IHJlbWFwcGVkIHBhcnQgaW4gJ3N0cnVjdCBpcmVtYXBfZW50cnknLCBvdGhlcndpc2UsCi0gICAg ICogd2UgY29weSBmcm9tIHBvc3RlZCBwYXJ0LgotICAgICAqLwotICAgIGlmICggIW9sZF9pcmUt PnJlbWFwLmltICkKLSAgICB7Ci0gICAgICAgIG5ld19pcmUtPnBvc3QucCA9IG9sZF9pcmUtPnJl bWFwLnA7Ci0gICAgICAgIG5ld19pcmUtPnBvc3QuZnBkID0gb2xkX2lyZS0+cmVtYXAuZnBkOwot ICAgICAgICBuZXdfaXJlLT5wb3N0LnNpZCA9IG9sZF9pcmUtPnJlbWFwLnNpZDsKLSAgICAgICAg bmV3X2lyZS0+cG9zdC5zcSA9IG9sZF9pcmUtPnJlbWFwLnNxOwotICAgICAgICBuZXdfaXJlLT5w b3N0LnN2dCA9IG9sZF9pcmUtPnJlbWFwLnN2dDsKLSAgICB9Ci0gICAgZWxzZQotICAgIHsKLSAg ICAgICAgbmV3X2lyZS0+cG9zdC5wID0gb2xkX2lyZS0+cG9zdC5wOwotICAgICAgICBuZXdfaXJl LT5wb3N0LmZwZCA9IG9sZF9pcmUtPnBvc3QuZnBkOwotICAgICAgICBuZXdfaXJlLT5wb3N0LnNp ZCA9IG9sZF9pcmUtPnBvc3Quc2lkOwotICAgICAgICBuZXdfaXJlLT5wb3N0LnNxID0gb2xkX2ly ZS0+cG9zdC5zcTsKLSAgICAgICAgbmV3X2lyZS0+cG9zdC5zdnQgPSBvbGRfaXJlLT5wb3N0LnN2 dDsKLSAgICAgICAgbmV3X2lyZS0+cG9zdC51cmcgPSBvbGRfaXJlLT5wb3N0LnVyZzsKLSAgICB9 Ci0KLSAgICBuZXdfaXJlLT5wb3N0LmltID0gMTsKLSAgICBuZXdfaXJlLT5wb3N0LnZlY3RvciA9 IGd2ZWM7Ci0gICAgbmV3X2lyZS0+cG9zdC5wZGFfbCA9IHZpcnRfdG9fbWFkZHIocGlfZGVzYykg Pj4gKDMyIC0gUERBX0xPV19CSVQpOwotICAgIG5ld19pcmUtPnBvc3QucGRhX2ggPSB2aXJ0X3Rv X21hZGRyKHBpX2Rlc2MpID4+IDMyOwotfQotCiAvKgogICogVGhpcyBmdW5jdGlvbiBpcyB1c2Vk IHRvIHVwZGF0ZSB0aGUgSVJURSBmb3IgcG9zdGVkLWludGVycnVwdAogICogd2hlbiBndWVzdCBj aGFuZ2VzIE1TSS9NU0ktWCBpbmZvcm1hdGlvbi4KQEAgLTk0NiwxNyArOTEyLDkgQEAgaW50IHBp X3VwZGF0ZV9pcnRlKGNvbnN0IHN0cnVjdCB2Y3B1ICp2LCBjb25zdCBzdHJ1Y3QgcGlycSAqcGly cSwKICAgICBjb25zdCB1aW50OF90IGd2ZWMpCiB7CiAgICAgc3RydWN0IGlycV9kZXNjICpkZXNj OwotICAgIGNvbnN0IHN0cnVjdCBtc2lfZGVzYyAqbXNpX2Rlc2M7Ci0gICAgaW50IHJlbWFwX2lu ZGV4OwotICAgIGludCByYyA9IDA7Ci0gICAgY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBjaV9kZXY7 Ci0gICAgY29uc3Qgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkOwotICAgIHN0cnVjdCBpb21t dSAqaW9tbXU7Ci0gICAgc3RydWN0IGlyX2N0cmwgKmlyX2N0cmw7Ci0gICAgc3RydWN0IGlyZW1h cF9lbnRyeSAqaXJlbWFwX2VudHJpZXMgPSBOVUxMLCAqcCA9IE5VTEw7Ci0gICAgc3RydWN0IGly ZW1hcF9lbnRyeSBuZXdfaXJlLCBvbGRfaXJlOwotICAgIGNvbnN0IHN0cnVjdCBwaV9kZXNjICpw aV9kZXNjID0gJnYtPmFyY2guaHZtX3ZteC5waV9kZXNjOwotICAgIF9fdWludDEyOF90IHJldDsK KyAgICBzdHJ1Y3QgbXNpX2Rlc2MgKm1zaV9kZXNjOworICAgIGNvbnN0IHN0cnVjdCBwaV9kZXNj ICpwaV9kZXNjID0gdiA/ICZ2LT5hcmNoLmh2bV92bXgucGlfZGVzYyA6IE5VTEw7CisgICAgaW50 IHJjOwogCiAgICAgZGVzYyA9IHBpcnFfc3Bpbl9sb2NrX2lycV9kZXNjKHBpcnEsIE5VTEwpOwog ICAgIGlmICggIWRlc2MgKQpAQCAtOTY4LDU5ICs5MjYsMTMgQEAgaW50IHBpX3VwZGF0ZV9pcnRl KGNvbnN0IHN0cnVjdCB2Y3B1ICp2LCBjb25zdCBzdHJ1Y3QgcGlycSAqcGlycSwKICAgICAgICAg cmMgPSAtRU5PREVWOwogICAgICAgICBnb3RvIHVubG9ja19vdXQ7CiAgICAgfQotCi0gICAgcGNp X2RldiA9IG1zaV9kZXNjLT5kZXY7Ci0gICAgaWYgKCAhcGNpX2RldiApCi0gICAgewotICAgICAg ICByYyA9IC1FTk9ERVY7Ci0gICAgICAgIGdvdG8gdW5sb2NrX291dDsKLSAgICB9Ci0KLSAgICBy ZW1hcF9pbmRleCA9IG1zaV9kZXNjLT5yZW1hcF9pbmRleDsKKyAgICBtc2lfZGVzYy0+cGlfZGVz YyA9IHBpX2Rlc2M7CisgICAgbXNpX2Rlc2MtPmd2ZWMgPSBndmVjOwogCiAgICAgc3Bpbl91bmxv Y2tfaXJxKCZkZXNjLT5sb2NrKTsKIAogICAgIEFTU0VSVChwY2lkZXZzX2xvY2tlZCgpKTsKLQot ICAgIC8qCi0gICAgICogRklYTUU6IEZvciBwZXJmb3JtYW5jZSByZWFzb25zIHdlIHNob3VsZCBz dG9yZSB0aGUgJ2lvbW11JyBwb2ludGVyIGluCi0gICAgICogJ3N0cnVjdCBtc2lfZGVzYycgaW4g c29tZSBvdGhlciBwbGFjZSwgc28gd2UgZG9uJ3QgbmVlZCB0byB3YXN0ZQotICAgICAqIHRpbWUg c2VhcmNoaW5nIGl0IGhlcmUuCi0gICAgICovCi0gICAgZHJoZCA9IGFjcGlfZmluZF9tYXRjaGVk X2RyaGRfdW5pdChwY2lfZGV2KTsKLSAgICBpZiAoICFkcmhkICkKLSAgICAgICAgcmV0dXJuIC1F Tk9ERVY7Ci0KLSAgICBpb21tdSA9IGRyaGQtPmlvbW11OwotICAgIGlyX2N0cmwgPSBpb21tdV9p cl9jdHJsKGlvbW11KTsKLSAgICBpZiAoICFpcl9jdHJsICkKLSAgICAgICAgcmV0dXJuIC1FTk9E RVY7Ci0KLSAgICBzcGluX2xvY2tfaXJxKCZpcl9jdHJsLT5pcmVtYXBfbG9jayk7Ci0KLSAgICBH RVRfSVJFTUFQX0VOVFJZKGlyX2N0cmwtPmlyZW1hcF9tYWRkciwgcmVtYXBfaW5kZXgsIGlyZW1h cF9lbnRyaWVzLCBwKTsKLQotICAgIG9sZF9pcmUgPSAqcDsKLQotICAgIC8qIFNldHVwL1VwZGF0 ZSBpbnRlcnJ1cHQgcmVtYXBwaW5nIHRhYmxlIGVudHJ5LiAqLwotICAgIHNldHVwX3Bvc3RlZF9p cnRlKCZuZXdfaXJlLCAmb2xkX2lyZSwgcGlfZGVzYywgZ3ZlYyk7Ci0gICAgcmV0ID0gY21weGNo ZzE2YihwLCAmb2xkX2lyZSwgJm5ld19pcmUpOwotCi0gICAgLyoKLSAgICAgKiBJbiB0aGUgYWJv dmUsIHdlIHVzZSBjbXB4Y2hnMTYgdG8gYXRvbWljYWxseSB1cGRhdGUgdGhlIDEyOC1iaXQgSVJU RSwKLSAgICAgKiBhbmQgdGhlIGhhcmR3YXJlIGNhbm5vdCB1cGRhdGUgdGhlIElSVEUgYmVoaW5k IHVzLCBzbyB0aGUgcmV0dXJuIHZhbHVlCi0gICAgICogb2YgY21weGNoZzE2IHNob3VsZCBiZSB0 aGUgc2FtZSBhcyBvbGRfaXJlLiBUaGlzIEFTU0VSVCB2YWxpZGF0ZSBpdC4KLSAgICAgKi8KLSAg ICBBU1NFUlQocmV0ID09IG9sZF9pcmUudmFsKTsKLQotICAgIGlvbW11X2ZsdXNoX2NhY2hlX2Vu dHJ5KHAsIHNpemVvZigqcCkpOwotICAgIGlvbW11X2ZsdXNoX2llY19pbmRleChpb21tdSwgMCwg cmVtYXBfaW5kZXgpOwotCi0gICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKGlyZW1hcF9lbnRyaWVz KTsKLQotICAgIHNwaW5fdW5sb2NrX2lycSgmaXJfY3RybC0+aXJlbWFwX2xvY2spOwotCi0gICAg cmV0dXJuIDA7CisgICAgcmV0dXJuIGlvbW11X3VwZGF0ZV9pcmVfZnJvbV9tc2kobXNpX2Rlc2Ms ICZtc2lfZGVzYy0+bXNnKTsKIAogIHVubG9ja19vdXQ6CiAgICAgc3Bpbl91bmxvY2tfaXJxKCZk ZXNjLT5sb2NrKTsKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvbXNpLmggYi94ZW4v aW5jbHVkZS9hc20teDg2L21zaS5oCmluZGV4IDljMDI5NDUuLmZjOWFiMDQgMTAwNjQ0Ci0tLSBh L3hlbi9pbmNsdWRlL2FzbS14ODYvbXNpLmgKKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9tc2ku aApAQCAtMTE4LDYgKzExOCw4IEBAIHN0cnVjdCBtc2lfZGVzYyB7CiAJc3RydWN0IG1zaV9tc2cg bXNnOwkJLyogTGFzdCBzZXQgTVNJIG1lc3NhZ2UgKi8KIAogCWludCByZW1hcF9pbmRleDsJCS8q IGluZGV4IGluIGludGVycnVwdCByZW1hcHBpbmcgdGFibGUgKi8KKwljb25zdCBzdHJ1Y3QgcGlf ZGVzYyAqcGlfZGVzYzsJLyogcG9pbnRlciB0byBwb3N0ZWQgZGVzY3JpcHRvciAqLworCXVpbnQ4 X3QgZ3ZlYzsJCQkvKiBndWVzdCB2ZWN0b3IuIHZhbGlkIHdoZW4gcGlfZGVzYyBpc24ndCBOVUxM ICovCiB9OwogCiAvKgotLSAKMS44LjMuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz Lnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=