From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: [PATCH 2/2] xenstore: use temporary memory context for firing watches Date: Fri, 15 Jul 2016 06:57:16 +0200 Message-ID: <1468558636-17373-3-git-send-email-jgross@suse.com> References: <1468558636-17373-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: <1468558636-17373-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 , wei.liu2@citrix.com, ian.jackson@eu.citrix.com List-Id: xen-devel@lists.xenproject.org VXNlIGEgdGVtcG9yYXJ5IG1lbW9yeSBjb250ZXh0IGZvciBtZW1vcnkgYWxsb2NhdGlvbnMgd2hl biBmaXJpbmcKd2F0Y2hlcy4gVGhpcyB3aWxsIGF2b2lkIGxlYWtpbmcgbWVtb3J5IGluIGNhc2Ug b2YgbG9uZyBsaXZpbmcKY29ubmVjdGlvbnMgYW5kL29yIHhlbnN0b3JlIGVudHJpZXMuCgpTaWdu ZWQtb2ZmLWJ5OiBKdWVyZ2VuIEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+Ci0tLQogdG9vbHMveGVu c3RvcmUveGVuc3RvcmVkX2NvcmUuYyAgICAgICAgfCA2OSArKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tLS0tCiB0b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfY29yZS5oICAgICAgICB8ICAx ICsKIHRvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9kb21haW4uYyAgICAgIHwgIDYgKy0tCiB0b29s cy94ZW5zdG9yZS94ZW5zdG9yZWRfdHJhbnNhY3Rpb24uYyB8ICAyICstCiB0b29scy94ZW5zdG9y ZS94ZW5zdG9yZWRfd2F0Y2guYyAgICAgICB8IDE0ICsrKystLS0KIHRvb2xzL3hlbnN0b3JlL3hl bnN0b3JlZF93YXRjaC5oICAgICAgIHwgIDMgKy0KIDYgZmlsZXMgY2hhbmdlZCwgNTIgaW5zZXJ0 aW9ucygrKSwgNDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvdG9vbHMveGVuc3RvcmUveGVu c3RvcmVkX2NvcmUuYyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb3JlLmMKaW5kZXggOTRj ODA5Yy4uOGNiMTJjNyAxMDA2NDQKLS0tIGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvcmUu YworKysgYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfY29yZS5jCkBAIC0zOTgsNyArMzk4LDgg QEAgYm9vbCBpc19jaGlsZChjb25zdCBjaGFyICpjaGlsZCwgY29uc3QgY2hhciAqcGFyZW50KQog fQogCiAvKiBJZiBpdCBmYWlscywgcmV0dXJucyBOVUxMIGFuZCBzZXRzIGVycm5vLiAqLwotc3Rh dGljIHN0cnVjdCBub2RlICpyZWFkX25vZGUoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIGNvbnN0 IGNoYXIgKm5hbWUpCitzdGF0aWMgc3RydWN0IG5vZGUgKnJlYWRfbm9kZShzdHJ1Y3QgY29ubmVj dGlvbiAqY29ubiwgY29uc3Qgdm9pZCAqbWVtLAorCQkJICAgICAgY29uc3QgY2hhciAqbmFtZSkK IHsKIAlUREJfREFUQSBrZXksIGRhdGE7CiAJdWludDMyX3QgKnA7CkBAIC00MTksNyArNDIwLDcg QEAgc3RhdGljIHN0cnVjdCBub2RlICpyZWFkX25vZGUoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4s IGNvbnN0IGNoYXIgKm5hbWUpCiAJCXJldHVybiBOVUxMOwogCX0KIAotCW5vZGUgPSB0YWxsb2Mo bmFtZSwgc3RydWN0IG5vZGUpOworCW5vZGUgPSB0YWxsb2MobWVtLCBzdHJ1Y3Qgbm9kZSk7CiAJ bm9kZS0+bmFtZSA9IHRhbGxvY19zdHJkdXAobm9kZSwgbmFtZSk7CiAJbm9kZS0+cGFyZW50ID0g TlVMTDsKIAlub2RlLT50ZGIgPSB0ZGJfY29udGV4dChjb25uKTsKQEAgLTUwNywyMiArNTA4LDIz IEBAIHN0YXRpYyBlbnVtIHhzX3Blcm1fdHlwZSBwZXJtX2Zvcl9jb25uKHN0cnVjdCBjb25uZWN0 aW9uICpjb25uLAogCXJldHVybiBwZXJtc1swXS5wZXJtcyAmIG1hc2s7CiB9CiAKLXN0YXRpYyBj aGFyICpnZXRfcGFyZW50KGNvbnN0IGNoYXIgKm5vZGUpCitzdGF0aWMgY2hhciAqZ2V0X3BhcmVu dChjb25zdCB2b2lkICptZW0sIGNvbnN0IGNoYXIgKm5vZGUpCiB7CiAJY2hhciAqc2xhc2ggPSBz dHJyY2hyKG5vZGUgKyAxLCAnLycpOwogCWlmICghc2xhc2gpCi0JCXJldHVybiB0YWxsb2Nfc3Ry ZHVwKG5vZGUsICIvIik7Ci0JcmV0dXJuIHRhbGxvY19hc3ByaW50Zihub2RlLCAiJS4qcyIsIChp bnQpKHNsYXNoIC0gbm9kZSksIG5vZGUpOworCQlyZXR1cm4gdGFsbG9jX3N0cmR1cChtZW0sICIv Iik7CisJcmV0dXJuIHRhbGxvY19hc3ByaW50ZihtZW0sICIlLipzIiwgKGludCkoc2xhc2ggLSBu b2RlKSwgbm9kZSk7CiB9CiAKIC8qIFdoYXQgZG8gcGFyZW50cyBzYXk/ICovCi1zdGF0aWMgZW51 bSB4c19wZXJtX3R5cGUgYXNrX3BhcmVudHMoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIGNvbnN0 IGNoYXIgKm5hbWUpCitzdGF0aWMgZW51bSB4c19wZXJtX3R5cGUgYXNrX3BhcmVudHMoc3RydWN0 IGNvbm5lY3Rpb24gKmNvbm4sIGNvbnN0IHZvaWQgKm1lbSwKKwkJCQkgICAgIGNvbnN0IGNoYXIg Km5hbWUpCiB7CiAJc3RydWN0IG5vZGUgKm5vZGU7CiAKIAlkbyB7Ci0JCW5hbWUgPSBnZXRfcGFy ZW50KG5hbWUpOwotCQlub2RlID0gcmVhZF9ub2RlKGNvbm4sIG5hbWUpOworCQluYW1lID0gZ2V0 X3BhcmVudChtZW0sIG5hbWUpOworCQlub2RlID0gcmVhZF9ub2RlKGNvbm4sIG1lbSwgbmFtZSk7 CiAJCWlmIChub2RlKQogCQkJYnJlYWs7CiAJfSB3aGlsZSAoIXN0cmVxKG5hbWUsICIvIikpOwpA QCAtNTQwLDIwICs1NDIsMjIgQEAgc3RhdGljIGVudW0geHNfcGVybV90eXBlIGFza19wYXJlbnRz KHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBjb25zdCBjaGFyICpuYW1lKQogICogc3BlY2lmaWMg bm9kZSB3aXRob3V0IGFsbG93aW5nIGl0IGluIHRoZSBwYXJlbnRzLiAgSWYgaXQncyBnb2luZyB0 bwogICogZmFpbCwgaG93ZXZlciwgd2UgZG9uJ3Qgd2FudCB0aGUgZXJybm8gdG8gaW5kaWNhdGUg YW55IGluZm9ybWF0aW9uCiAgKiBhYm91dCB0aGUgbm9kZS4gKi8KLXN0YXRpYyBpbnQgZXJybm9f ZnJvbV9wYXJlbnRzKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBjb25zdCBjaGFyICpub2RlLAot CQkJICAgICAgaW50IGVycm51bSwgZW51bSB4c19wZXJtX3R5cGUgcGVybSkKK3N0YXRpYyBpbnQg ZXJybm9fZnJvbV9wYXJlbnRzKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBjb25zdCB2b2lkICpt ZW0sCisJCQkgICAgICBjb25zdCBjaGFyICpub2RlLCBpbnQgZXJybnVtLAorCQkJICAgICAgZW51 bSB4c19wZXJtX3R5cGUgcGVybSkKIHsKIAkvKiBXZSBhbHdheXMgdGVsbCB0aGVtIGFib3V0IG1l bW9yeSBmYWlsdXJlcy4gKi8KIAlpZiAoZXJybnVtID09IEVOT01FTSkKIAkJcmV0dXJuIGVycm51 bTsKIAotCWlmIChhc2tfcGFyZW50cyhjb25uLCBub2RlKSAmIHBlcm0pCisJaWYgKGFza19wYXJl bnRzKGNvbm4sIG1lbSwgbm9kZSkgJiBwZXJtKQogCQlyZXR1cm4gZXJybnVtOwogCXJldHVybiBF QUNDRVM7CiB9CiAKIC8qIElmIGl0IGZhaWxzLCByZXR1cm5zIE5VTEwgYW5kIHNldHMgZXJybm8u ICovCiBzdHJ1Y3Qgbm9kZSAqZ2V0X25vZGUoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCisJCSAg ICAgIGNvbnN0IHZvaWQgKm1lbSwKIAkJICAgICAgY29uc3QgY2hhciAqbmFtZSwKIAkJICAgICAg ZW51bSB4c19wZXJtX3R5cGUgcGVybSkKIHsKQEAgLTU2Myw3ICs1NjcsNyBAQCBzdHJ1Y3Qgbm9k ZSAqZ2V0X25vZGUoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sCiAJCWVycm5vID0gRUlOVkFMOwog CQlyZXR1cm4gTlVMTDsKIAl9Ci0Jbm9kZSA9IHJlYWRfbm9kZShjb25uLCBuYW1lKTsKKwlub2Rl ID0gcmVhZF9ub2RlKGNvbm4sIG1lbSwgbmFtZSk7CiAJLyogSWYgd2UgZG9uJ3QgaGF2ZSBwZXJt aXNzaW9uLCB3ZSBkb24ndCBoYXZlIG5vZGUuICovCiAJaWYgKG5vZGUpIHsKIAkJaWYgKChwZXJt X2Zvcl9jb25uKGNvbm4sIG5vZGUtPnBlcm1zLCBub2RlLT5udW1fcGVybXMpICYgcGVybSkKQEAg LTU3NCw3ICs1NzgsNyBAQCBzdHJ1Y3Qgbm9kZSAqZ2V0X25vZGUoc3RydWN0IGNvbm5lY3Rpb24g KmNvbm4sCiAJfQogCS8qIENsZWFuIHVwIGVycm5vIGlmIHRoZXkgd2VyZW4ndCBzdXBwb3NlZCB0 byBrbm93LiAqLwogCWlmICghbm9kZSkgCi0JCWVycm5vID0gZXJybm9fZnJvbV9wYXJlbnRzKGNv bm4sIG5hbWUsIGVycm5vLCBwZXJtKTsKKwkJZXJybm8gPSBlcnJub19mcm9tX3BhcmVudHMoY29u biwgbWVtLCBuYW1lLCBlcnJubywgcGVybSk7CiAJcmV0dXJuIG5vZGU7CiB9CiAKQEAgLTc2Nyw3 ICs3NzEsNyBAQCBzdGF0aWMgdm9pZCBzZW5kX2RpcmVjdG9yeShzdHJ1Y3QgY29ubmVjdGlvbiAq Y29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogCWNvbnN0IGNoYXIgKm5hbWUgPSBvbmVh cmcoaW4pOwogCiAJbmFtZSA9IGNhbm9uaWNhbGl6ZShjb25uLCBuYW1lKTsKLQlub2RlID0gZ2V0 X25vZGUoY29ubiwgbmFtZSwgWFNfUEVSTV9SRUFEKTsKKwlub2RlID0gZ2V0X25vZGUoY29ubiwg aW4sIG5hbWUsIFhTX1BFUk1fUkVBRCk7CiAJaWYgKCFub2RlKSB7CiAJCXNlbmRfZXJyb3IoY29u biwgZXJybm8pOwogCQlyZXR1cm47CkBAIC03ODIsNyArNzg2LDcgQEAgc3RhdGljIHZvaWQgZG9f cmVhZChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQog CWNvbnN0IGNoYXIgKm5hbWUgPSBvbmVhcmcoaW4pOwogCiAJbmFtZSA9IGNhbm9uaWNhbGl6ZShj b25uLCBuYW1lKTsKLQlub2RlID0gZ2V0X25vZGUoY29ubiwgbmFtZSwgWFNfUEVSTV9SRUFEKTsK Kwlub2RlID0gZ2V0X25vZGUoY29ubiwgaW4sIG5hbWUsIFhTX1BFUk1fUkVBRCk7CiAJaWYgKCFu b2RlKSB7CiAJCXNlbmRfZXJyb3IoY29ubiwgZXJybm8pOwogCQlyZXR1cm47CkBAIC04MTYsMTAg KzgyMCwxMCBAQCBzdGF0aWMgc3RydWN0IG5vZGUgKmNvbnN0cnVjdF9ub2RlKHN0cnVjdCBjb25u ZWN0aW9uICpjb25uLCBjb25zdCBjaGFyICpuYW1lKQogCWNvbnN0IGNoYXIgKmJhc2U7CiAJdW5z aWduZWQgaW50IGJhc2VsZW47CiAJc3RydWN0IG5vZGUgKnBhcmVudCwgKm5vZGU7Ci0JY2hhciAq Y2hpbGRyZW4sICpwYXJlbnRuYW1lID0gZ2V0X3BhcmVudChuYW1lKTsKKwljaGFyICpjaGlsZHJl biwgKnBhcmVudG5hbWUgPSBnZXRfcGFyZW50KG5hbWUsIG5hbWUpOwogCiAJLyogSWYgcGFyZW50 IGRvZXNuJ3QgZXhpc3QsIGNyZWF0ZSBpdC4gKi8KLQlwYXJlbnQgPSByZWFkX25vZGUoY29ubiwg cGFyZW50bmFtZSk7CisJcGFyZW50ID0gcmVhZF9ub2RlKGNvbm4sIHBhcmVudG5hbWUsIHBhcmVu dG5hbWUpOwogCWlmICghcGFyZW50KQogCQlwYXJlbnQgPSBjb25zdHJ1Y3Rfbm9kZShjb25uLCBw YXJlbnRuYW1lKTsKIAlpZiAoIXBhcmVudCkKQEAgLTkxOSw3ICs5MjMsNyBAQCBzdGF0aWMgdm9p ZCBkb193cml0ZShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEg KmluKQogCWRhdGFsZW4gPSBpbi0+dXNlZCAtIG9mZnNldDsKIAogCW5hbWUgPSBjYW5vbmljYWxp emUoY29ubiwgdmVjWzBdKTsKLQlub2RlID0gZ2V0X25vZGUoY29ubiwgbmFtZSwgWFNfUEVSTV9X UklURSk7CisJbm9kZSA9IGdldF9ub2RlKGNvbm4sIGluLCBuYW1lLCBYU19QRVJNX1dSSVRFKTsK IAlpZiAoIW5vZGUpIHsKIAkJLyogTm8gcGVybWlzc2lvbnMsIGludmFsaWQgaW5wdXQ/ICovCiAJ CWlmIChlcnJubyAhPSBFTk9FTlQpIHsKQEAgLTk0MSw3ICs5NDUsNyBAQCBzdGF0aWMgdm9pZCBk b193cml0ZShzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmlu KQogCX0KIAogCWFkZF9jaGFuZ2Vfbm9kZShjb25uLT50cmFuc2FjdGlvbiwgbmFtZSwgZmFsc2Up OwotCWZpcmVfd2F0Y2hlcyhjb25uLCBuYW1lLCBmYWxzZSk7CisJZmlyZV93YXRjaGVzKGNvbm4s IGluLCBuYW1lLCBmYWxzZSk7CiAJc2VuZF9hY2soY29ubiwgWFNfV1JJVEUpOwogfQogCkBAIC05 NTEsNyArOTU1LDcgQEAgc3RhdGljIHZvaWQgZG9fbWtkaXIoc3RydWN0IGNvbm5lY3Rpb24gKmNv bm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIAljb25zdCBjaGFyICpuYW1lID0gb25lYXJn KGluKTsKIAogCW5hbWUgPSBjYW5vbmljYWxpemUoY29ubiwgbmFtZSk7Ci0Jbm9kZSA9IGdldF9u b2RlKGNvbm4sIG5hbWUsIFhTX1BFUk1fV1JJVEUpOworCW5vZGUgPSBnZXRfbm9kZShjb25uLCBp biwgbmFtZSwgWFNfUEVSTV9XUklURSk7CiAKIAkvKiBJZiBpdCBhbHJlYWR5IGV4aXN0cywgZmlu ZS4gKi8KIAlpZiAoIW5vZGUpIHsKQEAgLTk2Niw3ICs5NzAsNyBAQCBzdGF0aWMgdm9pZCBkb19t a2RpcihzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQog CQkJcmV0dXJuOwogCQl9CiAJCWFkZF9jaGFuZ2Vfbm9kZShjb25uLT50cmFuc2FjdGlvbiwgbmFt ZSwgZmFsc2UpOwotCQlmaXJlX3dhdGNoZXMoY29ubiwgbmFtZSwgZmFsc2UpOworCQlmaXJlX3dh dGNoZXMoY29ubiwgaW4sIG5hbWUsIGZhbHNlKTsKIAl9CiAJc2VuZF9hY2soY29ubiwgWFNfTUtE SVIpOwogfQpAQCAtOTg0LDcgKzk4OCw3IEBAIHN0YXRpYyB2b2lkIGRlbGV0ZV9ub2RlKHN0cnVj dCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3Qgbm9kZSAqbm9kZSkKIAlmb3IgKGkgPSAwOyBpIDwg bm9kZS0+Y2hpbGRsZW47IGkgKz0gc3RybGVuKG5vZGUtPmNoaWxkcmVuK2kpICsgMSkgewogCQlz dHJ1Y3Qgbm9kZSAqY2hpbGQ7CiAKLQkJY2hpbGQgPSByZWFkX25vZGUoY29ubiwgCisJCWNoaWxk ID0gcmVhZF9ub2RlKGNvbm4sIG5vZGUsCiAJCQkJICB0YWxsb2NfYXNwcmludGYobm9kZSwgIiVz LyVzIiwgbm9kZS0+bmFtZSwKIAkJCQkJCSAgbm9kZS0+Y2hpbGRyZW4gKyBpKSk7CiAJCWlmIChj aGlsZCkgewpAQCAtMTAzNiw3ICsxMDQwLDcgQEAgc3RhdGljIGludCBfcm0oc3RydWN0IGNvbm5l Y3Rpb24gKmNvbm4sIHN0cnVjdCBub2RlICpub2RlLCBjb25zdCBjaGFyICpuYW1lKQogCS8qIERl bGV0ZSBmcm9tIHBhcmVudCBmaXJzdCwgdGhlbiBpZiB3ZSBjcmFzaCwgdGhlIHdvcnN0IHRoYXQg Y2FuCiAJICAgaGFwcGVuIGlzIHRoZSBjaGlsZCB3aWxsIGNvbnRpbnVlIHRvIHRha2UgdXAgc3Bh Y2UsIGJ1dCB3aWxsCiAJICAgb3RoZXJ3aXNlIGJlIHVucmVhY2hhYmxlLiAqLwotCXN0cnVjdCBu b2RlICpwYXJlbnQgPSByZWFkX25vZGUoY29ubiwgZ2V0X3BhcmVudChuYW1lKSk7CisJc3RydWN0 IG5vZGUgKnBhcmVudCA9IHJlYWRfbm9kZShjb25uLCBuYW1lLCBnZXRfcGFyZW50KG5hbWUsIG5h bWUpKTsKIAlpZiAoIXBhcmVudCkgewogCQlzZW5kX2Vycm9yKGNvbm4sIEVJTlZBTCk7CiAJCXJl dHVybiAwOwpAQCAtMTA1NSw3ICsxMDU5LDcgQEAgc3RhdGljIGludCBfcm0oc3RydWN0IGNvbm5l Y3Rpb24gKmNvbm4sIHN0cnVjdCBub2RlICpub2RlLCBjb25zdCBjaGFyICpuYW1lKQogc3RhdGlj IHZvaWQgaW50ZXJuYWxfcm0oY29uc3QgY2hhciAqbmFtZSkKIHsKIAljaGFyICp0bmFtZSA9IHRh bGxvY19zdHJkdXAoTlVMTCwgbmFtZSk7Ci0Jc3RydWN0IG5vZGUgKm5vZGUgPSByZWFkX25vZGUo TlVMTCwgdG5hbWUpOworCXN0cnVjdCBub2RlICpub2RlID0gcmVhZF9ub2RlKE5VTEwsIHRuYW1l LCB0bmFtZSk7CiAJaWYgKG5vZGUpCiAJCV9ybShOVUxMLCBub2RlLCB0bmFtZSk7CiAJdGFsbG9j X2ZyZWUobm9kZSk7CkBAIC0xMDY5LDExICsxMDczLDExIEBAIHN0YXRpYyB2b2lkIGRvX3JtKHN0 cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAJY29uc3Qg Y2hhciAqbmFtZSA9IG9uZWFyZyhpbik7CiAKIAluYW1lID0gY2Fub25pY2FsaXplKGNvbm4sIG5h bWUpOwotCW5vZGUgPSBnZXRfbm9kZShjb25uLCBuYW1lLCBYU19QRVJNX1dSSVRFKTsKKwlub2Rl ID0gZ2V0X25vZGUoY29ubiwgaW4sIG5hbWUsIFhTX1BFUk1fV1JJVEUpOwogCWlmICghbm9kZSkg ewogCQkvKiBEaWRuJ3QgZXhpc3QgYWxyZWFkeT8gIEZpbmUsIGlmIHBhcmVudCBleGlzdHMuICov CiAJCWlmIChlcnJubyA9PSBFTk9FTlQpIHsKLQkJCW5vZGUgPSByZWFkX25vZGUoY29ubiwgZ2V0 X3BhcmVudChuYW1lKSk7CisJCQlub2RlID0gcmVhZF9ub2RlKGNvbm4sIGluLCBnZXRfcGFyZW50 KGluLCBuYW1lKSk7CiAJCQlpZiAobm9kZSkgewogCQkJCXNlbmRfYWNrKGNvbm4sIFhTX1JNKTsK IAkJCQlyZXR1cm47CkBAIC0xMDkyLDcgKzEwOTYsNyBAQCBzdGF0aWMgdm9pZCBkb19ybShzdHJ1 Y3QgY29ubmVjdGlvbiAqY29ubiwgc3RydWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQogCiAJaWYgKF9y bShjb25uLCBub2RlLCBuYW1lKSkgewogCQlhZGRfY2hhbmdlX25vZGUoY29ubi0+dHJhbnNhY3Rp b24sIG5hbWUsIHRydWUpOwotCQlmaXJlX3dhdGNoZXMoY29ubiwgbmFtZSwgdHJ1ZSk7CisJCWZp cmVfd2F0Y2hlcyhjb25uLCBpbiwgbmFtZSwgdHJ1ZSk7CiAJCXNlbmRfYWNrKGNvbm4sIFhTX1JN KTsKIAl9CiB9CkBAIC0xMTA2LDcgKzExMTAsNyBAQCBzdGF0aWMgdm9pZCBkb19nZXRfcGVybXMo c3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICppbikKIAl1bnNp Z25lZCBpbnQgbGVuOwogCiAJbmFtZSA9IGNhbm9uaWNhbGl6ZShjb25uLCBuYW1lKTsKLQlub2Rl ID0gZ2V0X25vZGUoY29ubiwgbmFtZSwgWFNfUEVSTV9SRUFEKTsKKwlub2RlID0gZ2V0X25vZGUo Y29ubiwgaW4sIG5hbWUsIFhTX1BFUk1fUkVBRCk7CiAJaWYgKCFub2RlKSB7CiAJCXNlbmRfZXJy b3IoY29ubiwgZXJybm8pOwogCQlyZXR1cm47CkBAIC0xMTM4LDcgKzExNDIsNyBAQCBzdGF0aWMg dm9pZCBkb19zZXRfcGVybXMoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJl ZF9kYXRhICppbikKIAludW0tLTsKIAogCS8qIFdlIG11c3Qgb3duIG5vZGUgdG8gZG8gdGhpcyAo dG9vbHMgY2FuIGRvIHRoaXMgdG9vKS4gKi8KLQlub2RlID0gZ2V0X25vZGUoY29ubiwgbmFtZSwg WFNfUEVSTV9XUklURXxYU19QRVJNX09XTkVSKTsKKwlub2RlID0gZ2V0X25vZGUoY29ubiwgaW4s IG5hbWUsIFhTX1BFUk1fV1JJVEV8WFNfUEVSTV9PV05FUik7CiAJaWYgKCFub2RlKSB7CiAJCXNl bmRfZXJyb3IoY29ubiwgZXJybm8pOwogCQlyZXR1cm47CkBAIC0xMTY4LDcgKzExNzIsNyBAQCBz dGF0aWMgdm9pZCBkb19zZXRfcGVybXMoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBi dWZmZXJlZF9kYXRhICppbikKIAl9CiAKIAlhZGRfY2hhbmdlX25vZGUoY29ubi0+dHJhbnNhY3Rp b24sIG5hbWUsIGZhbHNlKTsKLQlmaXJlX3dhdGNoZXMoY29ubiwgbmFtZSwgZmFsc2UpOworCWZp cmVfd2F0Y2hlcyhjb25uLCBpbiwgbmFtZSwgZmFsc2UpOwogCXNlbmRfYWNrKGNvbm4sIFhTX1NF VF9QRVJNUyk7CiB9CiAKQEAgLTE2MDQsNyArMTYwOCw3IEBAIHN0YXRpYyB2b2lkIHJlbWVtYmVy X3N0cmluZyhzdHJ1Y3QgaGFzaHRhYmxlICpoYXNoLCBjb25zdCBjaGFyICpzdHIpCiAgKi8KIHN0 YXRpYyB2b2lkIGNoZWNrX3N0b3JlXyhjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgaGFzaHRhYmxl ICpyZWFjaGFibGUpCiB7Ci0Jc3RydWN0IG5vZGUgKm5vZGUgPSByZWFkX25vZGUoTlVMTCwgbmFt ZSk7CisJc3RydWN0IG5vZGUgKm5vZGUgPSByZWFkX25vZGUoTlVMTCwgbmFtZSwgbmFtZSk7CiAK IAlpZiAobm9kZSkgewogCQlzaXplX3QgaSA9IDA7CkBAIC0xNjE4LDcgKzE2MjIsOCBAQCBzdGF0 aWMgdm9pZCBjaGVja19zdG9yZV8oY29uc3QgY2hhciAqbmFtZSwgc3RydWN0IGhhc2h0YWJsZSAq cmVhY2hhYmxlKQogCQkJc2l6ZV90IGNoaWxkbGVuID0gc3RybGVuKG5vZGUtPmNoaWxkcmVuICsg aSk7CiAJCQljaGFyICogY2hpbGRuYW1lID0gY2hpbGRfbmFtZShub2RlLT5uYW1lLAogCQkJCQkJ ICAgICAgbm9kZS0+Y2hpbGRyZW4gKyBpKTsKLQkJCXN0cnVjdCBub2RlICpjaGlsZG5vZGUgPSBy ZWFkX25vZGUoTlVMTCwgY2hpbGRuYW1lKTsKKwkJCXN0cnVjdCBub2RlICpjaGlsZG5vZGUgPSBy ZWFkX25vZGUoTlVMTCwgY2hpbGRuYW1lLAorCQkJCQkJCSAgIGNoaWxkbmFtZSk7CiAJCQkKIAkJ CWlmIChjaGlsZG5vZGUpIHsKIAkJCQlpZiAoaGFzaHRhYmxlX3NlYXJjaChjaGlsZHJlbiwgY2hp bGRuYW1lKSkgewpkaWZmIC0tZ2l0IGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvcmUuaCBi L3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9jb3JlLmgKaW5kZXggNWRiZjljOC4uZjc2M2U0NyAx MDA2NDQKLS0tIGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX2NvcmUuaAorKysgYi90b29scy94 ZW5zdG9yZS94ZW5zdG9yZWRfY29yZS5oCkBAIC0xNDksNiArMTQ5LDcgQEAgYm9vbCBjaGVja19l dmVudF9ub2RlKGNvbnN0IGNoYXIgKm5vZGUpOwogCiAvKiBHZXQgdGhpcyBub2RlLCBjaGVja2lu ZyB3ZSBoYXZlIHBlcm1pc3Npb25zLiAqLwogc3RydWN0IG5vZGUgKmdldF9ub2RlKHN0cnVjdCBj b25uZWN0aW9uICpjb25uLAorCQkgICAgICBjb25zdCB2b2lkICptZW0sCiAJCSAgICAgIGNvbnN0 IGNoYXIgKm5hbWUsCiAJCSAgICAgIGVudW0geHNfcGVybV90eXBlIHBlcm0pOwogCmRpZmYgLS1n aXQgYS90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfZG9tYWluLmMgYi90b29scy94ZW5zdG9yZS94 ZW5zdG9yZWRfZG9tYWluLmMKaW5kZXggYzY2NTM5YS4uNWRlOTNkNCAxMDA2NDQKLS0tIGEvdG9v bHMveGVuc3RvcmUveGVuc3RvcmVkX2RvbWFpbi5jCisrKyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0 b3JlZF9kb21haW4uYwpAQCAtMjA0LDcgKzIwNCw3IEBAIHN0YXRpYyBpbnQgZGVzdHJveV9kb21h aW4odm9pZCAqX2RvbWFpbikKIAkJCXVubWFwX2ludGVyZmFjZShkb21haW4tPmludGVyZmFjZSk7 CiAJfQogCi0JZmlyZV93YXRjaGVzKE5VTEwsICJAcmVsZWFzZURvbWFpbiIsIGZhbHNlKTsKKwlm aXJlX3dhdGNoZXMoTlVMTCwgZG9tYWluLCAiQHJlbGVhc2VEb21haW4iLCBmYWxzZSk7CiAKIAly ZXR1cm4gMDsKIH0KQEAgLTIzMiw3ICsyMzIsNyBAQCBzdGF0aWMgdm9pZCBkb21haW5fY2xlYW51 cCh2b2lkKQogCX0KIAogCWlmIChub3RpZnkpCi0JCWZpcmVfd2F0Y2hlcyhOVUxMLCAiQHJlbGVh c2VEb21haW4iLCBmYWxzZSk7CisJCWZpcmVfd2F0Y2hlcyhOVUxMLCBOVUxMLCAiQHJlbGVhc2VE b21haW4iLCBmYWxzZSk7CiB9CiAKIC8qIFdlIHNjYW4gYWxsIGRvbWFpbnMgcmF0aGVyIHRoYW4g dXNlIHRoZSBpbmZvcm1hdGlvbiBnaXZlbiBoZXJlLiAqLwpAQCAtMzg5LDcgKzM4OSw3IEBAIHZv aWQgZG9faW50cm9kdWNlKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRf ZGF0YSAqaW4pCiAJCS8qIE5vdyBkb21haW4gYmVsb25ncyB0byBpdHMgY29ubmVjdGlvbi4gKi8K IAkJdGFsbG9jX3N0ZWFsKGRvbWFpbi0+Y29ubiwgZG9tYWluKTsKIAotCQlmaXJlX3dhdGNoZXMo TlVMTCwgIkBpbnRyb2R1Y2VEb21haW4iLCBmYWxzZSk7CisJCWZpcmVfd2F0Y2hlcyhOVUxMLCBp biwgIkBpbnRyb2R1Y2VEb21haW4iLCBmYWxzZSk7CiAJfSBlbHNlIGlmICgoZG9tYWluLT5tZm4g PT0gbWZuKSAmJiAoZG9tYWluLT5jb25uICE9IGNvbm4pKSB7CiAJCS8qIFVzZSBYU19JTlRST0RV Q0UgZm9yIHJlY3JlYXRpbmcgdGhlIHhlbmJ1cyBldmVudC1jaGFubmVsLiAqLwogCQlpZiAoZG9t YWluLT5wb3J0KQpkaWZmIC0tZ2l0IGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX3RyYW5zYWN0 aW9uLmMgYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfdHJhbnNhY3Rpb24uYwppbmRleCAzY2Rl MjZlLi4zNDcyMGZhIDEwMDY0NAotLS0gYS90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfdHJhbnNh Y3Rpb24uYworKysgYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfdHJhbnNhY3Rpb24uYwpAQCAt MjI3LDcgKzIyNyw3IEBAIHZvaWQgZG9fdHJhbnNhY3Rpb25fZW5kKHN0cnVjdCBjb25uZWN0aW9u ICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRfZGF0YSAqaW4pCiAKIAkJLyogRmlyZSBvZmYgdGhlIHdh dGNoZXMgZm9yIGV2ZXJ5dGhpbmcgdGhhdCBjaGFuZ2VkLiAqLwogCQlsaXN0X2Zvcl9lYWNoX2Vu dHJ5KGksICZ0cmFucy0+Y2hhbmdlcywgbGlzdCkKLQkJCWZpcmVfd2F0Y2hlcyhjb25uLCBpLT5u b2RlLCBpLT5yZWN1cnNlKTsKKwkJCWZpcmVfd2F0Y2hlcyhjb25uLCBpbiwgaS0+bm9kZSwgaS0+ cmVjdXJzZSk7CiAJCWdlbmVyYXRpb24rKzsKIAl9CiAJc2VuZF9hY2soY29ubiwgWFNfVFJBTlNB Q1RJT05fRU5EKTsKZGlmZiAtLWdpdCBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF93YXRjaC5j IGIvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX3dhdGNoLmMKaW5kZXggODU0Mzk5OS4uODE0OTcw MSAxMDA2NDQKLS0tIGEvdG9vbHMveGVuc3RvcmUveGVuc3RvcmVkX3dhdGNoLmMKKysrIGIvdG9v bHMveGVuc3RvcmUveGVuc3RvcmVkX3dhdGNoLmMKQEAgLTQ4LDYgKzQ4LDcgQEAgc3RydWN0IHdh dGNoCiB9OwogCiBzdGF0aWMgdm9pZCBhZGRfZXZlbnQoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4s CisJCSAgICAgIHZvaWQgKnRtcCwKIAkJICAgICAgc3RydWN0IHdhdGNoICp3YXRjaCwKIAkJICAg ICAgY29uc3QgY2hhciAqbmFtZSkKIHsKQEAgLTU3LDcgKzU4LDcgQEAgc3RhdGljIHZvaWQgYWRk X2V2ZW50KHN0cnVjdCBjb25uZWN0aW9uICpjb25uLAogCiAJaWYgKCFjaGVja19ldmVudF9ub2Rl KG5hbWUpKSB7CiAJCS8qIENhbiB0aGlzIGNvbm4gbG9hZCBub2RlLCBvciBzZWUgdGhhdCBpdCBk b2Vzbid0IGV4aXN0PyAqLwotCQlzdHJ1Y3Qgbm9kZSAqbm9kZSA9IGdldF9ub2RlKGNvbm4sIG5h bWUsIFhTX1BFUk1fUkVBRCk7CisJCXN0cnVjdCBub2RlICpub2RlID0gZ2V0X25vZGUoY29ubiwg dG1wLCBuYW1lLCBYU19QRVJNX1JFQUQpOwogCQkvKgogCQkgKiBYWFggV2UgYWxsb3cgRUFDQ0VT IGhlcmUgYmVjYXVzZSBvdGhlcndpc2UgYSBub24tZG9tMAogCQkgKiBiYWNrZW5kIGRyaXZlciBj YW5ub3Qgd2F0Y2ggZm9yIGRpc2FwcGVhcmFuY2Ugb2YgYSBmcm9udGVuZApAQCAtNzgsMTQgKzc5 LDE1IEBAIHN0YXRpYyB2b2lkIGFkZF9ldmVudChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwKIAl9 CiAKIAlsZW4gPSBzdHJsZW4obmFtZSkgKyAxICsgc3RybGVuKHdhdGNoLT50b2tlbikgKyAxOwot CWRhdGEgPSB0YWxsb2NfYXJyYXkod2F0Y2gsIGNoYXIsIGxlbik7CisJZGF0YSA9IHRhbGxvY19h cnJheSh0bXAsIGNoYXIsIGxlbik7CiAJc3RyY3B5KGRhdGEsIG5hbWUpOwogCXN0cmNweShkYXRh ICsgc3RybGVuKG5hbWUpICsgMSwgd2F0Y2gtPnRva2VuKTsKIAlzZW5kX3JlcGx5KGNvbm4sIFhT X1dBVENIX0VWRU5ULCBkYXRhLCBsZW4pOwogCXRhbGxvY19mcmVlKGRhdGEpOwogfQogCi12b2lk IGZpcmVfd2F0Y2hlcyhzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgY29uc3QgY2hhciAqbmFtZSwg Ym9vbCByZWN1cnNlKQordm9pZCBmaXJlX3dhdGNoZXMoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4s IHZvaWQgKnRtcCwgY29uc3QgY2hhciAqbmFtZSwKKwkJICBib29sIHJlY3Vyc2UpCiB7CiAJc3Ry dWN0IGNvbm5lY3Rpb24gKmk7CiAJc3RydWN0IHdhdGNoICp3YXRjaDsKQEAgLTk4LDkgKzEwMCw5 IEBAIHZvaWQgZmlyZV93YXRjaGVzKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBjb25zdCBjaGFy ICpuYW1lLCBib29sIHJlY3Vyc2UpCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShpLCAmY29ubmVjdGlv bnMsIGxpc3QpIHsKIAkJbGlzdF9mb3JfZWFjaF9lbnRyeSh3YXRjaCwgJmktPndhdGNoZXMsIGxp c3QpIHsKIAkJCWlmIChpc19jaGlsZChuYW1lLCB3YXRjaC0+bm9kZSkpCi0JCQkJYWRkX2V2ZW50 KGksIHdhdGNoLCBuYW1lKTsKKwkJCQlhZGRfZXZlbnQoaSwgdG1wLCB3YXRjaCwgbmFtZSk7CiAJ CQllbHNlIGlmIChyZWN1cnNlICYmIGlzX2NoaWxkKHdhdGNoLT5ub2RlLCBuYW1lKSkKLQkJCQlh ZGRfZXZlbnQoaSwgd2F0Y2gsIHdhdGNoLT5ub2RlKTsKKwkJCQlhZGRfZXZlbnQoaSwgdG1wLCB3 YXRjaCwgd2F0Y2gtPm5vZGUpOwogCQl9CiAJfQogfQpAQCAtMTY5LDcgKzE3MSw3IEBAIHZvaWQg ZG9fd2F0Y2goc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIHN0cnVjdCBidWZmZXJlZF9kYXRhICpp bikKIAlzZW5kX2Fjayhjb25uLCBYU19XQVRDSCk7CiAKIAkvKiBXZSBmaXJlIG9uY2UgdXAgZnJv bnQ6IHNpbXBsaWZpZXMgY2xpZW50cyBhbmQgcmVzdGFydC4gKi8KLQlhZGRfZXZlbnQoY29ubiwg d2F0Y2gsIHdhdGNoLT5ub2RlKTsKKwlhZGRfZXZlbnQoY29ubiwgaW4sIHdhdGNoLCB3YXRjaC0+ bm9kZSk7CiB9CiAKIHZvaWQgZG9fdW53YXRjaChzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgc3Ry dWN0IGJ1ZmZlcmVkX2RhdGEgKmluKQpkaWZmIC0tZ2l0IGEvdG9vbHMveGVuc3RvcmUveGVuc3Rv cmVkX3dhdGNoLmggYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfd2F0Y2guaAppbmRleCA1YmM0 Zjg4Li44ZWQxZGRlIDEwMDY0NAotLS0gYS90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfd2F0Y2gu aAorKysgYi90b29scy94ZW5zdG9yZS94ZW5zdG9yZWRfd2F0Y2guaApAQCAtMjUsNyArMjUsOCBA QCB2b2lkIGRvX3dhdGNoKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1Y3QgYnVmZmVyZWRf ZGF0YSAqaW4pOwogdm9pZCBkb191bndhdGNoKHN0cnVjdCBjb25uZWN0aW9uICpjb25uLCBzdHJ1 Y3QgYnVmZmVyZWRfZGF0YSAqaW4pOwogCiAvKiBGaXJlIGFsbCB3YXRjaGVzOiByZWN1cnNlIG1l YW5zIGFsbCB0aGUgY2hpbGRyZW4gYXJlIGFmZmVjdGVkIChpZS4gcm0pLiAqLwotdm9pZCBmaXJl X3dhdGNoZXMoc3RydWN0IGNvbm5lY3Rpb24gKmNvbm4sIGNvbnN0IGNoYXIgKm5hbWUsIGJvb2wg cmVjdXJzZSk7Cit2b2lkIGZpcmVfd2F0Y2hlcyhzdHJ1Y3QgY29ubmVjdGlvbiAqY29ubiwgdm9p ZCAqdG1wLCBjb25zdCBjaGFyICpuYW1lLAorCQkgIGJvb2wgcmVjdXJzZSk7CiAKIHZvaWQgZHVt cF93YXRjaGVzKHN0cnVjdCBjb25uZWN0aW9uICpjb25uKTsKIAotLSAKMi42LjYKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGlu ZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHBzOi8vbGlzdHMueGVuLm9yZy94ZW4t ZGV2ZWwK