From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joshua Otto Subject: [PATCH RFC 06/20] libxc/xc_sr: factor helpers out of handle_page_data() Date: Mon, 27 Mar 2017 05:06:18 -0400 Message-ID: <1490605592-12189-7-git-send-email-jtotto@uwaterloo.ca> References: <1490605592-12189-1-git-send-email-jtotto@uwaterloo.ca> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1csQcv-0004pu-W4 for xen-devel@lists.xenproject.org; Mon, 27 Mar 2017 09:07:50 +0000 In-Reply-To: <1490605592-12189-1-git-send-email-jtotto@uwaterloo.ca> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: wei.liu2@citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, czylin@uwaterloo.ca, Joshua Otto , imhy.yang@gmail.com, hjarmstr@uwaterloo.ca List-Id: xen-devel@lists.xenproject.org V2hlbiBwcm9jZXNzaW5nIGEgUEFHRV9EQVRBIHJlY29yZCwgdGhlIHJlc3RvcmUgY29kZToKMSkg YXBwbGllcyBhIG51bWJlciBvZiBzYW5pdHkgY2hlY2tzIG9uIHRoZSByZWNvcmQncyBoZWFkZXJz IGFuZCBzaXplCjIpIGRlY29kZXMgdGhlIGxpc3Qgb2YgcGFja2VkIHBhZ2UgaW5mbyBpbnRvIHBm bnMgYW5kIHRoZWlyIHR5cGVzCjMpIHVzaW5nIHRoZSBwZm4gYW5kIHR5cGUgaW5mbywgcG9wdWxh dGVzIGFuZCBmaWxscyB0aGUgcGFnZXMgaW50byB0aGUKICAgZ3Vlc3QgdXNpbmcgcHJvY2Vzc19w YWdlX2RhdGEoKQoKU3RlcHMgMSkgYW5kIDIpIGFyZSBhbHNvIHVzZWZ1bCBhdCB2YXJpb3VzIG90 aGVyIHN0YWdlcyBvZiBwb3N0Y29weSBsaXZlCm1pZ3JhdGlvbnMsIHNvIGZhY3RvciB0aGVtIGlu dG8gcmV1c2FibGUgaGVscGVyIHJvdXRpbmVzLgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCgpTaWdu ZWQtb2ZmLWJ5OiBKb3NodWEgT3R0byA8anRvdHRvQHV3YXRlcmxvby5jYT4KLS0tCiB0b29scy9s aWJ4Yy94Y19zcl9jb21tb24uYyAgICAgICAgfCAzOCArKysrKysrKysrKysrKystCiB0b29scy9s aWJ4Yy94Y19zcl9jb21tb24uaCAgICAgICAgfCAxMCArKysrKwogdG9vbHMvbGlieGMveGNfc3Jf cmVzdG9yZS5jICAgICAgIHwgOTQgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tCiB0b29scy9saWJ4Yy94Y19zcl9zYXZlLmMgICAgICAgICAgfCAgMiArLQogdG9vbHMvbGli eGMveGNfc3Jfc3RyZWFtX2Zvcm1hdC5oIHwgIDYgKy0tCiA1IGZpbGVzIGNoYW5nZWQsIDEwOSBp bnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy94 Y19zcl9jb21tb24uYyBiL3Rvb2xzL2xpYnhjL3hjX3NyX2NvbW1vbi5jCmluZGV4IGMxYmFiZjYu LmY0NDM5NzQgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX3NyX2NvbW1vbi5jCisrKyBiL3Rv b2xzL2xpYnhjL3hjX3NyX2NvbW1vbi5jCkBAIC0xNDAsMTMgKzE0MCw0OSBAQCBpbnQgcmVhZF9y ZWNvcmQoc3RydWN0IHhjX3NyX2NvbnRleHQgKmN0eCwgaW50IGZkLCBzdHJ1Y3QgeGNfc3JfcmVj b3JkICpyZWMpCiAgICAgcmV0dXJuIDA7CiB9OwogCitpbnQgdmFsaWRhdGVfcGFnZXNfcmVjb3Jk KHN0cnVjdCB4Y19zcl9jb250ZXh0ICpjdHgsIHN0cnVjdCB4Y19zcl9yZWNvcmQgKnJlYywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgZXhwZWN0ZWRfdHlwZSkKK3sKKyAgICB4 Y19pbnRlcmZhY2UgKnhjaCA9IGN0eC0+eGNoOworICAgIHN0cnVjdCB4Y19zcl9yZWNfcGFnZXNf aGVhZGVyICpwYWdlcyA9IHJlYy0+ZGF0YTsKKworICAgIGlmICggcmVjLT50eXBlICE9IGV4cGVj dGVkX3R5cGUgKQorICAgIHsKKyAgICAgICAgRVJST1IoIiVzIHJlY29yZCB0eXBlIGV4cGVjdGVk LCBpbnN0ZWFkIHJlY2VpdmVkIHJlY29yZCBvZiB0eXBlICIKKyAgICAgICAgICAgICAgIiUwOHgg KCVzKSIsIHJlY190eXBlX3RvX3N0cihleHBlY3RlZF90eXBlKSwgcmVjLT50eXBlLAorICAgICAg ICAgICAgICByZWNfdHlwZV90b19zdHIocmVjLT50eXBlKSk7CisgICAgICAgIHJldHVybiAtMTsK KyAgICB9CisgICAgZWxzZSBpZiAoIHJlYy0+bGVuZ3RoIDwgc2l6ZW9mKCpwYWdlcykgKQorICAg IHsKKyAgICAgICAgRVJST1IoIiVzIHJlY29yZCB0cnVuY2F0ZWQ6IGxlbmd0aCAldSwgbWluICV6 dSIsCisgICAgICAgICAgICAgIHJlY190eXBlX3RvX3N0cihyZWMtPnR5cGUpLCByZWMtPmxlbmd0 aCwgc2l6ZW9mKCpwYWdlcykpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorICAgIGVsc2Ug aWYgKCBwYWdlcy0+Y291bnQgPCAxICkKKyAgICB7CisgICAgICAgIEVSUk9SKCJFeHBlY3RlZCBh dCBsZWFzdCAxIHBmbiBpbiAlcyByZWNvcmQiLAorICAgICAgICAgICAgICByZWNfdHlwZV90b19z dHIocmVjLT50eXBlKSk7CisgICAgICAgIHJldHVybiAtMTsKKyAgICB9CisgICAgZWxzZSBpZiAo IHJlYy0+bGVuZ3RoIDwgc2l6ZW9mKCpwYWdlcykgKyAocGFnZXMtPmNvdW50ICogc2l6ZW9mKHVp bnQ2NF90KSkgKQorICAgIHsKKyAgICAgICAgRVJST1IoIiVzIHJlY29yZCAobGVuZ3RoICV1KSB0 b28gc2hvcnQgdG8gY29udGFpbiAldSIKKyAgICAgICAgICAgICAgIiBwZm5zIHdvcnRoIG9mIGlu Zm9ybWF0aW9uIiwgcmVjX3R5cGVfdG9fc3RyKHJlYy0+dHlwZSksCisgICAgICAgICAgICAgIHJl Yy0+bGVuZ3RoLCBwYWdlcy0+Y291bnQpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisg ICAgcmV0dXJuIDA7Cit9CisKIHN0YXRpYyB2b2lkIF9fYXR0cmlidXRlX18oKHVudXNlZCkpIGJ1 aWxkX2Fzc2VydGlvbnModm9pZCkKIHsKICAgICBCVUlMRF9CVUdfT04oc2l6ZW9mKHN0cnVjdCB4 Y19zcl9paGRyKSAhPSAyNCk7CiAgICAgQlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3QgeGNfc3Jf ZGhkcikgIT0gMTYpOwogICAgIEJVSUxEX0JVR19PTihzaXplb2Yoc3RydWN0IHhjX3NyX3JoZHIp ICE9IDgpOwogCi0gICAgQlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3QgeGNfc3JfcmVjX3BhZ2Vf ZGF0YV9oZWFkZXIpICAhPSA4KTsKKyAgICBCVUlMRF9CVUdfT04oc2l6ZW9mKHN0cnVjdCB4Y19z cl9yZWNfcGFnZXNfaGVhZGVyKSAgICAgICE9IDgpOwogICAgIEJVSUxEX0JVR19PTihzaXplb2Yo c3RydWN0IHhjX3NyX3JlY194ODZfcHZfaW5mbykgICAgICAgIT0gOCk7CiAgICAgQlVJTERfQlVH X09OKHNpemVvZihzdHJ1Y3QgeGNfc3JfcmVjX3g4Nl9wdl9wMm1fZnJhbWVzKSAhPSA4KTsKICAg ICBCVUlMRF9CVUdfT04oc2l6ZW9mKHN0cnVjdCB4Y19zcl9yZWNfeDg2X3B2X3ZjcHVfaGRyKSAg ICE9IDgpOwpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfc3JfY29tbW9uLmggYi90b29scy9s aWJ4Yy94Y19zcl9jb21tb24uaAppbmRleCAyZjMzY2NjLi5iMWFhODhlIDEwMDY0NAotLS0gYS90 b29scy9saWJ4Yy94Y19zcl9jb21tb24uaAorKysgYi90b29scy9saWJ4Yy94Y19zcl9jb21tb24u aApAQCAtMzkyLDYgKzM5MiwxNiBAQCBzdGF0aWMgaW5saW5lIGludCB3cml0ZV9yZWNvcmQoc3Ry dWN0IHhjX3NyX2NvbnRleHQgKmN0eCwgaW50IGZkLAogaW50IHJlYWRfcmVjb3JkKHN0cnVjdCB4 Y19zcl9jb250ZXh0ICpjdHgsIGludCBmZCwgc3RydWN0IHhjX3NyX3JlY29yZCAqcmVjKTsKIAog LyoKKyAqIEdpdmVuIGEgcmVjb3JkIG9mIG9uZSBvZiB0aGUgcGFnZSBkYXRhIHR5cGVzLCB2YWxp ZGF0ZSBpdCBieToKKyAqIC0gY2hlY2tpbmcgaXRzIGFjdHVhbCB0eXBlIGFnYWluc3QgaXRzIHNw ZWNpZmljIGV4cGVjdGVkIHR5cGUKKyAqIC0gc2FuaXR5IGNoZWNraW5nIGl0cyBhY3R1YWwgbGVu Z3RoIGFnYWluc3QgaXRzIGNsYWltZWQgbGVuZ3RoCisgKgorICogUmV0dXJucyAwIG9uIHN1Y2Nl c3MgYW5kIG5vbi0wIG9uIGZhaWx1cmUuCisgKi8KK2ludCB2YWxpZGF0ZV9wYWdlc19yZWNvcmQo c3RydWN0IHhjX3NyX2NvbnRleHQgKmN0eCwgc3RydWN0IHhjX3NyX3JlY29yZCAqcmVjLAorICAg ICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCBleHBlY3RlZF90eXBlKTsKKworLyoKICAq IFRoaXMgd291bGQgaWRlYWxseSBiZSBwcml2YXRlIGluIHJlc3RvcmUuYywgYnV0IGlzIG5lZWRl ZCBieQogICogeDg2X3B2X2xvY2FsaXNlX3BhZ2UoKSBpZiB3ZSByZWNlaXZlIHBhZ2V0YWJsZXMg ZnJhbWVzIGFoZWFkIG9mIHRoZQogICogY29udGVudHMgb2YgdGhlIGZyYW1lcyB0aGV5IHBvaW50 IGF0LgpkaWZmIC0tZ2l0IGEvdG9vbHMvbGlieGMveGNfc3JfcmVzdG9yZS5jIGIvdG9vbHMvbGli eGMveGNfc3JfcmVzdG9yZS5jCmluZGV4IDg1NzRlZTguLjRlM2M0NzIgMTAwNjQ0Ci0tLSBhL3Rv b2xzL2xpYnhjL3hjX3NyX3Jlc3RvcmUuYworKysgYi90b29scy9saWJ4Yy94Y19zcl9yZXN0b3Jl LmMKQEAgLTM3NiwzOSArMzc2LDI1IEBAIHN0YXRpYyBpbnQgcHJvY2Vzc19wYWdlX2RhdGEoc3Ry dWN0IHhjX3NyX2NvbnRleHQgKmN0eCwgdW5zaWduZWQgY291bnQsCiB9CiAKIC8qCi0gKiBWYWxp ZGF0ZSBhIFBBR0VfREFUQSByZWNvcmQgZnJvbSB0aGUgc3RyZWFtLCBhbmQgcGFzcyB0aGUgcmVz dWx0cyB0bwotICogcHJvY2Vzc19wYWdlX2RhdGEoKSB0byBhY3R1YWxseSBwZXJmb3JtIHRoZSBs ZWd3b3JrLgorICogR2l2ZW4gYSBQQUdFX0RBVEEgcmVjb3JkLCBkZWNvZGUgZWFjaCBwYWNrZWQg ZW50cnkgaW50byBpdHMgZW5jb2RlZCBwZm4gYW5kCisgKiB0eXBlLCBzdG9yaW5nIHRoZSByZXN1 bHRzIGluIG5ld2x5LWFsbG9jYXRlZCBwZm5zIGFuZCB0eXBlcyBidWZmZXJzIHRoYXQgdGhlCisg KiBjYWxsZXIgbXVzdCBsYXRlciBmcmVlKCkuICAqcGZucyBhbmQgKnR5cGVzIG1heSBzYWZlbHkg YmUgZnJlZSgpZWQgZXZlbiBhZnRlcgorICogZmFpbHVyZS4KICAqLwotc3RhdGljIGludCBoYW5k bGVfcGFnZV9kYXRhKHN0cnVjdCB4Y19zcl9jb250ZXh0ICpjdHgsIHN0cnVjdCB4Y19zcl9yZWNv cmQgKnJlYykKK3N0YXRpYyBpbnQgZGVjb2RlX3BhZ2VzX3JlY29yZChzdHJ1Y3QgeGNfc3JfY29u dGV4dCAqY3R4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB4Y19zcl9y ZWNfcGFnZXNfaGVhZGVyICpwYWdlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv KiBPVVQgKi8geGVuX3Bmbl90ICoqcGZucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiBPVVQgKi8gdWludDMyX3QgKip0eXBlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvKiBPVVQgKi8gdW5zaWduZWQgKnBhZ2VzX29mX2RhdGEpCiB7CiAgICAgeGNfaW50ZXJm YWNlICp4Y2ggPSBjdHgtPnhjaDsKLSAgICBzdHJ1Y3QgeGNfc3JfcmVjX3BhZ2VfZGF0YV9oZWFk ZXIgKnBhZ2VzID0gcmVjLT5kYXRhOwotICAgIHVuc2lnbmVkIGksIHBhZ2VzX29mX2RhdGEgPSAw OwotICAgIGludCByYyA9IC0xOwotCi0gICAgeGVuX3Bmbl90ICpwZm5zID0gTlVMTCwgcGZuOwot ICAgIHVpbnQzMl90ICp0eXBlcyA9IE5VTEwsIHR5cGU7Ci0KLSAgICBpZiAoIHJlYy0+bGVuZ3Ro IDwgc2l6ZW9mKCpwYWdlcykgKQotICAgIHsKLSAgICAgICAgRVJST1IoIlBBR0VfREFUQSByZWNv cmQgdHJ1bmNhdGVkOiBsZW5ndGggJXUsIG1pbiAlenUiLAotICAgICAgICAgICAgICByZWMtPmxl bmd0aCwgc2l6ZW9mKCpwYWdlcykpOwotICAgICAgICBnb3RvIGVycjsKLSAgICB9Ci0gICAgZWxz ZSBpZiAoIHBhZ2VzLT5jb3VudCA8IDEgKQotICAgIHsKLSAgICAgICAgRVJST1IoIkV4cGVjdGVk IGF0IGxlYXN0IDEgcGZuIGluIFBBR0VfREFUQSByZWNvcmQiKTsKLSAgICAgICAgZ290byBlcnI7 Ci0gICAgfQotICAgIGVsc2UgaWYgKCByZWMtPmxlbmd0aCA8IHNpemVvZigqcGFnZXMpICsgKHBh Z2VzLT5jb3VudCAqIHNpemVvZih1aW50NjRfdCkpICkKLSAgICB7Ci0gICAgICAgIEVSUk9SKCJQ QUdFX0RBVEEgcmVjb3JkIChsZW5ndGggJXUpIHRvbyBzaG9ydCB0byBjb250YWluICV1IgotICAg ICAgICAgICAgICAiIHBmbnMgd29ydGggb2YgaW5mb3JtYXRpb24iLCByZWMtPmxlbmd0aCwgcGFn ZXMtPmNvdW50KTsKLSAgICAgICAgZ290byBlcnI7Ci0gICAgfQorICAgIHVuc2lnbmVkIGk7Cisg ICAgeGVuX3Bmbl90IHBmbjsKKyAgICB1aW50MzJfdCB0eXBlOwogCi0gICAgcGZucyA9IG1hbGxv YyhwYWdlcy0+Y291bnQgKiBzaXplb2YoKnBmbnMpKTsKLSAgICB0eXBlcyA9IG1hbGxvYyhwYWdl cy0+Y291bnQgKiBzaXplb2YoKnR5cGVzKSk7CisgICAgKnBmbnMgPSBtYWxsb2MocGFnZXMtPmNv dW50ICogc2l6ZW9mKCpwZm5zKSk7CisgICAgKnR5cGVzID0gbWFsbG9jKHBhZ2VzLT5jb3VudCAq IHNpemVvZigqdHlwZXMpKTsKKyAgICAqcGFnZXNfb2ZfZGF0YSA9IDA7CiAgICAgaWYgKCAhcGZu cyB8fCAhdHlwZXMgKQogICAgIHsKICAgICAgICAgRVJST1IoIlVuYWJsZSB0byBhbGxvY2F0ZSBl bm91Z2ggbWVtb3J5IGZvciAldSBwZm5zIiwKQEAgLTQxOCwxNCArNDA0LDE0IEBAIHN0YXRpYyBp bnQgaGFuZGxlX3BhZ2VfZGF0YShzdHJ1Y3QgeGNfc3JfY29udGV4dCAqY3R4LCBzdHJ1Y3QgeGNf c3JfcmVjb3JkICpyZWMpCiAKICAgICBmb3IgKCBpID0gMDsgaSA8IHBhZ2VzLT5jb3VudDsgKytp ICkKICAgICB7Ci0gICAgICAgIHBmbiA9IHBhZ2VzLT5wZm5baV0gJiBQQUdFX0RBVEFfUEZOX01B U0s7CisgICAgICAgIHBmbiA9IHBhZ2VzLT5wZm5baV0gJiBSRUNfUEZJTkZPX1BGTl9NQVNLOwog ICAgICAgICBpZiAoICFjdHgtPnJlc3RvcmUub3BzLnBmbl9pc192YWxpZChjdHgsIHBmbikgKQog ICAgICAgICB7CiAgICAgICAgICAgICBFUlJPUigicGZuICUjIlBSSXBmbiIgKGluZGV4ICV1KSBv dXRzaWRlIGRvbWFpbiBtYXhpbXVtIiwgcGZuLCBpKTsKICAgICAgICAgICAgIGdvdG8gZXJyOwog ICAgICAgICB9CiAKLSAgICAgICAgdHlwZSA9IChwYWdlcy0+cGZuW2ldICYgUEFHRV9EQVRBX1RZ UEVfTUFTSykgPj4gMzI7CisgICAgICAgIHR5cGUgPSAocGFnZXMtPnBmbltpXSAmIFJFQ19QRklO Rk9fVFlQRV9NQVNLKSA+PiAzMjsKICAgICAgICAgaWYgKCAoKHR5cGUgPj4gWEVOX0RPTUNUTF9Q RklORk9fTFRBQl9TSElGVCkgPj0gNSkgJiYKICAgICAgICAgICAgICAoKHR5cGUgPj4gWEVOX0RP TUNUTF9QRklORk9fTFRBQl9TSElGVCkgPD0gOCkgKQogICAgICAgICB7CkBAIC00MzQsMTQgKzQy MCw1MCBAQCBzdGF0aWMgaW50IGhhbmRsZV9wYWdlX2RhdGEoc3RydWN0IHhjX3NyX2NvbnRleHQg KmN0eCwgc3RydWN0IHhjX3NyX3JlY29yZCAqcmVjKQogICAgICAgICAgICAgZ290byBlcnI7CiAg ICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAoIHR5cGUgPCBYRU5fRE9NQ1RMX1BGSU5GT19CUk9L RU4gKQotICAgICAgICAgICAgLyogTk9UQUIgYW5kIGFsbCBMMSB0aHJvdWdoIEw0IHRhYmxlcyAo aW5jbHVkaW5nIHBpbm5lZCkgc2hvdWxkCi0gICAgICAgICAgICAgKiBoYXZlIGEgcGFnZSB3b3J0 aCBvZiBkYXRhIGluIHRoZSByZWNvcmQuICovCi0gICAgICAgICAgICBwYWdlc19vZl9kYXRhKys7 CisgICAgICAgICAgICAvKiBOT1RBQiBhbmQgYWxsIEwxIHRocm91Z2ggTDQgdGFibGVzIChpbmNs dWRpbmcgcGlubmVkKSByZXF1aXJlIHRoZQorICAgICAgICAgICAgICogbWlncmF0aW9uIG9mIGEg cGFnZSBvZiByZWFsIGRhdGEuICovCisgICAgICAgICAgICAoKnBhZ2VzX29mX2RhdGEpKys7CiAK LSAgICAgICAgcGZuc1tpXSA9IHBmbjsKLSAgICAgICAgdHlwZXNbaV0gPSB0eXBlOworICAgICAg ICAoKnBmbnMpW2ldID0gcGZuOworICAgICAgICAoKnR5cGVzKVtpXSA9IHR5cGU7CiAgICAgfQog CisgICAgcmV0dXJuIDA7CisKKyBlcnI6CisgICAgZnJlZSgqcGZucyk7CisgICAgKnBmbnMgPSBO VUxMOworCisgICAgZnJlZSgqdHlwZXMpOworICAgICp0eXBlcyA9IE5VTEw7CisKKyAgICAqcGFn ZXNfb2ZfZGF0YSA9IDA7CisKKyAgICByZXR1cm4gLTE7Cit9CisKKy8qCisgKiBWYWxpZGF0ZSBh IFBBR0VfREFUQSByZWNvcmQgZnJvbSB0aGUgc3RyZWFtLCBhbmQgcGFzcyB0aGUgcmVzdWx0cyB0 bworICogcHJvY2Vzc19wYWdlX2RhdGEoKSB0byBhY3R1YWxseSBwZXJmb3JtIHRoZSBsZWd3b3Jr LgorICovCitzdGF0aWMgaW50IGhhbmRsZV9wYWdlX2RhdGEoc3RydWN0IHhjX3NyX2NvbnRleHQg KmN0eCwgc3RydWN0IHhjX3NyX3JlY29yZCAqcmVjKQoreworICAgIHhjX2ludGVyZmFjZSAqeGNo ID0gY3R4LT54Y2g7CisgICAgc3RydWN0IHhjX3NyX3JlY19wYWdlc19oZWFkZXIgKnBhZ2VzID0g cmVjLT5kYXRhOworICAgIHVuc2lnbmVkIHBhZ2VzX29mX2RhdGE7CisgICAgaW50IHJjID0gLTE7 CisKKyAgICB4ZW5fcGZuX3QgKnBmbnMgPSBOVUxMOworICAgIHVpbnQzMl90ICp0eXBlcyA9IE5V TEw7CisKKyAgICByYyA9IHZhbGlkYXRlX3BhZ2VzX3JlY29yZChjdHgsIHJlYywgUkVDX1RZUEVf UEFHRV9EQVRBKTsKKyAgICBpZiAoIHJjICkKKyAgICAgICAgZ290byBlcnI7CisKKyAgICByYyA9 IGRlY29kZV9wYWdlc19yZWNvcmQoY3R4LCBwYWdlcywgJnBmbnMsICZ0eXBlcywgJnBhZ2VzX29m X2RhdGEpOworICAgIGlmICggcmMgKQorICAgICAgICBnb3RvIGVycjsKKwogICAgIGlmICggcmVj LT5sZW5ndGggIT0gKHNpemVvZigqcGFnZXMpICsKICAgICAgICAgICAgICAgICAgICAgICAgICAo c2l6ZW9mKHVpbnQ2NF90KSAqIHBhZ2VzLT5jb3VudCkgKwogICAgICAgICAgICAgICAgICAgICAg ICAgIChQQUdFX1NJWkUgKiBwYWdlc19vZl9kYXRhKSkgKQpkaWZmIC0tZ2l0IGEvdG9vbHMvbGli eGMveGNfc3Jfc2F2ZS5jIGIvdG9vbHMvbGlieGMveGNfc3Jfc2F2ZS5jCmluZGV4IDg2ZjY5MDMu Ljc5N2FlYzUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhjL3hjX3NyX3NhdmUuYworKysgYi90b29s cy9saWJ4Yy94Y19zcl9zYXZlLmMKQEAgLTgzLDcgKzgzLDcgQEAgc3RhdGljIGludCB3cml0ZV9i YXRjaChzdHJ1Y3QgeGNfc3JfY29udGV4dCAqY3R4KQogICAgIHZvaWQgKnBhZ2UsICpvcmlnX3Bh Z2U7CiAgICAgdWludDY0X3QgKnJlY19wZm5zID0gTlVMTDsKICAgICBzdHJ1Y3QgaW92ZWMgKmlv diA9IE5VTEw7IGludCBpb3ZjbnQgPSAwOwotICAgIHN0cnVjdCB4Y19zcl9yZWNfcGFnZV9kYXRh X2hlYWRlciBoZHIgPSB7IDAgfTsKKyAgICBzdHJ1Y3QgeGNfc3JfcmVjX3BhZ2VzX2hlYWRlciBo ZHIgPSB7IDAgfTsKICAgICBzdHJ1Y3QgeGNfc3JfcmVjb3JkIHJlYyA9CiAgICAgewogICAgICAg ICAudHlwZSA9IFJFQ19UWVBFX1BBR0VfREFUQSwKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hj X3NyX3N0cmVhbV9mb3JtYXQuaCBiL3Rvb2xzL2xpYnhjL3hjX3NyX3N0cmVhbV9mb3JtYXQuaApp bmRleCAzMjkxYjI1Li4zMjQwMGIyIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy94Y19zcl9zdHJl YW1fZm9ybWF0LmgKKysrIGIvdG9vbHMvbGlieGMveGNfc3Jfc3RyZWFtX2Zvcm1hdC5oCkBAIC04 MCwxNSArODAsMTUgQEAgc3RydWN0IHhjX3NyX3JoZHIKICNkZWZpbmUgUkVDX1RZUEVfT1BUSU9O QUwgICAgICAgICAgICAgMHg4MDAwMDAwMFUKIAogLyogUEFHRV9EQVRBICovCi1zdHJ1Y3QgeGNf c3JfcmVjX3BhZ2VfZGF0YV9oZWFkZXIKK3N0cnVjdCB4Y19zcl9yZWNfcGFnZXNfaGVhZGVyCiB7 CiAgICAgdWludDMyX3QgY291bnQ7CiAgICAgdWludDMyX3QgX3JlczE7CiAgICAgdWludDY0X3Qg cGZuWzBdOwogfTsKIAotI2RlZmluZSBQQUdFX0RBVEFfUEZOX01BU0sgIDB4MDAwZmZmZmZmZmZm ZmZmZlVMTAotI2RlZmluZSBQQUdFX0RBVEFfVFlQRV9NQVNLIDB4ZjAwMDAwMDAwMDAwMDAwMFVM TAorI2RlZmluZSBSRUNfUEZJTkZPX1BGTl9NQVNLICAweDAwMGZmZmZmZmZmZmZmZmZVTEwKKyNk ZWZpbmUgUkVDX1BGSU5GT19UWVBFX01BU0sgMHhmMDAwMDAwMDAwMDAwMDAwVUxMCiAKIC8qIFg4 Nl9QVl9JTkZPICovCiBzdHJ1Y3QgeGNfc3JfcmVjX3g4Nl9wdl9pbmZvCi0tIAoyLjcuNAoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=