From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v4 11/12] xenstore: add small default data buffer to internal struct Date: Mon, 5 Dec 2016 08:48:52 +0100 Message-ID: <20161205074853.13268-12-jgross@suse.com> References: <20161205074853.13268-1-jgross@suse.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 1cDo1S-0003Yp-T0 for xen-devel@lists.xenproject.org; Mon, 05 Dec 2016 07:49:14 +0000 In-Reply-To: <20161205074853.13268-1-jgross@suse.com> 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: Juergen Gross , sstabellini@kernel.org, wei.liu2@citrix.com, George.Dunlap@eu.citrix.com, andrew.cooper3@citrix.com, ian.jackson@eu.citrix.com, tim@xen.org, jbeulich@suse.com List-Id: xen-devel@lists.xenproject.org SW5zdGVhZCBvZiBhbHdheXMgYWxsb2NhdGluZyBhIGRhdGEgYnVmZmVyIGZvciBpbmNvbWluZyBv ciBvdXRnb2luZwp4ZW5zdG9yZSB3aXJlIGRhdGEgYWRkIGEgc21hbGwgYnVmZmVyIHRvIHRoZSBi dWZmZXJlZF9kYXRhIHN0cnVjdHVyZQpvZiB4ZW5zdG9yZWQuIFRoaXMgaGFzIHRoZSBhZHZhbnRh Z2UgdGhhdCBlc3BlY2lhbGx5IHNlbmRpbmcgc2ltcGxlCnJlc3BvbnNlIG1lc3NhZ2VzIGxpa2Ug ZXJyb3JzIG9yICJPSyIgd2lsbCBubyBsb25nZXIgbmVlZCBhbGxvY2F0aW5nCmEgZGF0YSBidWZm ZXIuIFRoaXMgcmVxdWlyZXMgYWRkaW5nIGEgbWVtb3J5IGNvbnRleHQgd2hlcmUgdGhlCmFsbG9j YXRlZCBidWZmZXIgd2FzIHVzZWQgZm9yIHRoYXQgcHVycG9zZS4KCkluIG9yZGVyIHRvIGF2b2lk IGFsbG9jYXRpbmcgYSBuZXcgYnVmZmVyZWRfZGF0YSBzdHJ1Y3R1cmUgZm9yIGVhY2gKcmVzcG9u c2UgcmV1c2UgdGhlIHN0cnVjdHVyZSBvZiB0aGUgb3JpZ2luYWwgcmVxdWVzdC4gVGhpcyBpbiB0 dXJuCndpbGwgYXZvaWQgYW55IG5ldyBtZW1vcnkgYWxsb2NhdGlvbnMgZm9yIHNlbmRpbmcgZS5n LiBhbiBFTk9NRU0KcmVzcG9uc2UgbWFraW5nIGl0IHBvc3NpYmxlIHRvIHNlbmQgaXQgYXQgYWxs LiBUbyBkbyB0aGlzIHRoZQphbGxvY2F0aW9uIG9mIHRoZSBidWZmZXJlZF9kYXRhIHN0cnVjdHVy ZSBmb3IgdGhlIGluY29taW5nIHJlcXVlc3QKbXVzdCBiZSBkb25lIHdoZW4gYSBuZXcgcmVxdWVz dCBpcyByZWNvZ25pemVkIGluc3RlYWQgb2YgZG9pbmcgaXQKd2hlbiBhY2NlcHRpbmcgYSBuZXcg Y29ubmVjdC4KClNpZ25lZC1vZmYtYnk6IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0BzdXNlLmNvbT4K QWNrZWQtYnk6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+Ci0tLQogdG9vbHMveGVuc3Rv cmUveGVuc3RvcmVkX2NvcmUuYyAgICAgICAgfCA4MCArKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tCiB0b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfY29yZS5oICAgICAgICB8ICA2ICsr LQogdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2RvbWFpbi5jICAgICAgfCAgNCArLQogdG9vbHMv eGVuc3RvcmUveGVuc3RvcmVkX3RyYW5zYWN0aW9uLmMgfCAgNCArLQogdG9vbHMveGVuc3RvcmUv eGVuc3RvcmVkX3dhdGNoLmMgICAgICAgfCAgNCArLQogNSBmaWxlcyBjaGFuZ2VkLCA1NSBpbnNl cnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90b29scy94ZW5zdG9yZS94 ZW5zdG9yZWRfY29yZS5jIGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvcmUuYwppbmRleCBh MTE4NDU4Li42NzBhZWQ5IDEwMDY0NAotLS0gYS90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfY29y ZS5jCisrKyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb3JlLmMKQEAgLTY0NywxNyArNjQ3 LDIwIEBAIHZvaWQgc2VuZF9yZXBseShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgZW51bSB4c2Rf c29ja21zZ190eXBlIHR5cGUsCiAJCXJldHVybjsKIAl9CiAKLQkvKiBNZXNzYWdlIGlzIGEgY2hp bGQgb2YgdGhlIGNvbm5lY3Rpb24gY29udGV4dCBmb3IgYXV0by1jbGVhbnVwLiAqLwotCWJkYXRh ID0gbmV3X2J1ZmZlcihjb25uKTsKLQliZGF0YS0+YnVmZmVyID0gdGFsbG9jX2FycmF5KGJkYXRh LCBjaGFyLCBsZW4pOwotCi0JLyogRWNobyByZXF1ZXN0IGhlYWRlciBpbiByZXBseSB1bmxlc3Mg dGhpcyBpcyBhbiBhc3luYyB3YXRjaCBldmVudC4gKi8KKwkvKiBSZXBsaWVzIHJldXNlIHRoZSBy ZXF1ZXN0IGJ1ZmZlciwgZXZlbnRzIG5lZWQgYSBuZXcgb25lLiAqLwogCWlmICh0eXBlICE9IFhT X1dBVENIX0VWRU5UKSB7Ci0JCW1lbWNweSgmYmRhdGEtPmhkci5tc2csICZjb25uLT5pbi0+aGRy Lm1zZywKLQkJICAgICAgIHNpemVvZihzdHJ1Y3QgeHNkX3NvY2ttc2cpKTsKKwkJYmRhdGEgPSBj b25uLT5pbjsKKwkJYmRhdGEtPmluaGRyID0gdHJ1ZTsKKwkJYmRhdGEtPnVzZWQgPSAwOworCQlj b25uLT5pbiA9IE5VTEw7CiAJfSBlbHNlIHsKLQkJbWVtc2V0KCZiZGF0YS0+aGRyLm1zZywgMCwg c2l6ZW9mKHN0cnVjdCB4c2Rfc29ja21zZykpOworCQkvKiBNZXNzYWdlIGlzIGEgY2hpbGQgb2Yg dGhlIGNvbm5lY3Rpb24gZm9yIGF1dG8tY2xlYW51cC4gKi8KKwkJYmRhdGEgPSBuZXdfYnVmZmVy KGNvbm4pOwogCX0KKwlpZiAobGVuIDw9IERFRkFVTFRfQlVGRkVSX1NJWkUpCisJCWJkYXRhLT5i dWZmZXIgPSBiZGF0YS0+ZGVmYXVsdF9idWZmZXI7CisJZWxzZQorCQliZGF0YS0+YnVmZmVyID0g dGFsbG9jX2FycmF5KGJkYXRhLCBjaGFyLCBsZW4pOwogCiAJLyogVXBkYXRlIHJlbGV2YW50IGhl YWRlciBmaWVsZHMgYW5kIGZpbGwgaW4gdGhlIG1lc3NhZ2UgYm9keS4gKi8KIAliZGF0YS0+aGRy Lm1zZy50eXBlID0gdHlwZTsKQEAgLTczMyw3ICs3MzYsNyBAQCBzdGF0aWMgY2hhciAqcGVybXNf dG9fc3RyaW5ncyhjb25zdCB2b2lkICpjdHgsCiAJcmV0dXJuIHN0cmluZ3M7CiB9CiAKLWNoYXIg KmNhbm9uaWNhbGl6ZShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgY29uc3QgY2hhciAqbm9kZSkK K2NoYXIgKmNhbm9uaWNhbGl6ZShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgY29uc3Qgdm9pZCAq Y3R4LCBjb25zdCBjaGFyICpub2RlKQogewogCWNvbnN0IGNoYXIgKnByZWZpeDsKIApAQCAtNzQx LDcgKzc0NCw3IEBAIGNoYXIgKmNhbm9uaWNhbGl6ZShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwg Y29uc3QgY2hhciAqbm9kZSkKIAkJcmV0dXJuIChjaGFyICopbm9kZTsKIAlwcmVmaXggPSBnZXRf aW1wbGljaXRfcGF0aChjb25uKTsKIAlpZiAocHJlZml4KQotCQlyZXR1cm4gdGFsbG9jX2FzcHJp bnRmKG5vZGUsICIlcy8lcyIsIHByZWZpeCwgbm9kZSk7CisJCXJldHVybiB0YWxsb2NfYXNwcmlu dGYoY3R4LCAiJXMvJXMiLCBwcmVmaXgsIG5vZGUpOwogCXJldHVybiAoY2hhciAqKW5vZGU7CiB9 CiAKQEAgLTc1NSw3ICs3NTgsNyBAQCBzdGF0aWMgc3RydWN0IG5vZGUgKmdldF9ub2RlX2Nhbm9u aWNhbGl6ZWQoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAKIAlpZiAoIWNhbm9uaWNhbF9uYW1l KQogCQljYW5vbmljYWxfbmFtZSA9ICZ0bXBfbmFtZTsKLQkqY2Fub25pY2FsX25hbWUgPSBjYW5v bmljYWxpemUoY29ubiwgbmFtZSk7CisJKmNhbm9uaWNhbF9uYW1lID0gY2Fub25pY2FsaXplKGNv bm4sIGN0eCwgbmFtZSk7CiAJcmV0dXJuIGdldF9ub2RlKGNvbm4sIGN0eCwgKmNhbm9uaWNhbF9u YW1lLCBwZXJtKTsKIH0KIApAQCAtODY1LDE3ICs4NjgsMTggQEAgc3RhdGljIGNoYXIgKmJhc2Vu YW1lKGNvbnN0IGNoYXIgKm5hbWUpCiAJcmV0dXJuIHN0cnJjaHIobmFtZSwgJy8nKSArIDE7CiB9 CiAKLXN0YXRpYyBzdHJ1Y3Qgbm9kZSAqY29uc3RydWN0X25vZGUoc3RydWN0IGNvbm5lY3Rpb24g KmNvbm4sIGNvbnN0IGNoYXIgKm5hbWUpCitzdGF0aWMgc3RydWN0IG5vZGUgKmNvbnN0cnVjdF9u b2RlKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBjb25zdCB2b2lkICpjdHgsCisJCQkJICAgY29u c3QgY2hhciAqbmFtZSkKIHsKIAljb25zdCBjaGFyICpiYXNlOwogCXVuc2lnbmVkIGludCBiYXNl bGVuOwogCXN0cnVjdCBub2RlICpwYXJlbnQsICpub2RlOwotCWNoYXIgKmNoaWxkcmVuLCAqcGFy ZW50bmFtZSA9IGdldF9wYXJlbnQobmFtZSwgbmFtZSk7CisJY2hhciAqY2hpbGRyZW4sICpwYXJl bnRuYW1lID0gZ2V0X3BhcmVudChjdHgsIG5hbWUpOwogCiAJLyogSWYgcGFyZW50IGRvZXNuJ3Qg ZXhpc3QsIGNyZWF0ZSBpdC4gKi8KIAlwYXJlbnQgPSByZWFkX25vZGUoY29ubiwgcGFyZW50bmFt ZSwgcGFyZW50bmFtZSk7CiAJaWYgKCFwYXJlbnQpCi0JCXBhcmVudCA9IGNvbnN0cnVjdF9ub2Rl KGNvbm4sIHBhcmVudG5hbWUpOworCQlwYXJlbnQgPSBjb25zdHJ1Y3Rfbm9kZShjb25uLCBjdHgs IHBhcmVudG5hbWUpOwogCWlmICghcGFyZW50KQogCQlyZXR1cm4gTlVMTDsKIApAQCAtODg1LDE0 ICs4ODksMTQgQEAgc3RhdGljIHN0cnVjdCBub2RlICpjb25zdHJ1Y3Rfbm9kZShzdHJ1Y3QgY29u bmVjdGlvbiAqY29ubiwgY29uc3QgY2hhciAqbmFtZSkKIAkvKiBBZGQgY2hpbGQgdG8gcGFyZW50 LiAqLwogCWJhc2UgPSBiYXNlbmFtZShuYW1lKTsKIAliYXNlbGVuID0gc3RybGVuKGJhc2UpICsg MTsKLQljaGlsZHJlbiA9IHRhbGxvY19hcnJheShuYW1lLCBjaGFyLCBwYXJlbnQtPmNoaWxkbGVu ICsgYmFzZWxlbik7CisJY2hpbGRyZW4gPSB0YWxsb2NfYXJyYXkoY3R4LCBjaGFyLCBwYXJlbnQt PmNoaWxkbGVuICsgYmFzZWxlbik7CiAJbWVtY3B5KGNoaWxkcmVuLCBwYXJlbnQtPmNoaWxkcmVu LCBwYXJlbnQtPmNoaWxkbGVuKTsKIAltZW1jcHkoY2hpbGRyZW4gKyBwYXJlbnQtPmNoaWxkbGVu LCBiYXNlLCBiYXNlbGVuKTsKIAlwYXJlbnQtPmNoaWxkcmVuID0gY2hpbGRyZW47CiAJcGFyZW50 LT5jaGlsZGxlbiArPSBiYXNlbGVuOwogCiAJLyogQWxsb2NhdGUgbm9kZSAqLwotCW5vZGUgPSB0 YWxsb2MobmFtZSwgc3RydWN0IG5vZGUpOworCW5vZGUgPSB0YWxsb2MoY3R4LCBzdHJ1Y3Qgbm9k ZSk7CiAJbm9kZS0+dGRiID0gdGRiX2NvbnRleHQoY29ubik7CiAJbm9kZS0+bmFtZSA9IHRhbGxv Y19zdHJkdXAobm9kZSwgbmFtZSk7CiAKQEAgLTkyNiwxMyArOTMwLDEzIEBAIHN0YXRpYyBpbnQg ZGVzdHJveV9ub2RlKHZvaWQgKl9ub2RlKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgc3RydWN0 IG5vZGUgKmNyZWF0ZV9ub2RlKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCAKK3N0YXRpYyBzdHJ1 Y3Qgbm9kZSAqY3JlYXRlX25vZGUoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIGNvbnN0IHZvaWQg KmN0eCwKIAkJCQljb25zdCBjaGFyICpuYW1lLAogCQkJCXZvaWQgKmRhdGEsIHVuc2lnbmVkIGlu dCBkYXRhbGVuKQogewogCXN0cnVjdCBub2RlICpub2RlLCAqaTsKIAotCW5vZGUgPSBjb25zdHJ1 Y3Rfbm9kZShjb25uLCBuYW1lKTsKKwlub2RlID0gY29uc3RydWN0X25vZGUoY29ubiwgY3R4LCBu YW1lKTsKIAlpZiAoIW5vZGUpCiAJCXJldHVybiBOVUxMOwogCkBAIC05NzUsNyArOTc5LDggQEAg c3RhdGljIGludCBkb193cml0ZShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZl cmVkX2RhdGEgKmluKQogCQkvKiBObyBwZXJtaXNzaW9ucywgaW52YWxpZCBpbnB1dD8gKi8KIAkJ aWYgKGVycm5vICE9IEVOT0VOVCkKIAkJCXJldHVybiBlcnJubzsKLQkJbm9kZSA9IGNyZWF0ZV9u b2RlKGNvbm4sIG5hbWUsIGluLT5idWZmZXIgKyBvZmZzZXQsIGRhdGFsZW4pOworCQlub2RlID0g Y3JlYXRlX25vZGUoY29ubiwgaW4sIG5hbWUsIGluLT5idWZmZXIgKyBvZmZzZXQsCisJCQkJICAg ZGF0YWxlbik7CiAJCWlmICghbm9kZSkKIAkJCXJldHVybiBlcnJubzsKIAl9IGVsc2UgewpAQCAt MTAwNCw3ICsxMDA5LDcgQEAgc3RhdGljIGludCBkb19ta2RpcihzdHJ1Y3QgY29ubmVjdGlvbiAq Y29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogCQkvKiBObyBwZXJtaXNzaW9ucz8gKi8K IAkJaWYgKGVycm5vICE9IEVOT0VOVCkKIAkJCXJldHVybiBlcnJubzsKLQkJbm9kZSA9IGNyZWF0 ZV9ub2RlKGNvbm4sIG5hbWUsIE5VTEwsIDApOworCQlub2RlID0gY3JlYXRlX25vZGUoY29ubiwg aW4sIG5hbWUsIE5VTEwsIDApOwogCQlpZiAoIW5vZGUpCiAJCQlyZXR1cm4gZXJybm87CiAJCWZp cmVfd2F0Y2hlcyhjb25uLCBpbiwgbmFtZSwgZmFsc2UpOwpAQCAtMTA3NSwxMiArMTA4MCwxMyBA QCBzdGF0aWMgYm9vbCBkZWxldGVfY2hpbGQoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiB9CiAK IAotc3RhdGljIGludCBfcm0oc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBub2RlICpu b2RlLCBjb25zdCBjaGFyICpuYW1lKQorc3RhdGljIGludCBfcm0oc3RydWN0IGNvbm5lY3Rpb24g KmNvbm4sIGNvbnN0IHZvaWQgKmN0eCwgc3RydWN0IG5vZGUgKm5vZGUsCisJICAgICAgIGNvbnN0 IGNoYXIgKm5hbWUpCiB7CiAJLyogRGVsZXRlIGZyb20gcGFyZW50IGZpcnN0LCB0aGVuIGlmIHdl IGNyYXNoLCB0aGUgd29yc3QgdGhhdCBjYW4KIAkgICBoYXBwZW4gaXMgdGhlIGNoaWxkIHdpbGwg Y29udGludWUgdG8gdGFrZSB1cCBzcGFjZSwgYnV0IHdpbGwKIAkgICBvdGhlcndpc2UgYmUgdW5y ZWFjaGFibGUuICovCi0Jc3RydWN0IG5vZGUgKnBhcmVudCA9IHJlYWRfbm9kZShjb25uLCBuYW1l LCBnZXRfcGFyZW50KG5hbWUsIG5hbWUpKTsKKwlzdHJ1Y3Qgbm9kZSAqcGFyZW50ID0gcmVhZF9u b2RlKGNvbm4sIGN0eCwgZ2V0X3BhcmVudChjdHgsIG5hbWUpKTsKIAlpZiAoIXBhcmVudCkKIAkJ cmV0dXJuIEVJTlZBTDsKIApAQCAtMTA5Nyw3ICsxMTAzLDcgQEAgc3RhdGljIHZvaWQgaW50ZXJu YWxfcm0oY29uc3QgY2hhciAqbmFtZSkKIAljaGFyICp0bmFtZSA9IHRhbGxvY19zdHJkdXAoTlVM TCwgbmFtZSk7CiAJc3RydWN0IG5vZGUgKm5vZGUgPSByZWFkX25vZGUoTlVMTCwgdG5hbWUsIHRu YW1lKTsKIAlpZiAobm9kZSkKLQkJX3JtKE5VTEwsIG5vZGUsIHRuYW1lKTsKKwkJX3JtKE5VTEws IHRuYW1lLCBub2RlLCB0bmFtZSk7CiAJdGFsbG9jX2ZyZWUobm9kZSk7CiAJdGFsbG9jX2ZyZWUo dG5hbWUpOwogfQpAQCAtMTEyOCw3ICsxMTM0LDcgQEAgc3RhdGljIGludCBkb19ybShzdHJ1Y3Qg Y29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogCWlmIChzdHJlcShu YW1lLCAiLyIpKQogCQlyZXR1cm4gRUlOVkFMOwogCi0JcmV0ID0gX3JtKGNvbm4sIG5vZGUsIG5h bWUpOworCXJldCA9IF9ybShjb25uLCBpbiwgbm9kZSwgbmFtZSk7CiAJaWYgKHJldCkKIAkJcmV0 dXJuIHJldDsKIApAQCAtMTMwMSw4ICsxMzA3LDcgQEAgc3RhdGljIHZvaWQgY29uc2lkZXJfbWVz c2FnZShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubikKIAogCXByb2Nlc3NfbWVzc2FnZShjb25uLCBj b25uLT5pbik7CiAKLQl0YWxsb2NfZnJlZShjb25uLT5pbik7Ci0JY29ubi0+aW4gPSBuZXdfYnVm ZmVyKGNvbm4pOworCWFzc2VydChjb25uLT5pbiA9PSBOVUxMKTsKIH0KIAogLyogRXJyb3JzIGlu IHJlYWRpbmcgb3IgYWxsb2NhdGluZyBoZXJlIG1lYW4gd2UgZ2V0IG91dCBvZiBzeW5jLCBzbyB3 ZQpAQCAtMTMxMCw3ICsxMzE1LDE1IEBAIHN0YXRpYyB2b2lkIGNvbnNpZGVyX21lc3NhZ2Uoc3Ry dWN0IGNvbm5lY3Rpb24gKmNvbm4pCiBzdGF0aWMgdm9pZCBoYW5kbGVfaW5wdXQoc3RydWN0IGNv bm5lY3Rpb24gKmNvbm4pCiB7CiAJaW50IGJ5dGVzOwotCXN0cnVjdCBidWZmZXJlZF9kYXRhICpp biA9IGNvbm4tPmluOworCXN0cnVjdCBidWZmZXJlZF9kYXRhICppbjsKKworCWlmICghY29ubi0+ aW4pIHsKKwkJY29ubi0+aW4gPSBuZXdfYnVmZmVyKGNvbm4pOworCQkvKiBJbiBjYXNlIG9mIG5v IG1lbW9yeSBqdXN0IHRyeSBpdCBuZXh0IHRpbWUgYWdhaW4uICovCisJCWlmICghY29ubi0+aW4p CisJCQlyZXR1cm47CisJfQorCWluID0gY29ubi0+aW47CiAKIAkvKiBOb3QgZmluaXNoZWQgaGVh ZGVyIHlldD8gKi8KIAlpZiAoaW4tPmluaGRyKSB7CkBAIC0xMzI4LDcgKzEzNDEsMTAgQEAgc3Rh dGljIHZvaWQgaGFuZGxlX2lucHV0KHN0cnVjdCBjb25uZWN0aW9uICpjb25uKQogCQkJZ290byBi YWRfY2xpZW50OwogCQl9CiAKLQkJaW4tPmJ1ZmZlciA9IHRhbGxvY19hcnJheShpbiwgY2hhciwg aW4tPmhkci5tc2cubGVuKTsKKwkJaWYgKGluLT5oZHIubXNnLmxlbiA8PSBERUZBVUxUX0JVRkZF Ul9TSVpFKQorCQkJaW4tPmJ1ZmZlciA9IGluLT5kZWZhdWx0X2J1ZmZlcjsKKwkJZWxzZQorCQkJ aW4tPmJ1ZmZlciA9IHRhbGxvY19hcnJheShpbiwgY2hhciwgaW4tPmhkci5tc2cubGVuKTsKIAkJ aWYgKCFpbi0+YnVmZmVyKQogCQkJZ290byBiYWRfY2xpZW50OwogCQlpbi0+dXNlZCA9IDA7CkBA IC0xMzc3LDEyICsxMzkzLDYgQEAgc3RydWN0IGNvbm5lY3Rpb24gKm5ld19jb25uZWN0aW9uKGNv bm53cml0ZWZuX3QgKndyaXRlLCBjb25ucmVhZGZuX3QgKnJlYWQpCiAJSU5JVF9MSVNUX0hFQUQo Jm5ldy0+d2F0Y2hlcyk7CiAJSU5JVF9MSVNUX0hFQUQoJm5ldy0+dHJhbnNhY3Rpb25fbGlzdCk7 CiAKLQluZXctPmluID0gbmV3X2J1ZmZlcihuZXcpOwotCWlmIChuZXctPmluID09IE5VTEwpIHsK LQkJdGFsbG9jX2ZyZWUobmV3KTsKLQkJcmV0dXJuIE5VTEw7Ci0JfQotCiAJbGlzdF9hZGRfdGFp bCgmbmV3LT5saXN0LCAmY29ubmVjdGlvbnMpOwogCXRhbGxvY19zZXRfZGVzdHJ1Y3RvcihuZXcs IGRlc3Ryb3lfY29ubik7CiAJdHJhY2VfY3JlYXRlKG5ldywgImNvbm5lY3Rpb24iKTsKQEAgLTE1 MjIsNyArMTUzMiw3IEBAIHN0YXRpYyB2b2lkIHNldHVwX3N0cnVjdHVyZSh2b2lkKQogCiAJCWlm IChyZW1vdmVfbG9jYWwpIHsKIAkJCWludGVybmFsX3JtKCIvbG9jYWwiKTsKLQkJCWNyZWF0ZV9u b2RlKE5VTEwsIHRsb2NhbCwgTlVMTCwgMCk7CisJCQljcmVhdGVfbm9kZShOVUxMLCBOVUxMLCB0 bG9jYWwsIE5VTEwsIDApOwogCiAJCQljaGVja19zdG9yZSgpOwogCQl9CmRpZmYgLS1naXQgYS90 b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfY29yZS5oIGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVk X2NvcmUuaAppbmRleCAzODcyZGFiLi5mNmE1NmY3IDEwMDY0NAotLS0gYS90b29scy94ZW5zdG9y ZS94ZW5zdG9yZWRfY29yZS5oCisrKyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb3JlLmgK QEAgLTMzLDYgKzMzLDkgQEAKICNpbmNsdWRlICJsaXN0LmgiCiAjaW5jbHVkZSAidGRiLmgiCiAK Ky8qIERFRkFVTFRfQlVGRkVSX1NJWkUgc2hvdWxkIGJlIGxhcmdlIGVub3VnaCBmb3IgZWFjaCBl cnJubyBzdHJpbmcuICovCisjZGVmaW5lIERFRkFVTFRfQlVGRkVSX1NJWkUgMTYKKwogc3RydWN0 IGJ1ZmZlcmVkX2RhdGEKIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGxpc3Q7CkBAIC01MCw2ICs1Myw3 IEBAIHN0cnVjdCBidWZmZXJlZF9kYXRhCiAKIAkvKiBUaGUgYWN0dWFsIGRhdGEuICovCiAJY2hh ciAqYnVmZmVyOworCWNoYXIgZGVmYXVsdF9idWZmZXJbREVGQVVMVF9CVUZGRVJfU0laRV07CiB9 OwogCiBzdHJ1Y3QgY29ubmVjdGlvbjsKQEAgLTEzOSw3ICsxNDMsNyBAQCB2b2lkIHNlbmRfcmVw bHkoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIGVudW0geHNkX3NvY2ttc2dfdHlwZSB0eXBlLAog dm9pZCBzZW5kX2FjayhzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgZW51bSB4c2Rfc29ja21zZ190 eXBlIHR5cGUpOwogCiAvKiBDYW5vbmljYWxpemUgdGhpcyBwYXRoIGlmIHBvc3NpYmxlLiAqLwot Y2hhciAqY2Fub25pY2FsaXplKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBjb25zdCBjaGFyICpu b2RlKTsKK2NoYXIgKmNhbm9uaWNhbGl6ZShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgY29uc3Qg dm9pZCAqY3R4LCBjb25zdCBjaGFyICpub2RlKTsKIAogLyogR2V0IHRoaXMgbm9kZSwgY2hlY2tp bmcgd2UgaGF2ZSBwZXJtaXNzaW9ucy4gKi8KIHN0cnVjdCBub2RlICpnZXRfbm9kZShzdHJ1Y3Qg Y29ubmVjdGlvbiAqY29ubiwKZGlmZiAtLWdpdCBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9k b21haW4uYyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9kb21haW4uYwppbmRleCAyNDQzYjA4 Li5mZWZlZDVlIDEwMDY0NAotLS0gYS90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfZG9tYWluLmMK KysrIGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2RvbWFpbi5jCkBAIC0zMjksOSArMzI5LDcg QEAgc3RhdGljIHZvaWQgZG9tYWluX2Nvbm5fcmVzZXQoc3RydWN0IGRvbWFpbiAqZG9tYWluKQog CQl0YWxsb2NfZnJlZShvdXQpOwogCX0KIAotCXRhbGxvY19mcmVlKGNvbm4tPmluLT5idWZmZXIp OwotCW1lbXNldChjb25uLT5pbiwgMCwgc2l6ZW9mKCpjb25uLT5pbikpOwotCWNvbm4tPmluLT5p bmhkciA9IHRydWU7CisJdGFsbG9jX2ZyZWUoY29ubi0+aW4pOwogCiAJZG9tYWluLT5pbnRlcmZh Y2UtPnJlcV9jb25zID0gZG9tYWluLT5pbnRlcmZhY2UtPnJlcV9wcm9kID0gMDsKIAlkb21haW4t PmludGVyZmFjZS0+cnNwX2NvbnMgPSBkb21haW4tPmludGVyZmFjZS0+cnNwX3Byb2QgPSAwOwpk aWZmIC0tZ2l0IGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX3RyYW5zYWN0aW9uLmMgYi90b29s cy94ZW5zdG9yZS94ZW5zdG9yZWRfdHJhbnNhY3Rpb24uYwppbmRleCA0MjNmZDNlLi5kMzE0Y2Q1 IDEwMDY0NAotLS0gYS90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfdHJhbnNhY3Rpb24uYworKysg Yi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfdHJhbnNhY3Rpb24uYwpAQCAtMjA5LDggKzIwOSw4 IEBAIGludCBkb190cmFuc2FjdGlvbl9lbmQoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVj dCBidWZmZXJlZF9kYXRhICppbikKIAlsaXN0X2RlbCgmdHJhbnMtPmxpc3QpOwogCWNvbm4tPnRy YW5zYWN0aW9uX3N0YXJ0ZWQtLTsKIAotCS8qIEF0dGFjaCB0cmFuc2FjdGlvbiB0byBhcmcgZm9y IGF1dG8tY2xlYW51cCAqLwotCXRhbGxvY19zdGVhbChhcmcsIHRyYW5zKTsKKwkvKiBBdHRhY2gg dHJhbnNhY3Rpb24gdG8gaW4gZm9yIGF1dG8tY2xlYW51cCAqLworCXRhbGxvY19zdGVhbChpbiwg dHJhbnMpOwogCiAJaWYgKHN0cmVxKGFyZywgIlQiKSkgewogCQkvKiBGSVhNRTogTWVyZ2UsIHJh dGhlciBmYWlsaW5nIG9uIGFueSBjaGFuZ2UuICovCmRpZmYgLS1naXQgYS90b29scy94ZW5zdG9y ZS94ZW5zdG9yZWRfd2F0Y2guYyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF93YXRjaC5jCmlu ZGV4IGUxMTQ2ZWQuLjk0MjUxZGIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3Jl ZF93YXRjaC5jCisrKyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF93YXRjaC5jCkBAIC0xNjQs NyArMTY0LDcgQEAgaW50IGRvX3dhdGNoKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3Qg YnVmZmVyZWRfZGF0YSAqaW4pCiAJCS8qIGNoZWNrIGlmIHZhbGlkIGV2ZW50ICovCiAJfSBlbHNl IHsKIAkJcmVsYXRpdmUgPSAhc3Ryc3RhcnRzKHZlY1swXSwgIi8iKTsKLQkJdmVjWzBdID0gY2Fu b25pY2FsaXplKGNvbm4sIHZlY1swXSk7CisJCXZlY1swXSA9IGNhbm9uaWNhbGl6ZShjb25uLCBp biwgdmVjWzBdKTsKIAkJaWYgKCFpc192YWxpZF9ub2RlbmFtZSh2ZWNbMF0pKQogCQkJcmV0dXJu IEVJTlZBTDsKIAl9CkBAIC0yMDksNyArMjA5LDcgQEAgaW50IGRvX3Vud2F0Y2goc3RydWN0IGNv bm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIAlpZiAoZ2V0X3N0cmlu Z3MoaW4sIHZlYywgQVJSQVlfU0laRSh2ZWMpKSAhPSBBUlJBWV9TSVpFKHZlYykpCiAJCXJldHVy biBFSU5WQUw7CiAKLQlub2RlID0gY2Fub25pY2FsaXplKGNvbm4sIHZlY1swXSk7CisJbm9kZSA9 IGNhbm9uaWNhbGl6ZShjb25uLCBpbiwgdmVjWzBdKTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHdh dGNoLCAmY29ubi0+d2F0Y2hlcywgbGlzdCkgewogCQlpZiAoc3RyZXEod2F0Y2gtPm5vZGUsIG5v ZGUpICYmIHN0cmVxKHdhdGNoLT50b2tlbiwgdmVjWzFdKSkgewogCQkJbGlzdF9kZWwoJndhdGNo LT5saXN0KTsKLS0gCjIuMTAuMgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5v cmcKaHR0cHM6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=