From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [CFT] signal/usb: Replace kill_pid_info_as_cred with kill_pid_usb_asyncio From: "Eric W. Biederman" Message-Id: <87ftszqa7k.fsf@xmission.com> Date: Thu, 07 Feb 2019 20:34:55 -0600 To: linux-usb@vger.kernel.org Cc: Greg Kroah-Hartman , Alan Stern , Oliver Neukum , linux-kernel@vger.kernel.org List-ID: VGhlIHVzYiBzdXBwb3J0IGZvciBhc3luY2lvIGVuY29kZWQgb25lIG9mIGl0J3MgdmFsdWVzIGlu IHRoZSB3cm9uZwpmaWVsZC4gIEl0IHNob3VsZCBoYXZlIHVzZWQgc2lfdmFsdWUgYnV0IGluc3Rl YWQgdXNlZCBzaV9hZGRyIHdoaWNoIGlzCm5vdCBwcmVzZW50IGluIHRoZSBfcnQgdW5pb24gbWVt YmVyIG9mIHN0cnVjdCBzaWdpbmZvLgoKVGhlIHJlc3VsdCBpcyBhIFBPU0lYIGFuZCBnbGliYyBp bmNvbXBhdGlibGUgZW5jb2Rpbmcgb2YgZmllbGRzIGluCnN0cnVjdCBzaWdpbmZvIHdpdGggc2lf Y29kZSBvZiBTSV9BU1lOQ0lPLiAgVGhpcyBtYWtlcyBpdCBpbXBvc3NpYmxlCnRvIGxvb2sgYXQg YSBzdHJ1Y3Qgc2lnaW5mbyB3aXRoIHNpX2NvZGUgc2V0IHRvIFNJX0FTWU5DSU8gYW5kIHdpdGhv dXQKY29udGV4dCBwcm9wZXJseSBkZWNvZGUgaXQuICBXaGljaCB1bmZvcnR1bmF0ZWx5IG1lYW5z IHRoYXQKY29weV9zaWdpbmZvX3RvX3VzZXIzMiBjYW4ndCBoYW5kbGUgdGhlIGNvbXBhdCBpc3N1 ZXMgdGhpcyB1bmZvcnR1bmF0ZQpjaG9pY2UgaW4gZW5jb2RpbmdzIGJyaW5ncyB1cC4KClRoZXJl Zm9yZSByZXBsYWNlIGtpbGxfcGlkX2luZm9fYXNfY3JlZCB3aXRoIGtpbGxfcGlkX3VzYl9hc3lu Y2lvIGEKZGVkaWNhdGVkIGZ1bmN0aW9uIGZvciB0aGlzIG9uZSBzcGVjaWZpYyBjYXNlLiAgVGhl cmUgYXJlIG5vIG90aGVyCnVzZXJzIG9mIGtpbGxfcGlkX2luZm9fYXNfY3JlZCBzbyB0aGlzIHNw ZWNpYWxpemF0aW9uIHNob3VsZCBoYXZlIG5vCmltcGFjdCBvbiB0aGUgYW1vbnQgb2YgY29kZSBp biB0aGUga2VybmVsLiAgSGF2ZSBraWxsX3BpZF91c2JfYXN5bmNpbwp0YWtlIGluc3RlYWQgb2Yg YSBzaWdpbmZvX3Qgd2hpY2ggaXMgZGlmZmljdWx0IGVycm9yIHByb25lIDMKYXJndW1lbnRzLCBh IHNpZ25hbCBudW1iZXIsIGFuIGVycm5vIHZhbHVlLCBhbmQgYW4gYWRkcmVzcyBlbmNvbmRlZCBh cwphIHNpZ3ZhbF90LiAgVGhlIGVuY29kaW5nIGFzIGEgc2lndmFsX3QgYWxsb3dzIHRoZSBjYWxs ZXIgdG8gZGVhbCB3aXRoCnRoZSBjb21wYXQgaXNzdWVzIGJlZm9yZSBjYWxsaW5nIGtpbGxfcGlk X2luZm9fYXNfY3JlZC4KCkFkZCBCVUlMRF9CVUdfT05zIGluIGtlcm5lbC9zaWduYWwuYyB0byBl bnN1cmUgdGhhdCB3ZSBjYW4gbm93IHBsYWNlCnRoZSBwb2ludGVyIHZhbHVlIGF0IHRoZSBpbiBz aV9waWQgKGluc3RlYWQgb2Ygc2lfYWRkcikgYW5kIGdldAp0aGUgc2FtZSBiaW5hcnkgcmVzdWx0 IHdoZW4gdGhlIHN0cnVjdHVyZSBpcyBjb3BpZWQgdG8gdXNlciBzcGFjZQphbmQgd2hlbiB0aGUg c3RydWN0dXJlIGlzIGNvcGllZCBmaWVsZCBieSBmaWVsZC4KClRoZSB1c2IgY29kZSBpcyB1cGRh dGVkIHRvIHRyYWNrIGlmIHRoZSB2YWx1ZXMgaXQgcGFzc2VzIGludG8Ka2lsbF9waWRfdXNiX2Fz eW5jaW8gd2VyZSBwYXNzZWQgdG8gaXQgZnJvbSBhIG5hdGl2ZSB1c2Vyc3BhY2UKb3IgZnJvbSBh dCBjb21wYXQgdXNlciBzcGFjZS4gIFRvIGFsbG93IGEgcHJvcGVyIGNvbnZlcnNpb24Kb2YgdGhl IGFkZHJlc3Nlcy4KCkNjOiBHcmVnIEtyb2FoLUhhcnRtYW4gPGdyZWdraEBsaW51eGZvdW5kYXRp b24ub3JnPgpDYzogbGludXgtdXNiQHZnZXIua2VybmVsLm9yZwpDYzogQWxhbiBTdGVybiA8c3Rl cm5Acm93bGFuZC5oYXJ2YXJkLmVkdT4KQ2M6IE9saXZlciBOZXVrdW0gPG9uZXVrdW1Ac3VzZS5j b20+CkZpeGVzOiB2Mi4zLjM5CkNjOiBzdGFibGVAdmdlci5rZXJuZWwub3JnClNpZ25lZC1vZmYt Ynk6ICJFcmljIFcuIEJpZWRlcm1hbiIgPGViaWVkZXJtQHhtaXNzaW9uLmNvbT4KLS0tCgpDYW4g SSBnZXQgc29tZW9uZSB0byB0ZXN0IHRoaXMgY29kZT8gIEkganVzdCBkaXNjb3ZlcmVkIHRoYXQg dGhlCnVzYiBjb2RlIGlzIGZpbGxpbmcgaW4gc3RydWN0IHNpZ2luZm8gd3JvbmcgYW5kIGNvcHlf c2lnaW5mb190b191c2VyMzIKY2FuJ3QgcG9zc2libHkgZ2V0IHRoaXMgY29ycmVjdCB3aXRob3V0 IHNvbWUgaGVscC4KCkkgdGhpbmsgSSBoYXZlIGNvZGVkIHVwIGEgd29ya2luZyBmaXguICBCdXQg SSBkb24ndCBoYXZlIGEgc2V0dXAKd2hlcmUgSSBjYW4gdGVzdCB0aGlzLgoKIGRyaXZlcnMvdXNi L2NvcmUvZGV2aW8uYyAgICAgfCA0NSArKysrKysrKysrKy0tLS0tLS0tLS0tLQogaW5jbHVkZS9s aW51eC9zY2hlZC9zaWduYWwuaCB8ICAyICstCiBrZXJuZWwvc2lnbmFsLmMgICAgICAgICAgICAg IHwgNjkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiAzIGZpbGVzIGNoYW5n ZWQsIDgzIGluc2VydGlvbnMoKyksIDMzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvdXNiL2NvcmUvZGV2aW8uYyBiL2RyaXZlcnMvdXNiL2NvcmUvZGV2aW8uYwppbmRleCBkNjU1 NjYzNDFkZDEuLmQxYTUzZjc2MGYwMCAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvY29yZS9kZXZp by5jCisrKyBiL2RyaXZlcnMvdXNiL2NvcmUvZGV2aW8uYwpAQCAtNjMsNyArNjMsNyBAQCBzdHJ1 Y3QgdXNiX2Rldl9zdGF0ZSB7CiAJdW5zaWduZWQgaW50IGRpc2NzaWducjsKIAlzdHJ1Y3QgcGlk ICpkaXNjX3BpZDsKIAljb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZDsKLQl2b2lkIF9fdXNlciAqZGlz Y2NvbnRleHQ7CisJc2lndmFsX3QgZGlzY2NvbnRleHQ7CiAJdW5zaWduZWQgbG9uZyBpZmNsYWlt ZWQ7CiAJdTMyIGRpc2FibGVkX2J1bGtfZXBzOwogCWJvb2wgcHJpdmlsZWdlc19kcm9wcGVkOwpA QCAtOTQsNiArOTQsNyBAQCBzdHJ1Y3QgYXN5bmMgewogCXN0cnVjdCB1c2JfbWVtb3J5ICp1c2Jt OwogCXVuc2lnbmVkIGludCBtZW1fdXNhZ2U7CiAJaW50IHN0YXR1czsKKwl1OCBjb21wYXRfdXNl cnVyYjsKIAl1OCBidWxrX2FkZHI7CiAJdTggYnVsa19zdGF0dXM7CiB9OwpAQCAtNTgyLDIyICs1 ODMsMjQgQEAgc3RhdGljIHZvaWQgYXN5bmNfY29tcGxldGVkKHN0cnVjdCB1cmIgKnVyYikKIHsK IAlzdHJ1Y3QgYXN5bmMgKmFzID0gdXJiLT5jb250ZXh0OwogCXN0cnVjdCB1c2JfZGV2X3N0YXRl ICpwcyA9IGFzLT5wczsKLQlzdHJ1Y3Qga2VybmVsX3NpZ2luZm8gc2luZm87CiAJc3RydWN0IHBp ZCAqcGlkID0gTlVMTDsKIAljb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCA9IE5VTEw7CiAJdW5zaWdu ZWQgbG9uZyBmbGFnczsKLQlpbnQgc2lnbnI7CisJc2lndmFsX3QgYWRkcjsKKwlpbnQgc2lnbnIs IGVycm5vOwogCiAJc3Bpbl9sb2NrX2lycXNhdmUoJnBzLT5sb2NrLCBmbGFncyk7CiAJbGlzdF9t b3ZlX3RhaWwoJmFzLT5hc3luY2xpc3QsICZwcy0+YXN5bmNfY29tcGxldGVkKTsKIAlhcy0+c3Rh dHVzID0gdXJiLT5zdGF0dXM7CiAJc2lnbnIgPSBhcy0+c2lnbnI7CiAJaWYgKHNpZ25yKSB7Ci0J CWNsZWFyX3NpZ2luZm8oJnNpbmZvKTsKLQkJc2luZm8uc2lfc2lnbm8gPSBhcy0+c2lnbnI7Ci0J CXNpbmZvLnNpX2Vycm5vID0gYXMtPnN0YXR1czsKLQkJc2luZm8uc2lfY29kZSA9IFNJX0FTWU5D SU87Ci0JCXNpbmZvLnNpX2FkZHIgPSBhcy0+dXNlcnVyYjsKKwkJZXJybm8gPSBhcy0+c3RhdHVz OworI2lmZGVmIENPTkZJR19DT01QQVQKKwkJaWYgKGFzLT5jb21wYXRfdXNlcnVyYikKKwkJCWFk ZHIuc2l2YWxfaW50ID0gcHRyX3RvX2NvbXBhdChhcy0+dXNlcnVyYik7CisJCWVsc2UKKyNlbmRp ZgorCQkJYWRkci5zaXZhbF9wdHIgPSBhcy0+dXNlcnVyYjsKIAkJcGlkID0gZ2V0X3BpZChhcy0+ cGlkKTsKIAkJY3JlZCA9IGdldF9jcmVkKGFzLT5jcmVkKTsKIAl9CkBAIC02MTUsNyArNjE4LDcg QEAgc3RhdGljIHZvaWQgYXN5bmNfY29tcGxldGVkKHN0cnVjdCB1cmIgKnVyYikKIAlzcGluX3Vu bG9ja19pcnFyZXN0b3JlKCZwcy0+bG9jaywgZmxhZ3MpOwogCiAJaWYgKHNpZ25yKSB7Ci0JCWtp bGxfcGlkX2luZm9fYXNfY3JlZChzaW5mby5zaV9zaWdubywgJnNpbmZvLCBwaWQsIGNyZWQpOwor CQlraWxsX3BpZF91c2JfYXN5bmNpbyhzaWduciwgZXJybm8sIGFkZHIsIHBpZCwgY3JlZCk7CiAJ CXB1dF9waWQocGlkKTsKIAkJcHV0X2NyZWQoY3JlZCk7CiAJfQpAQCAtMTQyNyw3ICsxNDMwLDcg QEAgZmluZF9tZW1vcnlfYXJlYShzdHJ1Y3QgdXNiX2Rldl9zdGF0ZSAqcHMsIGNvbnN0IHN0cnVj dCB1c2JkZXZmc191cmIgKnV1cmIpCiAKIHN0YXRpYyBpbnQgcHJvY19kb19zdWJtaXR1cmIoc3Ry dWN0IHVzYl9kZXZfc3RhdGUgKnBzLCBzdHJ1Y3QgdXNiZGV2ZnNfdXJiICp1dXJiLAogCQkJc3Ry dWN0IHVzYmRldmZzX2lzb19wYWNrZXRfZGVzYyBfX3VzZXIgKmlzb19mcmFtZV9kZXNjLAotCQkJ dm9pZCBfX3VzZXIgKmFyZykKKwkJCXZvaWQgX191c2VyICphcmcsIGJvb2wgY29tcGF0KQogewog CXN0cnVjdCB1c2JkZXZmc19pc29fcGFja2V0X2Rlc2MgKmlzb3BrdCA9IE5VTEw7CiAJc3RydWN0 IHVzYl9ob3N0X2VuZHBvaW50ICplcDsKQEAgLTE3MjksNiArMTczMiw3IEBAIHN0YXRpYyBpbnQg cHJvY19kb19zdWJtaXR1cmIoc3RydWN0IHVzYl9kZXZfc3RhdGUgKnBzLCBzdHJ1Y3QgdXNiZGV2 ZnNfdXJiICp1dXJiCiAJaXNvcGt0ID0gTlVMTDsKIAlhcy0+cHMgPSBwczsKIAlhcy0+dXNlcnVy YiA9IGFyZzsKKwlhcy0+Y29tcGF0X3VzZXJ1cmIgPSBjb21wYXQ7CiAJaWYgKGFzLT51c2JtKSB7 CiAJCXVuc2lnbmVkIGxvbmcgdXVyYl9zdGFydCA9ICh1bnNpZ25lZCBsb25nKXV1cmItPmJ1ZmZl cjsKIApAQCAtMTgwOSw3ICsxODEzLDcgQEAgc3RhdGljIGludCBwcm9jX3N1Ym1pdHVyYihzdHJ1 Y3QgdXNiX2Rldl9zdGF0ZSAqcHMsIHZvaWQgX191c2VyICphcmcpCiAKIAlyZXR1cm4gcHJvY19k b19zdWJtaXR1cmIocHMsICZ1dXJiLAogCQkJKCgoc3RydWN0IHVzYmRldmZzX3VyYiBfX3VzZXIg KilhcmcpLT5pc29fZnJhbWVfZGVzYyksCi0JCQlhcmcpOworCQkJYXJnLCBmYWxzZSk7CiB9CiAK IHN0YXRpYyBpbnQgcHJvY191bmxpbmt1cmIoc3RydWN0IHVzYl9kZXZfc3RhdGUgKnBzLCB2b2lk IF9fdXNlciAqYXJnKQpAQCAtMTk3OSw3ICsxOTgzLDcgQEAgc3RhdGljIGludCBwcm9jX2Rpc2Nv bm5lY3RzaWduYWxfY29tcGF0KHN0cnVjdCB1c2JfZGV2X3N0YXRlICpwcywgdm9pZCBfX3VzZXIg KmEKIAlpZiAoY29weV9mcm9tX3VzZXIoJmRzLCBhcmcsIHNpemVvZihkcykpKQogCQlyZXR1cm4g LUVGQVVMVDsKIAlwcy0+ZGlzY3NpZ25yID0gZHMuc2lnbnI7Ci0JcHMtPmRpc2Njb250ZXh0ID0g Y29tcGF0X3B0cihkcy5jb250ZXh0KTsKKwlwcy0+ZGlzY2NvbnRleHQuc2l2YWxfaW50ID0gZHMu Y29udGV4dDsKIAlyZXR1cm4gMDsKIH0KIApAQCAtMjAxMyw3ICsyMDE3LDcgQEAgc3RhdGljIGlu dCBwcm9jX3N1Ym1pdHVyYl9jb21wYXQoc3RydWN0IHVzYl9kZXZfc3RhdGUgKnBzLCB2b2lkIF9f dXNlciAqYXJnKQogCiAJcmV0dXJuIHByb2NfZG9fc3VibWl0dXJiKHBzLCAmdXVyYiwKIAkJCSgo c3RydWN0IHVzYmRldmZzX3VyYjMyIF9fdXNlciAqKWFyZyktPmlzb19mcmFtZV9kZXNjLAotCQkJ YXJnKTsKKwkJCWFyZywgdHJ1ZSk7CiB9CiAKIHN0YXRpYyBpbnQgcHJvY2Vzc2NvbXBsX2NvbXBh dChzdHJ1Y3QgYXN5bmMgKmFzLCB2b2lkIF9fdXNlciAqIF9fdXNlciAqYXJnKQpAQCAtMjA5NCw3 ICsyMDk4LDcgQEAgc3RhdGljIGludCBwcm9jX2Rpc2Nvbm5lY3RzaWduYWwoc3RydWN0IHVzYl9k ZXZfc3RhdGUgKnBzLCB2b2lkIF9fdXNlciAqYXJnKQogCWlmIChjb3B5X2Zyb21fdXNlcigmZHMs IGFyZywgc2l6ZW9mKGRzKSkpCiAJCXJldHVybiAtRUZBVUxUOwogCXBzLT5kaXNjc2lnbnIgPSBk cy5zaWducjsKLQlwcy0+ZGlzY2NvbnRleHQgPSBkcy5jb250ZXh0OworCXBzLT5kaXNjY29udGV4 dC5zaXZhbF9wdHIgPSBkcy5jb250ZXh0OwogCXJldHVybiAwOwogfQogCkBAIC0yNjE2LDIyICsy NjIwLDE1IEBAIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlvbnMgdXNiZGV2X2ZpbGVfb3BlcmF0 aW9ucyA9IHsKIHN0YXRpYyB2b2lkIHVzYmRldl9yZW1vdmUoc3RydWN0IHVzYl9kZXZpY2UgKnVk ZXYpCiB7CiAJc3RydWN0IHVzYl9kZXZfc3RhdGUgKnBzOwotCXN0cnVjdCBrZXJuZWxfc2lnaW5m byBzaW5mbzsKIAogCXdoaWxlICghbGlzdF9lbXB0eSgmdWRldi0+ZmlsZWxpc3QpKSB7CiAJCXBz ID0gbGlzdF9lbnRyeSh1ZGV2LT5maWxlbGlzdC5uZXh0LCBzdHJ1Y3QgdXNiX2Rldl9zdGF0ZSwg bGlzdCk7CiAJCWRlc3Ryb3lfYWxsX2FzeW5jKHBzKTsKIAkJd2FrZV91cF9hbGwoJnBzLT53YWl0 KTsKIAkJbGlzdF9kZWxfaW5pdCgmcHMtPmxpc3QpOwotCQlpZiAocHMtPmRpc2NzaWducikgewot CQkJY2xlYXJfc2lnaW5mbygmc2luZm8pOwotCQkJc2luZm8uc2lfc2lnbm8gPSBwcy0+ZGlzY3Np Z25yOwotCQkJc2luZm8uc2lfZXJybm8gPSBFUElQRTsKLQkJCXNpbmZvLnNpX2NvZGUgPSBTSV9B U1lOQ0lPOwotCQkJc2luZm8uc2lfYWRkciA9IHBzLT5kaXNjY29udGV4dDsKLQkJCWtpbGxfcGlk X2luZm9fYXNfY3JlZChwcy0+ZGlzY3NpZ25yLCAmc2luZm8sCi0JCQkJCXBzLT5kaXNjX3BpZCwg cHMtPmNyZWQpOwotCQl9CisJCWlmIChwcy0+ZGlzY3NpZ25yKQorCQkJa2lsbF9waWRfdXNiX2Fz eW5jaW8ocHMtPmRpc2NzaWduciwgRVBJUEUsIHBzLT5kaXNjY29udGV4dCwKKwkJCQkJICAgICBw cy0+ZGlzY19waWQsIHBzLT5jcmVkKTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGlu dXgvc2NoZWQvc2lnbmFsLmggYi9pbmNsdWRlL2xpbnV4L3NjaGVkL3NpZ25hbC5oCmluZGV4IGUz MWQ2ODIwNGIyMy4uODBhNTE1NTVhN2UxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NjaGVk L3NpZ25hbC5oCisrKyBiL2luY2x1ZGUvbGludXgvc2NoZWQvc2lnbmFsLmgKQEAgLTMzMCw3ICsz MzAsNyBAQCBleHRlcm4gdm9pZCBmb3JjZV9zaWdzZWd2KGludCBzaWcpOwogZXh0ZXJuIGludCBm b3JjZV9zaWdfaW5mbyhzdHJ1Y3Qga2VybmVsX3NpZ2luZm8gKik7CiBleHRlcm4gaW50IF9fa2ls bF9wZ3JwX2luZm8oaW50IHNpZywgc3RydWN0IGtlcm5lbF9zaWdpbmZvICppbmZvLCBzdHJ1Y3Qg cGlkICpwZ3JwKTsKIGV4dGVybiBpbnQga2lsbF9waWRfaW5mbyhpbnQgc2lnLCBzdHJ1Y3Qga2Vy bmVsX3NpZ2luZm8gKmluZm8sIHN0cnVjdCBwaWQgKnBpZCk7Ci1leHRlcm4gaW50IGtpbGxfcGlk X2luZm9fYXNfY3JlZChpbnQsIHN0cnVjdCBrZXJuZWxfc2lnaW5mbyAqLCBzdHJ1Y3QgcGlkICos CitleHRlcm4gaW50IGtpbGxfcGlkX3VzYl9hc3luY2lvKGludCBzaWcsIGludCBlcnJubywgc2ln dmFsX3QgYWRkciwgc3RydWN0IHBpZCAqLAogCQkJCWNvbnN0IHN0cnVjdCBjcmVkICopOwogZXh0 ZXJuIGludCBraWxsX3BncnAoc3RydWN0IHBpZCAqcGlkLCBpbnQgc2lnLCBpbnQgcHJpdik7CiBl eHRlcm4gaW50IGtpbGxfcGlkKHN0cnVjdCBwaWQgKnBpZCwgaW50IHNpZywgaW50IHByaXYpOwpk aWZmIC0tZ2l0IGEva2VybmVsL3NpZ25hbC5jIGIva2VybmVsL3NpZ25hbC5jCmluZGV4IDNkNTIy ZGQyODU4Yi4uYWNjNDNjOWE1ZmQzIDEwMDY0NAotLS0gYS9rZXJuZWwvc2lnbmFsLmMKKysrIGIv a2VybmVsL3NpZ25hbC5jCkBAIC0xNDM3LDEzICsxNDM3LDQ0IEBAIHN0YXRpYyBpbmxpbmUgYm9v bCBraWxsX2FzX2NyZWRfcGVybShjb25zdCBzdHJ1Y3QgY3JlZCAqY3JlZCwKIAkgICAgICAgdWlk X2VxKGNyZWQtPnVpZCwgcGNyZWQtPnVpZCk7CiB9CiAKLS8qIGxpa2Uga2lsbF9waWRfaW5mbygp LCBidXQgZG9lc24ndCB1c2UgdWlkL2V1aWQgb2YgImN1cnJlbnQiICovCi1pbnQga2lsbF9waWRf aW5mb19hc19jcmVkKGludCBzaWcsIHN0cnVjdCBrZXJuZWxfc2lnaW5mbyAqaW5mbywgc3RydWN0 IHBpZCAqcGlkLAotCQkJIGNvbnN0IHN0cnVjdCBjcmVkICpjcmVkKQorLyoKKyAqIFRoZSB1c2Ig YXN5bmNpbyB1c2FnZSBvZiBzaWdpbmZvIGlzIHdyb25nLiAgVGhlIGdsaWJjIHN1cHBvcnQKKyAq IGZvciBhc3luY2lvIHdoaWNoIHVzZXMgU0lfQVNZTkNJTyBhc3N1bWVzIHRoZSBsYXlvdXQgaXMg U0lMX1JULgorICogQUtBIGFmdGVyIHRoZSBnZW5lcmljIGZpZWxkczoKKyAqCWtlcm5lbF9waWRf dAlzaV9waWQ7CisgKglrZXJuZWxfdWlkMzJfdAlzaV91aWQ7CisgKglzaWd2YWxfdAlzaV92YWx1 ZTsKKyAqCisgKiBVbmZvcnR1bmF0ZWx5IHdoZW4gdXNiIGdlbmVyYXRlcyBTSV9BU1lOQ0lPIGl0 IGFzc3VtZXMgdGhlIGxheW91dAorICogYWZ0ZXIgdGhlIGdlbmVyaWMgZmllbGRzIGlzOgorICoJ dm9pZCBfX3VzZXIgCSpzaV9hZGRyOworICoKKyAqIFRoaXMgaXMgYSBwcmFjdGljYWwgcHJvYmxl bSB3aGVuIHRoZXJlIGlzIGEgNjRiaXQgYmlnIGVuZGlhbiBrZXJuZWwKKyAqIGFuZCBhIDMyYml0 IHVzZXJzcGFjZS4gIEFzIHRoZSAzMmJpdCBhZGRyZXNzIHdpbGwgZW5jb2RlZCBpbiB0aGUgbG93 CisgKiAzMmJpdHMgb2YgdGhlIHBvaW50ZXIuICBUaG9zZSBsb3cgMzJiaXRzIHdpbGwgYmUgc3Rv cmVkIGF0IGhpZ2hlcgorICogYWRkcmVzcyB0aGFuIGFwcGVhciBpbiBhIDMyIGJpdCBwb2ludGVy LiAgU28gdXNlcnNwYWNlIHdpbGwgbm90CisgKiBzZWUgdGhlIGFkZHJlc3MgaXQgd2FzIGV4cGVj dGluZyBmb3IgaXQncyBjb21wbGV0aW9ucy4KKyAqCisgKiBUaGVyZSBpcyBub3RoaW5nIGluIHRo ZSBlbmNvZGluZyB0aGF0IGNhbiBhbGxvdworICogY29weV9zaWdpbmZvX3RvX3VzZXIzMiB0byBk ZXRlY3QgdGhpcyBjb25mdXNpb24gb2YgZm9ybWF0cywgc28KKyAqIGhhbmRsZSB0aGlzIGJ5IHJl cXVpcmluZyB0aGUgY2FsbGVyIG9mIGtpbGxfcGlkX3VzYl9hc3luY2lvIHRvCisgKiBub3RpY2Ug d2hlbiB0aGlzIHNpdHVyYXRpb24gdGFrZXMgcGxhY2UgYW5kIHRvIHN0b3JlIHRoZSAzMmJpdAor ICogcG9pbnRlciBpbiBzaXZhbF9pbnQsIGluc3RlYWQgb2Ygc2l2YWxfYWRkciBvZiB0aGUgc2ln dmFsX3QgYWRkcgorICogcGFyYW1ldGVyLgorICovCitpbnQga2lsbF9waWRfdXNiX2FzeW5jaW8o aW50IHNpZywgaW50IGVycm5vLCBzaWd2YWxfdCBhZGRyLAorCQkJIHN0cnVjdCBwaWQgKnBpZCwg Y29uc3Qgc3RydWN0IGNyZWQgKmNyZWQpCiB7Ci0JaW50IHJldCA9IC1FSU5WQUw7CisJc3RydWN0 IGtlcm5lbF9zaWdpbmZvIGluZm87CiAJc3RydWN0IHRhc2tfc3RydWN0ICpwOwogCXVuc2lnbmVk IGxvbmcgZmxhZ3M7CisJaW50IHJldCA9IC1FSU5WQUw7CisKKwljbGVhcl9zaWdpbmZvKCZpbmZv KTsKKwlpbmZvLnNpX3NpZ25vID0gc2lnOworCWluZm8uc2lfZXJybm8gPSBlcnJubzsKKwlpbmZv LnNpX2NvZGUgPSBTSV9BU1lOQ0lPOworCSooKHNpZ3ZhbF90ICopJmluZm8uc2lfcGlkKSA9IGFk ZHI7CiAKIAlpZiAoIXZhbGlkX3NpZ25hbChzaWcpKQogCQlyZXR1cm4gcmV0OwpAQCAtMTQ1NCwx NyArMTQ4NSwxNyBAQCBpbnQga2lsbF9waWRfaW5mb19hc19jcmVkKGludCBzaWcsIHN0cnVjdCBr ZXJuZWxfc2lnaW5mbyAqaW5mbywgc3RydWN0IHBpZCAqcGlkLAogCQlyZXQgPSAtRVNSQ0g7CiAJ CWdvdG8gb3V0X3VubG9jazsKIAl9Ci0JaWYgKHNpX2Zyb211c2VyKGluZm8pICYmICFraWxsX2Fz X2NyZWRfcGVybShjcmVkLCBwKSkgeworCWlmICgha2lsbF9hc19jcmVkX3Blcm0oY3JlZCwgcCkp IHsKIAkJcmV0ID0gLUVQRVJNOwogCQlnb3RvIG91dF91bmxvY2s7CiAJfQotCXJldCA9IHNlY3Vy aXR5X3Rhc2tfa2lsbChwLCBpbmZvLCBzaWcsIGNyZWQpOworCXJldCA9IHNlY3VyaXR5X3Rhc2tf a2lsbChwLCAmaW5mbywgc2lnLCBjcmVkKTsKIAlpZiAocmV0KQogCQlnb3RvIG91dF91bmxvY2s7 CiAKIAlpZiAoc2lnKSB7CiAJCWlmIChsb2NrX3Rhc2tfc2lnaGFuZChwLCAmZmxhZ3MpKSB7Ci0J CQlyZXQgPSBfX3NlbmRfc2lnbmFsKHNpZywgaW5mbywgcCwgUElEVFlQRV9UR0lELCAwKTsKKwkJ CXJldCA9IF9fc2VuZF9zaWduYWwoc2lnLCAmaW5mbywgcCwgUElEVFlQRV9UR0lELCAwKTsKIAkJ CXVubG9ja190YXNrX3NpZ2hhbmQocCwgJmZsYWdzKTsKIAkJfSBlbHNlCiAJCQlyZXQgPSAtRVNS Q0g7CkBAIC0xNDczLDcgKzE1MDQsNyBAQCBpbnQga2lsbF9waWRfaW5mb19hc19jcmVkKGludCBz aWcsIHN0cnVjdCBrZXJuZWxfc2lnaW5mbyAqaW5mbywgc3RydWN0IHBpZCAqcGlkLAogCXJjdV9y ZWFkX3VubG9jaygpOwogCXJldHVybiByZXQ7CiB9Ci1FWFBPUlRfU1lNQk9MX0dQTChraWxsX3Bp ZF9pbmZvX2FzX2NyZWQpOworRVhQT1JUX1NZTUJPTF9HUEwoa2lsbF9waWRfdXNiX2FzeW5jaW8p OwogCiAvKgogICoga2lsbF9zb21ldGhpbmdfaW5mbygpIGludGVycHJldHMgcGlkIGluIGludGVy ZXN0aW5nIHdheXMganVzdCBsaWtlIGtpbGwoMikuCkBAIC00MzE4LDYgKzQzNDksMjggQEAgc3Rh dGljIGlubGluZSB2b2lkIHNpZ2luZm9fYnVpbGR0aW1lX2NoZWNrcyh2b2lkKQogCUNIRUNLX09G RlNFVChzaV9zeXNjYWxsKTsKIAlDSEVDS19PRkZTRVQoc2lfYXJjaCk7CiAjdW5kZWYgQ0hFQ0tf T0ZGU0VUCisKKwkvKiB1c2IgYXN5bmNpbyAqLworCUJVSUxEX0JVR19PTihvZmZzZXRvZihzdHJ1 Y3Qgc2lnaW5mbywgc2lfcGlkKSAhPQorCQkgICAgIG9mZnNldG9mKHN0cnVjdCBzaWdpbmZvLCBz aV9hZGRyKSk7CisJaWYgKHNpemVvZihpbnQpID09IHNpemVvZih2b2lkIF9fdXNlciAqKSkgewor CQlCVUlMRF9CVUdfT04oc2l6ZW9mX2ZpZWxkKHN0cnVjdCBzaWdpbmZvLCBzaV9waWQpICE9CisJ CQkgICAgIHNpemVvZih2b2lkIF9fdXNlciAqKSk7CisJfSBlbHNlIHsKKwkJQlVJTERfQlVHX09O KChzaXplb2ZfZmllbGQoc3RydWN0IHNpZ2luZm8sIHNpX3BpZCkgKworCQkJICAgICAgc2l6ZW9m X2ZpZWxkKHN0cnVjdCBzaWdpbmZvLCBzaV91aWQpKSAhPQorCQkJICAgICBzaXplb2Yodm9pZCBf X3VzZXIgKikpOworCQlCVUlMRF9CVUdfT04ob2Zmc2V0b2ZlbmQoc3RydWN0IHNpZ2luZm8sIHNp X3BpZCkgIT0KKwkJCSAgICAgb2Zmc2V0b2Yoc3RydWN0IHNpZ2luZm8sIHNpX3VpZCkpOworCX0K KyNpZmRlZiBDT05GSUdfQ09NUEFUCisJQlVJTERfQlVHX09OKG9mZnNldG9mKHN0cnVjdCBjb21w YXRfc2lnaW5mbywgc2lfcGlkKSAhPQorCQkgICAgIG9mZnNldG9mKHN0cnVjdCBjb21wYXRfc2ln aW5mbywgc2lfYWRkcikpOworCUJVSUxEX0JVR19PTihzaXplb2ZfZmllbGQoc3RydWN0IGNvbXBh dF9zaWdpbmZvLCBzaV9waWQpICE9CisJCSAgICAgc2l6ZW9mKGNvbXBhdF91cHRyX3QpKTsKKwlC VUlMRF9CVUdfT04oc2l6ZW9mX2ZpZWxkKHN0cnVjdCBjb21wYXRfc2lnaW5mbywgc2lfcGlkKSAh PQorCQkgICAgIHNpemVvZl9maWVsZChzdHJ1Y3Qgc2lnaW5mbywgc2lfcGlkKSk7CisjZW5kaWYK IH0KIAogdm9pZCBfX2luaXQgc2lnbmFsc19pbml0KHZvaWQpCg==