Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Mon, 28 Oct 2002 18:47:48 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Mon, 28 Oct 2002 18:47:48 -0500 Received: from air-2.osdl.org ([65.172.181.6]:64483 "EHLO mail.osdl.org") by vger.kernel.org with ESMTP id ; Mon, 28 Oct 2002 18:47:41 -0500 Subject: Re: [PATCH 1/3] High-res-timers part 1 (core) take 7 From: Stephen Hemminger To: george anzinger Cc: "landley@trommello.org" , Jim Houston , "ak@suse.de" , "linux-kernel@vger.kernel.org" , high-res-timers-discourse@lists.sourceforge.net In-Reply-To: <3DB9A311.9B0D832D@mvista.com> References: <3DB9A311.9B0D832D@mvista.com> Content-Type: multipart/mixed; boundary="=-Xu7/1NHwAo/kx6nq7JMI" X-Mailer: Ximian Evolution 1.0.8 (1.0.8-10) Date: 28 Oct 2002 15:53:28 -0800 Message-Id: <1035849209.1157.242.camel@dell_ss3.pdx.osdl.net> Mime-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 17339 Lines: 239 --=-Xu7/1NHwAo/kx6nq7JMI Content-Type: text/plain Content-Transfer-Encoding: 7bit This patch does not apply cleanly against 2.5.44. --=-Xu7/1NHwAo/kx6nq7JMI Content-Disposition: attachment; filename=timer.c.rej Content-Type: application/x-reject; name=timer.c.rej Content-Transfer-Encoding: base64 KioqKioqKioqKioqKioqCioqKiAyNSw2MiAqKioqCiAgI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4K ICAjaW5jbHVkZSA8bGludXgvbW0uaD4KICAKICAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KICAK ICAvKgogICAqIHBlci1DUFUgdGltZXIgdmVjdG9yIGRlZmluaXRpb25zOgogICAqLwotICNkZWZp bmUgVFZOX0JJVFMgNgotICNkZWZpbmUgVFZSX0JJVFMgOAotICNkZWZpbmUgVFZOX1NJWkUgKDEg PDwgVFZOX0JJVFMpCi0gI2RlZmluZSBUVlJfU0laRSAoMSA8PCBUVlJfQklUUykKLSAjZGVmaW5l IFRWTl9NQVNLIChUVk5fU0laRSAtIDEpCi0gI2RlZmluZSBUVlJfTUFTSyAoVFZSX1NJWkUgLSAx KQotIAotIHR5cGVkZWYgc3RydWN0IHR2ZWNfcyB7Ci0gCWludCBpbmRleDsKLSAJc3RydWN0IGxp c3RfaGVhZCB2ZWNbVFZOX1NJWkVdOwotIH0gdHZlY190OwotIAotIHR5cGVkZWYgc3RydWN0IHR2 ZWNfcm9vdF9zIHsKLSAJaW50IGluZGV4OwotIAlzdHJ1Y3QgbGlzdF9oZWFkIHZlY1tUVlJfU0la RV07Ci0gfSB0dmVjX3Jvb3RfdDsKLSAKICAKICBzdHJ1Y3QgdHZlY190X2Jhc2VfcyB7CiAgCXNw aW5sb2NrX3QgbG9jazsKICAJdW5zaWduZWQgbG9uZyB0aW1lcl9qaWZmaWVzOwotIAlzdHJ1Y3Qg dGltZXJfbGlzdCAqcnVubmluZ190aW1lcjsKLSAJdHZlY19yb290X3QgdHYxOwotIAl0dmVjX3Qg dHYyOwotIAl0dmVjX3QgdHYzOwotIAl0dmVjX3QgdHY0OwotIAl0dmVjX3QgdHY1OwogIH0gX19f X2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDsKICAKICB0eXBlZGVmIHN0cnVjdCB0dmVjX3RfYmFz ZV9zIHR2ZWNfYmFzZV90OwotLS0gMjcsNzAgLS0tLQogICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+ CiAgI2luY2x1ZGUgPGxpbnV4L21tLmg+CiAgCisgI2luY2x1ZGUgPGxpbnV4L2hydGltZS5oPgor ICNpbmNsdWRlIDxsaW51eC9jb21waWxlci5oPgorICNpbmNsdWRlIDxhc20vc2lnbmFsLmg+CiAg I2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiAgCisgI2lmbmRlZiBJRl9ISUdIX1JFUworICNpZmRl ZiBDT05GSUdfSElHSF9SRVNfVElNRVJTCisgLyoKKyAgKiBpZmRlZiBlbGltaW5hdG9yIG1hY3Jv Li4uCisgICovCisgI2RlZmluZSBJRl9ISUdIX1JFUyhhKSBhCisgI2Vsc2UKKyAjZGVmaW5lIElG X0hJR0hfUkVTKGEpCisgI2VuZGlmCisgI2VuZGlmCisgI2lmZGVmIENPTkZJR19TTVAKKyAjdW5k ZWYgSUZfU01QCisgI2RlZmluZSBJRl9TTVAoYSkgYQorICNkZWZpbmUgU01QIDEKKyAjZWxzZQor ICN1bmRlZiBJRl9TTVAKKyAjZGVmaW5lIElGX1NNUChhKSAKKyAjZGVmaW5lIFNNUCAwCisgI2Vu ZGlmCisgI2lmbmRlZiBDT05GSUdfTkVXX1RJTUVSX0xJU1RTSVpFCisgI2RlZmluZSBDT05GSUdf TkVXX1RJTUVSX0xJU1RTSVpFIDUxMgorICNlbmRpZgorICNkZWZpbmUgTkVXX1RWRUNfU0laRSBD T05GSUdfTkVXX1RJTUVSX0xJU1RTSVpFCisgI2RlZmluZSBORVdfVFZFQ19NQVNLIChORVdfVFZF Q19TSVpFIC0gMSkKICAvKgogICAqIHBlci1DUFUgdGltZXIgdmVjdG9yIGRlZmluaXRpb25zOgog ICAqLwogIAogIHN0cnVjdCB0dmVjX3RfYmFzZV9zIHsKICAJc3BpbmxvY2tfdCBsb2NrOwogIAl1 bnNpZ25lZCBsb25nIHRpbWVyX2ppZmZpZXM7CisgIAl2b2xhdGlsZSBzdHJ1Y3QgdGltZXJfbGlz dCAqIHZvbGF0aWxlIHJ1bm5pbmdfdGltZXI7CisgIAlzdHJ1Y3QgbGlzdF9oZWFkIHR2W05FV19U VkVDX1NJWkVdOwogIH0gX19fX2NhY2hlbGluZV9hbGlnbmVkX2luX3NtcDsKICAKICB0eXBlZGVm IHN0cnVjdCB0dmVjX3RfYmFzZV9zIHR2ZWNfYmFzZV90OwoqKioqKioqKioqKioqKioKKioqIDY2 LDEwNyAqKioqCiAgLyogRmFrZSBpbml0aWFsaXphdGlvbiBuZWVkZWQgdG8gYXZvaWQgY29tcGls ZXIgYnJlYWthZ2UgKi8KICBzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHRhc2tsZXRfc3Ry dWN0LCB0aW1lcl90YXNrbGV0KSA9IHsgTlVMTCB9OwogIAotIHN0YXRpYyBpbmxpbmUgdm9pZCBp bnRlcm5hbF9hZGRfdGltZXIodHZlY19iYXNlX3QgKmJhc2UsIHN0cnVjdCB0aW1lcl9saXN0ICp0 aW1lcikKLSB7Ci0gCXVuc2lnbmVkIGxvbmcgZXhwaXJlcyA9IHRpbWVyLT5leHBpcmVzOwotIAl1 bnNpZ25lZCBsb25nIGlkeCA9IGV4cGlyZXMgLSBiYXNlLT50aW1lcl9qaWZmaWVzOwotIAlzdHJ1 Y3QgbGlzdF9oZWFkICp2ZWM7Ci0gCi0gCWlmIChpZHggPCBUVlJfU0laRSkgewotIAkJaW50IGkg PSBleHBpcmVzICYgVFZSX01BU0s7Ci0gCQl2ZWMgPSBiYXNlLT50djEudmVjICsgaTsKLSAJfSBl bHNlIGlmIChpZHggPCAxIDw8IChUVlJfQklUUyArIFRWTl9CSVRTKSkgewotIAkJaW50IGkgPSAo ZXhwaXJlcyA+PiBUVlJfQklUUykgJiBUVk5fTUFTSzsKLSAJCXZlYyA9IGJhc2UtPnR2Mi52ZWMg KyBpOwotIAl9IGVsc2UgaWYgKGlkeCA8IDEgPDwgKFRWUl9CSVRTICsgMiAqIFRWTl9CSVRTKSkg ewotIAkJaW50IGkgPSAoZXhwaXJlcyA+PiAoVFZSX0JJVFMgKyBUVk5fQklUUykpICYgVFZOX01B U0s7Ci0gCQl2ZWMgPSBiYXNlLT50djMudmVjICsgaTsKLSAJfSBlbHNlIGlmIChpZHggPCAxIDw8 IChUVlJfQklUUyArIDMgKiBUVk5fQklUUykpIHsKLSAJCWludCBpID0gKGV4cGlyZXMgPj4gKFRW Ul9CSVRTICsgMiAqIFRWTl9CSVRTKSkgJiBUVk5fTUFTSzsKLSAJCXZlYyA9IGJhc2UtPnR2NC52 ZWMgKyBpOwotIAl9IGVsc2UgaWYgKChzaWduZWQgbG9uZykgaWR4IDwgMCkgewotIAkJLyoKLSAJ CSAqIENhbiBoYXBwZW4gaWYgeW91IGFkZCBhIHRpbWVyIHdpdGggZXhwaXJlcyA9PSBqaWZmaWVz LAotIAkJICogb3IgeW91IHNldCBhIHRpbWVyIHRvIGdvIG9mZiBpbiB0aGUgcGFzdAotIAkJICov Ci0gCQl2ZWMgPSBiYXNlLT50djEudmVjICsgYmFzZS0+dHYxLmluZGV4OwotIAl9IGVsc2UgaWYg KGlkeCA8PSAweGZmZmZmZmZmVUwpIHsKLSAJCWludCBpID0gKGV4cGlyZXMgPj4gKFRWUl9CSVRT ICsgMyAqIFRWTl9CSVRTKSkgJiBUVk5fTUFTSzsKLSAJCXZlYyA9IGJhc2UtPnR2NS52ZWMgKyBp OwotIAl9IGVsc2UgewotIAkJLyogQ2FuIG9ubHkgZ2V0IGhlcmUgb24gYXJjaGl0ZWN0dXJlcyB3 aXRoIDY0LWJpdCBqaWZmaWVzICovCi0gCQlJTklUX0xJU1RfSEVBRCgmdGltZXItPmVudHJ5KTsK LSAJCXJldHVybjsKLSAJfQotIAkvKgotIAkgKiBUaW1lcnMgYXJlIEZJRk86Ci0gCSAqLwotIAls aXN0X2FkZF90YWlsKCZ0aW1lci0+ZW50cnksIHZlYyk7CiAgfQogIAogIC8qKioKLS0tIDc0LDE3 NCAtLS0tCiAgLyogRmFrZSBpbml0aWFsaXphdGlvbiBuZWVkZWQgdG8gYXZvaWQgY29tcGlsZXIg YnJlYWthZ2UgKi8KICBzdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHRhc2tsZXRfc3RydWN0 LCB0aW1lcl90YXNrbGV0KSA9IHsgTlVMTCB9OwogIAorICBzdGF0aWMgaW5saW5lIHZvaWQgaW50 ZXJuYWxfYWRkX3RpbWVyKHR2ZWNfYmFzZV90ICpiYXNlLCAKKyAgCQkJCSAgICAgIHN0cnVjdCB0 aW1lcl9saXN0ICp0aW1lcikKKyAgIHsKKyAgCS8qCisgIAkgKiBtdXN0IGJlIGNsaS1lZCB3aGVu IGNhbGxpbmcgdGhpcworICAJICovCisgICAJdW5zaWduZWQgbG9uZyBleHBpcmVzID0gdGltZXIt PmV4cGlyZXM7CisgIAlJRl9ISUdIX1JFUyhpbnQgc3ViX2V4cGlyZXMgPSB0aW1lci0+c3ViX2V4 cGlyZXM7KQorICAJCWludCBpbmR4OworICAJc3RydWN0IGxpc3RfaGVhZCAqcG9zLCpsaXN0X3N0 YXJ0OworICAgCisgIAlpZiAoIHRpbWVfYmVmb3JlKGV4cGlyZXMsIGJhc2UtPnRpbWVyX2ppZmZp ZXMpICl7CisgIAkJLyoKKyAgCQkgKiBhbHJlYWR5IGV4cGlyZWQsIHNjaGVkdWxlIGZvciBuZXh0 IHRpY2sgCisgIAkJICogd291bGQgbGlrZSB0byBkbyBiZXR0ZXIgaGVyZQorICAJCSAqIEFjdHVh bGx5IHRoaXMgbm93IHdvcmtzIGp1c3QgZmluZSB3aXRoIHRoZQorICAJCSAqIGJhY2sgdXAgb2Yg dGltZXJfamlmZmllcyBpbiAicnVuX3RpbWVyX2xpc3QiLgorICAJCSAqIE5vdGUgdGhhdCB0aGlz IHB1dHMgdGhlIHRpbWVyIG9uIGEgbGlzdCBvdGhlcgorICAJCSAqIHRoYW4gdGhlIG9uZSBpdCBp ZGV4ZXMgdG8uICBXZSBkb24ndCB3YW50IHRvCisgIAkJICogY2hhbmdlIHRoZSBleHBpcmVzIHZh bHVlIGluIHRoZSB0aW1lciBhcyBpdCBpcworICAJCSAqIHVzZWQgYnkgdGhlIHJlcGVhdCBjb2Rl IGluIHNldGl0aW1lciBhbmQgdGhlCisgIAkJICogUE9TSVggdGltZXJzIGNvZGUuCisgIAkJCSAq LworICAJCWV4cGlyZXMgPSBiYXNlLT50aW1lcl9qaWZmaWVzOworICAJCUlGX0hJR0hfUkVTKHN1 Yl9leHBpcmVzID0gMCk7CisgIAl9CisgIAkJCQorICAJaW5keCA9CWV4cGlyZXMgJiBORVdfVFZF Q19NQVNLOworICAJaWYgKChleHBpcmVzIC0gYmFzZS0+dGltZXJfamlmZmllcykgPD0gTkVXX1RW RUNfU0laRSkgeworICAjaWZkZWYgQ09ORklHX0hJR0hfUkVTX1RJTUVSUworICAJCXVuc2lnbmVk IGxvbmcgamlmZmllc19mOworICAgCQkvKgorICAJCSAqIFRoZSBoaWdoIGRpZmYgYml0cyBhcmUg dGhlIHNhbWUsIGdvZXMgdG8gdGhlIGhlYWQgb2YgCisgIAkJICogdGhlIGxpc3QsIHNvcnQgb24g c3ViX2V4cGlyZS4KKyAgIAkJICovCisgIAkJZm9yIChwb3MgPSAobGlzdF9zdGFydCA9ICZiYXNl LT50dltpbmR4XSktPm5leHQ7IAorICAJCSAgICAgcG9zICE9IGxpc3Rfc3RhcnQ7IAorICAJCSAg ICAgcG9zID0gcG9zLT5uZXh0KXsKKyAgCQkJc3RydWN0IHRpbWVyX2xpc3QgKnRtciA9IAorICAJ CQkJbGlzdF9lbnRyeShwb3MsCisgIAkJCQkJICAgc3RydWN0IHRpbWVyX2xpc3QsCisgIAkJCQkJ ICAgZW50cnkpOworICAJCQlpZiAoKHRtci0+c3ViX2V4cGlyZXMgPj0gc3ViX2V4cGlyZXMpIHx8 CisgIAkJCSAgICAodG1yLT5leHBpcmVzICE9IGV4cGlyZXMpKXsKKyAgCQkJCWJyZWFrOworICAJ CQl9CisgIAkJfQorICAJCWxpc3RfYWRkX3RhaWwoJnRpbWVyLT5lbnRyeSwgcG9zKTsKKyAgCQkv KgorICAJCSAqIE5vdGVzIHRvIG1lLgkgVXNlIGppZmZpZXMgaGVyZSBpbnN0ZWFkIG9mIAorICAJ CSAqIHRpbWVyX2ppZmZpZXMgdG8gcHJldmVudCBhZGRpbmcgdW5uZWVkZWQgaW50ZXJydXB0cy4K KyAgCQkgKiBSdW5uaW5nX3RpbWVyIGlzIE5VTEwgaWYgd2UgYXJlIE5PVCBjdXJyZW50bHkgCisg IAkJICogYWN0aXZseSBkaXNwYXRjaGluZyB0aW1lcnMuCVNpbmNlIHdlIGFyZSB1bmRlcgorICAJ CSAqIHRoZSBzYW1lIHNwaW4gbG9jaywgaXQgYmVpbmcgZmFsc2UgbWVhbnMgdGhhdCAKKyAgCQkg KiBpdCBoYXMgZHJvcHBlZCB0aGUgc3BpbmxvY2sgdG8gY2FsbCB0aGUgdGltZXIKKyAgCQkgKiBm dW5jdGlvbiwgd2hpY2ggY291bGQgd2VsbCBiZSB3aG8gY2FsbGVkIHVzLgorICAJCSAqIEluIGFu eSBjYXNlLCB3ZSBkb24ndCBuZWVkIGEgbmV3IGludGVycnVwdCBhcworICAJCSAqIHRoZSB0aW1l ciBkaXNwYWNoIGNvZGUgKHJ1bl90aW1lcl9saXN0KSB3aWxsCisgIAkJICogcGljayB0aGlzIHVw IHdoZW4gdGhlIGZ1bmN0aW9uIGl0IGlzIGNhbGxpbmcgCisgIAkJICogcmV0dXJucy4KKyAgCQkg Ki8KKyAgCQlpZiAoIGV4cGlyZXMgPT0gKGppZmZpZXNfZiA9IGppZmZpZXMpICYmIAorICAJCSAg ICAgbGlzdF9zdGFydC0+bmV4dCA9PSAmdGltZXItPmVudHJ5ICYmCisgIAkJICAgICAoYmFzZS0+ cnVubmluZ190aW1lciA9PSBOVUxMKSkgeworICAJCQlzY2hlZHVsZV9uZXh0X2ludChqaWZmaWVz X2YsIHN1Yl9leHBpcmVzLDEpOworICAJCX0KKyAgI2Vsc2UKKyAgCQlwb3MgPSAoJmJhc2UtPnR2 W2luZHhdKS0+bmV4dDsKKyAgCQlsaXN0X2FkZF90YWlsKCZ0aW1lci0+ZW50cnksIHBvcyk7Cisg ICNlbmRpZgorICAJfWVsc2V7CisgIAkJLyoKKyAgCQkgKiBUaGUgaGlnaCBkaWZmIGJpdHMgZGlm ZmVyLCBzZWFyY2ggZnJvbSB0aGUgdGFpbAorICAJCSAqIFRoZSBmb3Igd2lsbCBwaWNrIHVwIGFu IGVtcHR5IGxpc3QuCisgIAkJICovCisgIAkJZm9yIChwb3MgPSAobGlzdF9zdGFydCA9ICZiYXNl LT50dltpbmR4XSktPnByZXY7IAorICAJCSAgICAgcG9zICE9IGxpc3Rfc3RhcnQ7IAorICAJCSAg ICAgcG9zID0gcG9zLT5wcmV2KXsKKyAgCQkJc3RydWN0IHRpbWVyX2xpc3QgKnRtciA9IAorICAJ CQkJbGlzdF9lbnRyeShwb3MsCisgIAkJCQkJICAgc3RydWN0IHRpbWVyX2xpc3QsCisgIAkJCQkJ ICAgZW50cnkpOworICAJCQlpZiAodGltZV9hZnRlcih0bXItPmV4cGlyZXMsIGV4cGlyZXMpKXsK KyAgCQkJCWNvbnRpbnVlOworICAJCQl9CisgIAkJCUlGX0hJR0hfUkVTKAorICAJCQkJaWYgKCh0 bXItPmV4cGlyZXMgIT0gZXhwaXJlcykgfHwKKyAgCQkJCSAgICAodG1yLT5zdWJfZXhwaXJlcyA8 IHN1Yl9leHBpcmVzKSkgeworICAJCQkJCWJyZWFrOworICAJCQkJfQorICAJCQkJKTsKKyAgCQl9 CisgIAkJbGlzdF9hZGQoJnRpbWVyLT5lbnRyeSwgcG9zKTsKKyAgCX0KKyAgCQkJCQogIH0KICAK ICAvKioqCioqKioqKioqKioqKioqKgoqKiogMTUyLDE2MCAqKioqCiAgICogKGllLiBtb2RfdGlt ZXIoKSBvZiBhbiBpbmFjdGl2ZSB0aW1lciByZXR1cm5zIDAsIG1vZF90aW1lcigpIG9mIGFuCiAg ICogYWN0aXZlIHRpbWVyIHJldHVybnMgMS4pCiAgICovCiAgaW50IG1vZF90aW1lcihzdHJ1Y3Qg dGltZXJfbGlzdCAqdGltZXIsIHVuc2lnbmVkIGxvbmcgZXhwaXJlcykKICB7Ci0gCXR2ZWNfYmFz ZV90ICpvbGRfYmFzZSwgKm5ld19iYXNlOwogIAl1bnNpZ25lZCBsb25nIGZsYWdzOwogIAlpbnQg cmV0ID0gMDsKICAKLS0tIDIxOSwyMjkgLS0tLQogICAqIChpZS4gbW9kX3RpbWVyKCkgb2YgYW4g aW5hY3RpdmUgdGltZXIgcmV0dXJucyAwLCBtb2RfdGltZXIoKSBvZiBhbgogICAqIGFjdGl2ZSB0 aW1lciByZXR1cm5zIDEuKQogICAqLworICNpZm5kZWYgQ09ORklHX0hJR0hfUkVTX1RJTUVSUwog IGludCBtb2RfdGltZXIoc3RydWN0IHRpbWVyX2xpc3QgKnRpbWVyLCB1bnNpZ25lZCBsb25nIGV4 cGlyZXMpCiAgeworIAl0dmVjX2Jhc2VfdCAqbmV3X2Jhc2U7CisgCUlGX1NNUCggdHZlY19iYXNl X3QgKm9sZF9iYXNlOykKICAJdW5zaWduZWQgbG9uZyBmbGFnczsKICAJaW50IHJldCA9IDA7CiAg CioqKioqKioqKioqKioqKgoqKiogMjkwLDM0NCAqKioqCiAgI2VuZGlmCiAgCiAgCi0gc3RhdGlj IGludCBjYXNjYWRlKHR2ZWNfYmFzZV90ICpiYXNlLCB0dmVjX3QgKnR2KQotIHsKLSAJLyogY2Fz Y2FkZSBhbGwgdGhlIHRpbWVycyBmcm9tIHR2IHVwIG9uZSBsZXZlbCAqLwotIAlzdHJ1Y3QgbGlz dF9oZWFkICpoZWFkLCAqY3VyciwgKm5leHQ7Ci0gCi0gCWhlYWQgPSB0di0+dmVjICsgdHYtPmlu ZGV4OwotIAljdXJyID0gaGVhZC0+bmV4dDsKLSAJLyoKLSAJICogV2UgYXJlIHJlbW92aW5nIF9h bGxfIHRpbWVycyBmcm9tIHRoZSBsaXN0LCBzbyB3ZSBkb24ndCAgaGF2ZSB0bwotIAkgKiBkZXRh Y2ggdGhlbSBpbmRpdmlkdWFsbHksIGp1c3QgY2xlYXIgdGhlIGxpc3QgYWZ0ZXJ3YXJkcy4KLSAJ ICovCi0gCXdoaWxlIChjdXJyICE9IGhlYWQpIHsKLSAJCXN0cnVjdCB0aW1lcl9saXN0ICp0bXA7 Ci0gCi0gCQl0bXAgPSBsaXN0X2VudHJ5KGN1cnIsIHN0cnVjdCB0aW1lcl9saXN0LCBlbnRyeSk7 Ci0gCQlpZiAodG1wLT5iYXNlICE9IGJhc2UpCi0gCQkJQlVHKCk7Ci0gCQluZXh0ID0gY3Vyci0+ bmV4dDsKLSAJCWludGVybmFsX2FkZF90aW1lcihiYXNlLCB0bXApOwotIAkJY3VyciA9IG5leHQ7 Ci0gCX0KLSAJSU5JVF9MSVNUX0hFQUQoaGVhZCk7Ci0gCi0gCXJldHVybiB0di0+aW5kZXggPSAo dHYtPmluZGV4ICsgMSkgJiBUVk5fTUFTSzsKLSB9Ci0gCi0gLyoqKgotICAqIF9fcnVuX3RpbWVy cyAtIHJ1biBhbGwgZXhwaXJlZCB0aW1lcnMgKGlmIGFueSkgb24gdGhpcyBDUFUuCi0gICogQGJh c2U6IHRoZSB0aW1lciB2ZWN0b3IgdG8gYmUgcHJvY2Vzc2VkLgotICAqCi0gICogVGhpcyBmdW5j dGlvbiBjYXNjYWRlcyBhbGwgdmVjdG9ycyBhbmQgZXhlY3V0ZXMgYWxsIGV4cGlyZWQgdGltZXIK LSAgKiB2ZWN0b3JzLgogICAqLwotIHN0YXRpYyBpbmxpbmUgdm9pZCBfX3J1bl90aW1lcnModHZl Y19iYXNlX3QgKmJhc2UpCiAgewogIAlzcGluX2xvY2tfaXJxKCZiYXNlLT5sb2NrKTsKICAJd2hp bGUgKChsb25nKShqaWZmaWVzIC0gYmFzZS0+dGltZXJfamlmZmllcykgPj0gMCkgewogIAkJc3Ry dWN0IGxpc3RfaGVhZCAqaGVhZCwgKmN1cnI7Ci0gCiAgCQkvKgotIAkJICogQ2FzY2FkZSB0aW1l cnM6CiAgCQkgKi8KLSAJCWlmICghYmFzZS0+dHYxLmluZGV4ICYmCi0gCQkJKGNhc2NhZGUoYmFz ZSwgJmJhc2UtPnR2MikgPT0gMSkgJiYKLSAJCQkJKGNhc2NhZGUoYmFzZSwgJmJhc2UtPnR2Mykg PT0gMSkgJiYKLSAJCQkJCWNhc2NhZGUoYmFzZSwgJmJhc2UtPnR2NCkgPT0gMSkKLSAJCQljYXNj YWRlKGJhc2UsICZiYXNlLT50djUpOwogIHJlcGVhdDoKLSAJCWhlYWQgPSBiYXNlLT50djEudmVj ICsgYmFzZS0+dHYxLmluZGV4OwogIAkJY3VyciA9IGhlYWQtPm5leHQ7CiAgCQlpZiAoY3VyciAh PSBoZWFkKSB7CiAgCQkJdm9pZCAoKmZuKSh1bnNpZ25lZCBsb25nKTsKLS0tIDQzNyw0NzggLS0t LQogICNlbmRpZgogIAogIAorIC8qCisgICogcnVuX3RpbWVyX2xpc3QgaXMgQUxXQVlTIGNhbGxl ZCBmcm9tIHNvZnRpcnEgd2hpY2ggY2FsbHMgd2l0aCBpcnEgZW5hYmxlZC4KKyAgKiBXZSBtYXkg YXNzdW1lIHRoaXMgYW5kIG5vdCBzYXZlIHRoZSBmbGFncy4KICAgKi8KKyAgIAorICAgCisgc3Rh dGljIHZvaWQgX19ydW5fdGltZXJzKHR2ZWNfYmFzZV90ICpiYXNlKQogIHsKKyAJSUZfSElHSF9S RVMoIHVuc2lnbmVkIGxvbmcgamlmZmllc19mOworIAkJICAgICBsb25nIHN1Yl9qaWZmID0gLTE7 CisgCQkgICAgIGxvbmcgc3ViX2ppZmZpZV9mKTsKICAJc3Bpbl9sb2NrX2lycSgmYmFzZS0+bG9j ayk7CisgI2lmZGVmIENPTkZJR19ISUdIX1JFU19USU1FUlMKKyAJcmVhZF9sb2NrKCZ4dGltZV9s b2NrKTsKKyAJamlmZmllc19mID0gamlmZmllczsKKyAJc3ViX2ppZmZpZV9mID0gc3ViX2ppZmZp ZSgpICsgcXVpY2tfZ2V0X2NwdWN0cigpOworIAlyZWFkX3VubG9jaygmeHRpbWVfbG9jayk7Cisg CXdoaWxlICggdW5saWtlbHkoc3ViX2ppZmZpZV9mID49IGN5Y2xlc19wZXJfamlmZmllcykpewor IAkJc3ViX2ppZmZpZV9mIC09IGN5Y2xlc19wZXJfamlmZmllczsKKyAJCWppZmZpZXNfZisrOwor IAl9CisgCXdoaWxlICgobG9uZykoamlmZmllc19mIC0gYmFzZS0+dGltZXJfamlmZmllcykgPj0g MCkgeworICNlbHNlCiAgCXdoaWxlICgobG9uZykoamlmZmllcyAtIGJhc2UtPnRpbWVyX2ppZmZp ZXMpID49IDApIHsKKyAjZW5kaWYKKyAgCiAgCQlzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkLCAqY3Vy cjsKKyAJCWhlYWQgPSBiYXNlLT50diArIAorIAkJCShiYXNlLT50aW1lcl9qaWZmaWVzCSYgTkVX X1RWRUNfTUFTSyk7CiAgCQkvKgorIAkJICogTm90ZSB0aGF0IHdlIG5ldmVyIG1vdmUgImhlYWQi IGJ1dCBjb250aW51ZSB0bworIAkJICogcGljayB0aGUgZmlyc3QgZW50cnkgZnJvbSBpdC4gIFRo aXMgYWxsb3dzIG5ldworIAkJICogZW50cmllcyB0byBiZSBpbnNlcnRlZCB3aGlsZSB3ZSB1bmxv Y2sgZm9yIHRoZQorIAkJICogZnVuY3Rpb24gY2FsbCBiZWxvdy4KICAJCSAqLwogIHJlcGVhdDoK ICAJCWN1cnIgPSBoZWFkLT5uZXh0OwogIAkJaWYgKGN1cnIgIT0gaGVhZCkgewogIAkJCXZvaWQg KCpmbikodW5zaWduZWQgbG9uZyk7CioqKioqKioqKioqKioqKgoqKiogMzQ2LDM3MyAqKioqCiAg CQkJc3RydWN0IHRpbWVyX2xpc3QgKnRpbWVyOwogIAogIAkJCXRpbWVyID0gbGlzdF9lbnRyeShj dXJyLCBzdHJ1Y3QgdGltZXJfbGlzdCwgZW50cnkpOwotICAJCQlmbiA9IHRpbWVyLT5mdW5jdGlv bjsKLSAgCQkJZGF0YSA9IHRpbWVyLT5kYXRhOwotIAotIAkJCWxpc3RfZGVsKCZ0aW1lci0+ZW50 cnkpOwotIAkJCXRpbWVyLT5iYXNlID0gTlVMTDsKLSAjaWYgQ09ORklHX1NNUAotIAkJCWJhc2Ut PnJ1bm5pbmdfdGltZXIgPSB0aW1lcjsKICAjZW5kaWYKLSAJCQlzcGluX3VubG9ja19pcnEoJmJh c2UtPmxvY2spOwotIAkJCWlmICghZm4pCi0gCQkJCXByaW50aygiQmFkOiB0aW1lciAlcCBoYXMg TlVMTCBmbi4gKGRhdGE6ICUwOGx4KVxuIiwgdGltZXIsIGRhdGEpOwotIAkJCWVsc2UKICAJCQkJ Zm4oZGF0YSk7Ci0gCQkJc3Bpbl9sb2NrX2lycSgmYmFzZS0+bG9jayk7Ci0gCQkJZ290byByZXBl YXQ7CiAgCQl9CiAgCQkrK2Jhc2UtPnRpbWVyX2ppZmZpZXM7IAotIAkJYmFzZS0+dHYxLmluZGV4 ID0gKGJhc2UtPnR2MS5pbmRleCArIDEpICYgVFZSX01BU0s7CiAgCX0KLSAjaWYgQ09ORklHX1NN UAogIAliYXNlLT5ydW5uaW5nX3RpbWVyID0gTlVMTDsKLSAjZW5kaWYKICAJc3Bpbl91bmxvY2tf aXJxKCZiYXNlLT5sb2NrKTsKICB9CiAgCi0tLSA0ODAsNTQ3IC0tLS0KICAJCQlzdHJ1Y3QgdGlt ZXJfbGlzdCAqdGltZXI7CiAgCiAgCQkJdGltZXIgPSBsaXN0X2VudHJ5KGN1cnIsIHN0cnVjdCB0 aW1lcl9saXN0LCBlbnRyeSk7CisgI2lmZGVmIENPTkZJR19ISUdIX1JFU19USU1FUlMKKyAJCQkv KgorIAkJCSAqIFRoaXMgd291bGQgYmUgc2ltcGxlciBpZiB3ZSBuZXZlciBnb3QgYmVoaW5kCisg CQkJICogaS5lLiBpZiB0aW1lcl9qaWZmaWVzID09IGppZmZpZXMsIHdlIGNvdWxkCisgCQkJICog ZHJvcCBvbmUgb2YgdGhlIHRlc3RzLiAgU2luY2Ugd2UgbWF5IGdldCAKKyAJCQkgKiBiZWhpbmQs IChpbiBmYWN0IHdlIGRvbid0IHVwIGRhdGUgdW50aWwKKyAJCQkgKiB3ZSBhcmUgYmVoaW5kIHRv IGFsbG93IHN1Yl9qaWZmaWUgZW50cmllcykKKyAJCQkgKiB3ZSBuZWVkIGEgd2F5IHRvIG5lZ2F0 ZSB0aGUgc3ViX2ppZmZpZQorIAkJCSAqIHRlc3QgaW4gdGhhdCBjYXNlLi4uCisgCQkJICovCisg CQkJaWYgKHRpbWVfYmVmb3JlKHRpbWVyLT5leHBpcmVzLCBqaWZmaWVzX2YpfHwKKyAJCQkgICAg KCh0aW1lci0+ZXhwaXJlcyA9PSBqaWZmaWVzX2YpICYmCisgCQkJICAgICB0aW1lci0+c3ViX2V4 cGlyZXMgPD0gc3ViX2ppZmZpZV9mKSkKKyAjZWxzZQorIAkJCWlmICh0aW1lX2JlZm9yZV9lcSh0 aW1lci0+ZXhwaXJlcywgamlmZmllcykpCiAgI2VuZGlmCisgCQkJCXtmbiA9IHRpbWVyLT5mdW5j dGlvbjsKKyAJCQkJZGF0YT0gdGltZXItPmRhdGE7CisgCisgCQkJCWxpc3RfZGVsKCZ0aW1lci0+ ZW50cnkpOworIAkJCQl0aW1lci0+YmFzZSA9IE5VTEw7CisgCQkJCXRpbWVyLT5lbnRyeS5uZXh0 ID0gdGltZXItPmVudHJ5LnByZXYgPSBOVUxMOworIAkJCQliYXNlLT5ydW5uaW5nX3RpbWVyID0g dGltZXI7CisgCQkJCXNwaW5fdW5sb2NrX2lycSgmYmFzZS0+bG9jayk7CiAgCQkJCWZuKGRhdGEp OworIAkJCQlzcGluX2xvY2tfaXJxKCZiYXNlLT5sb2NrKTsKKyAJCQkJZ290byByZXBlYXQ7Cisg CQkJfQorICNpZmRlZiBDT05GSUdfSElHSF9SRVNfVElNRVJTCisgCQkJZWxzZXsKKyAJCQkJLyoK KyAJCQkJICogVGhlIG5ldyB0aW1lciBsaXN0IGlzIG5vdCBhbHdheXMgZW1wdGllZAorIAkJCQkg KiBoZXJlIGFzIGl0IGNvbnRhaW5zOgorIAkJCQkgKiBhLikgZW50cmllcyAobGlzdCBzaXplKV5O KmppZmZpZXMgb3V0IGFuZAorIAkJCQkgKiBiLikgZW50cmllcyB0aGF0IG1hdGNoIGluIGppZmZp ZXMsIGJ1dCBoYXZlCisgCQkJCSAqICAgICBzdWJfZXhwaXJlIHRpbWVzIGZ1cnRoZXIgb3V0IHRo YW4gbm93LgorIAkJCQkgKi8KKyAJCQkJIGlmICh0aW1lci0+ZXhwaXJlcyA9PSBqaWZmaWVzX2Yg KXsKKyAJCQkJCXN1Yl9qaWZmID0gdGltZXItPnN1Yl9leHBpcmVzOworIAkJCQl9CisgCQkJfQor ICNlbmRpZgogIAkJfQogIAkJKytiYXNlLT50aW1lcl9qaWZmaWVzOyAKICAJfQorIAkvKgorIAkg KiBJdCBpcyBmYXN0ZXIgdG8gYmFjayBvdXQgdGhlIGxhc3QgYnVtcCwgdGhhbiB0byBwcmV2ZW50 IGl0LgorIAkgKiBUaGlzIGFsbG93cyB6ZXJvIHRpbWUgaW5zZXJ0cyBhcyB3ZWxsIGFzIHN1Yl9q aWZmaWUgdmFsdWVzIGluCisgCSAqIHRoZSBjdXJyZW50IGppZmZpZS4JRGlkIG5vdCB3b3JrIGZv ciB0aGUgY2FzY2FkZSBhcyB0djEuaW5kZXgKKyAJICogYWxzbyBuZWVkcyBhZGp1c3RpbmcuIAor IAkgKi8KKyAJLS1iYXNlLT50aW1lcl9qaWZmaWVzOwogIAliYXNlLT5ydW5uaW5nX3RpbWVyID0g TlVMTDsKKyAKKyAJSUZfSElHSF9SRVMoaWYgKHNjaGVkdWxlX25leHRfaW50KCBqaWZmaWVzX2Ys IHN1Yl9qaWZmLCAwKSl7CisgCQkvKgorIAkJICogSWYgc2NoZWR1bGVfbmV4dF9pbnQgc2F5cyB0 aGUgdGltZSBoYXMgcGFzc2VkCisgCQkgKiBidW1wIHRoZSB0YXNrbGV0IGxvY2sgc28gd2UgZ28g cm91bmQgYWdhaW4KKyAJCSAqLworIAkJcnVuX2xvY2FsX3RpbWVycygpOworIAkJfSk7CisgCiAg CXNwaW5fdW5sb2NrX2lycSgmYmFzZS0+bG9jayk7CiAgfQogIAo= --=-Xu7/1NHwAo/kx6nq7JMI-- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/