From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757222AbZEVLRw (ORCPT ); Fri, 22 May 2009 07:17:52 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753365AbZEVLRo (ORCPT ); Fri, 22 May 2009 07:17:44 -0400 Received: from mail-gx0-f166.google.com ([209.85.217.166]:61568 "EHLO mail-gx0-f166.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751584AbZEVLRo (ORCPT ); Fri, 22 May 2009 07:17:44 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:cc:content-type; b=Iyt/sTMkpyoDUQ0UbvVbiSo/oS03JzLO99WMduxxKRPeYB9jwnotGyy7w8yAOyZBMk uxD9MHU5h8l2dpfe2vgmr/f0J7r6pIUhPE36AP+bl/Ctpo65aHs0CSFgaiD3M417L8Yp Q11GKSPGCwdWNjstIIuwIOrdlKt5t17MdyRAg= MIME-Version: 1.0 Date: Fri, 22 May 2009 16:47:37 +0530 Message-ID: Subject: adjtimex system man page EINVAL From: naresh kamboju To: ziegler@uni-freiburg.de, akpm@linux-foundation.org, johnstul@us.ibm.com, zippel@linux-m68k.org Cc: mtk.manpages@gmail.com, linux-kernel@vger.kernel.org, naresh.kernel@gmail.com Content-Type: multipart/mixed; boundary=001e680f12ac7176ab046a7e687e Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --001e680f12ac7176ab046a7e687e Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Hi, Regarding adjtimex system man page, Since there are modifications noticed in /kerel/time/ntp.c /include/linux/timex.h compared with /kerel/time/ntp.c 2.6.23 and 2.6.29 and above i have attached adjtimex_2.6.23_vs_2.6.29.log : line number 330. In adjtimex (2) man page under the EINVAL Error check section changes are required w.r.t buf.offset. Could you conform and update the man page. Best regards, Naresh Kamboju --001e680f12ac7176ab046a7e687e Content-Type: application/octet-stream; name="adjtimex_2.6.23_vs_2.6.29.log" Content-Disposition: attachment; filename="adjtimex_2.6.23_vs_2.6.29.log" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fv0spzej0 LS0tIGxpbnV4LTIuNi4yMy9rZXJuZWwvdGltZS9udHAuYwkyMDA5LTAyLTE3IDE1OjI3OjQxLjAw MDAwMDAwMCArMDUzMAorKysgbGludXgtMi42LjI5L2tlcm5lbC90aW1lL250cC5jCTIwMDktMDUt MTEgMTU6NTg6MzEuMDAwMDAwMDAwICswNTMwCkBAIC0xMCwxMiArMTAsMTMgQEAKIAogI2luY2x1 ZGUgPGxpbnV4L21tLmg+CiAjaW5jbHVkZSA8bGludXgvdGltZS5oPgotI2luY2x1ZGUgPGxpbnV4 L3RpbWVyLmg+CiAjaW5jbHVkZSA8bGludXgvdGltZXguaD4KICNpbmNsdWRlIDxsaW51eC9qaWZm aWVzLmg+CiAjaW5jbHVkZSA8bGludXgvaHJ0aW1lci5oPgogI2luY2x1ZGUgPGxpbnV4L2NhcGFi aWxpdHkuaD4KLSNpbmNsdWRlIDxhc20vZGl2NjQuaD4KKyNpbmNsdWRlIDxsaW51eC9tYXRoNjQu aD4KKyNpbmNsdWRlIDxsaW51eC9jbG9ja3NvdXJjZS5oPgorI2luY2x1ZGUgPGxpbnV4L3dvcmtx dWV1ZS5oPgogI2luY2x1ZGUgPGFzbS90aW1leC5oPgogCiAvKgpAQCAtMjMsMTEgKzI0LDE0IEBA CiAgKi8KIHVuc2lnbmVkIGxvbmcgdGlja191c2VjID0gVElDS19VU0VDOyAJCS8qIFVTRVJfSFog cGVyaW9kICh1c2VjKSAqLwogdW5zaWduZWQgbG9uZyB0aWNrX25zZWM7CQkJLyogQUNUSFogcGVy aW9kIChuc2VjKSAqLwotc3RhdGljIHU2NCB0aWNrX2xlbmd0aCwgdGlja19sZW5ndGhfYmFzZTsK K3U2NCB0aWNrX2xlbmd0aDsKK3N0YXRpYyB1NjQgdGlja19sZW5ndGhfYmFzZTsKKworc3RhdGlj IHN0cnVjdCBocnRpbWVyIGxlYXBfdGltZXI7CiAKICNkZWZpbmUgTUFYX1RJQ0tBREoJCTUwMAkJ LyogbWljcm9zZWNzICovCiAjZGVmaW5lIE1BWF9USUNLQURKX1NDQUxFRAkoKCh1NjQpKE1BWF9U SUNLQURKICogTlNFQ19QRVJfVVNFQykgPDwgXAotCQkJCSAgVElDS19MRU5HVEhfU0hJRlQpIC8g TlRQX0lOVEVSVkFMX0ZSRVEpCisJCQkJICBOVFBfU0NBTEVfU0hJRlQpIC8gTlRQX0lOVEVSVkFM X0ZSRVEpCiAKIC8qCiAgKiBwaGFzZS1sb2NrIGxvb3AgdmFyaWFibGVzCkBAIC0zNSwzMSArMzks NjkgQEAKIC8qIFRJTUVfRVJST1IgcHJldmVudHMgb3ZlcndyaXRpbmcgdGhlIENNT1MgY2xvY2sg Ki8KIHN0YXRpYyBpbnQgdGltZV9zdGF0ZSA9IFRJTUVfT0s7CS8qIGNsb2NrIHN5bmNocm9uaXph dGlvbiBzdGF0dXMJKi8KIGludCB0aW1lX3N0YXR1cyA9IFNUQV9VTlNZTkM7CQkvKiBjbG9jayBz dGF0dXMgYml0cwkJKi8KK3N0YXRpYyBsb25nIHRpbWVfdGFpOwkJCS8qIFRBSSBvZmZzZXQgKHMp CQkqLwogc3RhdGljIHM2NCB0aW1lX29mZnNldDsJCS8qIHRpbWUgYWRqdXN0bWVudCAobnMpCQkq Lwogc3RhdGljIGxvbmcgdGltZV9jb25zdGFudCA9IDI7CQkvKiBwbGwgdGltZSBjb25zdGFudAkJ Ki8KIGxvbmcgdGltZV9tYXhlcnJvciA9IE5UUF9QSEFTRV9MSU1JVDsJLyogbWF4aW11bSBlcnJv ciAodXMpCQkqLwogbG9uZyB0aW1lX2VzdGVycm9yID0gTlRQX1BIQVNFX0xJTUlUOwkvKiBlc3Rp bWF0ZWQgZXJyb3IgKHVzKQkJKi8KLWxvbmcgdGltZV9mcmVxOwkJCQkvKiBmcmVxdWVuY3kgb2Zm c2V0IChzY2FsZWQgcHBtKSovCitzdGF0aWMgczY0IHRpbWVfZnJlcTsJCQkvKiBmcmVxdWVuY3kg b2Zmc2V0IChzY2FsZWQgbnMvcykqLwogc3RhdGljIGxvbmcgdGltZV9yZWZ0aW1lOwkJLyogdGlt ZSBhdCBsYXN0IGFkanVzdG1lbnQgKHMpCSovCiBsb25nIHRpbWVfYWRqdXN0OwotCi0jZGVmaW5l IENMT0NLX1RJQ0tfT1ZFUkZMT1cJKExBVENIICogSFogLSBDTE9DS19USUNLX1JBVEUpCi0jZGVm aW5lIENMT0NLX1RJQ0tfQURKVVNUCSgoKHM2NClDTE9DS19USUNLX09WRVJGTE9XICogTlNFQ19Q RVJfU0VDKSAvIFwKLQkJCQkJKHM2NClDTE9DS19USUNLX1JBVEUpCitzdGF0aWMgbG9uZyBudHBf dGlja19hZGo7CiAKIHN0YXRpYyB2b2lkIG50cF91cGRhdGVfZnJlcXVlbmN5KHZvaWQpCiB7CiAJ dTY0IHNlY29uZF9sZW5ndGggPSAodTY0KSh0aWNrX3VzZWMgKiBOU0VDX1BFUl9VU0VDICogVVNF Ul9IWikKLQkJCQk8PCBUSUNLX0xFTkdUSF9TSElGVDsKLQlzZWNvbmRfbGVuZ3RoICs9IChzNjQp Q0xPQ0tfVElDS19BREpVU1QgPDwgVElDS19MRU5HVEhfU0hJRlQ7Ci0Jc2Vjb25kX2xlbmd0aCAr PSAoczY0KXRpbWVfZnJlcSA8PCAoVElDS19MRU5HVEhfU0hJRlQgLSBTSElGVF9OU0VDKTsKKwkJ CQk8PCBOVFBfU0NBTEVfU0hJRlQ7CisJc2Vjb25kX2xlbmd0aCArPSAoczY0KW50cF90aWNrX2Fk aiA8PCBOVFBfU0NBTEVfU0hJRlQ7CisJc2Vjb25kX2xlbmd0aCArPSB0aW1lX2ZyZXE7CiAKIAl0 aWNrX2xlbmd0aF9iYXNlID0gc2Vjb25kX2xlbmd0aDsKIAotCWRvX2RpdihzZWNvbmRfbGVuZ3Ro LCBIWik7Ci0JdGlja19uc2VjID0gc2Vjb25kX2xlbmd0aCA+PiBUSUNLX0xFTkdUSF9TSElGVDsK Kwl0aWNrX25zZWMgPSBkaXZfdTY0KHNlY29uZF9sZW5ndGgsIEhaKSA+PiBOVFBfU0NBTEVfU0hJ RlQ7CisJdGlja19sZW5ndGhfYmFzZSA9IGRpdl91NjQodGlja19sZW5ndGhfYmFzZSwgTlRQX0lO VEVSVkFMX0ZSRVEpOworfQorCitzdGF0aWMgdm9pZCBudHBfdXBkYXRlX29mZnNldChsb25nIG9m ZnNldCkKK3sKKwlsb25nIG10ZW1wOworCXM2NCBmcmVxX2FkajsKKworCWlmICghKHRpbWVfc3Rh dHVzICYgU1RBX1BMTCkpCisJCXJldHVybjsKKworCWlmICghKHRpbWVfc3RhdHVzICYgU1RBX05B Tk8pKQorCQlvZmZzZXQgKj0gTlNFQ19QRVJfVVNFQzsKIAotCWRvX2Rpdih0aWNrX2xlbmd0aF9i YXNlLCBOVFBfSU5URVJWQUxfRlJFUSk7CisJLyoKKwkgKiBTY2FsZSB0aGUgcGhhc2UgYWRqdXN0 bWVudCBhbmQKKwkgKiBjbGFtcCB0byB0aGUgb3BlcmF0aW5nIHJhbmdlLgorCSAqLworCW9mZnNl dCA9IG1pbihvZmZzZXQsIE1BWFBIQVNFKTsKKwlvZmZzZXQgPSBtYXgob2Zmc2V0LCAtTUFYUEhB U0UpOworCisJLyoKKwkgKiBTZWxlY3QgaG93IHRoZSBmcmVxdWVuY3kgaXMgdG8gYmUgY29udHJv bGxlZAorCSAqIGFuZCBpbiB3aGljaCBtb2RlIChQTEwgb3IgRkxMKS4KKwkgKi8KKwlpZiAodGlt ZV9zdGF0dXMgJiBTVEFfRlJFUUhPTEQgfHwgdGltZV9yZWZ0aW1lID09IDApCisJCXRpbWVfcmVm dGltZSA9IHh0aW1lLnR2X3NlYzsKKwltdGVtcCA9IHh0aW1lLnR2X3NlYyAtIHRpbWVfcmVmdGlt ZTsKKwl0aW1lX3JlZnRpbWUgPSB4dGltZS50dl9zZWM7CisKKwlmcmVxX2FkaiA9IChzNjQpb2Zm c2V0ICogbXRlbXA7CisJZnJlcV9hZGogPDw9IE5UUF9TQ0FMRV9TSElGVCAtIDIgKiAoU0hJRlRf UExMICsgMiArIHRpbWVfY29uc3RhbnQpOworCXRpbWVfc3RhdHVzICY9IH5TVEFfTU9ERTsKKwlp ZiAobXRlbXAgPj0gTUlOU0VDICYmICh0aW1lX3N0YXR1cyAmIFNUQV9GTEwgfHwgbXRlbXAgPiBN QVhTRUMpKSB7CisJCWZyZXFfYWRqICs9IGRpdl9zNjQoKHM2NClvZmZzZXQgPDwgKE5UUF9TQ0FM RV9TSElGVCAtIFNISUZUX0ZMTCksCisJCQkJICAgIG10ZW1wKTsKKwkJdGltZV9zdGF0dXMgfD0g U1RBX01PREU7CisJfQorCWZyZXFfYWRqICs9IHRpbWVfZnJlcTsKKwlmcmVxX2FkaiA9IG1pbihm cmVxX2FkaiwgTUFYRlJFUV9TQ0FMRUQpOworCXRpbWVfZnJlcSA9IG1heChmcmVxX2FkaiwgLU1B WEZSRVFfU0NBTEVEKTsKKworCXRpbWVfb2Zmc2V0ID0gZGl2X3M2NCgoczY0KW9mZnNldCA8PCBO VFBfU0NBTEVfU0hJRlQsIE5UUF9JTlRFUlZBTF9GUkVRKTsKIH0KIAogLyoqCkBAIC04MSw2MiAr MTIzLDY5IEBACiB9CiAKIC8qCi0gKiB0aGlzIHJvdXRpbmUgaGFuZGxlcyB0aGUgb3ZlcmZsb3cg b2YgdGhlIG1pY3Jvc2Vjb25kIGZpZWxkCi0gKgotICogVGhlIHRyaWNreSBiaXRzIG9mIGNvZGUg dG8gaGFuZGxlIHRoZSBhY2N1cmF0ZSBjbG9jayBzdXBwb3J0Ci0gKiB3ZXJlIHByb3ZpZGVkIGJ5 IERhdmUgTWlsbHMgKE1pbGxzQFVERUwuRURVKSBvZiBOVFAgZmFtZS4KLSAqIFRoZXkgd2VyZSBv cmlnaW5hbGx5IGRldmVsb3BlZCBmb3IgU1VOIGFuZCBERUMga2VybmVscy4KLSAqIEFsbCB0aGUg a3Vkb3Mgc2hvdWxkIGdvIHRvIERhdmUgZm9yIHRoaXMgc3R1ZmYuCisgKiBMZWFwIHNlY29uZCBw cm9jZXNzaW5nLiBJZiBpbiBsZWFwLWluc2VydCBzdGF0ZSBhdCB0aGUgZW5kIG9mIHRoZQorICog ZGF5LCB0aGUgc3lzdGVtIGNsb2NrIGlzIHNldCBiYWNrIG9uZSBzZWNvbmQ7IGlmIGluIGxlYXAt ZGVsZXRlCisgKiBzdGF0ZSwgdGhlIHN5c3RlbSBjbG9jayBpcyBzZXQgYWhlYWQgb25lIHNlY29u ZC4KICAqLwotdm9pZCBzZWNvbmRfb3ZlcmZsb3codm9pZCkKK3N0YXRpYyBlbnVtIGhydGltZXJf cmVzdGFydCBudHBfbGVhcF9zZWNvbmQoc3RydWN0IGhydGltZXIgKnRpbWVyKQogewotCWxvbmcg dGltZV9hZGo7CisJZW51bSBocnRpbWVyX3Jlc3RhcnQgcmVzID0gSFJUSU1FUl9OT1JFU1RBUlQ7 CiAKLQkvKiBCdW1wIHRoZSBtYXhlcnJvciBmaWVsZCAqLwotCXRpbWVfbWF4ZXJyb3IgKz0gTUFY RlJFUSA+PiBTSElGVF9VU0VDOwotCWlmICh0aW1lX21heGVycm9yID4gTlRQX1BIQVNFX0xJTUlU KSB7Ci0JCXRpbWVfbWF4ZXJyb3IgPSBOVFBfUEhBU0VfTElNSVQ7Ci0JCXRpbWVfc3RhdHVzIHw9 IFNUQV9VTlNZTkM7Ci0JfQorCXdyaXRlX3NlcWxvY2soJnh0aW1lX2xvY2spOwogCi0JLyoKLQkg KiBMZWFwIHNlY29uZCBwcm9jZXNzaW5nLiBJZiBpbiBsZWFwLWluc2VydCBzdGF0ZSBhdCB0aGUg ZW5kIG9mIHRoZQotCSAqIGRheSwgdGhlIHN5c3RlbSBjbG9jayBpcyBzZXQgYmFjayBvbmUgc2Vj b25kOyBpZiBpbiBsZWFwLWRlbGV0ZQotCSAqIHN0YXRlLCB0aGUgc3lzdGVtIGNsb2NrIGlzIHNl dCBhaGVhZCBvbmUgc2Vjb25kLiBUaGUgbWljcm90aW1lKCkKLQkgKiByb3V0aW5lIG9yIGV4dGVy bmFsIGNsb2NrIGRyaXZlciB3aWxsIGluc3VyZSB0aGF0IHJlcG9ydGVkIHRpbWUgaXMKLQkgKiBh bHdheXMgbW9ub3RvbmljLiBUaGUgdWdseSBkaXZpZGVzIHNob3VsZCBiZSByZXBsYWNlZC4KLQkg Ki8KIAlzd2l0Y2ggKHRpbWVfc3RhdGUpIHsKIAljYXNlIFRJTUVfT0s6Ci0JCWlmICh0aW1lX3N0 YXR1cyAmIFNUQV9JTlMpCi0JCQl0aW1lX3N0YXRlID0gVElNRV9JTlM7Ci0JCWVsc2UgaWYgKHRp bWVfc3RhdHVzICYgU1RBX0RFTCkKLQkJCXRpbWVfc3RhdGUgPSBUSU1FX0RFTDsKIAkJYnJlYWs7 CiAJY2FzZSBUSU1FX0lOUzoKLQkJaWYgKHh0aW1lLnR2X3NlYyAlIDg2NDAwID09IDApIHsKIAkJ CXh0aW1lLnR2X3NlYy0tOwogCQkJd2FsbF90b19tb25vdG9uaWMudHZfc2VjKys7CiAJCQl0aW1l X3N0YXRlID0gVElNRV9PT1A7Ci0JCQlwcmludGsoS0VSTl9OT1RJQ0UgIkNsb2NrOiBpbnNlcnRp bmcgbGVhcCBzZWNvbmQgIgotCQkJCQkiMjM6NTk6NjAgVVRDXG4iKTsKLQkJfQorCQlwcmludGso S0VSTl9OT1RJQ0UgIkNsb2NrOiAiCisJCSAgICAgICAiaW5zZXJ0aW5nIGxlYXAgc2Vjb25kIDIz OjU5OjYwIFVUQ1xuIik7CisJCWhydGltZXJfYWRkX2V4cGlyZXNfbnMoJmxlYXBfdGltZXIsIE5T RUNfUEVSX1NFQyk7CisJCXJlcyA9IEhSVElNRVJfUkVTVEFSVDsKIAkJYnJlYWs7CiAJY2FzZSBU SU1FX0RFTDoKLQkJaWYgKCh4dGltZS50dl9zZWMgKyAxKSAlIDg2NDAwID09IDApIHsKIAkJCXh0 aW1lLnR2X3NlYysrOworCQl0aW1lX3RhaS0tOwogCQkJd2FsbF90b19tb25vdG9uaWMudHZfc2Vj LS07CiAJCQl0aW1lX3N0YXRlID0gVElNRV9XQUlUOwotCQkJcHJpbnRrKEtFUk5fTk9USUNFICJD bG9jazogZGVsZXRpbmcgbGVhcCBzZWNvbmQgIgotCQkJCQkiMjM6NTk6NTkgVVRDXG4iKTsKLQkJ fQorCQlwcmludGsoS0VSTl9OT1RJQ0UgIkNsb2NrOiAiCisJCSAgICAgICAiZGVsZXRpbmcgbGVh cCBzZWNvbmQgMjM6NTk6NTkgVVRDXG4iKTsKIAkJYnJlYWs7CiAJY2FzZSBUSU1FX09PUDoKKwkJ dGltZV90YWkrKzsKIAkJdGltZV9zdGF0ZSA9IFRJTUVfV0FJVDsKLQkJYnJlYWs7CisJCS8qIGZh bGwgdGhyb3VnaCAqLwogCWNhc2UgVElNRV9XQUlUOgogCQlpZiAoISh0aW1lX3N0YXR1cyAmIChT VEFfSU5TIHwgU1RBX0RFTCkpKQogCQl0aW1lX3N0YXRlID0gVElNRV9PSzsKKwkJYnJlYWs7CisJ fQorCXVwZGF0ZV92c3lzY2FsbCgmeHRpbWUsIGNsb2NrKTsKKworCXdyaXRlX3NlcXVubG9jaygm eHRpbWVfbG9jayk7CisKKwlyZXR1cm4gcmVzOworfQorCisvKgorICogdGhpcyByb3V0aW5lIGhh bmRsZXMgdGhlIG92ZXJmbG93IG9mIHRoZSBtaWNyb3NlY29uZCBmaWVsZAorICoKKyAqIFRoZSB0 cmlja3kgYml0cyBvZiBjb2RlIHRvIGhhbmRsZSB0aGUgYWNjdXJhdGUgY2xvY2sgc3VwcG9ydAor ICogd2VyZSBwcm92aWRlZCBieSBEYXZlIE1pbGxzIChNaWxsc0BVREVMLkVEVSkgb2YgTlRQIGZh bWUuCisgKiBUaGV5IHdlcmUgb3JpZ2luYWxseSBkZXZlbG9wZWQgZm9yIFNVTiBhbmQgREVDIGtl cm5lbHMuCisgKiBBbGwgdGhlIGt1ZG9zIHNob3VsZCBnbyB0byBEYXZlIGZvciB0aGlzIHN0dWZm LgorICovCit2b2lkIHNlY29uZF9vdmVyZmxvdyh2b2lkKQoreworCXM2NCB0aW1lX2FkajsKKwor CS8qIEJ1bXAgdGhlIG1heGVycm9yIGZpZWxkICovCisJdGltZV9tYXhlcnJvciArPSBNQVhGUkVR IC8gTlNFQ19QRVJfVVNFQzsKKwlpZiAodGltZV9tYXhlcnJvciA+IE5UUF9QSEFTRV9MSU1JVCkg eworCQl0aW1lX21heGVycm9yID0gTlRQX1BIQVNFX0xJTUlUOworCQl0aW1lX3N0YXR1cyB8PSBT VEFfVU5TWU5DOwogCX0KIAogCS8qCkBAIC0xNDYsNyArMTk1LDcgQEAKIAl0aWNrX2xlbmd0aCA9 IHRpY2tfbGVuZ3RoX2Jhc2U7CiAJdGltZV9hZGogPSBzaGlmdF9yaWdodCh0aW1lX29mZnNldCwg U0hJRlRfUExMICsgdGltZV9jb25zdGFudCk7CiAJdGltZV9vZmZzZXQgLT0gdGltZV9hZGo7Ci0J dGlja19sZW5ndGggKz0gKHM2NCl0aW1lX2FkaiA8PCAoVElDS19MRU5HVEhfU0hJRlQgLSBTSElG VF9VUERBVEUpOworCXRpY2tfbGVuZ3RoICs9IHRpbWVfYWRqOwogCiAJaWYgKHVubGlrZWx5KHRp bWVfYWRqdXN0KSkgewogCQlpZiAodGltZV9hZGp1c3QgPiBNQVhfVElDS0FESikgewpAQCAtMTU3 LDM1ICsyMDYsMjIgQEAKIAkJCXRpY2tfbGVuZ3RoIC09IE1BWF9USUNLQURKX1NDQUxFRDsKIAkJ fSBlbHNlIHsKIAkJCXRpY2tfbGVuZ3RoICs9IChzNjQpKHRpbWVfYWRqdXN0ICogTlNFQ19QRVJf VVNFQyAvCi0JCQkJCU5UUF9JTlRFUlZBTF9GUkVRKSA8PCBUSUNLX0xFTkdUSF9TSElGVDsKKwkJ CQkJTlRQX0lOVEVSVkFMX0ZSRVEpIDw8IE5UUF9TQ0FMRV9TSElGVDsKIAkJCXRpbWVfYWRqdXN0 ID0gMDsKIAkJfQogCX0KIH0KIAotLyoKLSAqIFJldHVybiBob3cgbG9uZyB0aWNrcyBhcmUgYXQg dGhlIG1vbWVudCwgdGhhdCBpcywgaG93IG11Y2ggdGltZQotICogdXBkYXRlX3dhbGxfdGltZV9v bmVfdGljayB3aWxsIGFkZCB0byB4dGltZSBuZXh0IHRpbWUgd2UgY2FsbCBpdAotICogKGFzc3Vt aW5nIG5vIGNhbGxzIHRvIGRvX2FkanRpbWV4IGluIHRoZSBtZWFudGltZSkuCi0gKiBUaGUgcmV0 dXJuIHZhbHVlIGlzIGluIGZpeGVkLXBvaW50IG5hbm9zZWNvbmRzIHNoaWZ0ZWQgYnkgdGhlCi0g KiBzcGVjaWZpZWQgbnVtYmVyIG9mIGJpdHMgdG8gdGhlIHJpZ2h0IG9mIHRoZSBiaW5hcnkgcG9p bnQuCi0gKiBUaGlzIGZ1bmN0aW9uIGhhcyBubyBzaWRlLWVmZmVjdHMuCi0gKi8KLXU2NCBjdXJy ZW50X3RpY2tfbGVuZ3RoKHZvaWQpCi17Ci0JcmV0dXJuIHRpY2tfbGVuZ3RoOwotfQotCiAjaWZk ZWYgQ09ORklHX0dFTkVSSUNfQ01PU19VUERBVEUKIAogLyogRGlzYWJsZSB0aGUgY21vcyB1cGRh dGUgLSB1c2VkIGJ5IHZpcnR1YWxpemF0aW9uIGFuZCBlbWJlZGRlZCAqLwogaW50IG5vX3N5bmNf Y21vc19jbG9jayAgX19yZWFkX21vc3RseTsKIAotc3RhdGljIHZvaWQgc3luY19jbW9zX2Nsb2Nr KHVuc2lnbmVkIGxvbmcgZHVtbXkpOworc3RhdGljIHZvaWQgc3luY19jbW9zX2Nsb2NrKHN0cnVj dCB3b3JrX3N0cnVjdCAqd29yayk7CiAKLXN0YXRpYyBERUZJTkVfVElNRVIoc3luY19jbW9zX3Rp bWVyLCBzeW5jX2Ntb3NfY2xvY2ssIDAsIDApOworc3RhdGljIERFQ0xBUkVfREVMQVlFRF9XT1JL KHN5bmNfY21vc193b3JrLCBzeW5jX2Ntb3NfY2xvY2spOwogCi1zdGF0aWMgdm9pZCBzeW5jX2Nt b3NfY2xvY2sodW5zaWduZWQgbG9uZyBkdW1teSkKK3N0YXRpYyB2b2lkIHN5bmNfY21vc19jbG9j ayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCiB7CiAJc3RydWN0IHRpbWVzcGVjIG5vdywgbmV4 dDsKIAlpbnQgZmFpbCA9IDE7CkBAIC0yMDgsNyArMjQ0LDcgQEAKIAlpZiAoYWJzKG5vdy50dl9u c2VjIC0gKE5TRUNfUEVSX1NFQyAvIDIpKSA8PSB0aWNrX25zZWMgLyAyKQogCQlmYWlsID0gdXBk YXRlX3BlcnNpc3RlbnRfY2xvY2sobm93KTsKIAotCW5leHQudHZfbnNlYyA9IChOU0VDX1BFUl9T RUMgLyAyKSAtIG5vdy50dl9uc2VjOworCW5leHQudHZfbnNlYyA9IChOU0VDX1BFUl9TRUMgLyAy KSAtIG5vdy50dl9uc2VjIC0gKFRJQ0tfTlNFQyAvIDIpOwogCWlmIChuZXh0LnR2X25zZWMgPD0g MCkKIAkJbmV4dC50dl9uc2VjICs9IE5TRUNfUEVSX1NFQzsKIApAQCAtMjIxLDEzICsyNTcsMTMg QEAKIAkJbmV4dC50dl9zZWMrKzsKIAkJbmV4dC50dl9uc2VjIC09IE5TRUNfUEVSX1NFQzsKIAl9 Ci0JbW9kX3RpbWVyKCZzeW5jX2Ntb3NfdGltZXIsIGppZmZpZXMgKyB0aW1lc3BlY190b19qaWZm aWVzKCZuZXh0KSk7CisJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZzeW5jX2Ntb3Nfd29yaywgdGlt ZXNwZWNfdG9famlmZmllcygmbmV4dCkpOwogfQogCiBzdGF0aWMgdm9pZCBub3RpZnlfY21vc190 aW1lcih2b2lkKQogewogCWlmICghbm9fc3luY19jbW9zX2Nsb2NrKQotCQltb2RfdGltZXIoJnN5 bmNfY21vc190aW1lciwgamlmZmllcyArIDEpOworCQlzY2hlZHVsZV9kZWxheWVkX3dvcmsoJnN5 bmNfY21vc193b3JrLCAwKTsKIH0KIAogI2Vsc2UKQEAgLTIzOSwxNTMgKzI3NSwxNDYgQEAKICAq LwogaW50IGRvX2FkanRpbWV4KHN0cnVjdCB0aW1leCAqdHhjKQogewotCWxvbmcgbXRlbXAsIHNh dmVfYWRqdXN0LCByZW07Ci0JczY0IGZyZXFfYWRqLCB0ZW1wNjQ7CisJc3RydWN0IHRpbWVzcGVj IHRzOwogCWludCByZXN1bHQ7CiAKKwkvKiBWYWxpZGF0ZSB0aGUgZGF0YSBiZWZvcmUgZGlzYWJs aW5nIGludGVycnVwdHMgKi8KKwlpZiAodHhjLT5tb2RlcyAmIEFESl9BREpUSU1FKSB7CisJCS8q IHNpbmdsZXNob3QgbXVzdCBub3QgYmUgdXNlZCB3aXRoIGFueSBvdGhlciBtb2RlIGJpdHMgKi8K KwkJaWYgKCEodHhjLT5tb2RlcyAmIEFESl9PRkZTRVRfU0lOR0xFU0hPVCkpCisJCQlyZXR1cm4g LUVJTlZBTDsKKwkJaWYgKCEodHhjLT5tb2RlcyAmIEFESl9PRkZTRVRfUkVBRE9OTFkpICYmCisJ CSAgICAhY2FwYWJsZShDQVBfU1lTX1RJTUUpKQorCQkJcmV0dXJuIC1FUEVSTTsKKwl9IGVsc2Ug ewogCS8qIEluIG9yZGVyIHRvIG1vZGlmeSBhbnl0aGluZywgeW91IGdvdHRhIGJlIHN1cGVyLXVz ZXIhICovCiAJaWYgKHR4Yy0+bW9kZXMgJiYgIWNhcGFibGUoQ0FQX1NZU19USU1FKSkKIAkJcmV0 dXJuIC1FUEVSTTsKIAotCS8qIE5vdyB3ZSB2YWxpZGF0ZSB0aGUgZGF0YSBiZWZvcmUgZGlzYWJs aW5nIGludGVycnVwdHMgKi8KLQotCWlmICgodHhjLT5tb2RlcyAmIEFESl9PRkZTRVRfU0lOR0xF U0hPVCkgPT0gQURKX09GRlNFVF9TSU5HTEVTSE9UKQotCSAgLyogc2luZ2xlc2hvdCBtdXN0IG5v dCBiZSB1c2VkIHdpdGggYW55IG90aGVyIG1vZGUgYml0cyAqLwotCQlpZiAodHhjLT5tb2RlcyAh PSBBREpfT0ZGU0VUX1NJTkdMRVNIT1QpCisJCS8qIGlmIHRoZSBxdWFydHogaXMgb2ZmIGJ5IG1v cmUgdGhhbiAxMCUgc29tZXRoaW5nIGlzIFZFUlkgd3JvbmchICovCisJCWlmICh0eGMtPm1vZGVz ICYgQURKX1RJQ0sgJiYKKwkJICAgICh0eGMtPnRpY2sgPCAgOTAwMDAwL1VTRVJfSFogfHwKKwkJ ICAgICB0eGMtPnRpY2sgPiAxMTAwMDAwL1VTRVJfSFopKQogCQkJcmV0dXJuIC1FSU5WQUw7CiAK LQlpZiAodHhjLT5tb2RlcyAhPSBBREpfT0ZGU0VUX1NJTkdMRVNIT1QgJiYgKHR4Yy0+bW9kZXMg JiBBREpfT0ZGU0VUKSkKLQkgIC8qIGFkanVzdG1lbnQgT2Zmc2V0IGxpbWl0ZWQgdG8gKy0gLjUx MiBzZWNvbmRzICovCi0JCWlmICh0eGMtPm9mZnNldCA8PSAtIE1BWFBIQVNFIHx8IHR4Yy0+b2Zm c2V0ID49IE1BWFBIQVNFICkKLQkJCXJldHVybiAtRUlOVkFMOworCQlpZiAodHhjLT5tb2RlcyAm IEFESl9TVEFUVVMgJiYgdGltZV9zdGF0ZSAhPSBUSU1FX09LKQorCQkJaHJ0aW1lcl9jYW5jZWwo JmxlYXBfdGltZXIpOworCX0KIAotCS8qIGlmIHRoZSBxdWFydHogaXMgb2ZmIGJ5IG1vcmUgdGhh biAxMCUgc29tZXRoaW5nIGlzIFZFUlkgd3JvbmcgISAqLwotCWlmICh0eGMtPm1vZGVzICYgQURK X1RJQ0spCi0JCWlmICh0eGMtPnRpY2sgPCAgOTAwMDAwL1VTRVJfSFogfHwKLQkJICAgIHR4Yy0+ dGljayA+IDExMDAwMDAvVVNFUl9IWikKLQkJCXJldHVybiAtRUlOVkFMOworCWdldG5zdGltZW9m ZGF5KCZ0cyk7CiAKIAl3cml0ZV9zZXFsb2NrX2lycSgmeHRpbWVfbG9jayk7Ci0JcmVzdWx0ID0g dGltZV9zdGF0ZTsJLyogbW9zdGx5IGBUSU1FX09LJyAqLwogCi0JLyogU2F2ZSBmb3IgbGF0ZXIg LSBzZW1hbnRpY3Mgb2YgYWRqdGltZSBpcyB0byByZXR1cm4gb2xkIHZhbHVlICovCi0Jc2F2ZV9h ZGp1c3QgPSB0aW1lX2FkanVzdDsKLQotI2lmIDAJLyogU1RBX0NMT0NLRVJSIGlzIG5ldmVyIHNl dCB5ZXQgKi8KLQl0aW1lX3N0YXR1cyAmPSB+U1RBX0NMT0NLRVJSOwkJLyogcmVzZXQgU1RBX0NM T0NLRVJSICovCi0jZW5kaWYKIAkvKiBJZiB0aGVyZSBhcmUgaW5wdXQgcGFyYW1ldGVycywgdGhl biBwcm9jZXNzIHRoZW0gKi8KLQlpZiAodHhjLT5tb2RlcykKLQl7Ci0JICAgIGlmICh0eGMtPm1v ZGVzICYgQURKX1NUQVRVUykJLyogb25seSBzZXQgYWxsb3dlZCBiaXRzICovCi0JCXRpbWVfc3Rh dHVzID0gICh0eGMtPnN0YXR1cyAmIH5TVEFfUk9OTFkpIHwKLQkJCSAgICAgICh0aW1lX3N0YXR1 cyAmIFNUQV9ST05MWSk7Ci0KLQkgICAgaWYgKHR4Yy0+bW9kZXMgJiBBREpfRlJFUVVFTkNZKSB7 CS8qIHAuIDIyICovCi0JCWlmICh0eGMtPmZyZXEgPiBNQVhGUkVRIHx8IHR4Yy0+ZnJlcSA8IC1N QVhGUkVRKSB7Ci0JCSAgICByZXN1bHQgPSAtRUlOVkFMOwotCQkgICAgZ290byBsZWF2ZTsKLQkJ fQotCQl0aW1lX2ZyZXEgPSAoKHM2NCl0eGMtPmZyZXEgKiBOU0VDX1BFUl9VU0VDKQotCQkJCT4+ IChTSElGVF9VU0VDIC0gU0hJRlRfTlNFQyk7Ci0JICAgIH0KLQotCSAgICBpZiAodHhjLT5tb2Rl cyAmIEFESl9NQVhFUlJPUikgewotCQlpZiAodHhjLT5tYXhlcnJvciA8IDAgfHwgdHhjLT5tYXhl cnJvciA+PSBOVFBfUEhBU0VfTElNSVQpIHsKLQkJICAgIHJlc3VsdCA9IC1FSU5WQUw7Ci0JCSAg ICBnb3RvIGxlYXZlOworCWlmICh0eGMtPm1vZGVzICYgQURKX0FESlRJTUUpIHsKKwkJbG9uZyBz YXZlX2FkanVzdCA9IHRpbWVfYWRqdXN0OworCisJCWlmICghKHR4Yy0+bW9kZXMgJiBBREpfT0ZG U0VUX1JFQURPTkxZKSkgeworCQkJLyogYWRqdGltZSgpIGlzIGluZGVwZW5kZW50IGZyb20gbnRw X2FkanRpbWUoKSAqLworCQkJdGltZV9hZGp1c3QgPSB0eGMtPm9mZnNldDsKKwkJCW50cF91cGRh dGVfZnJlcXVlbmN5KCk7CiAJCX0KLQkJdGltZV9tYXhlcnJvciA9IHR4Yy0+bWF4ZXJyb3I7CisJ CXR4Yy0+b2Zmc2V0ID0gc2F2ZV9hZGp1c3Q7CisJCWdvdG8gYWRqX2RvbmU7CiAJICAgIH0KKwlp ZiAodHhjLT5tb2RlcykgeworCQlsb25nIHNlYzsKIAotCSAgICBpZiAodHhjLT5tb2RlcyAmIEFE Sl9FU1RFUlJPUikgewotCQlpZiAodHhjLT5lc3RlcnJvciA8IDAgfHwgdHhjLT5lc3RlcnJvciA+ PSBOVFBfUEhBU0VfTElNSVQpIHsKLQkJICAgIHJlc3VsdCA9IC1FSU5WQUw7Ci0JCSAgICBnb3Rv IGxlYXZlOwotCQl9Ci0JCXRpbWVfZXN0ZXJyb3IgPSB0eGMtPmVzdGVycm9yOworCQlpZiAodHhj LT5tb2RlcyAmIEFESl9TVEFUVVMpIHsKKwkJCWlmICgodGltZV9zdGF0dXMgJiBTVEFfUExMKSAm JgorCQkJICAgICEodHhjLT5zdGF0dXMgJiBTVEFfUExMKSkgeworCQkJCXRpbWVfc3RhdGUgPSBU SU1FX09LOworCQkJCXRpbWVfc3RhdHVzID0gU1RBX1VOU1lOQzsKIAkgICAgfQorCQkJLyogb25s eSBzZXQgYWxsb3dlZCBiaXRzICovCisJCQl0aW1lX3N0YXR1cyAmPSBTVEFfUk9OTFk7CisJCQl0 aW1lX3N0YXR1cyB8PSB0eGMtPnN0YXR1cyAmIH5TVEFfUk9OTFk7CiAKLQkgICAgaWYgKHR4Yy0+ bW9kZXMgJiBBREpfVElNRUNPTlNUKSB7CS8qIHAuIDI0ICovCi0JCWlmICh0eGMtPmNvbnN0YW50 IDwgMCkgewkvKiBOVFAgdjQgdXNlcyB2YWx1ZXMgPiA2ICovCi0JCSAgICByZXN1bHQgPSAtRUlO VkFMOwotCQkgICAgZ290byBsZWF2ZTsKKwkJCXN3aXRjaCAodGltZV9zdGF0ZSkgeworCQkJY2Fz ZSBUSU1FX09LOgorCQkJc3RhcnRfdGltZXI6CisJCQkJc2VjID0gdHMudHZfc2VjOworCQkJCWlm ICh0aW1lX3N0YXR1cyAmIFNUQV9JTlMpIHsKKwkJCQkJdGltZV9zdGF0ZSA9IFRJTUVfSU5TOwor CQkJCQlzZWMgKz0gODY0MDAgLSBzZWMgJSA4NjQwMDsKKwkJCQkJaHJ0aW1lcl9zdGFydCgmbGVh cF90aW1lciwga3RpbWVfc2V0KHNlYywgMCksIEhSVElNRVJfTU9ERV9BQlMpOworCQkJCX0gZWxz ZSBpZiAodGltZV9zdGF0dXMgJiBTVEFfREVMKSB7CisJCQkJCXRpbWVfc3RhdGUgPSBUSU1FX0RF TDsKKwkJCQkJc2VjICs9IDg2NDAwIC0gKHNlYyArIDEpICUgODY0MDA7CisJCQkJCWhydGltZXJf c3RhcnQoJmxlYXBfdGltZXIsIGt0aW1lX3NldChzZWMsIDApLCBIUlRJTUVSX01PREVfQUJTKTsK KwkJCQl9CisJCQkJYnJlYWs7CisJCQljYXNlIFRJTUVfSU5TOgorCQkJY2FzZSBUSU1FX0RFTDoK KwkJCQl0aW1lX3N0YXRlID0gVElNRV9PSzsKKwkJCQlnb3RvIHN0YXJ0X3RpbWVyOworCQkJCWJy ZWFrOworCQkJY2FzZSBUSU1FX1dBSVQ6CisJCQkJaWYgKCEodGltZV9zdGF0dXMgJiAoU1RBX0lO UyB8IFNUQV9ERUwpKSkKKwkJCQkJdGltZV9zdGF0ZSA9IFRJTUVfT0s7CisJCQkJYnJlYWs7CisJ CQljYXNlIFRJTUVfT09QOgorCQkJCWhydGltZXJfcmVzdGFydCgmbGVhcF90aW1lcik7CisJCQkJ YnJlYWs7CiAJCX0KLQkJdGltZV9jb25zdGFudCA9IG1pbih0eGMtPmNvbnN0YW50ICsgNCwgKGxv bmcpTUFYVEMpOwogCSAgICB9CiAKLQkgICAgaWYgKHR4Yy0+bW9kZXMgJiBBREpfT0ZGU0VUKSB7 CS8qIHZhbHVlcyBjaGVja2VkIGVhcmxpZXIgKi8KLQkJaWYgKHR4Yy0+bW9kZXMgPT0gQURKX09G RlNFVF9TSU5HTEVTSE9UKSB7Ci0JCSAgICAvKiBhZGp0aW1lKCkgaXMgaW5kZXBlbmRlbnQgZnJv bSBudHBfYWRqdGltZSgpICovCi0JCSAgICB0aW1lX2FkanVzdCA9IHR4Yy0+b2Zmc2V0OworCQlp ZiAodHhjLT5tb2RlcyAmIEFESl9OQU5PKQorCQkJdGltZV9zdGF0dXMgfD0gU1RBX05BTk87CisJ CWlmICh0eGMtPm1vZGVzICYgQURKX01JQ1JPKQorCQkJdGltZV9zdGF0dXMgJj0gflNUQV9OQU5P OworCisJCWlmICh0eGMtPm1vZGVzICYgQURKX0ZSRVFVRU5DWSkgeworCQkJdGltZV9mcmVxID0g KHM2NCl0eGMtPmZyZXEgKiBQUE1fU0NBTEU7CisJCQl0aW1lX2ZyZXEgPSBtaW4odGltZV9mcmVx LCBNQVhGUkVRX1NDQUxFRCk7CisJCQl0aW1lX2ZyZXEgPSBtYXgodGltZV9mcmVxLCAtTUFYRlJF UV9TQ0FMRUQpOwogCQl9Ci0JCWVsc2UgaWYgKHRpbWVfc3RhdHVzICYgU1RBX1BMTCkgewotCQkg ICAgdGltZV9vZmZzZXQgPSB0eGMtPm9mZnNldCAqIE5TRUNfUEVSX1VTRUM7CiAKLQkJICAgIC8q Ci0JCSAgICAgKiBTY2FsZSB0aGUgcGhhc2UgYWRqdXN0bWVudCBhbmQKLQkJICAgICAqIGNsYW1w IHRvIHRoZSBvcGVyYXRpbmcgcmFuZ2UuCi0JCSAgICAgKi8KLQkJICAgIHRpbWVfb2Zmc2V0ID0g bWluKHRpbWVfb2Zmc2V0LCAoczY0KU1BWFBIQVNFICogTlNFQ19QRVJfVVNFQyk7Ci0JCSAgICB0 aW1lX29mZnNldCA9IG1heCh0aW1lX29mZnNldCwgKHM2NCktTUFYUEhBU0UgKiBOU0VDX1BFUl9V U0VDKTsKKwkJaWYgKHR4Yy0+bW9kZXMgJiBBREpfTUFYRVJST1IpCisJCQl0aW1lX21heGVycm9y ID0gdHhjLT5tYXhlcnJvcjsKKwkJaWYgKHR4Yy0+bW9kZXMgJiBBREpfRVNURVJST1IpCisJCQl0 aW1lX2VzdGVycm9yID0gdHhjLT5lc3RlcnJvcjsKIAotCQkgICAgLyoKLQkJICAgICAqIFNlbGVj dCB3aGV0aGVyIHRoZSBmcmVxdWVuY3kgaXMgdG8gYmUgY29udHJvbGxlZAotCQkgICAgICogYW5k IGluIHdoaWNoIG1vZGUgKFBMTCBvciBGTEwpLiBDbGFtcCB0byB0aGUgb3BlcmF0aW5nCi0JCSAg ICAgKiByYW5nZS4gVWdseSBtdWx0aXBseS9kaXZpZGUgc2hvdWxkIGJlIHJlcGxhY2VkIHNvbWVk YXkuCi0JCSAgICAgKi8KKwkJaWYgKHR4Yy0+bW9kZXMgJiBBREpfVElNRUNPTlNUKSB7CisJCQl0 aW1lX2NvbnN0YW50ID0gdHhjLT5jb25zdGFudDsKKwkJCWlmICghKHRpbWVfc3RhdHVzICYgU1RB X05BTk8pKQorCQkJCXRpbWVfY29uc3RhbnQgKz0gNDsKKwkJCXRpbWVfY29uc3RhbnQgPSBtaW4o dGltZV9jb25zdGFudCwgKGxvbmcpTUFYVEMpOworCQkJdGltZV9jb25zdGFudCA9IG1heCh0aW1l X2NvbnN0YW50LCAwbCk7CisJCX0KIAotCQkgICAgaWYgKHRpbWVfc3RhdHVzICYgU1RBX0ZSRVFI T0xEIHx8IHRpbWVfcmVmdGltZSA9PSAwKQotCQkgICAgICAgIHRpbWVfcmVmdGltZSA9IHh0aW1l LnR2X3NlYzsKLQkJICAgIG10ZW1wID0geHRpbWUudHZfc2VjIC0gdGltZV9yZWZ0aW1lOwotCQkg ICAgdGltZV9yZWZ0aW1lID0geHRpbWUudHZfc2VjOworCQlpZiAodHhjLT5tb2RlcyAmIEFESl9U QUkgJiYgdHhjLT5jb25zdGFudCA+IDApCisJCQl0aW1lX3RhaSA9IHR4Yy0+Y29uc3RhbnQ7CiAK LQkJICAgIGZyZXFfYWRqID0gdGltZV9vZmZzZXQgKiBtdGVtcDsKLQkJICAgIGZyZXFfYWRqID0g c2hpZnRfcmlnaHQoZnJlcV9hZGosIHRpbWVfY29uc3RhbnQgKiAyICsKLQkJCQkJICAgKFNISUZU X1BMTCArIDIpICogMiAtIFNISUZUX05TRUMpOwotCQkgICAgaWYgKG10ZW1wID49IE1JTlNFQyAm JiAodGltZV9zdGF0dXMgJiBTVEFfRkxMIHx8IG10ZW1wID4gTUFYU0VDKSkgewotCQkJdGVtcDY0 ID0gdGltZV9vZmZzZXQgPDwgKFNISUZUX05TRUMgLSBTSElGVF9GTEwpOwotCQkJaWYgKHRpbWVf b2Zmc2V0IDwgMCkgewotCQkJICAgIHRlbXA2NCA9IC10ZW1wNjQ7Ci0JCQkgICAgZG9fZGl2KHRl bXA2NCwgbXRlbXApOwotCQkJICAgIGZyZXFfYWRqIC09IHRlbXA2NDsKLQkJCX0gZWxzZSB7Ci0J CQkgICAgZG9fZGl2KHRlbXA2NCwgbXRlbXApOwotCQkJICAgIGZyZXFfYWRqICs9IHRlbXA2NDsK LQkJCX0KLQkJICAgIH0KLQkJICAgIGZyZXFfYWRqICs9IHRpbWVfZnJlcTsKLQkJICAgIGZyZXFf YWRqID0gbWluKGZyZXFfYWRqLCAoczY0KU1BWEZSRVFfTlNFQyk7Ci0JCSAgICB0aW1lX2ZyZXEg PSBtYXgoZnJlcV9hZGosIChzNjQpLU1BWEZSRVFfTlNFQyk7Ci0JCSAgICB0aW1lX29mZnNldCA9 IGRpdl9sb25nX2xvbmdfcmVtX3NpZ25lZCh0aW1lX29mZnNldCwKLQkJCQkJCQkgICBOVFBfSU5U RVJWQUxfRlJFUSwKLQkJCQkJCQkgICAmcmVtKTsKLQkJICAgIHRpbWVfb2Zmc2V0IDw8PSBTSElG VF9VUERBVEU7Ci0JCX0gLyogU1RBX1BMTCAqLwotCSAgICB9IC8qIHR4Yy0+bW9kZXMgJiBBREpf T0ZGU0VUICovCisJCWlmICh0eGMtPm1vZGVzICYgQURKX09GRlNFVCkKKwkJCW50cF91cGRhdGVf b2Zmc2V0KHR4Yy0+b2Zmc2V0KTsKIAkgICAgaWYgKHR4Yy0+bW9kZXMgJiBBREpfVElDSykKIAkJ dGlja191c2VjID0gdHhjLT50aWNrOwogCiAJICAgIGlmICh0eGMtPm1vZGVzICYgKEFESl9USUNL fEFESl9GUkVRVUVOQ1l8QURKX09GRlNFVCkpCiAJCSAgICBudHBfdXBkYXRlX2ZyZXF1ZW5jeSgp OwotCX0gLyogdHhjLT5tb2RlcyAqLwotbGVhdmU6CWlmICgodGltZV9zdGF0dXMgJiAoU1RBX1VO U1lOQ3xTVEFfQ0xPQ0tFUlIpKSAhPSAwKQorCX0KKworCXR4Yy0+b2Zmc2V0ID0gc2hpZnRfcmln aHQodGltZV9vZmZzZXQgKiBOVFBfSU5URVJWQUxfRlJFUSwKKwkJCQkgIE5UUF9TQ0FMRV9TSElG VCk7CisJaWYgKCEodGltZV9zdGF0dXMgJiBTVEFfTkFOTykpCisJCXR4Yy0+b2Zmc2V0IC89IE5T RUNfUEVSX1VTRUM7CisKK2Fkal9kb25lOgorCXJlc3VsdCA9IHRpbWVfc3RhdGU7CS8qIG1vc3Rs eSBgVElNRV9PSycgKi8KKwlpZiAodGltZV9zdGF0dXMgJiAoU1RBX1VOU1lOQ3xTVEFfQ0xPQ0tF UlIpKQogCQlyZXN1bHQgPSBUSU1FX0VSUk9SOwogCi0JaWYgKCh0eGMtPm1vZGVzICYgQURKX09G RlNFVF9TSU5HTEVTSE9UKSA9PSBBREpfT0ZGU0VUX1NJTkdMRVNIT1QpCi0JCXR4Yy0+b2Zmc2V0 ID0gc2F2ZV9hZGp1c3Q7Ci0JZWxzZQotCQl0eGMtPm9mZnNldCA9ICgobG9uZylzaGlmdF9yaWdo dCh0aW1lX29mZnNldCwgU0hJRlRfVVBEQVRFKSkgKgotCSAgICAJCQlOVFBfSU5URVJWQUxfRlJF USAvIDEwMDA7Ci0JdHhjLT5mcmVxCSAgID0gKHRpbWVfZnJlcSAvIE5TRUNfUEVSX1VTRUMpIDw8 Ci0JCQkJKFNISUZUX1VTRUMgLSBTSElGVF9OU0VDKTsKKwl0eGMtPmZyZXEJICAgPSBzaGlmdF9y aWdodCgodGltZV9mcmVxID4+IFBQTV9TQ0FMRV9JTlZfU0hJRlQpICoKKwkJCQkJIChzNjQpUFBN X1NDQUxFX0lOViwgTlRQX1NDQUxFX1NISUZUKTsKIAl0eGMtPm1heGVycm9yCSAgID0gdGltZV9t YXhlcnJvcjsKIAl0eGMtPmVzdGVycm9yCSAgID0gdGltZV9lc3RlcnJvcjsKIAl0eGMtPnN0YXR1 cwkgICA9IHRpbWVfc3RhdHVzOwogCXR4Yy0+Y29uc3RhbnQJICAgPSB0aW1lX2NvbnN0YW50Owog CXR4Yy0+cHJlY2lzaW9uCSAgID0gMTsKLQl0eGMtPnRvbGVyYW5jZQkgICA9IE1BWEZSRVE7CisJ dHhjLT50b2xlcmFuY2UJICAgPSBNQVhGUkVRX1NDQUxFRCAvIFBQTV9TQ0FMRTsKIAl0eGMtPnRp Y2sJICAgPSB0aWNrX3VzZWM7CisJdHhjLT50YWkJICAgPSB0aW1lX3RhaTsKIAogCS8qIFBQUyBp cyBub3QgaW1wbGVtZW50ZWQsIHNvIHRoZXNlIGFyZSB6ZXJvICovCiAJdHhjLT5wcHNmcmVxCSAg ID0gMDsKQEAgLTM5Nyw3ICs0MjYsMjggQEAKIAl0eGMtPmVycmNudAkgICA9IDA7CiAJdHhjLT5z dGJjbnQJICAgPSAwOwogCXdyaXRlX3NlcXVubG9ja19pcnEoJnh0aW1lX2xvY2spOwotCWRvX2dl dHRpbWVvZmRheSgmdHhjLT50aW1lKTsKKworCXR4Yy0+dGltZS50dl9zZWMgPSB0cy50dl9zZWM7 CisJdHhjLT50aW1lLnR2X3VzZWMgPSB0cy50dl9uc2VjOworCWlmICghKHRpbWVfc3RhdHVzICYg U1RBX05BTk8pKQorCQl0eGMtPnRpbWUudHZfdXNlYyAvPSBOU0VDX1BFUl9VU0VDOworCiAJbm90 aWZ5X2Ntb3NfdGltZXIoKTsKLQlyZXR1cm4ocmVzdWx0KTsKKworCXJldHVybiByZXN1bHQ7Cit9 CisKK3N0YXRpYyBpbnQgX19pbml0IG50cF90aWNrX2Fkal9zZXR1cChjaGFyICpzdHIpCit7CisJ bnRwX3RpY2tfYWRqID0gc2ltcGxlX3N0cnRvbChzdHIsIE5VTEwsIDApOworCXJldHVybiAxOwor fQorCitfX3NldHVwKCJudHBfdGlja19hZGo9IiwgbnRwX3RpY2tfYWRqX3NldHVwKTsKKwordm9p ZCBfX2luaXQgbnRwX2luaXQodm9pZCkKK3sKKwludHBfY2xlYXIoKTsKKwlocnRpbWVyX2luaXQo JmxlYXBfdGltZXIsIENMT0NLX1JFQUxUSU1FLCBIUlRJTUVSX01PREVfQUJTKTsKKwlsZWFwX3Rp bWVyLmZ1bmN0aW9uID0gbnRwX2xlYXBfc2Vjb25kOwogfQo= --001e680f12ac7176ab046a7e687e--