From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepa Dinamani Subject: [RESEND PATCH 2/3] fs: poll/select/recvmmsg: use timespec64 for timeout events Date: Wed, 4 May 2016 12:24:59 -0700 Message-ID: <1462389899-2480-1-git-send-email-deepa.kernel@gmail.com> References: <1461947989-21926-3-git-send-email-deepa.kernel@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: arnd@arndb.de, y2038@lists.linaro.org, netdev@vger.kernel.org, john.stultz@linaro.org, Alexander Viro , linux-fsdevel@vger.kernel.org, tglx@linutronix.de, "David S. Miller" To: linux-kernel@vger.kernel.org Return-path: In-Reply-To: <1461947989-21926-3-git-send-email-deepa.kernel@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: y2038-bounces@lists.linaro.org Sender: "Y2038" List-Id: netdev.vger.kernel.org c3RydWN0IHRpbWVzcGVjIGlzIG5vdCB5MjAzOCBzYWZlLgpFdmVuIHRob3VnaCB0aW1lc3BlYyBt aWdodCBiZSBzdWZmaWNpZW50IHRvIHJlcHJlc2VudAp0aW1lb3V0cywgdXNlIHN0cnVjdCB0aW1l c3BlYzY0IGhlcmUgYXMgdGhlIHBsYW4gaXMgdG8KZ2V0IHJpZCBvZiBhbGwgdGltZXNwZWMgcmVm ZXJlbmNlIGluIHRoZSBrZXJuZWwuCgpUaGUgcGF0Y2ggdHJhbnNpdGlvbnMgdGhlIGNvbW1vbiBm dW5jdGlvbnM6CnBvbGxfc2VsZWN0X3NldF90aW1lb3V0KCkgYW5kIHNlbGVjdF9lc3RpbWF0ZV9h Y2N1cmFjeSgpCnRvIHVzZSB0aW1lc3BlYzY0LiBBbmQsIGFsbCB0aGUgc3lzY2FsbHMgdGhhdCB1 c2UgdGhlc2UKZnVuY3Rpb25zIGFyZSB0cmFuc2l0aW9uZWQgaW4gdGhlIHNhbWUgcGF0Y2guCgpU aGUgcmVzdGFydCBibG9jayBwYXJhbWV0ZXJzIGZvciBwb2xsIHVzZXMgbW9ub3RvbmljIHRpbWUu ClVzZSB0aW1lc3BlYzY0IGhlcmUgYXMgd2VsbCB0byBhc3NpZ24gdGltZW91dCB2YWx1ZS4gVGhp cwpwYXJhbWV0ZXIgaW4gdGhlIHJlc3RhcnQgYmxvY2sgbmVlZCBub3QgY2hhbmdlIGJlY2F1c2UK dGhpcyBvbmx5IGhvbGRzIHRoZSBtb25vdG9uaWMgdGltZXN0YW1wIGF0IHdoaWNoIHRpbWVvdXQK c2hvdWxkIG9jY3VyLiBBbmQsIHVuc2lnbmVkIGxvbmcgZGF0YSB0eXBlIHNob3VsZCBiZSBiaWcK ZW5vdWdoIGZvciB0aGlzIHRpbWVzdGFtcC4KClRoZSBzeXN0ZW0gY2FsbCBpbnRlcmZhY2VzIHdp bGwgYmUgaGFuZGxlZCBpbiBhIHNlcGFyYXRlCnNlcmllcy4KCkNvbXBhdCBpbnRlcmZhY2VzIG5l ZWQgbm90IGNoYW5nZSBhcyB0aW1lc3BlYzY0IGlzIGFuCmFsaWFzIHRvIHN0cnVjdCB0aW1lc3Bl YyBvbiBhIDY0IGJpdCBzeXN0ZW0uCgpTaWduZWQtb2ZmLWJ5OiBEZWVwYSBEaW5hbWFuaSA8ZGVl cGEua2VybmVsQGdtYWlsLmNvbT4KQ2M6IEFsZXhhbmRlciBWaXJvIDx2aXJvQHplbml2LmxpbnV4 Lm9yZy51az4KQ2M6ICJEYXZpZCBTLiBNaWxsZXIiIDxkYXZlbUBkYXZlbWxvZnQubmV0PgpDYzog bmV0ZGV2QHZnZXIua2VybmVsLm9yZwotLS0KUmVzZW5kaW5nIHRvIGluY2x1ZGUgSm9obiBhbmQg VGhvbWFzIG9uIHRoaXMgcGF0Y2ggYXMgd2VsbC4KVGhpcyBpcyB0byBpbmNsdWRlIHRoaXMgcGF0 Y2ggYWxzbyBpbiBKb2huJ3MgdHJlZS4KVGhpcyB3aWxsIGxldCBhbGwgMyBwYXRjaGVzIGluIHRo ZSBzZXJpZXMgdG8gbWVyZ2VkIHRocm91Z2ggdGhlIHNhbWUgdHJlZS4KIAogZnMvZXZlbnRwb2xs LmMgICAgICAgfCAxMiArKysrKy0tLS0tCiBmcy9zZWxlY3QuYyAgICAgICAgICB8IDY3ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGluY2x1ZGUv bGludXgvcG9sbC5oIHwgMTEgKysrKystLS0tCiBuZXQvc29ja2V0LmMgICAgICAgICB8ICA4ICsr KystLS0KIDQgZmlsZXMgY2hhbmdlZCwgNTQgaW5zZXJ0aW9ucygrKSwgNDQgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZnMvZXZlbnRwb2xsLmMgYi9mcy9ldmVudHBvbGwuYwppbmRleCA4YTc0 YTJhLi4xMGRiOTEyIDEwMDY0NAotLS0gYS9mcy9ldmVudHBvbGwuYworKysgYi9mcy9ldmVudHBv bGwuYwpAQCAtMTU4MywxNSArMTU4MywxNSBAQCBzdGF0aWMgaW50IGVwX3NlbmRfZXZlbnRzKHN0 cnVjdCBldmVudHBvbGwgKmVwLAogCXJldHVybiBlcF9zY2FuX3JlYWR5X2xpc3QoZXAsIGVwX3Nl bmRfZXZlbnRzX3Byb2MsICZlc2VkLCAwLCBmYWxzZSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgc3Ry dWN0IHRpbWVzcGVjIGVwX3NldF9tc3RpbWVvdXQobG9uZyBtcykKK3N0YXRpYyBpbmxpbmUgc3Ry dWN0IHRpbWVzcGVjNjQgZXBfc2V0X21zdGltZW91dChsb25nIG1zKQogewotCXN0cnVjdCB0aW1l c3BlYyBub3csIHRzID0geworCXN0cnVjdCB0aW1lc3BlYzY0IG5vdywgdHMgPSB7CiAJCS50dl9z ZWMgPSBtcyAvIE1TRUNfUEVSX1NFQywKIAkJLnR2X25zZWMgPSBOU0VDX1BFUl9NU0VDICogKG1z ICUgTVNFQ19QRVJfU0VDKSwKIAl9OwogCi0Ja3RpbWVfZ2V0X3RzKCZub3cpOwotCXJldHVybiB0 aW1lc3BlY19hZGRfc2FmZShub3csIHRzKTsKKwlrdGltZV9nZXRfdHM2NCgmbm93KTsKKwlyZXR1 cm4gdGltZXNwZWM2NF9hZGRfc2FmZShub3csIHRzKTsKIH0KIAogLyoqCkBAIC0xNjIxLDExICsx NjIxLDExIEBAIHN0YXRpYyBpbnQgZXBfcG9sbChzdHJ1Y3QgZXZlbnRwb2xsICplcCwgc3RydWN0 IGVwb2xsX2V2ZW50IF9fdXNlciAqZXZlbnRzLAogCWt0aW1lX3QgZXhwaXJlcywgKnRvID0gTlVM TDsKIAogCWlmICh0aW1lb3V0ID4gMCkgewotCQlzdHJ1Y3QgdGltZXNwZWMgZW5kX3RpbWUgPSBl cF9zZXRfbXN0aW1lb3V0KHRpbWVvdXQpOworCQlzdHJ1Y3QgdGltZXNwZWM2NCBlbmRfdGltZSA9 IGVwX3NldF9tc3RpbWVvdXQodGltZW91dCk7CiAKIAkJc2xhY2sgPSBzZWxlY3RfZXN0aW1hdGVf YWNjdXJhY3koJmVuZF90aW1lKTsKIAkJdG8gPSAmZXhwaXJlczsKLQkJKnRvID0gdGltZXNwZWNf dG9fa3RpbWUoZW5kX3RpbWUpOworCQkqdG8gPSB0aW1lc3BlYzY0X3RvX2t0aW1lKGVuZF90aW1l KTsKIAl9IGVsc2UgaWYgKHRpbWVvdXQgPT0gMCkgewogCQkvKgogCQkgKiBBdm9pZCB0aGUgdW5u ZWNlc3NhcnkgdHJpcCB0byB0aGUgd2FpdCBxdWV1ZSBsb29wLCBpZiB0aGUKZGlmZiAtLWdpdCBh L2ZzL3NlbGVjdC5jIGIvZnMvc2VsZWN0LmMKaW5kZXggODY5MjkzOS4uOGVkOWRhNSAxMDA2NDQK LS0tIGEvZnMvc2VsZWN0LmMKKysrIGIvZnMvc2VsZWN0LmMKQEAgLTQ3LDcgKzQ3LDcgQEAKIAog I2RlZmluZSBNQVhfU0xBQ0sJKDEwMCAqIE5TRUNfUEVSX01TRUMpCiAKLXN0YXRpYyBsb25nIF9f ZXN0aW1hdGVfYWNjdXJhY3koc3RydWN0IHRpbWVzcGVjICp0dikKK3N0YXRpYyBsb25nIF9fZXN0 aW1hdGVfYWNjdXJhY3koc3RydWN0IHRpbWVzcGVjNjQgKnR2KQogewogCWxvbmcgc2xhY2s7CiAJ aW50IGRpdmZhY3RvciA9IDEwMDA7CkBAIC03MCwxMCArNzAsMTAgQEAgc3RhdGljIGxvbmcgX19l c3RpbWF0ZV9hY2N1cmFjeShzdHJ1Y3QgdGltZXNwZWMgKnR2KQogCXJldHVybiBzbGFjazsKIH0K IAotdTY0IHNlbGVjdF9lc3RpbWF0ZV9hY2N1cmFjeShzdHJ1Y3QgdGltZXNwZWMgKnR2KQordTY0 IHNlbGVjdF9lc3RpbWF0ZV9hY2N1cmFjeShzdHJ1Y3QgdGltZXNwZWM2NCAqdHYpCiB7CiAJdTY0 IHJldDsKLQlzdHJ1Y3QgdGltZXNwZWMgbm93OworCXN0cnVjdCB0aW1lc3BlYzY0IG5vdzsKIAog CS8qCiAJICogUmVhbHRpbWUgdGFza3MgZ2V0IGEgc2xhY2sgb2YgMCBmb3Igb2J2aW91cyByZWFz b25zLgpAQCAtODIsOCArODIsOCBAQCB1NjQgc2VsZWN0X2VzdGltYXRlX2FjY3VyYWN5KHN0cnVj dCB0aW1lc3BlYyAqdHYpCiAJaWYgKHJ0X3Rhc2soY3VycmVudCkpCiAJCXJldHVybiAwOwogCi0J a3RpbWVfZ2V0X3RzKCZub3cpOwotCW5vdyA9IHRpbWVzcGVjX3N1YigqdHYsIG5vdyk7CisJa3Rp bWVfZ2V0X3RzNjQoJm5vdyk7CisJbm93ID0gdGltZXNwZWM2NF9zdWIoKnR2LCBub3cpOwogCXJl dCA9IF9fZXN0aW1hdGVfYWNjdXJhY3koJm5vdyk7CiAJaWYgKHJldCA8IGN1cnJlbnQtPnRpbWVy X3NsYWNrX25zKQogCQlyZXR1cm4gY3VycmVudC0+dGltZXJfc2xhY2tfbnM7CkBAIC0yNjAsNyAr MjYwLDcgQEAgRVhQT1JUX1NZTUJPTChwb2xsX3NjaGVkdWxlX3RpbWVvdXQpOwogCiAvKioKICAq IHBvbGxfc2VsZWN0X3NldF90aW1lb3V0IC0gaGVscGVyIGZ1bmN0aW9uIHRvIHNldHVwIHRoZSB0 aW1lb3V0IHZhbHVlCi0gKiBAdG86CQlwb2ludGVyIHRvIHRpbWVzcGVjIHZhcmlhYmxlIGZvciB0 aGUgZmluYWwgdGltZW91dAorICogQHRvOgkJcG9pbnRlciB0byB0aW1lc3BlYzY0IHZhcmlhYmxl IGZvciB0aGUgZmluYWwgdGltZW91dAogICogQHNlYzoJc2Vjb25kcyAoZnJvbSB1c2VyIHNwYWNl KQogICogQG5zZWM6CW5hbm9zZWNvbmRzIChmcm9tIHVzZXIgc3BhY2UpCiAgKgpAQCAtMjY5LDI2 ICsyNjksMjggQEAgRVhQT1JUX1NZTUJPTChwb2xsX3NjaGVkdWxlX3RpbWVvdXQpOwogICoKICAq IFJldHVybnMgLUVJTlZBTCBpZiBzZWMvbnNlYyBhcmUgbm90IG5vcm1hbGl6ZWQuIE90aGVyd2lz ZSAwLgogICovCi1pbnQgcG9sbF9zZWxlY3Rfc2V0X3RpbWVvdXQoc3RydWN0IHRpbWVzcGVjICp0 bywgbG9uZyBzZWMsIGxvbmcgbnNlYykKK2ludCBwb2xsX3NlbGVjdF9zZXRfdGltZW91dChzdHJ1 Y3QgdGltZXNwZWM2NCAqdG8sIHRpbWU2NF90IHNlYywgbG9uZyBuc2VjKQogewotCXN0cnVjdCB0 aW1lc3BlYyB0cyA9IHsudHZfc2VjID0gc2VjLCAudHZfbnNlYyA9IG5zZWN9OworCXN0cnVjdCB0 aW1lc3BlYzY0IHRzID0gey50dl9zZWMgPSBzZWMsIC50dl9uc2VjID0gbnNlY307CiAKLQlpZiAo IXRpbWVzcGVjX3ZhbGlkKCZ0cykpCisJaWYgKCF0aW1lc3BlYzY0X3ZhbGlkKCZ0cykpCiAJCXJl dHVybiAtRUlOVkFMOwogCiAJLyogT3B0aW1pemUgZm9yIHRoZSB6ZXJvIHRpbWVvdXQgdmFsdWUg aGVyZSAqLwogCWlmICghc2VjICYmICFuc2VjKSB7CiAJCXRvLT50dl9zZWMgPSB0by0+dHZfbnNl YyA9IDA7CiAJfSBlbHNlIHsKLQkJa3RpbWVfZ2V0X3RzKHRvKTsKLQkJKnRvID0gdGltZXNwZWNf YWRkX3NhZmUoKnRvLCB0cyk7CisJCWt0aW1lX2dldF90czY0KHRvKTsKKwkJKnRvID0gdGltZXNw ZWM2NF9hZGRfc2FmZSgqdG8sIHRzKTsKIAl9CiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQg cG9sbF9zZWxlY3RfY29weV9yZW1haW5pbmcoc3RydWN0IHRpbWVzcGVjICplbmRfdGltZSwgdm9p ZCBfX3VzZXIgKnAsCitzdGF0aWMgaW50IHBvbGxfc2VsZWN0X2NvcHlfcmVtYWluaW5nKHN0cnVj dCB0aW1lc3BlYzY0ICplbmRfdGltZSwKKwkJCQkgICAgICB2b2lkIF9fdXNlciAqcCwKIAkJCQkg ICAgICBpbnQgdGltZXZhbCwgaW50IHJldCkKIHsKKwlzdHJ1Y3QgdGltZXNwZWM2NCBydHM2NDsK IAlzdHJ1Y3QgdGltZXNwZWMgcnRzOwogCXN0cnVjdCB0aW1ldmFsIHJ0djsKIApAQCAtMzAyLDE2 ICszMDQsMTggQEAgc3RhdGljIGludCBwb2xsX3NlbGVjdF9jb3B5X3JlbWFpbmluZyhzdHJ1Y3Qg dGltZXNwZWMgKmVuZF90aW1lLCB2b2lkIF9fdXNlciAqcCwKIAlpZiAoIWVuZF90aW1lLT50dl9z ZWMgJiYgIWVuZF90aW1lLT50dl9uc2VjKQogCQlyZXR1cm4gcmV0OwogCi0Ja3RpbWVfZ2V0X3Rz KCZydHMpOwotCXJ0cyA9IHRpbWVzcGVjX3N1YigqZW5kX3RpbWUsIHJ0cyk7Ci0JaWYgKHJ0cy50 dl9zZWMgPCAwKQotCQlydHMudHZfc2VjID0gcnRzLnR2X25zZWMgPSAwOworCWt0aW1lX2dldF90 czY0KCZydHM2NCk7CisJcnRzNjQgPSB0aW1lc3BlYzY0X3N1YigqZW5kX3RpbWUsIHJ0czY0KTsK KwlpZiAocnRzNjQudHZfc2VjIDwgMCkKKwkJcnRzNjQudHZfc2VjID0gcnRzNjQudHZfbnNlYyA9 IDA7CisKKwlydHMgPSB0aW1lc3BlYzY0X3RvX3RpbWVzcGVjKHJ0czY0KTsKIAogCWlmICh0aW1l dmFsKSB7CiAJCWlmIChzaXplb2YocnR2KSA+IHNpemVvZihydHYudHZfc2VjKSArIHNpemVvZihy dHYudHZfdXNlYykpCiAJCQltZW1zZXQoJnJ0diwgMCwgc2l6ZW9mKHJ0dikpOwotCQlydHYudHZf c2VjID0gcnRzLnR2X3NlYzsKLQkJcnR2LnR2X3VzZWMgPSBydHMudHZfbnNlYyAvIE5TRUNfUEVS X1VTRUM7CisJCXJ0di50dl9zZWMgPSBydHM2NC50dl9zZWM7CisJCXJ0di50dl91c2VjID0gcnRz NjQudHZfbnNlYyAvIE5TRUNfUEVSX1VTRUM7CiAKIAkJaWYgKCFjb3B5X3RvX3VzZXIocCwgJnJ0 diwgc2l6ZW9mKHJ0dikpKQogCQkJcmV0dXJuIHJldDsKQEAgLTM5Niw3ICs0MDAsNyBAQCBzdGF0 aWMgaW5saW5lIHZvaWQgd2FpdF9rZXlfc2V0KHBvbGxfdGFibGUgKndhaXQsIHVuc2lnbmVkIGxv bmcgaW4sCiAJCXdhaXQtPl9rZXkgfD0gUE9MTE9VVF9TRVQ7CiB9CiAKLWludCBkb19zZWxlY3Qo aW50IG4sIGZkX3NldF9iaXRzICpmZHMsIHN0cnVjdCB0aW1lc3BlYyAqZW5kX3RpbWUpCitpbnQg ZG9fc2VsZWN0KGludCBuLCBmZF9zZXRfYml0cyAqZmRzLCBzdHJ1Y3QgdGltZXNwZWM2NCAqZW5k X3RpbWUpCiB7CiAJa3RpbWVfdCBleHBpcmUsICp0byA9IE5VTEw7CiAJc3RydWN0IHBvbGxfd3F1 ZXVlcyB0YWJsZTsKQEAgLTUyMiw3ICs1MjYsNyBAQCBpbnQgZG9fc2VsZWN0KGludCBuLCBmZF9z ZXRfYml0cyAqZmRzLCBzdHJ1Y3QgdGltZXNwZWMgKmVuZF90aW1lKQogCQkgKiBwb2ludGVyIHRv IHRoZSBleHBpcnkgdmFsdWUuCiAJCSAqLwogCQlpZiAoZW5kX3RpbWUgJiYgIXRvKSB7Ci0JCQll eHBpcmUgPSB0aW1lc3BlY190b19rdGltZSgqZW5kX3RpbWUpOworCQkJZXhwaXJlID0gdGltZXNw ZWM2NF90b19rdGltZSgqZW5kX3RpbWUpOwogCQkJdG8gPSAmZXhwaXJlOwogCQl9CiAKQEAgLTU0 NSw3ICs1NDksNyBAQCBpbnQgZG9fc2VsZWN0KGludCBuLCBmZF9zZXRfYml0cyAqZmRzLCBzdHJ1 Y3QgdGltZXNwZWMgKmVuZF90aW1lKQogICogSSdtIHRyeWluZyBFUkVTVEFSVE5PSEFORCB3aGlj aCByZXN0YXJ0IG9ubHkgd2hlbiB5b3Ugd2FudCB0by4KICAqLwogaW50IGNvcmVfc3lzX3NlbGVj dChpbnQgbiwgZmRfc2V0IF9fdXNlciAqaW5wLCBmZF9zZXQgX191c2VyICpvdXRwLAotCQkJICAg ZmRfc2V0IF9fdXNlciAqZXhwLCBzdHJ1Y3QgdGltZXNwZWMgKmVuZF90aW1lKQorCQkJICAgZmRf c2V0IF9fdXNlciAqZXhwLCBzdHJ1Y3QgdGltZXNwZWM2NCAqZW5kX3RpbWUpCiB7CiAJZmRfc2V0 X2JpdHMgZmRzOwogCXZvaWQgKmJpdHM7CkBAIC02MjIsNyArNjI2LDcgQEAgb3V0X25vZmRzOgog U1lTQ0FMTF9ERUZJTkU1KHNlbGVjdCwgaW50LCBuLCBmZF9zZXQgX191c2VyICosIGlucCwgZmRf c2V0IF9fdXNlciAqLCBvdXRwLAogCQlmZF9zZXQgX191c2VyICosIGV4cCwgc3RydWN0IHRpbWV2 YWwgX191c2VyICosIHR2cCkKIHsKLQlzdHJ1Y3QgdGltZXNwZWMgZW5kX3RpbWUsICp0byA9IE5V TEw7CisJc3RydWN0IHRpbWVzcGVjNjQgZW5kX3RpbWUsICp0byA9IE5VTEw7CiAJc3RydWN0IHRp bWV2YWwgdHY7CiAJaW50IHJldDsKIApAQCAtNjQ4LDE1ICs2NTIsMTcgQEAgc3RhdGljIGxvbmcg ZG9fcHNlbGVjdChpbnQgbiwgZmRfc2V0IF9fdXNlciAqaW5wLCBmZF9zZXQgX191c2VyICpvdXRw LAogCQkgICAgICAgY29uc3Qgc2lnc2V0X3QgX191c2VyICpzaWdtYXNrLCBzaXplX3Qgc2lnc2V0 c2l6ZSkKIHsKIAlzaWdzZXRfdCBrc2lnbWFzaywgc2lnc2F2ZWQ7Ci0Jc3RydWN0IHRpbWVzcGVj IHRzLCBlbmRfdGltZSwgKnRvID0gTlVMTDsKKwlzdHJ1Y3QgdGltZXNwZWMgdHM7CisJc3RydWN0 IHRpbWVzcGVjNjQgdHM2NCwgZW5kX3RpbWUsICp0byA9IE5VTEw7CiAJaW50IHJldDsKIAogCWlm ICh0c3ApIHsKIAkJaWYgKGNvcHlfZnJvbV91c2VyKCZ0cywgdHNwLCBzaXplb2YodHMpKSkKIAkJ CXJldHVybiAtRUZBVUxUOworCQl0czY0ID0gdGltZXNwZWNfdG9fdGltZXNwZWM2NCh0cyk7CiAK IAkJdG8gPSAmZW5kX3RpbWU7Ci0JCWlmIChwb2xsX3NlbGVjdF9zZXRfdGltZW91dCh0bywgdHMu dHZfc2VjLCB0cy50dl9uc2VjKSkKKwkJaWYgKHBvbGxfc2VsZWN0X3NldF90aW1lb3V0KHRvLCB0 czY0LnR2X3NlYywgdHM2NC50dl9uc2VjKSkKIAkJCXJldHVybiAtRUlOVkFMOwogCX0KIApAQCAt Nzc5LDcgKzc4NSw3IEBAIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGRvX3BvbGxmZChzdHJ1 Y3QgcG9sbGZkICpwb2xsZmQsIHBvbGxfdGFibGUgKnB3YWl0LAogfQogCiBzdGF0aWMgaW50IGRv X3BvbGwoc3RydWN0IHBvbGxfbGlzdCAqbGlzdCwgc3RydWN0IHBvbGxfd3F1ZXVlcyAqd2FpdCwK LQkJICAgc3RydWN0IHRpbWVzcGVjICplbmRfdGltZSkKKwkJICAgc3RydWN0IHRpbWVzcGVjNjQg KmVuZF90aW1lKQogewogCXBvbGxfdGFibGUqIHB0ID0gJndhaXQtPnB0OwogCWt0aW1lX3QgZXhw aXJlLCAqdG8gPSBOVUxMOwpAQCAtODU0LDcgKzg2MCw3IEBAIHN0YXRpYyBpbnQgZG9fcG9sbChz dHJ1Y3QgcG9sbF9saXN0ICpsaXN0LCBzdHJ1Y3QgcG9sbF93cXVldWVzICp3YWl0LAogCQkgKiBw b2ludGVyIHRvIHRoZSBleHBpcnkgdmFsdWUuCiAJCSAqLwogCQlpZiAoZW5kX3RpbWUgJiYgIXRv KSB7Ci0JCQlleHBpcmUgPSB0aW1lc3BlY190b19rdGltZSgqZW5kX3RpbWUpOworCQkJZXhwaXJl ID0gdGltZXNwZWM2NF90b19rdGltZSgqZW5kX3RpbWUpOwogCQkJdG8gPSAmZXhwaXJlOwogCQl9 CiAKQEAgLTg2OCw3ICs4NzQsNyBAQCBzdGF0aWMgaW50IGRvX3BvbGwoc3RydWN0IHBvbGxfbGlz dCAqbGlzdCwgc3RydWN0IHBvbGxfd3F1ZXVlcyAqd2FpdCwKIAkJCXNpemVvZihzdHJ1Y3QgcG9s bGZkKSkKIAogaW50IGRvX3N5c19wb2xsKHN0cnVjdCBwb2xsZmQgX191c2VyICp1ZmRzLCB1bnNp Z25lZCBpbnQgbmZkcywKLQkJc3RydWN0IHRpbWVzcGVjICplbmRfdGltZSkKKwkJc3RydWN0IHRp bWVzcGVjNjQgKmVuZF90aW1lKQogewogCXN0cnVjdCBwb2xsX3dxdWV1ZXMgdGFibGU7CiAgCWlu dCBlcnIgPSAtRUZBVUxULCBmZGNvdW50LCBsZW4sIHNpemU7CkBAIC05MzYsNyArOTQyLDcgQEAg c3RhdGljIGxvbmcgZG9fcmVzdGFydF9wb2xsKHN0cnVjdCByZXN0YXJ0X2Jsb2NrICpyZXN0YXJ0 X2Jsb2NrKQogewogCXN0cnVjdCBwb2xsZmQgX191c2VyICp1ZmRzID0gcmVzdGFydF9ibG9jay0+ cG9sbC51ZmRzOwogCWludCBuZmRzID0gcmVzdGFydF9ibG9jay0+cG9sbC5uZmRzOwotCXN0cnVj dCB0aW1lc3BlYyAqdG8gPSBOVUxMLCBlbmRfdGltZTsKKwlzdHJ1Y3QgdGltZXNwZWM2NCAqdG8g PSBOVUxMLCBlbmRfdGltZTsKIAlpbnQgcmV0OwogCiAJaWYgKHJlc3RhcnRfYmxvY2stPnBvbGwu aGFzX3RpbWVvdXQpIHsKQEAgLTk1Nyw3ICs5NjMsNyBAQCBzdGF0aWMgbG9uZyBkb19yZXN0YXJ0 X3BvbGwoc3RydWN0IHJlc3RhcnRfYmxvY2sgKnJlc3RhcnRfYmxvY2spCiBTWVNDQUxMX0RFRklO RTMocG9sbCwgc3RydWN0IHBvbGxmZCBfX3VzZXIgKiwgdWZkcywgdW5zaWduZWQgaW50LCBuZmRz LAogCQlpbnQsIHRpbWVvdXRfbXNlY3MpCiB7Ci0Jc3RydWN0IHRpbWVzcGVjIGVuZF90aW1lLCAq dG8gPSBOVUxMOworCXN0cnVjdCB0aW1lc3BlYzY0IGVuZF90aW1lLCAqdG8gPSBOVUxMOwogCWlu dCByZXQ7CiAKIAlpZiAodGltZW91dF9tc2VjcyA+PSAwKSB7CkBAIC05OTMsNyArOTk5LDggQEAg U1lTQ0FMTF9ERUZJTkU1KHBwb2xsLCBzdHJ1Y3QgcG9sbGZkIF9fdXNlciAqLCB1ZmRzLCB1bnNp Z25lZCBpbnQsIG5mZHMsCiAJCXNpemVfdCwgc2lnc2V0c2l6ZSkKIHsKIAlzaWdzZXRfdCBrc2ln bWFzaywgc2lnc2F2ZWQ7Ci0Jc3RydWN0IHRpbWVzcGVjIHRzLCBlbmRfdGltZSwgKnRvID0gTlVM TDsKKwlzdHJ1Y3QgdGltZXNwZWMgdHM7CisJc3RydWN0IHRpbWVzcGVjNjQgZW5kX3RpbWUsICp0 byA9IE5VTEw7CiAJaW50IHJldDsKIAogCWlmICh0c3ApIHsKZGlmZiAtLWdpdCBhL2luY2x1ZGUv bGludXgvcG9sbC5oIGIvaW5jbHVkZS9saW51eC9wb2xsLmgKaW5kZXggOWZiNGY0MC4uMzdiMDU3 YiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9wb2xsLmgKKysrIGIvaW5jbHVkZS9saW51eC9w b2xsLmgKQEAgLTk2LDcgKzk2LDcgQEAgZXh0ZXJuIHZvaWQgcG9sbF9pbml0d2FpdChzdHJ1Y3Qg cG9sbF93cXVldWVzICpwd3EpOwogZXh0ZXJuIHZvaWQgcG9sbF9mcmVld2FpdChzdHJ1Y3QgcG9s bF93cXVldWVzICpwd3EpOwogZXh0ZXJuIGludCBwb2xsX3NjaGVkdWxlX3RpbWVvdXQoc3RydWN0 IHBvbGxfd3F1ZXVlcyAqcHdxLCBpbnQgc3RhdGUsCiAJCQkJIGt0aW1lX3QgKmV4cGlyZXMsIHVu c2lnbmVkIGxvbmcgc2xhY2spOwotZXh0ZXJuIHU2NCBzZWxlY3RfZXN0aW1hdGVfYWNjdXJhY3ko c3RydWN0IHRpbWVzcGVjICp0dik7CitleHRlcm4gdTY0IHNlbGVjdF9lc3RpbWF0ZV9hY2N1cmFj eShzdHJ1Y3QgdGltZXNwZWM2NCAqdHYpOwogCiAKIHN0YXRpYyBpbmxpbmUgaW50IHBvbGxfc2No ZWR1bGUoc3RydWN0IHBvbGxfd3F1ZXVlcyAqcHdxLCBpbnQgc3RhdGUpCkBAIC0xNTMsMTIgKzE1 MywxMyBAQCB2b2lkIHplcm9fZmRfc2V0KHVuc2lnbmVkIGxvbmcgbnIsIHVuc2lnbmVkIGxvbmcg KmZkc2V0KQogCiAjZGVmaW5lIE1BWF9JTlQ2NF9TRUNPTkRTICgoKHM2NCkofigodTY0KTApPj4x KS9IWiktMSkKIAotZXh0ZXJuIGludCBkb19zZWxlY3QoaW50IG4sIGZkX3NldF9iaXRzICpmZHMs IHN0cnVjdCB0aW1lc3BlYyAqZW5kX3RpbWUpOworZXh0ZXJuIGludCBkb19zZWxlY3QoaW50IG4s IGZkX3NldF9iaXRzICpmZHMsIHN0cnVjdCB0aW1lc3BlYzY0ICplbmRfdGltZSk7CiBleHRlcm4g aW50IGRvX3N5c19wb2xsKHN0cnVjdCBwb2xsZmQgX191c2VyICogdWZkcywgdW5zaWduZWQgaW50 IG5mZHMsCi0JCSAgICAgICBzdHJ1Y3QgdGltZXNwZWMgKmVuZF90aW1lKTsKKwkJICAgICAgIHN0 cnVjdCB0aW1lc3BlYzY0ICplbmRfdGltZSk7CiBleHRlcm4gaW50IGNvcmVfc3lzX3NlbGVjdChp bnQgbiwgZmRfc2V0IF9fdXNlciAqaW5wLCBmZF9zZXQgX191c2VyICpvdXRwLAotCQkJICAgZmRf c2V0IF9fdXNlciAqZXhwLCBzdHJ1Y3QgdGltZXNwZWMgKmVuZF90aW1lKTsKKwkJCSAgIGZkX3Nl dCBfX3VzZXIgKmV4cCwgc3RydWN0IHRpbWVzcGVjNjQgKmVuZF90aW1lKTsKIAotZXh0ZXJuIGlu dCBwb2xsX3NlbGVjdF9zZXRfdGltZW91dChzdHJ1Y3QgdGltZXNwZWMgKnRvLCBsb25nIHNlYywg bG9uZyBuc2VjKTsKK2V4dGVybiBpbnQgcG9sbF9zZWxlY3Rfc2V0X3RpbWVvdXQoc3RydWN0IHRp bWVzcGVjNjQgKnRvLCB0aW1lNjRfdCBzZWMsCisJCQkJICAgbG9uZyBuc2VjKTsKIAogI2VuZGlm IC8qIF9MSU5VWF9QT0xMX0ggKi8KZGlmZiAtLWdpdCBhL25ldC9zb2NrZXQuYyBiL25ldC9zb2Nr ZXQuYwppbmRleCA1ZGJiMGJiLi5iZGZlMTE1IDEwMDY0NAotLS0gYS9uZXQvc29ja2V0LmMKKysr IGIvbmV0L3NvY2tldC5jCkBAIC0yMTcxLDcgKzIxNzEsOCBAQCBpbnQgX19zeXNfcmVjdm1tc2co aW50IGZkLCBzdHJ1Y3QgbW1zZ2hkciBfX3VzZXIgKm1tc2csIHVuc2lnbmVkIGludCB2bGVuLAog CXN0cnVjdCBtbXNnaGRyIF9fdXNlciAqZW50cnk7CiAJc3RydWN0IGNvbXBhdF9tbXNnaGRyIF9f dXNlciAqY29tcGF0X2VudHJ5OwogCXN0cnVjdCBtc2doZHIgbXNnX3N5czsKLQlzdHJ1Y3QgdGlt ZXNwZWMgZW5kX3RpbWU7CisJc3RydWN0IHRpbWVzcGVjNjQgZW5kX3RpbWU7CisJc3RydWN0IHRp bWVzcGVjNjQgdGltZW91dDY0OwogCiAJaWYgKHRpbWVvdXQgJiYKIAkgICAgcG9sbF9zZWxlY3Rf c2V0X3RpbWVvdXQoJmVuZF90aW1lLCB0aW1lb3V0LT50dl9zZWMsCkBAIC0yMjIzLDggKzIyMjQs OSBAQCBpbnQgX19zeXNfcmVjdm1tc2coaW50IGZkLCBzdHJ1Y3QgbW1zZ2hkciBfX3VzZXIgKm1t c2csIHVuc2lnbmVkIGludCB2bGVuLAogCQkJZmxhZ3MgfD0gTVNHX0RPTlRXQUlUOwogCiAJCWlm ICh0aW1lb3V0KSB7Ci0JCQlrdGltZV9nZXRfdHModGltZW91dCk7Ci0JCQkqdGltZW91dCA9IHRp bWVzcGVjX3N1YihlbmRfdGltZSwgKnRpbWVvdXQpOworCQkJa3RpbWVfZ2V0X3RzNjQoJnRpbWVv dXQ2NCk7CisJCQkqdGltZW91dCA9IHRpbWVzcGVjNjRfdG9fdGltZXNwZWMoCisJCQkJCXRpbWVz cGVjNjRfc3ViKGVuZF90aW1lLCB0aW1lb3V0NjQpKTsKIAkJCWlmICh0aW1lb3V0LT50dl9zZWMg PCAwKSB7CiAJCQkJdGltZW91dC0+dHZfc2VjID0gdGltZW91dC0+dHZfbnNlYyA9IDA7CiAJCQkJ YnJlYWs7Ci0tIAoxLjkuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KWTIwMzggbWFpbGluZyBsaXN0ClkyMDM4QGxpc3RzLmxpbmFyby5vcmcKaHR0cHM6 Ly9saXN0cy5saW5hcm8ub3JnL21haWxtYW4vbGlzdGluZm8veTIwMzgK