From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2ABF5C4727E for ; Thu, 1 Oct 2020 17:49:53 +0000 (UTC) Received: from shelob.surriel.com (shelob.surriel.com [96.67.55.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1525F20739 for ; Thu, 1 Oct 2020 17:49:51 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=gmx.net header.i=@gmx.net header.b="FqFulg1b" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1525F20739 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=gmx.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kernelnewbies-bounces@kernelnewbies.org Received: from localhost ([::1] helo=shelob.surriel.com) by shelob.surriel.com with esmtp (Exim 4.94) (envelope-from ) id 1kO2hn-0000Eb-Nr; Thu, 01 Oct 2020 13:49:23 -0400 Received: from mout.gmx.net ([212.227.15.19]) by shelob.surriel.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94) (envelope-from ) id 1kO2hl-0000ES-2O for kernelnewbies@kernelnewbies.org; Thu, 01 Oct 2020 13:49:21 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1601574557; bh=qg1GI2ExSgAIe184mPquf5ndrHKc3udwpXWzIu1aYms=; h=X-UI-Sender-Class:Date:From:To:Cc:Subject:References:In-Reply-To; b=FqFulg1brUQlgul4m/1ak5jtUltJj11OUVqUdUeCUD+Yc3DiuVS+MIP/cQo3Ahqqm kakgZx4l4ssbvYLzeAAsuxPF9Uyvq9mZkOENjYtPSZ0TW6WIR7/zuz77d5DatK1vsC ATzMV/4VJvXo5l6t5+Q4v9vPas+E6Bf4N0mbYYrk= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from ubuntu ([79.150.73.70]) by mail.gmx.com (mrgmx004 [212.227.17.184]) with ESMTPSA (Nemesis) id 1N8ob6-1kR0dH2gcg-015mk9; Thu, 01 Oct 2020 19:49:17 +0200 Date: Thu, 1 Oct 2020 19:49:02 +0200 From: John Wood To: Valdis =?utf-8?Q?Kl=C4=93tnieks?= Subject: Re: Read the "real_parent" field of task_struct Message-ID: <20201001174902.GA3046@ubuntu> References: <20200925161142.GA2857@ubuntu> <53033.1601467187@turing-police> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <53033.1601467187@turing-police> X-Provags-ID: V03:K1:1/4izhUfqPRxXiPtVAQLlLeSurcsMJVIsqurKaIeu6rGRfk96Fl fwC2MP5HL7o02CqxB47PjfA2YIZ+iZaGlbAdDlRngIU4lf7/faRJ2sxN/Rc4CYaPX2ePsSu yQWF+lS4tuTIUcyIdYA+mg4G1BPJlxboQAIvNfwCKrGRw/P9J7dTpssSWzgGi1Eo8AaKLqe tLX5P8lqZqWZ3IJJsUmpw== X-UI-Out-Filterresults: notjunk:1;V03:K0:sjXP2eo5BWE=:bQUVTZP3MupLdbZdAC9W9w 1kHBiKme6TMfIwuaN7xQaJhB7KCjCJIOksYhJIVI/NybAy3vahvAv3sPAGYVuaacT+QcQby2O EAmGLk/AqmnqMaPoKTqMXHlfJaf7C6j+6SbsAJVsBbE5/O9CTEdudIEuXdhMLtZzkYbRvYLIs K5r4tvOpZrMxSBUTPVCTXWFpK5x1ViqRKgwYgxzrxLr6qR/JHS/hJZ5H2bAxIbVnmgLJu6j6A wV598Wn18rU496XTrzqsKJQYo15WCURz9HP1PPEpchE9Azbl1EFhbDBs2wihnLm22WDk5c9rP FLXpiytOoUf8VkclZLTqCj/Z8owmhC7HlahANSuZFbMqRRo56Ykl6SPhmxaN9menuohU+LIqU L4kIYU5gzPrn3eBrNONMJ3Vcr/c4FBz6lC9b5w/bwiVOPq3uRhZaVCSIzeCBZeYjx2ea8t84C I6YWbj3cWWSPWDTOvkEl9UX/n8QEH1QOwlJCDMRtVjZq1UM8OXJCHGRiba+8FgaghuDwzTCQg GzwgVF8HicD6/3g2Wxf/mFxISY0WedBPLypoHL4TPTpFy09i21DXNHiqEibOYkAnNhl8WbbeG Mq5r/cAnzwZwbxcvpLK5gEzB0Aaa2wMngsDzqqI9WlYnwKxaii0bYxFzAeII/Jmq//3WOiq2E mQgj3SkRnNxPnH+it0w+IVue8GXNpQ7gznfFd43L6jmT6MQ51Rr7u/j+tl+1DrNeiqme7FHHA XDH0ryJKeW3MjRyiCeXJB/MO5R9yPaD66WXP0kVe5Z56CDqaU3S+WMWvy1DJUcHFbwHhgjwEc 0JuVUk0nrkt2k7BACw1A/S01ydhiMakCaXUZMzkArHi4bJXLBB8NJ1DISSNzXUmSQkV7ZBMrc pA0gao8ZgEG5ght72wlBfPAhoJNkwBjvnYw66EmVjXBAmW7hC9tjGZB7/i/DCVtm1pNzMYIGU xq6h48rESlVg2xeYbdcHJOJl/Mpx2UHX72vDl8LBeMM6wjANj0Ug8WaqDzb3hVE5exIB/0MHf XbsNwBvwaDC9jRYJiSQxz9IcB4N6jCr7WYXzX7KO4HNmwQUcLaM1uop/juJ3OXYtObbHCz9qX a+KYLDkaGMUlCeLrUAkA9lT76InQT/WQ7ZfzWZUIMua827pjFkUBOhI2QIl+89Twy74Jzukmj R0G46VhSk1TaMYUd6BgT9uqophD14QSOlPInWeYFIgLMt4x1cljzXHa+nsNSuK60m8xfyEbRr DLuVQZMjWmj+jkcnU Cc: John Wood , kernelnewbies@kernelnewbies.org X-BeenThere: kernelnewbies@kernelnewbies.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Learn about the Linux kernel List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: kernelnewbies-bounces@kernelnewbies.org T24gV2VkLCBTZXAgMzAsIDIwMjAgYXQgMDc6NTk6NDdBTSAtMDQwMCwgVmFsZGlzIEtsxJN0bmll a3Mgd3JvdGU6Cj4gT24gRnJpLCAyNSBTZXAgMjAyMCAxODoxMTo0MiArMDIwMCwgSm9obiBXb29k IHNhaWQ6Cj4KPiA+IFRoZXJlIGFyZSBtb3JlIGV4YW1wbGVzIGJ1dCBhcmUgc2ltaWxhcnMgdG8g dGhlIG9uZXMgc2hvd2VkLiBTbyBteSBxdWVzdGlvbgo+ID4gaXMgaG93IHRvIHJlYWQgdGhlICJy ZWFsX3BhcmVudCIgZmllbGQgY29ycmVjdGx5LiBJZiBJIGNhbiB1bmRlcnN0YW5kIGFsbAo+ID4g dGhlIGFib3ZlIGV4YW1wbGVzIEkgdGhpbmsgSSB3aWxsIGhhdmUgdGhlIGtub3dsZWRnZSB0byBp bXBsZW1lbnQgbXkgTFNNIGluCj4gPiBhIGNvcnJlY3Qgd2F5Lgo+Cj4gVGhlcmUncyBtdWx0aXBs ZSBkYXRhIHN0cnVjdHVyZXMgd2hpY2ggY29udGFpbiBhIHBvaW50ZXIgdG8gdGhlICJyZWFsX3Bh cmVudCIKPiB0aGF0IHdlJ3JlIGludGVyZXN0ZWQgaW4uICBTbyBkZXBlbmRpbmcgb24gd2hpY2gg ZGF0YSBzdHJ1Y3R1cmUgeW91J3JlIHdvcmtpbmcKPiB3aXRoLCB5b3UnbGwgYmUgZm9sbG93aW5n IGEgZGlmZmVyZW50IHBhdGggdG8gdGhlIHJlYWxfcGFyZW50LCBhbmQgZGVwZW5kaW5nIG9uCj4g d2hhdCBsb2NrcyAoaWYgYW55KSB0aGUgY2FsbGluZyBjb2RlIGFscmVhZHkgaGFzLCB0aGUgYWNj ZXNzIG1ldGhvZCBtYXkgYmUKPiBkaWZmZXJlbnQuCgpJIHdhbnQgdG8gY2hlY2sgaWYgdGhlIHJl YWxfcGFyZW50IGZpZWxkIG9mIHRoZSB0YXNrX3N0cnVjdCBzdHJ1Y3R1cmUgaXMKTlVMTCBvciBu b3QuIE1vcmUgaW5mbyBiZWxvdy4KCj4gSXQncyBzaW1pbGFyIHRvIGdpdmluZyBkaXJlY3Rpb25z IHRvIHdoZXJlIEkgdXNlZCB0byBsaXZlIG9uIExvbmcgSXNsYW5kLiBJZgo+IHlvdSB3ZXJlIGNv bWluZyBmcm9tIHRoZSBCb3N0b24gYXJlYSwgeW91IHdhbnRlZCB0byB0YWtlIEktOTUgU291dGgs IHRoZW4KPiBlaXRoZXIgdGhlIFRocm9nJ3MgTmVjayBvciBXaGl0ZXN0b25lIEJyaWRnZSwgZ2V0 IHRvIEktNDk1IChMb25nIElzbGFuZAo+IEV4cHJlc3N3YXkpLCAgZ2V0IG9mZiBhdCBhIGdpdmVu IGV4aXQsIHRha2UgdGhhdCByb2FkIHNvdXRoLCBhbmQgdHVybiBsZWZ0IHRvCj4gZW50ZXIgdGhl IG5laWdoYm9yaG9vZCBmcm9tIHRoZSBub3J0aCwgYnV0IGlmIHlvdSdyZSBjb21pbmcgZnJvbSBO ZXcgSmVyc2V5LAo+IHlvdSB3YW50IHRvIGdldCB0byBTdGF0ZW4gSXNsYW5kLCBWZXJhemFubm8g TmFycm93cyBCcmlkZ2UsIHRoZW4gU291dGhlcm4gU3RhdGUKPiBQYXJrd2F5IHRvICppdHMqIGV4 aXQgZm9yIHRoYXQgc2FtZSByb2FkIGdvaW5nIG5vcnRoLCBidXQgdGhlIHJpZ2h0IHR1cm4gIHRv IGVudGVyIHRoZQo+IG5laWdoYm9yaG9vZCBmcm9tIHRoZSBzb3V0aCBpc24ndCB0aGUgc2FtZSBv bmUgYXMgaWYgeW91J3JlIGNvbWluZyBmcm9tIHRoZQo+IG5vcnRoICh1bmxlc3MgeW91IHByZWZl ciBkcml2aW5nIGFub3RoZXIgMy80IG9mIGEgbWlsZSB0byB0dXJuIGF0IHRoZSBzYW1lIGxpZ2h0 Cj4gYXMgaWYgeW91IHdlcmUgY29taW5nIGZyb20gdGhlIG5vcnRoLi4uKQo+Cj4gWW91IGVuZCB1 cCBhdCB0aGUgc2FtZSBwbGFjZSwgZXZlbiB0aG91Z2ggeW91J3JlIHVzaW5nIGRpZmZlcmVudCBw YXRocyB0byBnZXQKPiB0aGVyZS4gIFRoZSBpbnNpZGUgb2YgdGhlIGtlcm5lbCB3b3JrcyB0aGUg c2FtZSB3YXkuICBXaGljaCB3YXkgeW91IGdldCB0bwo+ICdyZWFsX3BhcmVudCcgZGVwZW5kcyBv biB3aGF0IGRhdGEgc3RydWN0dXJlIHlvdSBhcmUgYWxyZWFkeSB3b3JraW5nIHdpdGguCgpGaXJz dCBvZiBhbGwsIHRoYW5rcyBmb3IgeW91ciBjb21tZW50cy4gOikKCk9rLCBJIHdpbGwgc2hvdyBz b21lIHBhcnRzIG9mIG15IGNvZGUgdG8gY2xhcmlmeSBteSBxdWVzdGlvbiwgYW5kIEkgd2lsbCBh ZGQKYSBzbWFsbCBkZXNjcmlwdGlvbiBvZiB0aGUgaWRlYSBiZWhpbmQuCgpJZGVhOiBUaGUgcHVy cG9zZSBvZiBteSBMU00gaXMgdG8gZGV0ZWN0IGFuZCBtaXRpZ2F0ZSBhIGZvcmsgYnJ1dGUgZm9y Y2UKYXR0YWNrLiBUbyBkbyBzbywgSSBuZWVkIGEgaGllcmFyY2h5IG9mIGZvcmsgcHJvY2Vzc2Vz LiBJbiBvdGhlciB3b3JkcywgdGhlcmUKaXMgYSBwb2ludGVyIGluIHRoZSB0YXNrX3N0cnVjdCBz dHJ1Y3R1cmUgdGhhdCBwb2ludHMgdG8gYW4gc3RhdGlzdGljcyBkYXRhCnN0cnVjdHVyZS4gVGhp cyBwb2ludGVyIGlzIGNvcGllZCB0byB0aGUgY2hpbGQgcHJvY2VzcyB3aGVuIGEgcHJvY2VzcyBm b3Jrcy4KVGhpcyB3YXksIGFsbCB0aGUgdGFza3MgdGhhdCBmb3JrIHdpdGggdGhlIHNhbWUgcm9v dCBzaGFyZSB0aGUgc2FtZSBzdGF0aXN0aWNzLgpUaGVzZSBzdGF0aXN0aWNzIGFsbG93IHRvIGNv bXB1dGUgdGhlIGFwcGxpY2F0aW9uIGNyYXNoaW5nIHBlcmlvZCBhbmQgZGV0ZWN0CnRoZSBhdHRh Y2suCgpTbywgYWxsIHRoZSB0YXNrcyBoYXZlIGFuIHN0YXRpc3RpY2FsIGRhdGEgKGNvcGllZCBm cm9tIGl0cyBwYXJlbnQpLiBXaGVuIGFuCmV4ZWN2ZSBpcyBleGVjdXRlZCBhIG5ldyBzdGF0aXN0 aWNhbCBkYXRhIGlzIGFsbG9jYXRlZCBhbmQgYSBuZXcgaGllcmFyY2h5IGlzCmNyZWF0ZWQuCgpC dXQgdGhlcmUgaXMgdGhlIGNhc2Ugd2hlbiB0aGUgdGFzayAwIGlzIGFsbG9jYXRlZC4gSW4gdGhp cyBjYXNlIGl0J3Mgbm90CnBvc3NpYmxlIHRvIGNvcHkgdGhlIHBhcmVudCBwb2ludGVyIHRvIHRo ZSBzdGF0aXN0aWNhbCBkYXRhLiBUaGUgdGFzayAwIGRvbid0CmhhdmUgcGFyZW50LiBJbiB0aGlz IHNjZW5hcmlvIGEgbmV3IHN0YXRpc3RpY3Mgc3RydWN0dXJlIG5lZWQgdG8gYmUgYWxsb2NhdGVk LgoKVGhlIGlkZWEgZXhwb3NlZCBoZXJlIGlzIG5vdCBjb21wbGV0ZWQgYnV0IGl0J3MgZW5vdWdo dCB0byBjbGFyaWZ5IG15CnF1ZXN0aW9uLiBJIGhvcGUuCgpTbywgbXkgcXVlc3Rpb24gaXMgaG93 IHRvIHJlYWQgdGhlIHJlYWxfcGFyZW50IGZpZWxkIG9mIHRhc2tfc3RydWN0IGluIHRoaXMKc2l0 dWF0aW9uIGluIGEgc2VjdXJlIHdheS4KCkJlbG93IEkgc2hvdyBzb21lIHBhcnQgb2YgdGhlIGNv ZGUgdG8gY2xhcmlmeToKCi8qKgogKiBUYXJnZXQgZm9yIHRhc2tfYWxsb2MgaG9vayAtIEZvcmsg bWFuYWdlbWVudC4KICovCnN0YXRpYyBpbnQgYnJ1dGVfdGFza19hbGxvYyhzdHJ1Y3QgdGFza19z dHJ1Y3QgKnRhc2ssIHVuc2lnbmVkIGxvbmcgY2xvbmVfZmxhZ3MpCnsKCXN0cnVjdCBicnV0ZV9z dGF0cyAqKnN0YXRzLCAqKnBfc3RhdHM7CglzdHJ1Y3QgdGFza19zdHJ1Y3QgKnBfdGFzazsKCglz dGF0cyA9IGJydXRlX3N0YXRzX3B0cih0YXNrKTsKCgkvKgoJICAgSXMgdGhpcyByZWFkIGNvcnJl Y3Q/IEkgbmVlZCB0byB1c2UgcmN1X2RlcmVmZXJlbmNlPwoJICAgSSBuZWVkIHRvIHVzZSBhIHJj dV9yZWFkX2xvY2svcmN1X3JlYWRfdW5sb2NrIGJsb2NrPwoJKi8KCXBfdGFzayA9IHRhc2stPnJl YWxfcGFyZW50OwkJCS8vLy8vLy8gVGhpcyAzIGxpbmVzIGFyZQoJCQkJCQkJLy8vLy8vLyB0aGUg YmFzZSBvZgoJaWYgKGxpa2VseShwX3Rhc2spKSB7CQkJCS8vLy8vLy8gbXkgcXVlc3Rpb24gdG8K CQlwX3N0YXRzID0gYnJ1dGVfc3RhdHNfcHRyKHBfdGFzayk7CS8vLy8vLy8gdGhlIG1haWxpbmcg bGlzdAoJCWlmICghKnBfc3RhdHMpCgkJCXJldHVybiAtRUZBVUxUOwoKCQlzcGluX2xvY2soJigq cF9zdGF0cyktPmxvY2spOwoJCXJlZmNvdW50X2luYygmKCpwX3N0YXRzKS0+cmVmYyk7CgkJKnN0 YXRzID0gKnBfc3RhdHM7CgkJc3Bpbl91bmxvY2soJigqcF9zdGF0cyktPmxvY2spOwoKCQlyZXR1 cm4gMDsKCX0KCgkvKiBUYXNrIDAgc3RhdHMgYWxsb2NhdGlvbiAqLwoJKnN0YXRzID0gYnJ1dGVf bmV3X3N0YXRzKCk7CglpZiAoISpzdGF0cykKCQlyZXR1cm4gLUVOT01FTTsKCglyZXR1cm4gMDsK fQoKTW9yZSBjb2RlIGJlbG93IHRvIGNsYXJpZnkgc3RydWN0dXJlcyBhbmQgTFNNIGhvb2tzOgoK c3RhdGljIHN0cnVjdCBzZWN1cml0eV9ob29rX2xpc3QgYnJ1dGVfaG9va3NbXSBfX2xzbV9yb19h ZnRlcl9pbml0ID0gewoJTFNNX0hPT0tfSU5JVCh0YXNrX2FsbG9jLCBicnV0ZV90YXNrX2FsbG9j KSwKCUxTTV9IT09LX0lOSVQoYnBybV9jb21taXR0aW5nX2NyZWRzLCBicnV0ZV90YXNrX2V4ZWN2 ZSksCglMU01fSE9PS19JTklUKHRhc2tfZnJlZSwgYnJ1dGVfdGFza19mcmVlKSwKfTsKCnN0YXRp YyBpbnQgX19pbml0IGJydXRlX2luaXQodm9pZCkKewoJcHJfaW5mbygiQnJ1dGUgaW5pdGlhbGl6 ZWRcbiIpOwoJc2VjdXJpdHlfYWRkX2hvb2tzKGJydXRlX2hvb2tzLCBBUlJBWV9TSVpFKGJydXRl X2hvb2tzKSwKCQkJICAgS0JVSUxEX01PRE5BTUUpOwoJcmV0dXJuIDA7Cn0KCkRFRklORV9MU00o YnJ1dGUpID0gewoJLm5hbWUgPSBLQlVJTERfTU9ETkFNRSwKCS5pbml0ID0gYnJ1dGVfaW5pdCwK CS5ibG9icyA9ICZicnV0ZV9ibG9iX3NpemVzLAp9OwoKLyoqCiAqIHN0cnVjdCBicnV0ZV9zdGF0 cyAtIEZvcmsgYnJ1dGUgZm9yY2UgYXR0YWNrIHN0YXRpc3RpY3MuCiAqIEBsb2NrOiBMb2NrIHRv IHByb3RlY3QgdGhlIGJydXRlX3N0YXRzIHN0cnVjdHVyZS4KICogQHJlZmM6IFJlZmVyZW5jZSBj b3VudGVyLgogKiBAdGltZXN0YW1wczogTGFzdCBjcmFzaGVzIHRpbWVzdGFtcHMgbGlzdC4KICog QHRpbWVzdGFtcHNfc2l6ZTogTGFzdCBjcmFzaGVzIHRpbWVzdGFtcHMgbGlzdCBzaXplLgogKgog KiBUaGlzIHN0cnVjdHVyZSBob2xkcyB0aGUgc3RhdGlzdGljYWwgZGF0YSBzaGFyZWQgYnkgYWxs IHRoZSBmb3JrIGhpZXJhcmNoeQogKiBwcm9jZXNzZXMuCiAqLwpzdHJ1Y3QgYnJ1dGVfc3RhdHMg ewoJc3BpbmxvY2tfdCBsb2NrOwoJcmVmY291bnRfdCByZWZjOwoJc3RydWN0IGxpc3RfaGVhZCB0 aW1lc3RhbXBzOwoJdW5zaWduZWQgY2hhciB0aW1lc3RhbXBzX3NpemU7Cn07CgovKioKICogc3Ry dWN0IGJydXRlX3RpbWVzdGFtcCAtIExhc3QgY3Jhc2hlcyB0aW1lc3RhbXBzIGxpc3QgZW50cnku CiAqIEBqaWZmaWVzOiBDcmFzaCB0aW1lc3RhbXAuCiAqIEBub2RlOiBFbnRyeSBsaXN0IGhlYWQu CiAqCiAqIFRoaXMgc3RydWN0dXJlIGhvbGRzIGEgY3Jhc2ggdGltZXN0YW1wLgogKi8Kc3RydWN0 IGJydXRlX3RpbWVzdGFtcCB7Cgl1NjQgamlmZmllczsKCXN0cnVjdCBsaXN0X2hlYWQgbm9kZTsK fTsKCi8qKgogKiBicnV0ZV9ibG9iX3NpemVzIC0gTFNNIGJsb2Igc2l6ZXMuCiAqCiAqIFRvIHNo YXJlIHN0YXRpc3RpY2FsIGRhdGEgYW1vbmcgYWxsIHRoZSBmb3JrIGhpZXJhcmNoeSBwcm9jZXNz ZXMsIGRlZmluZSBhCiAqIHBvaW50ZXIgdG8gdGhlIGJydXRlX3N0YXRzIHN0cnVjdHVyZSBhcyBh IHBhcnQgb2YgdGhlIHRhc2tfc3RydWN0J3Mgc2VjdXJpdHkKICogYmxvYi4KICovCnN0YXRpYyBz dHJ1Y3QgbHNtX2Jsb2Jfc2l6ZXMgYnJ1dGVfYmxvYl9zaXplcyBfX2xzbV9yb19hZnRlcl9pbml0 ID0gewoJLmxic190YXNrID0gc2l6ZW9mKHN0cnVjdCBicnV0ZV9zdGF0cyAqKSwKfTsKCi8qKgog KiBicnV0ZV9zdGF0c19wdHIoKSAtIEdldCB0aGUgcG9pbnRlciB0byB0aGUgYnJ1dGVfc3RhdHMg c3R1Y3R1cmUuCiAqIEB0YXNrOiBQb2ludGVyIHRvIHRoZSB0YXNrIHRoYXQgaG9sZHMgdGhlIHN0 YXRpc3RpY2FsIGRhdGEuCiAqCiAqIFJldHVybjogQSBwb2ludGVyIHRvIGEgcG9pbnRlciB0byB0 aGUgYnJ1dGVfc3RhdHMgc3RydWN0dXJlLgogKi8Kc3RhdGljIGlubGluZSBzdHJ1Y3QgYnJ1dGVf c3RhdHMgKipicnV0ZV9zdGF0c19wdHIoc3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKQp7CglyZXR1 cm4gdGFzay0+c2VjdXJpdHkgKyBicnV0ZV9ibG9iX3NpemVzLmxic190YXNrOwp9CgovKioKICog YnJ1dGVfbmV3X3RpbWVzdGFtcCgpIC0gQWxsb2NhdGlvbiBvZiBhIG5ldyB0aW1lc3RhbXAgc3Ry dWN0dXJlLgogKgogKiBJZiB0aGUgYWxsb2NhdGlvbiBpcyBzdWNjZXNzZnVsIHRoZSB0aW1lc3Rh bXAgaXMgc2V0IHRvIG5vdy4KICoKICogUmV0dXJuOiBOVUxMIGlmIHRoZSBhbGxvY2F0aW9uIGZh aWxzLiBBIHBvaW50ZXIgdG8gdGhlIG5ldyBhbGxvY2F0ZWQKICogICAgICAgICB0aW1lc3RhbXAg c3RydWN0dXJlIGlmIGl0IHN1Y2Nlc3MuCiAqLwpzdGF0aWMgc3RydWN0IGJydXRlX3RpbWVzdGFt cCAqYnJ1dGVfbmV3X3RpbWVzdGFtcCh2b2lkKQp7CglzdHJ1Y3QgYnJ1dGVfdGltZXN0YW1wICp0 aW1lc3RhbXA7CgoJdGltZXN0YW1wID0ga21hbGxvYyhzaXplb2Yoc3RydWN0IGJydXRlX3RpbWVz dGFtcCksIEdGUF9LRVJORUwpOwoJaWYgKCF0aW1lc3RhbXApCgkJcmV0dXJuIE5VTEw7CgoJdGlt ZXN0YW1wLT5qaWZmaWVzID0gZ2V0X2ppZmZpZXNfNjQoKTsKCUlOSVRfTElTVF9IRUFEKCZ0aW1l c3RhbXAtPm5vZGUpOwoKCXJldHVybiB0aW1lc3RhbXA7Cn0KCi8qKgogKiBicnV0ZV9uZXdfc3Rh dHMoKSAtIEFsbG9jYXRpb24gb2YgYSBuZXcgc3RhdGlzdGljcyBzdHJ1Y3R1cmUuCiAqCiAqIElm IHRoZSBhbGxvY2F0aW9uIGlzIHN1Y2Nlc3NmdWwgdGhlIHJlZmVyZW5jZSBjb3VudGVyIGlzIHNl dCB0byBvbmUgdG8KICogaW5kaWNhdGUgdGhhdCB0aGVyZSB3aWxsIGJlIG9uZSB0YXNrIHRoYXQg cG9pbnRzIHRvIHRoaXMgc3RydWN0dXJlLiBUaGUgbGFzdAogKiBjcmFzaGVzIHRpbWVzdGFtcHMg bGlzdCBpcyBpbml0aWFsaXplZCB3aXRoIG9uZSBlbnRyeSBzZXQgdG8gbm93LiBUaGlzIHdheSwK ICogaXRzIHBvc3NpYmxlIHRvIGNvbXB1dGUgdGhlIGFwcGxpY2F0aW9uIGNyYXNoIHBlcmlvZCB3 aXRoIHRoZSBmaXJzdCBmYXVsdC4KICoKICogUmV0dXJuOiBOVUxMIGlmIHRoZSBhbGxvY2F0aW9u IGZhaWxzLiBBIHBvaW50ZXIgdG8gdGhlIG5ldyBhbGxvY2F0ZWQKICogICAgICAgICBzdGF0aXN0 aWNzIHN0cnVjdHVyZSBpZiBpdCBzdWNjZXNzLgogKi8Kc3RhdGljIHN0cnVjdCBicnV0ZV9zdGF0 cyAqYnJ1dGVfbmV3X3N0YXRzKHZvaWQpCnsKCXN0cnVjdCBicnV0ZV9zdGF0cyAqc3RhdHM7Cglz dHJ1Y3QgYnJ1dGVfdGltZXN0YW1wICp0aW1lc3RhbXA7CgoJc3RhdHMgPSBrbWFsbG9jKHNpemVv ZihzdHJ1Y3QgYnJ1dGVfc3RhdHMpLCBHRlBfS0VSTkVMKTsKCWlmICghc3RhdHMpCgkJcmV0dXJu IE5VTEw7CgoJdGltZXN0YW1wID0gYnJ1dGVfbmV3X3RpbWVzdGFtcCgpOwoJaWYgKCF0aW1lc3Rh bXApIHsKCQlrZnJlZShzdGF0cyk7CgkJcmV0dXJuIE5VTEw7Cgl9CgoJc3Bpbl9sb2NrX2luaXQo JnN0YXRzLT5sb2NrKTsKCXJlZmNvdW50X3NldCgmc3RhdHMtPnJlZmMsIDEpOwoJSU5JVF9MSVNU X0hFQUQoJnN0YXRzLT50aW1lc3RhbXBzKTsKCWxpc3RfYWRkKCZ0aW1lc3RhbXAtPm5vZGUsICZz dGF0cy0+dGltZXN0YW1wcyk7CglzdGF0cy0+dGltZXN0YW1wc19zaXplID0gMTsKCglyZXR1cm4g c3RhdHM7Cn0KCkkgaG9wZSB0aGF0IG5vdyBpcyBjbGVhciB3aGF0IEkgd2FudCB0byBkby4gQW55 IGhlbHAgd2lsbCBiZSBncmVhdGx5CmFwcHJlY2lhdGVkLgoKVGhhbmtzLApKb2huIFdvb2QKCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpLZXJuZWxuZXdi aWVzIG1haWxpbmcgbGlzdApLZXJuZWxuZXdiaWVzQGtlcm5lbG5ld2JpZXMub3JnCmh0dHBzOi8v bGlzdHMua2VybmVsbmV3Ymllcy5vcmcvbWFpbG1hbi9saXN0aW5mby9rZXJuZWxuZXdiaWVzCg==