From owner-freebsd-hackers@freebsd.org Sat Apr 14 04:44:55 2018 Return-Path: Delivered-To: freebsd-hackers@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B2F1BFA2EB0 for ; Sat, 14 Apr 2018 04:44:54 +0000 (UTC) (envelope-from munro@penski.net) Received: from mail-wr0-x22b.google.com (mail-wr0-x22b.google.com [IPv6:2a00:1450:400c:c0c::22b]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 33E1D6A606 for ; Sat, 14 Apr 2018 04:44:53 +0000 (UTC) (envelope-from munro@penski.net) Received: by mail-wr0-x22b.google.com with SMTP id q6so645236wrd.6 for ; Fri, 13 Apr 2018 21:44:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=penski-net.20150623.gappssmtp.com; s=20150623; h=mime-version:sender:from:date:message-id:subject:to; bh=gjfD0WFtQmWJFpcZM6hpU2Ylr40csLf4h8rZjl3XDVU=; b=xZ51omAUXuxYztjsDUn2SOU6yjjY9JrN8dx9xywJYVBcVYuzFXhncgQ5rcWVf7lD5C baHfNbJjMtP5lEMDZnp8yfow2yIXT5gg8TZSOF4JMaQXYOaeYGz1KX8zS7dGJaiQnVQr VDzN3UiabY8xNrcX3Qp/M+Fnjy/H/FFcSBC+w3UjKW9CKLg8e54cvuJuqcCg1MD34coC Xp+0/8mfdfHolj9oGIISQckmtBLI1dVZxNy3/W6dtNnI4Ofq/8txa31Pw2uH4crmbEKn SzeVxjMQKk42ty7/S+sQ94pKtB4BBsZWkHY45i0I5/t4cdLrXglZrEmgqi74/uH8fQ9P fZSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:from:date:message-id:subject :to; bh=gjfD0WFtQmWJFpcZM6hpU2Ylr40csLf4h8rZjl3XDVU=; b=K//wAMYYv0LA7aoVyASQNjWePS4N6cxKW/N0IiEaEeXh7qX1LmFOV00bndNdqI3BRU O4D9Pah7aARsNx5HRrWG+kZTGQOrpvUTY/ZgfldwjQ8WFrABfZCxHd5m8+Dl6zmJxjwj qVpSm5QLjMIvgcnHRYjdSKMxbQvGEKgvfBBIkjxNvP6MIi+RPs/RN+Tbsu9tnFlMtOYX oveak/MIRLfkcZNsQ6LB8ua+g36IyLXgbSvUD4aT3StdkXhnkt2Uo+C0jLjCjqZOOgdV UNHXK7eXo2fzxhwC8UVGpfr/SAIP6WlS0Ll/t5Y/s02hbR3ljX5JOLMn+TyyPQdyEE98 db0w== X-Gm-Message-State: ALQs6tAfxB8cYu+FbBm8xAxgF6KB2Pdyq8ksUwA6Tmr+sdXGY/fuHYGT /Z8bJku1Hy9eIBVo4pyzdrApnk5j1I8momWGMVeTXHTV X-Google-Smtp-Source: AIpwx4+l6uwdQfVZ2iTgRCsLAXQJFAkUCeXL3X+9XqVTOiEUY+Cl/+JaOT8gPyCOuELSuMlwRwmwvdRYRwAnggPIjLg= X-Received: by 10.80.169.197 with SMTP id n63mr23091156edc.20.1523681092127; Fri, 13 Apr 2018 21:44:52 -0700 (PDT) MIME-Version: 1.0 Sender: munro@penski.net Received: by 10.80.208.17 with HTTP; Fri, 13 Apr 2018 21:44:51 -0700 (PDT) X-Originating-IP: [121.73.38.77] From: Thomas Munro Date: Sat, 14 Apr 2018 16:44:51 +1200 X-Google-Sender-Auth: oQssiEAqQmx__J1cjuniqM6xZWM Message-ID: Subject: PROC_SET_PDEATHSIG to get a signal when your parent exits To: freebsd-hackers@freebsd.org Content-Type: multipart/mixed; boundary="94eb2c194a123f6cef0569c7a6c0" X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 Apr 2018 04:44:55 -0000 --94eb2c194a123f6cef0569c7a6c0 Content-Type: text/plain; charset="UTF-8" Hello, In PostgreSQL we are planning to make use of Linux's prctl(PR_SET_PDEATHSIG) facility which tells the kernel to signal you when your parent process exits. This will cut down on polling and contention on a pipe in certain busy loops, where we need to be able to exit quickly if something kills the main supervisor process but we aren't waiting in kevent/epoll/poll-type primitive. We considered SIGIO but that'd require either one pipe per child process or a common process group, neither of which works for us. So I decided to try adding a new command PROC_SET_PDEATHSIG to procctl() to work exactly like Linux. Please see attached early draft patch. This is my first attempt at writing a patch for FreeBSD, so I expect that it contains newbie mistakes and style problems and I would be grateful for any feedback. Is this design sane? Is that the best syscall to use for this? Did I get the ptrace/orphan stuff right? Should this somehow share something with the Linux compat support for prctl(PR_SET_PDEATHSIG, ...)? Would people want this? Here's a quick and dirty userspace program I came up with while developing the patch: https://github.com/macdice/test-deathsig/blob/master/test-deathsig.c That tests a few interesting cases I thought of, but note that I haven't yet tested 32 bit support or the setuid/getuid logic. Thanks for reading, Thomas Munro --94eb2c194a123f6cef0569c7a6c0 Content-Type: application/octet-stream; name="0001-Support-PROC_SET_PDEATHSIG-as-a-command-to-procct-v1.patch" Content-Disposition: attachment; filename="0001-Support-PROC_SET_PDEATHSIG-as-a-command-to-procct-v1.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jfyw92cz0 RnJvbSBiOWE2NzMwNjk3YmEwOWY3ZWUwZjgxMTI5ZjNmOTc2ZGY4MjZkMWNkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUaG9tYXMgTXVucm8gPG11bnJvQGlwOS5vcmc+CkRhdGU6IEZy aSwgMTMgQXByIDIwMTggMjM6NDE6MzAgKzAxMDAKU3ViamVjdDogW1BBVENIXSBTdXBwb3J0IFBS T0NfU0VUX1BERUFUSFNJRyBhcyBhIGNvbW1hbmQgdG8gcHJvY2N0bC4KCkFsbG93IHByb2Nlc3Nl cyB0byByZXF1ZXN0IHRoZSBkZWxpdmVyeSBvZiBhIHNpZ25hbCB1cG9uIGRlYXRoCm9mIHRoZWly IHBhcmVudCBwcm9jZXNzLiAgVGhpcyBwcm92aWRlcyBhcHByb3hpbWF0ZWx5IHRoZSBzYW1lCmJl aGF2aW91ciBhcyBwcmN0bChQUl9TRVRfUERFQVRIU0lHLCAuLi4pIG9uIExpbnV4LgoKVGhvbWFz IE11bnJvIDxtdW5yb0BpcDkub3JnPgotLS0KIGxpYi9saWJjL3N5cy9wcm9jY3RsLjIgIHwgMjkg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHN5cy9rZXJuL2tlcm5fZXhlYy5jICAgIHwg IDQgKysrKwogc3lzL2tlcm4va2Vybl9leGl0LmMgICAgfCAxMyArKysrKysrKysrKysrCiBzeXMv a2Vybi9rZXJuX3Byb2NjdGwuYyB8IDMzICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LQogc3lzL2tlcm4va2Vybl90aHJlYWQuYyAgfCAgNCArKy0tCiBzeXMvc3lzL3Byb2MuaCAgICAg ICAgICB8ICAxICsKIHN5cy9zeXMvcHJvY2N0bC5oICAgICAgIHwgIDIgKysKIDcgZmlsZXMgY2hh bmdlZCwgODMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWIv bGliYy9zeXMvcHJvY2N0bC4yIGIvbGliL2xpYmMvc3lzL3Byb2NjdGwuMgppbmRleCBhZjk2YWU2 ZTA0Yy4uZTQ5ZWYzNjk5NWYgMTAwNjQ0Ci0tLSBhL2xpYi9saWJjL3N5cy9wcm9jY3RsLjIKKysr IGIvbGliL2xpYmMvc3lzL3Byb2NjdGwuMgpAQCAtMzkxLDYgKzM5MSwyNCBAQCBvdGhlcndpc2Uu CiBTZWUgdGhlIG5vdGUgYWJvdXQgc3lzY3RsCiAuRHYga2Vybi50cmFwX2Vub3RjYXAKIGFib3Zl LCB3aGljaCBnaXZlcyBpbmRlcGVuZGVudCBnbG9iYWwgY29udHJvbCBvZiBzaWduYWwgZGVsaXZl cnkuCisuSXQgRHYgUFJPQ19TRVRfUERFQVRIU0lHCitSZXF1ZXN0IHRoZSBkZWxpdmVyeSBvZiBh IHNpZ25hbCB3aGVuIHRoZSBwYXJlbnQgb2YgdGhlIGNhbGxpbmcKK3Byb2Nlc3MgZXhpdHMuCitV c2UgaWQgdHlwZSBQX1BJRCBhbmQgaWQgMC4KK1RoZSB2YWx1ZSBpcyBjbGVhcmVkIGZvciB0aGUg Y2hpbGRyZW4KK29mIGZvcmsoKSBhbmQgd2hlbiBleGVjdXRpbmcgc2V0LXVzZXItSUQgb3Igc2V0 LWdyb3VwLUlEIGJpbmFyaWVzLgorLkZhIGFyZworbXVzdCBwb2ludCB0byBhIHZhbHVlIG9mIHR5 cGUgaW50IGluZGljYXRpbmcgdGhlIHNpZ25hbAordGhhdCBzaG91bGQgYmUgZGVsaXZlcmVkIHRv IHRoZSBjYWxsZXIuICBVc2UgemVybyB0byBjYW5jZWwgdGhlCitkZWxpdmVyeSBvZiBzaWduYWxz LgorLkl0IER2IFBST0NfR0VUX1BERUFUSFNJRworUXVlcnkgdGhlIGN1cnJlbnQgc2lnbmFsIG51 bWJlciB0aGF0IHdpbGwgYmUgZGVsaXZlcmVkIHdoZW4gdGhlIHBhcmVudAorb2YgdGhlIGNhbGxp bmcgcHJvY2VzcyBleGl0cy4KK1VzZSBpZCB0eXBlIFBfUElEIGFuZCBpZCAwLgorLkZhIGFyZwor bXVzdCBwb2ludCB0byBhIG1lbW9yeSBsb2NhdGlvbiB0aGF0IGNhbiBob2xkIGEgdmFsdWUgb2Yg dHlwZSBpbnQuCitJZiBzaWduYWwgZGVsaXZlcnkgaGFzIG5vdCBiZWVuIHJlcXVlc3RlZCwgaXQg d2lsbCBjb250YWluIHplcm8KK29uIHJldHVybi4KIC5FbAogLlNoIE5PVEVTCiBEaXNhYmxpbmcg dHJhY2luZyBvbiBhIHByb2Nlc3Mgc2hvdWxkIG5vdCBiZSBjb25zaWRlcmVkIGEgc2VjdXJpdHkK QEAgLTQ4Nyw2ICs1MDUsMTIgQEAgcGFyYW1ldGVyIGZvciB0aGUKIG9yCiAuRHYgUFJPQ19UUkFQ Q0FQX0NUTAogcmVxdWVzdCBpcyBpbnZhbGlkLgorLkl0IEJxIEVyIEVJTlZBTAorVGhlCisuRHYg UFJPQ19TRVRfUERFQVRIU0lHCitvcgorLkR2IFBST0NfR0VUX1BERUFUSFNJRworcmVxdWVzdCBy ZWZlcmVuY2VkIGFuIHVuc3VwcG9ydGVkIGlkLCBpZF90eXBlIG9yIGludmFsaWQgc2lnbmFsIG51 bWJlci4KIC5FbAogLlNoIFNFRSBBTFNPCiAuWHIgZHRyYWNlIDEgLApAQCAtNTA2LDMgKzUzMCw4 IEBAIGZ1bmN0aW9uIGFwcGVhcmVkIGluCiBUaGUgcmVhcGVyIGZhY2lsaXR5IGlzIGJhc2VkIG9u IGEgc2ltaWxhciBmZWF0dXJlIG9mIExpbnV4IGFuZAogRHJhZ29uZmx5QlNELCBhbmQgZmlyc3Qg YXBwZWFyZWQgaW4KIC5GeCAxMC4yIC4KK1RoZQorLkR2IFBST0NfU0VUX1BERUFUSFNJRworZmFj aWxpdHkgaXMgYmFzZWQgb24gdGhlIHByY3RsKFBSX1NFVF9QREVBVEhTSUcsIC4uLikgZmVhdHVy ZSBvZiBMaW51eCwKK2FuZCBmaXJzdCBhcHBlYXJlZCBpbgorLkZ4IDEyLjAgLgpkaWZmIC0tZ2l0 IGEvc3lzL2tlcm4va2Vybl9leGVjLmMgYi9zeXMva2Vybi9rZXJuX2V4ZWMuYwppbmRleCAyMWIy NWUwMTQ4Yy4uNjc5OTE1YTZlNmUgMTAwNjQ0Ci0tLSBhL3N5cy9rZXJuL2tlcm5fZXhlYy5jCisr KyBiL3N5cy9rZXJuL2tlcm5fZXhlYy5jCkBAIC01MjIsNiArNTIyLDEwIEBAIGRvX2V4ZWN2ZShz dHJ1Y3QgdGhyZWFkICp0ZCwgc3RydWN0IGltYWdlX2FyZ3MgKmFyZ3MsIHN0cnVjdCBtYWMgKm1h Y19wKQogCWNyZWRlbnRpYWxfY2hhbmdpbmcgfD0gd2lsbF90cmFuc2l0aW9uOwogI2VuZGlmCiAK KwkvKiBEb24ndCBpbmhlcml0IFBST0NfU0VUX1BERUFUSFNJRyB2YWx1ZSBpZiBzZXR1aWQvc2V0 Z2lkLiAqLworCWlmIChjcmVkZW50aWFsX2NoYW5naW5nKQorCQlpbWdwLT5wcm9jLT5wX3BkZWF0 aHNpZyA9IDA7CisKIAlpZiAoY3JlZGVudGlhbF9jaGFuZ2luZyAmJgogI2lmZGVmIENBUEFCSUxJ VFlfTU9ERQogCSAgICAoKG9sZGNyZWQtPmNyX2ZsYWdzICYgQ1JFRF9GTEFHX0NBUE1PREUpID09 IDApICYmCmRpZmYgLS1naXQgYS9zeXMva2Vybi9rZXJuX2V4aXQuYyBiL3N5cy9rZXJuL2tlcm5f ZXhpdC5jCmluZGV4IGY2NzJhMmM3MzU4Li41NWYwOGEwMDRlYiAxMDA2NDQKLS0tIGEvc3lzL2tl cm4va2Vybl9leGl0LmMKKysrIGIvc3lzL2tlcm4va2Vybl9leGl0LmMKQEAgLTQ4MCw2ICs0ODAs MTIgQEAgZXhpdDEoc3RydWN0IHRocmVhZCAqdGQsIGludCBydmFsLCBpbnQgc2lnbm8pCiAJCQkJ UFJPQ19MT0NLKHEtPnBfcmVhcGVyKTsKIAkJCQlwa3NpZ25hbChxLT5wX3JlYXBlciwgU0lHQ0hM RCwga3NpMSk7CiAJCQkJUFJPQ19VTkxPQ0socS0+cF9yZWFwZXIpOworCQkJfSBlbHNlIGlmIChx LT5wX3BkZWF0aHNpZyA+IDApIHsKKwkJCQkvKgorCQkJCSAqIFRoZSBjaGlsZCBhc2tlZCB0byBy ZWNlaXZlZCBhIHNpZ25hbAorCQkJCSAqIHdoZW4gd2UgZXhpdC4KKwkJCQkgKi8KKwkJCQlrZXJu X3BzaWduYWwocSwgcS0+cF9wZGVhdGhzaWcpOwogCQkJfQogCQl9IGVsc2UgewogCQkJLyoKQEAg LTUyMCw2ICs1MjYsMTMgQEAgZXhpdDEoc3RydWN0IHRocmVhZCAqdGQsIGludCBydmFsLCBpbnQg c2lnbm8pCiAJICovCiAJd2hpbGUgKChxID0gTElTVF9GSVJTVCgmcC0+cF9vcnBoYW5zKSkgIT0g TlVMTCkgewogCQlQUk9DX0xPQ0socSk7CisJCS8qCisJCSAqIElmIHdlIGFyZSB0aGUgcmVhbCBw YXJlbnQgb2YgdGhpcyBwcm9jZXNzCisJCSAqIGJ1dCBpdCBoYXMgYmVlbiByZXBhcmVudGVkIHRv IGEgZGVidWdnZXIsIHRoZW4KKwkJICogY2hlY2sgaWYgaXQgYXNrZWQgZm9yIGEgc2lnbmFsIHdo ZW4gd2UgZXhpdC4KKwkJICovCisJCWlmIChxLT5wX3BkZWF0aHNpZyA+IDApCisJCQlrZXJuX3Bz aWduYWwocSwgcS0+cF9wZGVhdGhzaWcpOwogCQlDVFIyKEtUUl9QVFJBQ0UsICJleGl0OiBwaWQg JWQsIGNsZWFyaW5nIG9ycGhhbiAlZCIsIHAtPnBfcGlkLAogCQkgICAgcS0+cF9waWQpOwogCQlj bGVhcl9vcnBoYW4ocSk7CmRpZmYgLS1naXQgYS9zeXMva2Vybi9rZXJuX3Byb2NjdGwuYyBiL3N5 cy9rZXJuL2tlcm5fcHJvY2N0bC5jCmluZGV4IGRkZGM2YjljMWQzLi5jMGFkZWVkNTcwZSAxMDA2 NDQKLS0tIGEvc3lzL2tlcm4va2Vybl9wcm9jY3RsLmMKKysrIGIvc3lzL2tlcm4va2Vybl9wcm9j Y3RsLmMKQEAgLTQzMSw3ICs0MzEsNyBAQCBzeXNfcHJvY2N0bChzdHJ1Y3QgdGhyZWFkICp0ZCwg c3RydWN0IHByb2NjdGxfYXJncyAqdWFwKQogCQlzdHJ1Y3QgcHJvY2N0bF9yZWFwZXJfcGlkcyBy cDsKIAkJc3RydWN0IHByb2NjdGxfcmVhcGVyX2tpbGwgcms7CiAJfSB4OwotCWludCBlcnJvciwg ZXJyb3IxLCBmbGFnczsKKwlpbnQgZXJyb3IsIGVycm9yMSwgZmxhZ3MsIHNpZ251bTsKIAogCXN3 aXRjaCAodWFwLT5jb20pIHsKIAljYXNlIFBST0NfU1BST1RFQ1Q6CkBAIC00NjcsNiArNDY3LDE1 IEBAIHN5c19wcm9jY3RsKHN0cnVjdCB0aHJlYWQgKnRkLCBzdHJ1Y3QgcHJvY2N0bF9hcmdzICp1 YXApCiAJY2FzZSBQUk9DX1RSQVBDQVBfU1RBVFVTOgogCQlkYXRhID0gJmZsYWdzOwogCQlicmVh azsKKwljYXNlIFBST0NfU0VUX1BERUFUSFNJRzoKKwkJZXJyb3IgPSBjb3B5aW4odWFwLT5kYXRh LCAmc2lnbnVtLCBzaXplb2Yoc2lnbnVtKSk7CisJCWlmIChlcnJvciAhPSAwKQorCQkJcmV0dXJu IChlcnJvcik7CisJCWRhdGEgPSAmc2lnbnVtOworCQlicmVhazsKKwljYXNlIFBST0NfR0VUX1BE RUFUSFNJRzoKKwkJZGF0YSA9ICZzaWdudW07CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCXJldHVy biAoRUlOVkFMKTsKIAl9CkBAIC00ODYsNiArNDk1LDEwIEBAIHN5c19wcm9jY3RsKHN0cnVjdCB0 aHJlYWQgKnRkLCBzdHJ1Y3QgcHJvY2N0bF9hcmdzICp1YXApCiAJCWlmIChlcnJvciA9PSAwKQog CQkJZXJyb3IgPSBjb3B5b3V0KCZmbGFncywgdWFwLT5kYXRhLCBzaXplb2YoZmxhZ3MpKTsKIAkJ YnJlYWs7CisJY2FzZSBQUk9DX0dFVF9QREVBVEhTSUc6CisJCWlmIChlcnJvciA9PSAwKQorCQkJ ZXJyb3IgPSBjb3B5b3V0KCZzaWdudW0sIHVhcC0+ZGF0YSwgc2l6ZW9mKHNpZ251bSkpOworCQli cmVhazsKIAl9CiAJcmV0dXJuIChlcnJvcik7CiB9CkBAIC01MjcsNiArNTQwLDcgQEAga2Vybl9w cm9jY3RsKHN0cnVjdCB0aHJlYWQgKnRkLCBpZHR5cGVfdCBpZHR5cGUsIGlkX3QgaWQsIGludCBj b20sIHZvaWQgKmRhdGEpCiAJc3RydWN0IHBncnAgKnBnOwogCXN0cnVjdCBwcm9jICpwOwogCWlu dCBlcnJvciwgZmlyc3RfZXJyb3IsIG9rOworCWludCBzaWdudW07CiAJYm9vbCB0cmVlX2xvY2tl ZDsKIAogCXN3aXRjaCAoY29tKSB7CkBAIC01NjAsNiArNTc0LDIzIEBAIGtlcm5fcHJvY2N0bChz dHJ1Y3QgdGhyZWFkICp0ZCwgaWR0eXBlX3QgaWR0eXBlLCBpZF90IGlkLCBpbnQgY29tLCB2b2lk ICpkYXRhKQogCWNhc2UgUFJPQ19UUkFQQ0FQX1NUQVRVUzoKIAkJdHJlZV9sb2NrZWQgPSBmYWxz ZTsKIAkJYnJlYWs7CisJY2FzZSBQUk9DX1NFVF9QREVBVEhTSUc6CisJCXNpZ251bSA9ICooaW50 ICopZGF0YTsKKwkJaWYgKGlkdHlwZSAhPSBQX1BJRCB8fCBpZCAhPSAwIHx8CisJCSAgICAoc2ln bnVtICE9IDAgJiYgIV9TSUdfVkFMSUQoc2lnbnVtKSkpCisJCQlyZXR1cm4gKEVJTlZBTCk7CisJ CVBST0NfTE9DSyh0ZC0+dGRfcHJvYyk7CisJCXRkLT50ZF9wcm9jLT5wX3BkZWF0aHNpZyA9IHNp Z251bTsKKwkJUFJPQ19VTkxPQ0sodGQtPnRkX3Byb2MpOworCQlyZXR1cm4gKDApOworCWNhc2Ug UFJPQ19HRVRfUERFQVRIU0lHOgorCQlpZiAoaWR0eXBlICE9IFBfUElEIHx8IGlkICE9IDApCisJ CQlyZXR1cm4gKEVJTlZBTCk7CisJCVBST0NfTE9DSyh0ZC0+dGRfcHJvYyk7CisJCXNpZ251bSA9 IHRkLT50ZF9wcm9jLT5wX3BkZWF0aHNpZzsKKwkJUFJPQ19VTkxPQ0sodGQtPnRkX3Byb2MpOwor CQkqKGludCAqKWRhdGEgPSBzaWdudW07CisJCXJldHVybiAoMCk7CiAJZGVmYXVsdDoKIAkJcmV0 dXJuIChFSU5WQUwpOwogCX0KZGlmZiAtLWdpdCBhL3N5cy9rZXJuL2tlcm5fdGhyZWFkLmMgYi9z eXMva2Vybi9rZXJuX3RocmVhZC5jCmluZGV4IDRkMmYwMjAwNjNlLi5iMDFjZDk5ZTU5NyAxMDA2 NDQKLS0tIGEvc3lzL2tlcm4va2Vybl90aHJlYWQuYworKysgYi9zeXMva2Vybi9rZXJuX3RocmVh ZC5jCkBAIC05MSw3ICs5MSw3IEBAIF9TdGF0aWNfYXNzZXJ0KG9mZnNldG9mKHN0cnVjdCBwcm9j LCBwX3BpZCkgPT0gMHhiYywKICAgICAic3RydWN0IHByb2MgS0JJIHBfcGlkIik7CiBfU3RhdGlj X2Fzc2VydChvZmZzZXRvZihzdHJ1Y3QgcHJvYywgcF9maWxlbW9uKSA9PSAweDNkMCwKICAgICAi c3RydWN0IHByb2MgS0JJIHBfZmlsZW1vbiIpOwotX1N0YXRpY19hc3NlcnQob2Zmc2V0b2Yoc3Ry dWN0IHByb2MsIHBfY29tbSkgPT0gMHgzZTAsCitfU3RhdGljX2Fzc2VydChvZmZzZXRvZihzdHJ1 Y3QgcHJvYywgcF9jb21tKSA9PSAweDNlNCwKICAgICAic3RydWN0IHByb2MgS0JJIHBfY29tbSIp OwogX1N0YXRpY19hc3NlcnQob2Zmc2V0b2Yoc3RydWN0IHByb2MsIHBfZW11bGRhdGEpID09IDB4 NGI4LAogICAgICJzdHJ1Y3QgcHJvYyBLQkkgcF9lbXVsZGF0YSIpOwpAQCAtMTExLDcgKzExMSw3 IEBAIF9TdGF0aWNfYXNzZXJ0KG9mZnNldG9mKHN0cnVjdCBwcm9jLCBwX3BpZCkgPT0gMHg3NCwK ICAgICAic3RydWN0IHByb2MgS0JJIHBfcGlkIik7CiBfU3RhdGljX2Fzc2VydChvZmZzZXRvZihz dHJ1Y3QgcHJvYywgcF9maWxlbW9uKSA9PSAweDI3YywKICAgICAic3RydWN0IHByb2MgS0JJIHBf ZmlsZW1vbiIpOwotX1N0YXRpY19hc3NlcnQob2Zmc2V0b2Yoc3RydWN0IHByb2MsIHBfY29tbSkg PT0gMHgyODgsCitfU3RhdGljX2Fzc2VydChvZmZzZXRvZihzdHJ1Y3QgcHJvYywgcF9jb21tKSA9 PSAweDI4YywKICAgICAic3RydWN0IHByb2MgS0JJIHBfY29tbSIpOwogX1N0YXRpY19hc3NlcnQo b2Zmc2V0b2Yoc3RydWN0IHByb2MsIHBfZW11bGRhdGEpID09IDB4MzE0LAogICAgICJzdHJ1Y3Qg cHJvYyBLQkkgcF9lbXVsZGF0YSIpOwpkaWZmIC0tZ2l0IGEvc3lzL3N5cy9wcm9jLmggYi9zeXMv c3lzL3Byb2MuaAppbmRleCBkNjMzNjJkNzIzMi4uMTllOTk0MzkxODggMTAwNjQ0Ci0tLSBhL3N5 cy9zeXMvcHJvYy5oCisrKyBiL3N5cy9zeXMvcHJvYy5oCkBAIC02MjQsNiArNjI0LDcgQEAgc3Ry dWN0IHByb2MgewogCXVfaW50CQlwX3RyZWVmbGFnOwkvKiAoZSkgUF9UUkVFIGZsYWdzICovCiAJ aW50CQlwX3BlbmRpbmdleGl0czsgLyogKGMpIENvdW50IG9mIHBlbmRpbmcgdGhyZWFkIGV4aXRz LiAqLwogCXN0cnVjdCBmaWxlbW9uCSpwX2ZpbGVtb247CS8qIChjKSBmaWxlbW9uLXNwZWNpZmlj IGRhdGEuICovCisJaW50CQlwX3BkZWF0aHNpZzsJLyogKGMpIFNpZ25hbCBmcm9tIHBhcmVudCBv biBleGl0LiAqLwogLyogRW5kIGFyZWEgdGhhdCBpcyB6ZXJvZWQgb24gY3JlYXRpb24uICovCiAj ZGVmaW5lCXBfZW5kemVybwlwX21hZ2ljCiAKZGlmZiAtLWdpdCBhL3N5cy9zeXMvcHJvY2N0bC5o IGIvc3lzL3N5cy9wcm9jY3RsLmgKaW5kZXggMTcxNDRlOWYwYzYuLmNmMGE2OTQ3NWU0IDEwMDY0 NAotLS0gYS9zeXMvc3lzL3Byb2NjdGwuaAorKysgYi9zeXMvc3lzL3Byb2NjdGwuaApAQCAtNTEs NiArNTEsOCBAQAogI2RlZmluZQlQUk9DX1RSQUNFX1NUQVRVUwk4CS8qIHF1ZXJ5IHRyYWNpbmcg c3RhdHVzICovCiAjZGVmaW5lCVBST0NfVFJBUENBUF9DVEwJOQkvKiB0cmFwIGNhcGFiaWxpdHkg ZXJyb3JzICovCiAjZGVmaW5lCVBST0NfVFJBUENBUF9TVEFUVVMJMTAJLyogcXVlcnkgdHJhcCBj YXBhYmlsaXR5IHN0YXR1cyAqLworI2RlZmluZSBQUk9DX1NFVF9QREVBVEhTSUcJMTEJLyogc2V0 IHBhcmVudCBkZWF0aCBzaWduYWwgKi8KKyNkZWZpbmUgUFJPQ19HRVRfUERFQVRIU0lHCTEyCS8q IGdldCBwYXJlbnQgZGVhdGggc2lnbmFsICovCiAKIC8qIE9wZXJhdGlvbnMgZm9yIFBST0NfU1BS T1RFQ1QgKHBhc3NlZCBpbiBpbnRlZ2VyIGFyZykuICovCiAjZGVmaW5lCVBQUk9UX09QKHgpCSgo eCkgJiAweGYpCi0tIAoyLjE2LjIKCg== --94eb2c194a123f6cef0569c7a6c0--