From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH v3 11/12] xenstore: add small default data buffer to internal struct Date: Fri, 11 Nov 2016 09:00:09 +0100 Message-ID: <1478851210-6251-12-git-send-email-jgross@suse.com> References: <1478851210-6251-1-git-send-email-jgross@suse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1478851210-6251-1-git-send-email-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.xen.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 LS0tCiB0b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfY29yZS5jICAgICAgICB8IDgwICsrKysrKysr KysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIHRvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb3Jl LmggICAgICAgIHwgIDYgKystCiB0b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfZG9tYWluLmMgICAg ICB8ICA0ICstCiB0b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfdHJhbnNhY3Rpb24uYyB8ICA0ICst CiB0b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfd2F0Y2guYyAgICAgICB8ICA0ICstCiA1IGZpbGVz IGNoYW5nZWQsIDU1IGluc2VydGlvbnMoKyksIDQzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb3JlLmMgYi90b29scy94ZW5zdG9yZS94ZW5zdG9y ZWRfY29yZS5jCmluZGV4IGM3YTdjNDUuLmY4OWE2MzYgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hlbnN0 b3JlL3hlbnN0b3JlZF9jb3JlLmMKKysrIGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvcmUu YwpAQCAtNjQ3LDE3ICs2NDcsMjAgQEAgdm9pZCBzZW5kX3JlcGx5KHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLCBlbnVtIHhzZF9zb2NrbXNnX3R5cGUgdHlwZSwKIAkJcmV0dXJuOwogCX0KIAotCS8q IE1lc3NhZ2UgaXMgYSBjaGlsZCBvZiB0aGUgY29ubmVjdGlvbiBjb250ZXh0IGZvciBhdXRvLWNs ZWFudXAuICovCi0JYmRhdGEgPSBuZXdfYnVmZmVyKGNvbm4pOwotCWJkYXRhLT5idWZmZXIgPSB0 YWxsb2NfYXJyYXkoYmRhdGEsIGNoYXIsIGxlbik7Ci0KLQkvKiBFY2hvIHJlcXVlc3QgaGVhZGVy IGluIHJlcGx5IHVubGVzcyB0aGlzIGlzIGFuIGFzeW5jIHdhdGNoIGV2ZW50LiAqLworCS8qIFJl cGxpZXMgcmV1c2UgdGhlIHJlcXVlc3QgYnVmZmVyLCBldmVudHMgbmVlZCBhIG5ldyBvbmUuICov CiAJaWYgKHR5cGUgIT0gWFNfV0FUQ0hfRVZFTlQpIHsKLQkJbWVtY3B5KCZiZGF0YS0+aGRyLm1z ZywgJmNvbm4tPmluLT5oZHIubXNnLAotCQkgICAgICAgc2l6ZW9mKHN0cnVjdCB4c2Rfc29ja21z ZykpOworCQliZGF0YSA9IGNvbm4tPmluOworCQliZGF0YS0+aW5oZHIgPSB0cnVlOworCQliZGF0 YS0+dXNlZCA9IDA7CisJCWNvbm4tPmluID0gTlVMTDsKIAl9IGVsc2UgewotCQltZW1zZXQoJmJk YXRhLT5oZHIubXNnLCAwLCBzaXplb2Yoc3RydWN0IHhzZF9zb2NrbXNnKSk7CisJCS8qIE1lc3Nh Z2UgaXMgYSBjaGlsZCBvZiB0aGUgY29ubmVjdGlvbiBmb3IgYXV0by1jbGVhbnVwLiAqLworCQli ZGF0YSA9IG5ld19idWZmZXIoY29ubik7CiAJfQorCWlmIChsZW4gPD0gREVGQVVMVF9CVUZGRVJf U0laRSkKKwkJYmRhdGEtPmJ1ZmZlciA9IGJkYXRhLT5kZWZhdWx0X2J1ZmZlcjsKKwllbHNlCisJ CWJkYXRhLT5idWZmZXIgPSB0YWxsb2NfYXJyYXkoYmRhdGEsIGNoYXIsIGxlbik7CiAKIAkvKiBV cGRhdGUgcmVsZXZhbnQgaGVhZGVyIGZpZWxkcyBhbmQgZmlsbCBpbiB0aGUgbWVzc2FnZSBib2R5 LiAqLwogCWJkYXRhLT5oZHIubXNnLnR5cGUgPSB0eXBlOwpAQCAtNzMzLDcgKzczNiw3IEBAIHN0 YXRpYyBjaGFyICpwZXJtc190b19zdHJpbmdzKGNvbnN0IHZvaWQgKmN0eCwKIAlyZXR1cm4gc3Ry aW5nczsKIH0KIAotY2hhciAqY2Fub25pY2FsaXplKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBj b25zdCBjaGFyICpub2RlKQorY2hhciAqY2Fub25pY2FsaXplKHN0cnVjdCBjb25uZWN0aW9uICpj b25uLCBjb25zdCB2b2lkICpjdHgsIGNvbnN0IGNoYXIgKm5vZGUpCiB7CiAJY29uc3QgY2hhciAq cHJlZml4OwogCkBAIC03NDEsNyArNzQ0LDcgQEAgY2hhciAqY2Fub25pY2FsaXplKHN0cnVjdCBj b25uZWN0aW9uICpjb25uLCBjb25zdCBjaGFyICpub2RlKQogCQlyZXR1cm4gKGNoYXIgKilub2Rl OwogCXByZWZpeCA9IGdldF9pbXBsaWNpdF9wYXRoKGNvbm4pOwogCWlmIChwcmVmaXgpCi0JCXJl dHVybiB0YWxsb2NfYXNwcmludGYobm9kZSwgIiVzLyVzIiwgcHJlZml4LCBub2RlKTsKKwkJcmV0 dXJuIHRhbGxvY19hc3ByaW50ZihjdHgsICIlcy8lcyIsIHByZWZpeCwgbm9kZSk7CiAJcmV0dXJu IChjaGFyICopbm9kZTsKIH0KIApAQCAtNzU1LDcgKzc1OCw3IEBAIHN0YXRpYyBzdHJ1Y3Qgbm9k ZSAqZ2V0X25vZGVfY2Fub25pY2FsaXplZChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKIAogCWlm ICghY2Fub25pY2FsX25hbWUpCiAJCWNhbm9uaWNhbF9uYW1lID0gJnRtcF9uYW1lOwotCSpjYW5v bmljYWxfbmFtZSA9IGNhbm9uaWNhbGl6ZShjb25uLCBuYW1lKTsKKwkqY2Fub25pY2FsX25hbWUg PSBjYW5vbmljYWxpemUoY29ubiwgY3R4LCBuYW1lKTsKIAlyZXR1cm4gZ2V0X25vZGUoY29ubiwg Y3R4LCAqY2Fub25pY2FsX25hbWUsIHBlcm0pOwogfQogCkBAIC04NjUsMTcgKzg2OCwxOCBAQCBz dGF0aWMgY2hhciAqYmFzZW5hbWUoY29uc3QgY2hhciAqbmFtZSkKIAlyZXR1cm4gc3RycmNocihu YW1lLCAnLycpICsgMTsKIH0KIAotc3RhdGljIHN0cnVjdCBub2RlICpjb25zdHJ1Y3Rfbm9kZShz dHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgY29uc3QgY2hhciAqbmFtZSkKK3N0YXRpYyBzdHJ1Y3Qg bm9kZSAqY29uc3RydWN0X25vZGUoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIGNvbnN0IHZvaWQg KmN0eCwKKwkJCQkgICBjb25zdCBjaGFyICpuYW1lKQogewogCWNvbnN0IGNoYXIgKmJhc2U7CiAJ dW5zaWduZWQgaW50IGJhc2VsZW47CiAJc3RydWN0IG5vZGUgKnBhcmVudCwgKm5vZGU7Ci0JY2hh ciAqY2hpbGRyZW4sICpwYXJlbnRuYW1lID0gZ2V0X3BhcmVudChuYW1lLCBuYW1lKTsKKwljaGFy ICpjaGlsZHJlbiwgKnBhcmVudG5hbWUgPSBnZXRfcGFyZW50KGN0eCwgbmFtZSk7CiAKIAkvKiBJ ZiBwYXJlbnQgZG9lc24ndCBleGlzdCwgY3JlYXRlIGl0LiAqLwogCXBhcmVudCA9IHJlYWRfbm9k ZShjb25uLCBwYXJlbnRuYW1lLCBwYXJlbnRuYW1lKTsKIAlpZiAoIXBhcmVudCkKLQkJcGFyZW50 ID0gY29uc3RydWN0X25vZGUoY29ubiwgcGFyZW50bmFtZSk7CisJCXBhcmVudCA9IGNvbnN0cnVj dF9ub2RlKGNvbm4sIGN0eCwgcGFyZW50bmFtZSk7CiAJaWYgKCFwYXJlbnQpCiAJCXJldHVybiBO VUxMOwogCkBAIC04ODUsMTQgKzg4OSwxNCBAQCBzdGF0aWMgc3RydWN0IG5vZGUgKmNvbnN0cnVj dF9ub2RlKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBjb25zdCBjaGFyICpuYW1lKQogCS8qIEFk ZCBjaGlsZCB0byBwYXJlbnQuICovCiAJYmFzZSA9IGJhc2VuYW1lKG5hbWUpOwogCWJhc2VsZW4g PSBzdHJsZW4oYmFzZSkgKyAxOwotCWNoaWxkcmVuID0gdGFsbG9jX2FycmF5KG5hbWUsIGNoYXIs IHBhcmVudC0+Y2hpbGRsZW4gKyBiYXNlbGVuKTsKKwljaGlsZHJlbiA9IHRhbGxvY19hcnJheShj dHgsIGNoYXIsIHBhcmVudC0+Y2hpbGRsZW4gKyBiYXNlbGVuKTsKIAltZW1jcHkoY2hpbGRyZW4s IHBhcmVudC0+Y2hpbGRyZW4sIHBhcmVudC0+Y2hpbGRsZW4pOwogCW1lbWNweShjaGlsZHJlbiAr IHBhcmVudC0+Y2hpbGRsZW4sIGJhc2UsIGJhc2VsZW4pOwogCXBhcmVudC0+Y2hpbGRyZW4gPSBj aGlsZHJlbjsKIAlwYXJlbnQtPmNoaWxkbGVuICs9IGJhc2VsZW47CiAKIAkvKiBBbGxvY2F0ZSBu b2RlICovCi0Jbm9kZSA9IHRhbGxvYyhuYW1lLCBzdHJ1Y3Qgbm9kZSk7CisJbm9kZSA9IHRhbGxv YyhjdHgsIHN0cnVjdCBub2RlKTsKIAlub2RlLT50ZGIgPSB0ZGJfY29udGV4dChjb25uKTsKIAlu b2RlLT5uYW1lID0gdGFsbG9jX3N0cmR1cChub2RlLCBuYW1lKTsKIApAQCAtOTI2LDEzICs5MzAs MTMgQEAgc3RhdGljIGludCBkZXN0cm95X25vZGUodm9pZCAqX25vZGUpCiAJcmV0dXJuIDA7CiB9 CiAKLXN0YXRpYyBzdHJ1Y3Qgbm9kZSAqY3JlYXRlX25vZGUoc3RydWN0IGNvbm5lY3Rpb24gKmNv bm4sIAorc3RhdGljIHN0cnVjdCBub2RlICpjcmVhdGVfbm9kZShzdHJ1Y3QgY29ubmVjdGlvbiAq Y29ubiwgY29uc3Qgdm9pZCAqY3R4LAogCQkJCWNvbnN0IGNoYXIgKm5hbWUsCiAJCQkJdm9pZCAq ZGF0YSwgdW5zaWduZWQgaW50IGRhdGFsZW4pCiB7CiAJc3RydWN0IG5vZGUgKm5vZGUsICppOwog Ci0Jbm9kZSA9IGNvbnN0cnVjdF9ub2RlKGNvbm4sIG5hbWUpOworCW5vZGUgPSBjb25zdHJ1Y3Rf bm9kZShjb25uLCBjdHgsIG5hbWUpOwogCWlmICghbm9kZSkKIAkJcmV0dXJuIE5VTEw7CiAKQEAg LTk3NSw3ICs5NzksOCBAQCBzdGF0aWMgaW50IGRvX3dyaXRlKHN0cnVjdCBjb25uZWN0aW9uICpj b25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAJCS8qIE5vIHBlcm1pc3Npb25zLCBpbnZh bGlkIGlucHV0PyAqLwogCQlpZiAoZXJybm8gIT0gRU5PRU5UKQogCQkJcmV0dXJuIGVycm5vOwot CQlub2RlID0gY3JlYXRlX25vZGUoY29ubiwgbmFtZSwgaW4tPmJ1ZmZlciArIG9mZnNldCwgZGF0 YWxlbik7CisJCW5vZGUgPSBjcmVhdGVfbm9kZShjb25uLCBpbiwgbmFtZSwgaW4tPmJ1ZmZlciAr IG9mZnNldCwKKwkJCQkgICBkYXRhbGVuKTsKIAkJaWYgKCFub2RlKQogCQkJcmV0dXJuIGVycm5v OwogCX0gZWxzZSB7CkBAIC0xMDA0LDcgKzEwMDksNyBAQCBzdGF0aWMgaW50IGRvX21rZGlyKHN0 cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAJCS8qIE5v IHBlcm1pc3Npb25zPyAqLwogCQlpZiAoZXJybm8gIT0gRU5PRU5UKQogCQkJcmV0dXJuIGVycm5v OwotCQlub2RlID0gY3JlYXRlX25vZGUoY29ubiwgbmFtZSwgTlVMTCwgMCk7CisJCW5vZGUgPSBj cmVhdGVfbm9kZShjb25uLCBpbiwgbmFtZSwgTlVMTCwgMCk7CiAJCWlmICghbm9kZSkKIAkJCXJl dHVybiBlcnJubzsKIAkJZmlyZV93YXRjaGVzKGNvbm4sIGluLCBuYW1lLCBmYWxzZSk7CkBAIC0x MDc1LDEyICsxMDgwLDEzIEBAIHN0YXRpYyBib29sIGRlbGV0ZV9jaGlsZChzdHJ1Y3QgY29ubmVj dGlvbiAqY29ubiwKIH0KIAogCi1zdGF0aWMgaW50IF9ybShzdHJ1Y3QgY29ubmVjdGlvbiAqY29u biwgc3RydWN0IG5vZGUgKm5vZGUsIGNvbnN0IGNoYXIgKm5hbWUpCitzdGF0aWMgaW50IF9ybShz dHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgY29uc3Qgdm9pZCAqY3R4LCBzdHJ1Y3Qgbm9kZSAqbm9k ZSwKKwkgICAgICAgY29uc3QgY2hhciAqbmFtZSkKIHsKIAkvKiBEZWxldGUgZnJvbSBwYXJlbnQg Zmlyc3QsIHRoZW4gaWYgd2UgY3Jhc2gsIHRoZSB3b3JzdCB0aGF0IGNhbgogCSAgIGhhcHBlbiBp cyB0aGUgY2hpbGQgd2lsbCBjb250aW51ZSB0byB0YWtlIHVwIHNwYWNlLCBidXQgd2lsbAogCSAg IG90aGVyd2lzZSBiZSB1bnJlYWNoYWJsZS4gKi8KLQlzdHJ1Y3Qgbm9kZSAqcGFyZW50ID0gcmVh ZF9ub2RlKGNvbm4sIG5hbWUsIGdldF9wYXJlbnQobmFtZSwgbmFtZSkpOworCXN0cnVjdCBub2Rl ICpwYXJlbnQgPSByZWFkX25vZGUoY29ubiwgY3R4LCBnZXRfcGFyZW50KGN0eCwgbmFtZSkpOwog CWlmICghcGFyZW50KQogCQlyZXR1cm4gRUlOVkFMOwogCkBAIC0xMDk3LDcgKzExMDMsNyBAQCBz dGF0aWMgdm9pZCBpbnRlcm5hbF9ybShjb25zdCBjaGFyICpuYW1lKQogCWNoYXIgKnRuYW1lID0g dGFsbG9jX3N0cmR1cChOVUxMLCBuYW1lKTsKIAlzdHJ1Y3Qgbm9kZSAqbm9kZSA9IHJlYWRfbm9k ZShOVUxMLCB0bmFtZSwgdG5hbWUpOwogCWlmIChub2RlKQotCQlfcm0oTlVMTCwgbm9kZSwgdG5h bWUpOworCQlfcm0oTlVMTCwgdG5hbWUsIG5vZGUsIHRuYW1lKTsKIAl0YWxsb2NfZnJlZShub2Rl KTsKIAl0YWxsb2NfZnJlZSh0bmFtZSk7CiB9CkBAIC0xMTI4LDcgKzExMzQsNyBAQCBzdGF0aWMg aW50IGRvX3JtKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAq aW4pCiAJaWYgKHN0cmVxKG5hbWUsICIvIikpCiAJCXJldHVybiBFSU5WQUw7CiAKLQlyZXQgPSBf cm0oY29ubiwgbm9kZSwgbmFtZSk7CisJcmV0ID0gX3JtKGNvbm4sIGluLCBub2RlLCBuYW1lKTsK IAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCkBAIC0xMzAxLDggKzEzMDcsNyBAQCBzdGF0aWMg dm9pZCBjb25zaWRlcl9tZXNzYWdlKHN0cnVjdCBjb25uZWN0aW9uICpjb25uKQogCiAJcHJvY2Vz c19tZXNzYWdlKGNvbm4sIGNvbm4tPmluKTsKIAotCXRhbGxvY19mcmVlKGNvbm4tPmluKTsKLQlj b25uLT5pbiA9IG5ld19idWZmZXIoY29ubik7CisJYXNzZXJ0KGNvbm4tPmluID09IE5VTEwpOwog fQogCiAvKiBFcnJvcnMgaW4gcmVhZGluZyBvciBhbGxvY2F0aW5nIGhlcmUgbWVhbiB3ZSBnZXQg b3V0IG9mIHN5bmMsIHNvIHdlCkBAIC0xMzEwLDcgKzEzMTUsMTUgQEAgc3RhdGljIHZvaWQgY29u c2lkZXJfbWVzc2FnZShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubikKIHN0YXRpYyB2b2lkIGhhbmRs ZV9pbnB1dChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubikKIHsKIAlpbnQgYnl0ZXM7Ci0Jc3RydWN0 IGJ1ZmZlcmVkX2RhdGEgKmluID0gY29ubi0+aW47CisJc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmlu OworCisJaWYgKCFjb25uLT5pbikgeworCQljb25uLT5pbiA9IG5ld19idWZmZXIoY29ubik7CisJ CS8qIEluIGNhc2Ugb2Ygbm8gbWVtb3J5IGp1c3QgdHJ5IGl0IG5leHQgdGltZSBhZ2Fpbi4gKi8K KwkJaWYgKCFjb25uLT5pbikKKwkJCXJldHVybjsKKwl9CisJaW4gPSBjb25uLT5pbjsKIAogCS8q IE5vdCBmaW5pc2hlZCBoZWFkZXIgeWV0PyAqLwogCWlmIChpbi0+aW5oZHIpIHsKQEAgLTEzMjgs NyArMTM0MSwxMCBAQCBzdGF0aWMgdm9pZCBoYW5kbGVfaW5wdXQoc3RydWN0IGNvbm5lY3Rpb24g KmNvbm4pCiAJCQlnb3RvIGJhZF9jbGllbnQ7CiAJCX0KIAotCQlpbi0+YnVmZmVyID0gdGFsbG9j X2FycmF5KGluLCBjaGFyLCBpbi0+aGRyLm1zZy5sZW4pOworCQlpZiAoaW4tPmhkci5tc2cubGVu IDw9IERFRkFVTFRfQlVGRkVSX1NJWkUpCisJCQlpbi0+YnVmZmVyID0gaW4tPmRlZmF1bHRfYnVm ZmVyOworCQllbHNlCisJCQlpbi0+YnVmZmVyID0gdGFsbG9jX2FycmF5KGluLCBjaGFyLCBpbi0+ aGRyLm1zZy5sZW4pOwogCQlpZiAoIWluLT5idWZmZXIpCiAJCQlnb3RvIGJhZF9jbGllbnQ7CiAJ CWluLT51c2VkID0gMDsKQEAgLTEzNzcsMTIgKzEzOTMsNiBAQCBzdHJ1Y3QgY29ubmVjdGlvbiAq bmV3X2Nvbm5lY3Rpb24oY29ubndyaXRlZm5fdCAqd3JpdGUsIGNvbm5yZWFkZm5fdCAqcmVhZCkK IAlJTklUX0xJU1RfSEVBRCgmbmV3LT53YXRjaGVzKTsKIAlJTklUX0xJU1RfSEVBRCgmbmV3LT50 cmFuc2FjdGlvbl9saXN0KTsKIAotCW5ldy0+aW4gPSBuZXdfYnVmZmVyKG5ldyk7Ci0JaWYgKG5l dy0+aW4gPT0gTlVMTCkgewotCQl0YWxsb2NfZnJlZShuZXcpOwotCQlyZXR1cm4gTlVMTDsKLQl9 Ci0KIAlsaXN0X2FkZF90YWlsKCZuZXctPmxpc3QsICZjb25uZWN0aW9ucyk7CiAJdGFsbG9jX3Nl dF9kZXN0cnVjdG9yKG5ldywgZGVzdHJveV9jb25uKTsKIAl0cmFjZV9jcmVhdGUobmV3LCAiY29u bmVjdGlvbiIpOwpAQCAtMTUyMiw3ICsxNTMyLDcgQEAgc3RhdGljIHZvaWQgc2V0dXBfc3RydWN0 dXJlKHZvaWQpCiAKIAkJaWYgKHJlbW92ZV9sb2NhbCkgewogCQkJaW50ZXJuYWxfcm0oIi9sb2Nh bCIpOwotCQkJY3JlYXRlX25vZGUoTlVMTCwgdGxvY2FsLCBOVUxMLCAwKTsKKwkJCWNyZWF0ZV9u b2RlKE5VTEwsIE5VTEwsIHRsb2NhbCwgTlVMTCwgMCk7CiAKIAkJCWNoZWNrX3N0b3JlKCk7CiAJ CX0KZGlmZiAtLWdpdCBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb3JlLmggYi90b29scy94 ZW5zdG9yZS94ZW5zdG9yZWRfY29yZS5oCmluZGV4IDM4NzJkYWIuLmY2YTU2ZjcgMTAwNjQ0Ci0t LSBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb3JlLmgKKysrIGIvdG9vbHMveGVuc3RvcmUv eGVuc3RvcmVkX2NvcmUuaApAQCAtMzMsNiArMzMsOSBAQAogI2luY2x1ZGUgImxpc3QuaCIKICNp bmNsdWRlICJ0ZGIuaCIKIAorLyogREVGQVVMVF9CVUZGRVJfU0laRSBzaG91bGQgYmUgbGFyZ2Ug ZW5vdWdoIGZvciBlYWNoIGVycm5vIHN0cmluZy4gKi8KKyNkZWZpbmUgREVGQVVMVF9CVUZGRVJf U0laRSAxNgorCiBzdHJ1Y3QgYnVmZmVyZWRfZGF0YQogewogCXN0cnVjdCBsaXN0X2hlYWQgbGlz dDsKQEAgLTUwLDYgKzUzLDcgQEAgc3RydWN0IGJ1ZmZlcmVkX2RhdGEKIAogCS8qIFRoZSBhY3R1 YWwgZGF0YS4gKi8KIAljaGFyICpidWZmZXI7CisJY2hhciBkZWZhdWx0X2J1ZmZlcltERUZBVUxU X0JVRkZFUl9TSVpFXTsKIH07CiAKIHN0cnVjdCBjb25uZWN0aW9uOwpAQCAtMTM5LDcgKzE0Myw3 IEBAIHZvaWQgc2VuZF9yZXBseShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgZW51bSB4c2Rfc29j a21zZ190eXBlIHR5cGUsCiB2b2lkIHNlbmRfYWNrKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBl bnVtIHhzZF9zb2NrbXNnX3R5cGUgdHlwZSk7CiAKIC8qIENhbm9uaWNhbGl6ZSB0aGlzIHBhdGgg aWYgcG9zc2libGUuICovCi1jaGFyICpjYW5vbmljYWxpemUoc3RydWN0IGNvbm5lY3Rpb24gKmNv bm4sIGNvbnN0IGNoYXIgKm5vZGUpOworY2hhciAqY2Fub25pY2FsaXplKHN0cnVjdCBjb25uZWN0 aW9uICpjb25uLCBjb25zdCB2b2lkICpjdHgsIGNvbnN0IGNoYXIgKm5vZGUpOwogCiAvKiBHZXQg dGhpcyBub2RlLCBjaGVja2luZyB3ZSBoYXZlIHBlcm1pc3Npb25zLiAqLwogc3RydWN0IG5vZGUg KmdldF9ub2RlKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLApkaWZmIC0tZ2l0IGEvdG9vbHMveGVu c3RvcmUveGVuc3RvcmVkX2RvbWFpbi5jIGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2RvbWFp bi5jCmluZGV4IDI0NDNiMDguLmZlZmVkNWUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hlbnN0b3JlL3hl bnN0b3JlZF9kb21haW4uYworKysgYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfZG9tYWluLmMK QEAgLTMyOSw5ICszMjksNyBAQCBzdGF0aWMgdm9pZCBkb21haW5fY29ubl9yZXNldChzdHJ1Y3Qg ZG9tYWluICpkb21haW4pCiAJCXRhbGxvY19mcmVlKG91dCk7CiAJfQogCi0JdGFsbG9jX2ZyZWUo Y29ubi0+aW4tPmJ1ZmZlcik7Ci0JbWVtc2V0KGNvbm4tPmluLCAwLCBzaXplb2YoKmNvbm4tPmlu KSk7Ci0JY29ubi0+aW4tPmluaGRyID0gdHJ1ZTsKKwl0YWxsb2NfZnJlZShjb25uLT5pbik7CiAK IAlkb21haW4tPmludGVyZmFjZS0+cmVxX2NvbnMgPSBkb21haW4tPmludGVyZmFjZS0+cmVxX3By b2QgPSAwOwogCWRvbWFpbi0+aW50ZXJmYWNlLT5yc3BfY29ucyA9IGRvbWFpbi0+aW50ZXJmYWNl LT5yc3BfcHJvZCA9IDA7CmRpZmYgLS1naXQgYS90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfdHJh bnNhY3Rpb24uYyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF90cmFuc2FjdGlvbi5jCmluZGV4 IDQyM2ZkM2UuLmQzMTRjZDUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF90 cmFuc2FjdGlvbi5jCisrKyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF90cmFuc2FjdGlvbi5j CkBAIC0yMDksOCArMjA5LDggQEAgaW50IGRvX3RyYW5zYWN0aW9uX2VuZChzdHJ1Y3QgY29ubmVj dGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogCWxpc3RfZGVsKCZ0cmFucy0+ bGlzdCk7CiAJY29ubi0+dHJhbnNhY3Rpb25fc3RhcnRlZC0tOwogCi0JLyogQXR0YWNoIHRyYW5z YWN0aW9uIHRvIGFyZyBmb3IgYXV0by1jbGVhbnVwICovCi0JdGFsbG9jX3N0ZWFsKGFyZywgdHJh bnMpOworCS8qIEF0dGFjaCB0cmFuc2FjdGlvbiB0byBpbiBmb3IgYXV0by1jbGVhbnVwICovCisJ dGFsbG9jX3N0ZWFsKGluLCB0cmFucyk7CiAKIAlpZiAoc3RyZXEoYXJnLCAiVCIpKSB7CiAJCS8q IEZJWE1FOiBNZXJnZSwgcmF0aGVyIGZhaWxpbmcgb24gYW55IGNoYW5nZS4gKi8KZGlmZiAtLWdp dCBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF93YXRjaC5jIGIvdG9vbHMveGVuc3RvcmUveGVu c3RvcmVkX3dhdGNoLmMKaW5kZXggZTExNDZlZC4uOTQyNTFkYiAxMDA2NDQKLS0tIGEvdG9vbHMv eGVuc3RvcmUveGVuc3RvcmVkX3dhdGNoLmMKKysrIGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVk X3dhdGNoLmMKQEAgLTE2NCw3ICsxNjQsNyBAQCBpbnQgZG9fd2F0Y2goc3RydWN0IGNvbm5lY3Rp b24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIAkJLyogY2hlY2sgaWYgdmFsaWQg ZXZlbnQgKi8KIAl9IGVsc2UgewogCQlyZWxhdGl2ZSA9ICFzdHJzdGFydHModmVjWzBdLCAiLyIp OwotCQl2ZWNbMF0gPSBjYW5vbmljYWxpemUoY29ubiwgdmVjWzBdKTsKKwkJdmVjWzBdID0gY2Fu b25pY2FsaXplKGNvbm4sIGluLCB2ZWNbMF0pOwogCQlpZiAoIWlzX3ZhbGlkX25vZGVuYW1lKHZl Y1swXSkpCiAJCQlyZXR1cm4gRUlOVkFMOwogCX0KQEAgLTIwOSw3ICsyMDksNyBAQCBpbnQgZG9f dW53YXRjaChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmlu KQogCWlmIChnZXRfc3RyaW5ncyhpbiwgdmVjLCBBUlJBWV9TSVpFKHZlYykpICE9IEFSUkFZX1NJ WkUodmVjKSkKIAkJcmV0dXJuIEVJTlZBTDsKIAotCW5vZGUgPSBjYW5vbmljYWxpemUoY29ubiwg dmVjWzBdKTsKKwlub2RlID0gY2Fub25pY2FsaXplKGNvbm4sIGluLCB2ZWNbMF0pOwogCWxpc3Rf Zm9yX2VhY2hfZW50cnkod2F0Y2gsICZjb25uLT53YXRjaGVzLCBsaXN0KSB7CiAJCWlmIChzdHJl cSh3YXRjaC0+bm9kZSwgbm9kZSkgJiYgc3RyZXEod2F0Y2gtPnRva2VuLCB2ZWNbMV0pKSB7CiAJ CQlsaXN0X2RlbCgmd2F0Y2gtPmxpc3QpOwotLSAKMi42LjYKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK