Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750790AbVKIOHG (ORCPT ); Wed, 9 Nov 2005 09:07:06 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1750785AbVKIOHF (ORCPT ); Wed, 9 Nov 2005 09:07:05 -0500 Received: from public.id2-vpn.continvity.gns.novell.com ([195.33.99.129]:59695 "EHLO emea1-mh.id2.novell.com") by vger.kernel.org with ESMTP id S1750790AbVKIOHC (ORCPT ); Wed, 9 Nov 2005 09:07:02 -0500 Message-Id: <437210D1.76F0.0078.0@novell.com> X-Mailer: Novell GroupWise Internet Agent 7.0 Date: Wed, 09 Nov 2005 15:08:01 +0100 From: "Jan Beulich" To: "Andreas Kleen" Cc: , Subject: [PATCH 13/39] NLKD/x86-64 - time adjustment References: <43720DAE.76F0.0078.0@novell.com> <43720E2E.76F0.0078.0@novell.com> <43720E72.76F0.0078.0@novell.com> <43720EAF.76F0.0078.0@novell.com> <43720F5E.76F0.0078.0@novell.com> <43720F95.76F0.0078.0@novell.com> <43720FBA.76F0.0078.0@novell.com> <43720FF6.76F0.0078.0@novell.com> <43721024.76F0.0078.0@novell.com> <4372105B.76F0.0078.0@novell.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=__Part8AA8B6D1.1__=" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 21250 Lines: 294 This is a MIME message. If you are reading this text, you may want to consider changing to a mail reader or gateway that understands how to properly handle MIME multipart messages. --=__Part8AA8B6D1.1__= Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline Since x86-64 time handling is not overflow-safe, these are the adjustments needed for allowing debuggers to update time after having halted the system for perhaps extended periods of time. Note that this depends on the HPET definitions adjustments, which aren't in 2.6.14, but have supposedly been merged already into 2.6.15. From: Jan Beulich (actual patch attached) --=__Part8AA8B6D1.1__= Content-Type: application/octet-stream; name="linux-2.6.14-nlkd-time-x86_64.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="linux-2.6.14-nlkd-time-x86_64.patch" U2luY2UgeDg2LTY0IHRpbWUgaGFuZGxpbmcgaXMgbm90IG92ZXJmbG93LXNhZmUsIHRoZXNlIGFy ZSB0aGUKYWRqdXN0bWVudHMgbmVlZGVkIGZvciBhbGxvd2luZyBkZWJ1Z2dlcnMgdG8gdXBkYXRl IHRpbWUgYWZ0ZXIKaGF2aW5nIGhhbHRlZCB0aGUgc3lzdGVtIGZvciBwZXJoYXBzIGV4dGVuZGVk IHBlcmlvZHMgb2YgdGltZS4KCk5vdGUgdGhhdCB0aGlzIGRlcGVuZHMgb24gdGhlIEhQRVQgZGVm aW5pdGlvbnMgYWRqdXN0bWVudHMsIHdoaWNoCmFyZW4ndCBpbiAyLjYuMTQsIGJ1dCBoYXZlIHN1 cHBvc2VkbHkgYmVlbiBtZXJnZWQgYWxyZWFkeSBpbnRvIDIuNi4xNS4KCkZyb206IEphbiBCZXVs aWNoIDxqYmV1bGljaEBub3ZlbGwuY29tPgoKSW5kZXg6IDIuNi4xNC1ubGtkL2FyY2gveDg2XzY0 L2tlcm5lbC9wbXRpbWVyLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gMi42LjE0LW5sa2Qub3JpZy9hcmNoL3g4 Nl82NC9rZXJuZWwvcG10aW1lci5jCTIwMDUtMTEtMDkgMTA6NDA6MTcuMDAwMDAwMDAwICswMTAw CisrKyAyLjYuMTQtbmxrZC9hcmNoL3g4Nl82NC9rZXJuZWwvcG10aW1lci5jCTIwMDUtMTEtMDQg MTY6MTk6MzMuMDAwMDAwMDAwICswMTAwCkBAIC01MiwyMiArNTIsNTMgQEAgaW50IHBtdGltZXJf bWFya19vZmZzZXQodm9pZCkKIHsKIAlzdGF0aWMgaW50IGZpcnN0X3J1biA9IDE7CiAJdW5zaWdu ZWQgbG9uZyB0c2M7Ci0JdTMyIGxvc3Q7Ci0KKwl1MzIgbG9zdCwgZGVsdGE7CiAJdTMyIHRpY2sg PSBpbmwocG10bXJfaW9wb3J0KTsKLQl1MzIgZGVsdGE7CisjaWZkZWYgZGVidWdnZXJfamlmZmll cworIyBkZWZpbmUgZGVsdGE2NCBkZWx0YQorI2Vsc2UKKwl1NjQgZGVsdGE2NDsKKyNlbmRpZgor CisJcmR0c2NsbCh0c2MpOwogCi0JZGVsdGEgPSBjeWMydXMoKHRpY2sgLSBsYXN0X3BtdG1yX3Rp Y2spICYgQUNQSV9QTV9NQVNLKTsKKwlpZiAobGlrZWx5KCFkZWJ1Z2dlcl9qaWZmaWVzKSkgewor CQlkZWx0YSA9IGN5YzJ1cygodGljayAtIGxhc3RfcG10bXJfdGljaykgJiBBQ1BJX1BNX01BU0sp OworI2lmbmRlZiBkZWx0YTY0CisJCWRlbHRhNjQgPSBkZWx0YTsKKwl9CisJZWxzZSB7CisjIGlm ZGVmIENPTkZJR19TTVAKKwkJLyogV2hlbiB0aGUgVFNDIGdldHMgcmVzZXQgZHVyaW5nIEFQIHN0 YXJ0dXAsIHRoZSBjb2RlIGJlbG93IHdvdWxkCisJCSAgIGluY29ycmVjdGx5IHRoaW5rIHdlIGxv c3QgYSBodWdlIGFtb3VudCBvZiB0aWNrcy4gKi8KKwkJaWYgKHVubGlrZWx5KChsb25nIGxvbmcp KHRzYyAtIHZ4dGltZS5sYXN0X3RzYykgPCAwKSkKKwkJCWRlbHRhNjQgPSB0c2M7CisJCWVsc2UK KyMgZW5kaWYKKwkJCWRlbHRhNjQgPSB0c2MgLSB2eHRpbWUubGFzdF90c2M7CisJCV9fYXNtX18o Im11bHEgJTFcblx0IgorCQkgICAgICAgICJzaHJkcSAkMzIsICUlcmR4LCAlMCIKKwkJICAgICAg ICA6ICIrYSIgKGRlbHRhNjQpCisJCSAgICAgICAgOiAicm0iICh2eHRpbWUudHNjX3F1b3QpCisJ CSAgICAgICAgOiAicmR4Iik7CisJCWRlbHRhID0gKHUzMilkZWx0YTY0ID8gKHUzMilkZWx0YTY0 IC0gMSA6IChvZmZzZXRfZGVsYXkgPSAwKTsKKyNlbmRpZgorCX0KIAogCWxhc3RfcG10bXJfdGlj ayA9IHRpY2s7CiAJbW9ub3RvbmljX2Jhc2UgKz0gZGVsdGEgKiBOU0VDX1BFUl9VU0VDOwogCi0J ZGVsdGEgKz0gb2Zmc2V0X2RlbGF5OwotCi0JbG9zdCA9IGRlbHRhIC8gKFVTRUNfUEVSX1NFQyAv IEhaKTsKLQlvZmZzZXRfZGVsYXkgPSBkZWx0YSAlIChVU0VDX1BFUl9TRUMgLyBIWik7CisJaWYg KGxpa2VseShkZWx0YSA9PSBkZWx0YTY0KSkgeworCQlkZWx0YSArPSBvZmZzZXRfZGVsYXk7CisJ CWxvc3QgPSBkZWx0YSAvIChVU0VDX1BFUl9TRUMgLyBIWik7CisJCW9mZnNldF9kZWxheSA9IGRl bHRhICUgKFVTRUNfUEVSX1NFQyAvIEhaKTsKKwl9CisJZWxzZSB7CisJCWxvc3QgPSAodTMyKShk ZWx0YTY0IC8gKFVTRUNfUEVSX1NFQyAvIEhaKSk7CisJCW9mZnNldF9kZWxheSA9IDA7CisJfQor I3VuZGVmIGRlbHRhNjQKIAotCXJkdHNjbGwodHNjKTsKIAl2eHRpbWUubGFzdF90c2MgPSB0c2Mg LSBvZmZzZXRfZGVsYXkgKiBjcHVfa2h6OwogCiAJLyogZG9uJ3QgY2FsY3VsYXRlIGRlbGF5IGZv ciBmaXJzdCBydW4sCkluZGV4OiAyLjYuMTQtbmxrZC9hcmNoL3g4Nl82NC9rZXJuZWwvdGltZS5j Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIDIuNi4xNC1ubGtkLm9yaWcvYXJjaC94ODZfNjQva2VybmVsL3RpbWUu YwkyMDA1LTExLTA5IDEwOjQwOjE3LjAwMDAwMDAwMCArMDEwMAorKysgMi42LjE0LW5sa2QvYXJj aC94ODZfNjQva2VybmVsL3RpbWUuYwkyMDA1LTExLTA0IDE2OjE5OjMzLjAwMDAwMDAwMCArMDEw MApAQCAtNTgsNiArNTgsMTIgQEAgREVGSU5FX1NQSU5MT0NLKGk4MjUzX2xvY2spOwogc3RhdGlj IGludCBub2hwZXQgX19pbml0ZGF0YSA9IDA7CiBzdGF0aWMgaW50IG5vdHNjIF9faW5pdGRhdGEg PSAwOwogCisjaWZuZGVmIENPTkZJR19ERUJVR19LRVJORUwKKyMgZGVmaW5lIGhwZXQ2NCAwCisj ZWxzZQorc3RhdGljIGludCBocGV0NjQgPSAtMTsKKyNlbmRpZgorCiAjdW5kZWYgSFBFVF9IQUNL X0VOQUJMRV9EQU5HRVJPVVMKIAogdW5zaWduZWQgaW50IGNwdV9raHo7CQkJCQkvKiBUU0MgY2xv Y2tzIC8gdXNlYywgbm90IHVzZWQgaGVyZSAqLwpAQCAtNjUsNyArNzEsNyBAQCBzdGF0aWMgdW5z aWduZWQgbG9uZyBocGV0X3BlcmlvZDsJCQkvKiBmCiB1bnNpZ25lZCBsb25nIGhwZXRfdGljazsJ CQkJLyogSFBFVCBjbG9ja3MgLyBpbnRlcnJ1cHQgKi8KIHN0YXRpYyBpbnQgaHBldF91c2VfdGlt ZXI7CiB1bnNpZ25lZCBsb25nIHZ4dGltZV9oeiA9IFBJVF9USUNLX1JBVEU7Ci1pbnQgcmVwb3J0 X2xvc3RfdGlja3M7CQkJCS8qIGNvbW1hbmQgbGluZSBvcHRpb24gKi8KK3N0YXRpYyBpbnQgcmVw b3J0X2xvc3RfdGlja3M7CQkJCS8qIGNvbW1hbmQgbGluZSBvcHRpb24gKi8KIHVuc2lnbmVkIGxv bmcgbG9uZyBtb25vdG9uaWNfYmFzZTsKIAogc3RydWN0IHZ4dGltZV9kYXRhIF9fdnh0aW1lIF9f c2VjdGlvbl92eHRpbWU7CS8qIGZvciB2c3lzY2FsbHMgKi8KQEAgLTc1LDYgKzgxLDE5IEBAIHVu c2lnbmVkIGxvbmcgX193YWxsX2ppZmZpZXMgX19zZWN0aW9uX3cKIHN0cnVjdCB0aW1lc3BlYyBf X3h0aW1lIF9fc2VjdGlvbl94dGltZTsKIHN0cnVjdCB0aW1lem9uZSBfX3N5c190eiBfX3NlY3Rp b25fc3lzX3R6OwogCitzdGF0aWMgdW5zaWduZWQgaW50IGN5YzJuc19zY2FsZTsKKyNkZWZpbmUg Q1lDMk5TX1NDQUxFX0ZBQ1RPUiAxMCAvKiAyXjEwLCBjYXJlZnVsbHkgY2hvc2VuICovCisKK3N0 YXRpYyBpbmxpbmUgdm9pZCBzZXRfY3ljMm5zX3NjYWxlKHVuc2lnbmVkIGxvbmcgY3B1X21oeikK K3sKKwljeWMybnNfc2NhbGUgPSAoMTAwMCA8PCBDWUMyTlNfU0NBTEVfRkFDVE9SKS9jcHVfbWh6 OworfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGxvbmcgbG9uZyBjeWNsZXNfMl9ucyh1bnNp Z25lZCBsb25nIGxvbmcgY3ljKQoreworCXJldHVybiAoY3ljICogY3ljMm5zX3NjYWxlKSA+PiBD WUMyTlNfU0NBTEVfRkFDVE9SOworfQorCiBzdGF0aWMgaW5saW5lIHZvaWQgcmR0c2NsbF9zeW5j KHVuc2lnbmVkIGxvbmcgKnRzYykKIHsKICNpZmRlZiBDT05GSUdfU01QCkBAIC0zNjUsNyArMzg0 LDE0IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCB0aW1lcl9pbnRlcnJ1cHQoaW50IGkKIHsKIAlzdGF0 aWMgdW5zaWduZWQgbG9uZyBydGNfdXBkYXRlID0gMDsKIAl1bnNpZ25lZCBsb25nIHRzYzsKLQlp bnQgZGVsYXksIG9mZnNldCA9IDAsIGxvc3QgPSAwOworCXVuc2lnbmVkIGludCBkZWxheTsKKyNp ZmRlZiBocGV0NjQKKwlpbnQKKyNlbHNlCisJbG9uZworIyBkZWZpbmUgbGFzdCBsYXN0NjQKKyNl bmRpZgorCQlvZmZzZXQgPSAwLCBsb3N0ID0gMDsKIAogLyoKICAqIEhlcmUgd2UgYXJlIGluIHRo ZSB0aW1lciBpcnEgaGFuZGxlci4gV2UgaGF2ZSBpcnFzIGxvY2FsbHkgZGlzYWJsZWQgKHNvIHdl CkBAIC0zODQsOCArNDEwLDE0IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCB0aW1lcl9pbnRlcnJ1cHQo aW50IGkKIAkJICogd2UgY2FuIG1vcmUgYWNjdXJhdGVseSBrbm93IHRoZSBjb3VudGVyIHZhbHVl CiAJCSAqIHdoZW4gdGhlIHRpbWVyIGludGVycnVwdCBvY2N1cmVkLgogCQkgKi8KKwkJdW5zaWdu ZWQgaW50IGhpMSA9IGhwZXQ2NCA+IDAgPyBocGV0X3JlYWRsKEhQRVRfQ09VTlRFUis0KSA6IDA7 CisKIAkJb2Zmc2V0ID0gaHBldF9yZWFkbChIUEVUX1QwX0NNUCkgLSBocGV0X3RpY2s7CiAJCWRl bGF5ID0gaHBldF9yZWFkbChIUEVUX0NPVU5URVIpIC0gb2Zmc2V0OworCQlpZiAoaHBldDY0ID4g MCkKKwkJCW9mZnNldCArPSAobG9uZykob2Zmc2V0ID49IDAgPyBoaTEgOiBocGV0X3JlYWRsKEhQ RVRfQ09VTlRFUis0KSkgPDwgMzI7CisJCWVsc2UKKwkJCW9mZnNldCA9ICh1bnNpZ25lZCBpbnQp b2Zmc2V0OwogCX0gZWxzZSB7CiAJCXNwaW5fbG9jaygmaTgyNTNfbG9jayk7CiAJCW91dGJfcCgw eDAwLCAweDQzKTsKQEAgLTM5OCwyMSArNDMwLDY2IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCB0aW1l cl9pbnRlcnJ1cHQoaW50IGkKIAlyZHRzY2xsX3N5bmMoJnRzYyk7CiAKIAlpZiAodnh0aW1lLm1v ZGUgPT0gVlhUSU1FX0hQRVQpIHsKLQkJaWYgKG9mZnNldCAtIHZ4dGltZS5sYXN0ID4gaHBldF90 aWNrKSB7Ci0JCQlsb3N0ID0gKG9mZnNldCAtIHZ4dGltZS5sYXN0KSAvIGhwZXRfdGljayAtIDE7 CisJCWlmIChocGV0NjQgPiAwKSB7CisJCQl1bnNpZ25lZCBsb25nIGRlbHRhID0gb2Zmc2V0IC0g dnh0aW1lLmxhc3Q7CisKKwkJCWlmIChkZWx0YSA+IGhwZXRfdGljaykKKwkJCQlsb3N0ID0gZGVs dGEgLyBocGV0X3RpY2sgLSAxOworCQkJbW9ub3RvbmljX2Jhc2UgKz0gZGVsdGEgKiAoTlNFQ19Q RVJfU0VDL0haKSAvIGhwZXRfdGljazsKIAkJfQorCQllbHNlIGlmIChsaWtlbHkoIWRlYnVnZ2Vy X2ppZmZpZXMpKSB7CisJCQl1bnNpZ25lZCBpbnQgZGVsdGEgPSBvZmZzZXQgLSB2eHRpbWUubGFz dDsKKworCQkJaWYgKGRlbHRhID4gaHBldF90aWNrKQorCQkJCWxvc3QgPSBkZWx0YSAvIGhwZXRf dGljayAtIDE7CisJCQltb25vdG9uaWNfYmFzZSArPSBkZWx0YSAqIChOU0VDX1BFUl9TRUMvSFop IC8gaHBldF90aWNrOworCQl9CisJCWVsc2UgeworCQkJdW5zaWduZWQgbG9uZyBkZWx0YTsKKwor I2lmZGVmIENPTkZJR19TTVAKKwkJCS8qIFdoZW4gdGhlIFRTQyBnZXRzIHJlc2V0IGR1cmluZyBB UCBzdGFydHVwLCB0aGUgY29kZSBiZWxvdyB3b3VsZAorCQkJICAgaW5jb3JyZWN0bHkgdGhpbmsg d2UgbG9zdCBhIGh1Z2UgYW1vdW50IG9mIHRpY2tzLiAqLworCQkJaWYodW5saWtlbHkoKGxvbmcp KHRzYyAtIHZ4dGltZS5sYXN0X3RzYykgPCAwKSkKKwkJCQlkZWx0YSA9IHRzYzsKKwkJCWVsc2UK KyNlbmRpZgorCQkJCWRlbHRhID0gdHNjIC0gdnh0aW1lLmxhc3RfdHNjOworCQkJZGVsdGEgPSBj eWNsZXNfMl9ucyhkZWx0YSk7CiAKLQkJbW9ub3RvbmljX2Jhc2UgKz0gCi0JCQkob2Zmc2V0IC0g dnh0aW1lLmxhc3QpKihOU0VDX1BFUl9TRUMvSFopIC8gaHBldF90aWNrOworCQkJaWYgKGRlbHRh ID4gTlNFQ19QRVJfU0VDL0haKQorCQkJCWxvc3QgPSBkZWx0YSAvIChOU0VDX1BFUl9TRUMvSFop IC0gMTsKKwkJCW1vbm90b25pY19iYXNlICs9IGRlbHRhOworCQl9CiAKIAkJdnh0aW1lLmxhc3Qg PSBvZmZzZXQ7CisjaWZuZGVmIGRlYnVnZ2VyX2ppZmZpZXMKKwkJdnh0aW1lLmxhc3RfdHNjID0g dHNjOworI2VuZGlmCiAjaWZkZWYgQ09ORklHX1g4Nl9QTV9USU1FUgogCX0gZWxzZSBpZiAodnh0 aW1lLm1vZGUgPT0gVlhUSU1FX1BNVE1SKSB7CiAJCWxvc3QgPSBwbXRpbWVyX21hcmtfb2Zmc2V0 KCk7CiAjZW5kaWYKIAl9IGVsc2UgewotCQlvZmZzZXQgPSAoKCh0c2MgLSB2eHRpbWUubGFzdF90 c2MpICoKLQkJCSAgIHZ4dGltZS50c2NfcXVvdCkgPj4gMzIpIC0gKFVTRUNfUEVSX1NFQyAvIEha KTsKKwkJbG9uZyBkZWx0YTsKKworCQlpZiAobGlrZWx5KCFkZWJ1Z2dlcl9qaWZmaWVzKSkKKwkJ CWRlbHRhID0gKCh0c2MgLSB2eHRpbWUubGFzdF90c2MpICogdnh0aW1lLnRzY19xdW90KSA+PiAz MjsKKwkJZWxzZSB7CisJCQlkZWx0YSA9IHRzYyAtIHZ4dGltZS5sYXN0X3RzYzsKKyNpZmRlZiBD T05GSUdfU01QCisJCQkvKiBXaGVuIHRoZSBUU0MgZ2V0cyByZXNldCBkdXJpbmcgQVAgc3RhcnR1 cCwgdGhlIGNvZGUgYmVsb3cgd291bGQKKwkJCSAgIGluY29ycmVjdGx5IHRoaW5rIHdlIGxvc3Qg YSBodWdlIGFtb3VudCBvZiB0aWNrcy4gKi8KKwkJCWlmIChkZWx0YSA8IDApCisJCQkJZGVsdGEg PSB0c2M7CisjZW5kaWYKKwkJCV9fYXNtX18oIm11bHEgJTFcblx0IgorCQkJICAgICAgICAic2hy ZHEgJDMyLCAlJXJkeCwgJTAiCisJCQkgICAgICAgIDogIithIiAoZGVsdGEpCisJCQkgICAgICAg IDogInJtIiAodnh0aW1lLnRzY19xdW90KQorCQkJICAgICAgICA6ICJyZHgiKTsKKwkJfQorCQlv ZmZzZXQgPSBkZWx0YSAtIChVU0VDX1BFUl9TRUMgLyBIWik7CiAKIAkJaWYgKG9mZnNldCA8IDAp CiAJCQlvZmZzZXQgPSAwOwpAQCAtNDI2LDE2ICs1MDMsMzEgQEAgc3RhdGljIGlycXJldHVybl90 IHRpbWVyX2ludGVycnVwdChpbnQgaQogCiAJCXZ4dGltZS5sYXN0X3RzYyA9IHRzYyAtIHZ4dGlt ZS5xdW90ICogZGVsYXkgLyB2eHRpbWUudHNjX3F1b3Q7CiAKLQkJaWYgKCgoKHRzYyAtIHZ4dGlt ZS5sYXN0X3RzYykgKgotCQkgICAgICB2eHRpbWUudHNjX3F1b3QpID4+IDMyKSA8IG9mZnNldCkK LQkJCXZ4dGltZS5sYXN0X3RzYyA9IHRzYyAtCi0JCQkJKCgobG9uZykgb2Zmc2V0IDw8IDMyKSAv IHZ4dGltZS50c2NfcXVvdCkgLSAxOworCQlpZiAoZGVsdGEgPCBvZmZzZXQpIHsKKwkJCWlmIChs aWtlbHkoIWRlYnVnZ2VyX2ppZmZpZXMpKQorCQkJCXZ4dGltZS5sYXN0X3RzYyA9IHRzYyAtCisJ CQkJCSgoKGxvbmcpIG9mZnNldCA8PCAzMikgLyB2eHRpbWUudHNjX3F1b3QpIC0gMTsKKwkJCWVs c2UgeworCQkJCXVuc2lnbmVkIGxvbmcgdGVtcDsKKworCQkJCS8qIFRoaXMgZGl2aXNpb24gY2Fu bm90IG92ZXJmbG93IGJlY2F1c2UgdGhlIGRpdmlkZW5kIHdhcyB0aGUKKwkJCQkgICByZXN1bHQg b2YgYSBtdWx0aXBsaWNhdGlvbiB3aXRoIHRoZSBkaXZpc29yLiAqLworCQkJCV9fYXNtX18oImRp dnEgJTMiCisJCQkJCTogIj1hIiAoZGVsdGEpLAorCQkJCQkgICI9ZCIgKHRlbXApCisJCQkJCTog IkEiICgoX191aW50MTI4X3QpKHVuc2lnbmVkIGxvbmcpb2Zmc2V0IDw8IDMyKSwKKwkJCQkJICAi cm0iICh2eHRpbWUudHNjX3F1b3QpKTsKKwkJCQl2eHRpbWUubGFzdF90c2MgPSB0c2MgLSBkZWx0 YSAtIDE7CisJCQl9CisJCX0KIAl9CiAKIAlpZiAobG9zdCA+IDApIHsKLQkJaGFuZGxlX2xvc3Rf dGlja3MobG9zdCwgcmVncyk7CisJCWlmICghZGVidWdnZXJfamlmZmllcykKKwkJCWhhbmRsZV9s b3N0X3RpY2tzKGxvc3QsIHJlZ3MpOwogCQlqaWZmaWVzICs9IGxvc3Q7CiAJfQorI3VuZGVmIGxh c3QKIAogLyoKICAqIERvIHRoZSB0aW1lciBzdHVmZi4KQEAgLTQ3OCwxOSArNTcwLDYgQEAgc3Rh dGljIGlycXJldHVybl90IHRpbWVyX2ludGVycnVwdChpbnQgaQogCXJldHVybiBJUlFfSEFORExF RDsKIH0KIAotc3RhdGljIHVuc2lnbmVkIGludCBjeWMybnNfc2NhbGU7Ci0jZGVmaW5lIENZQzJO U19TQ0FMRV9GQUNUT1IgMTAgLyogMl4xMCwgY2FyZWZ1bGx5IGNob3NlbiAqLwotCi1zdGF0aWMg aW5saW5lIHZvaWQgc2V0X2N5YzJuc19zY2FsZSh1bnNpZ25lZCBsb25nIGNwdV9taHopCi17Ci0J Y3ljMm5zX3NjYWxlID0gKDEwMDAgPDwgQ1lDMk5TX1NDQUxFX0ZBQ1RPUikvY3B1X21oejsKLX0K LQotc3RhdGljIGlubGluZSB1bnNpZ25lZCBsb25nIGxvbmcgY3ljbGVzXzJfbnModW5zaWduZWQg bG9uZyBsb25nIGN5YykKLXsKLQlyZXR1cm4gKGN5YyAqIGN5YzJuc19zY2FsZSkgPj4gQ1lDMk5T X1NDQUxFX0ZBQ1RPUjsKLX0KLQogdW5zaWduZWQgbG9uZyBsb25nIHNjaGVkX2Nsb2NrKHZvaWQp CiB7CiAJdW5zaWduZWQgbG9uZyBhID0gMDsKQEAgLTc5MSw3ICs4NzAsNyBAQCBzdGF0aWMgX19p bml0IGludCBsYXRlX2hwZXRfaW5pdCh2b2lkKQogZnNfaW5pdGNhbGwobGF0ZV9ocGV0X2luaXQp OwogI2VuZGlmCiAKLXN0YXRpYyBpbnQgaHBldF90aW1lcl9zdG9wX3NldF9nbyh1bnNpZ25lZCBs b25nIHRpY2spCitzdGF0aWMgaW50IGhwZXRfdGltZXJfc3RvcF9zZXRfZ28odW5zaWduZWQgbG9u ZyB0aWNrLCB1bnNpZ25lZCBuKQogewogCXVuc2lnbmVkIGludCBjZmc7CiAKQEAgLTgwMiw4ICs4 ODEsNDcgQEAgc3RhdGljIGludCBocGV0X3RpbWVyX3N0b3Bfc2V0X2dvKHVuc2lnbgogCWNmZyA9 IGhwZXRfcmVhZGwoSFBFVF9DRkcpOwogCWNmZyAmPSB+KEhQRVRfQ0ZHX0VOQUJMRSB8IEhQRVRf Q0ZHX0xFR0FDWSk7CiAJaHBldF93cml0ZWwoY2ZnLCBIUEVUX0NGRyk7Ci0JaHBldF93cml0ZWwo MCwgSFBFVF9DT1VOVEVSKTsKLQlocGV0X3dyaXRlbCgwLCBIUEVUX0NPVU5URVIgKyA0KTsKKwor I2lmbmRlZiBocGV0NjQKKwlpZiAoaHBldDY0ICYmIG4gPiAwKSB7CisvKgorICogVW5mb3J0dW5h dGVseSBhdCBsZWFzdCB0aGUgSUNINiBIUEVUIHJ1bnMgaXRzIG1haW4gY291bnRlciBpbiAzMi1i aXQgbW9kZQorICogd2hlbiB0aW1lciAwIGlzIG5vdCBydW4gaW4gNjQtYml0IG1vZGUuIFRodXMg d2UgbmVlZCB0byBjaGVjayBoZXJlIHdoZXRoZXIKKyAqIHRoZSBtYWluIGNvdW50ZXIgcmVtYWlu cyBpbiA2NC1iaXQgbW9kZSB3aGVuIGFsbCA2NC1iaXQgY2FwYWJsZSBjb3VudGVycworICogaGF2 ZSBiZWVuIHNldCB0byAzMi1iaXQgbW9kZS4gQW4gYWx0ZXJuYXRpdmUgd291bGQgYmUgdG8gcnVu IHRpbWVyIDAgaW4KKyAqIDY0LWJpdCBtb2RlIHdoaWxlIHJlYWRpbmcgb25seSBpdHMgbG93IDMy IGJpdHMsIGJ1dCB0aGlzIHJlcXVpcmVzIHRoYXQKKyAqIHRoZXJlIGJlIG5vIDMyLWJpdCB3cml0 ZXJzIG9mIHRoZSBjb21wYXJhdG9yIG9yIGluY3JlbWVudCByZWdpc3RlcnMsIHdoaWNoCisgKiAo Z2l2ZW4gdGhlIGdsb2JhbCB2aXNpYmlsaXR5IG9mIGhwZXRfe3JlYWQsd3JpdGV9e2wscX0pIGNh bm5vdCBiZQorICogZ3VhcmFudGVlZC4KKyAqLworCQl1bnNpZ25lZCBpOworCisJCS8qIERpc2Fi bGUgY291bnRlcnMgYW5kIHNldCB0aGVtIHRvIDMyLWJpdCBtb2RlLiAqLworCQlmb3IgKGkgPSAw OyBpIDw9IG47ICsraSkKKwkJCWhwZXRfd3JpdGVsKEhQRVRfVG5fQ0ZHKGkpLCBIUEVUX1ROXzMy QklUKTsKKworCQkvKiBTZXQgbWFpbiBjb3VudGVyIHNvIGl0IHdpbGwgaW1tZWRpYXRlbHkgb3Zl cmZsb3cgYW5kIGVuYWJsZSBpdCAqLworCQlocGV0X3dyaXRlcSgweGZmZmZmZmZmLCBIUEVUX0NP VU5URVIpOworCQlocGV0X3dyaXRlbChjZmcgfCBIUEVUX0NGR19FTkFCTEUsIEhQRVRfQ0ZHKTsK KworCQkvKiBXYWl0IGZvciBpdCB0byBvdmVyZmxvdyAzMiBiaXRzLiAqLworCQl3aGlsZSAoISho cGV0X3JlYWRsKEhQRVRfQ09VTlRFUikgKyAxKSkKKwkJCTsKKworCQkvKiBEaXNhYmxlIG1haW4g Y291bnRlciBhZ2Fpbi4gKi8KKwkJaHBldF93cml0ZWwoY2ZnLCBIUEVUX0NGRyk7CisKKwkJLyog Q2hlY2sgd2hldGhlciB0aGUgaGlnaCBwYXJ0IGNoYW5nZWQuICovCisJCWlmICghaHBldF9yZWFk bChIUEVUX0NPVU5URVIgKyA0KSkKKwkJCWhwZXQ2NCA9IDA7CisKKwkJLyogUGVyaGFwcyB0aGlz IHNob3VsZCBnZW5lcmFsbHkgYmUgZG9uZT8gKi8KKwkJZm9yIChpID0gMDsgaSA8PSBuOyArK2kp CisJCQlocGV0X3dyaXRlbChIUEVUX1RuX0NGRyhpKSwgMCk7CisJfQorI2VuZGlmCisKKwlocGV0 X3dyaXRlcSgwLCBIUEVUX0NPVU5URVIpOwogCiAvKgogICogU2V0IHVwIHRpbWVyIDAsIGFzIHBl cmlvZGljIHdpdGggZmlyc3QgaW50ZXJydXB0IHRvIGhhcHBlbiBhdCBocGV0X3RpY2ssCkBAIC04 MTIsOCArOTMwLDggQEAgc3RhdGljIGludCBocGV0X3RpbWVyX3N0b3Bfc2V0X2dvKHVuc2lnbgog CWlmIChocGV0X3VzZV90aW1lcikgewogCQlocGV0X3dyaXRlbChIUEVUX1ROX0VOQUJMRSB8IEhQ RVRfVE5fUEVSSU9ESUMgfCBIUEVUX1ROX1NFVFZBTCB8CiAJCSAgICBIUEVUX1ROXzMyQklULCBI UEVUX1QwX0NGRyk7Ci0JCWhwZXRfd3JpdGVsKGhwZXRfdGljaywgSFBFVF9UMF9DTVApOwotCQlo cGV0X3dyaXRlbChocGV0X3RpY2ssIEhQRVRfVDBfQ01QKTsgLyogQUs6IHdoeSB0d2ljZT8gKi8K KwkJaHBldF93cml0ZXEoaHBldF90aWNrLCBIUEVUX1QwX0NNUCk7IC8qIHNldCBjb21wYXJhdG9y ICovCisJCWhwZXRfd3JpdGVxKGhwZXRfdGljaywgSFBFVF9UMF9DTVApOyAvKiBzZXQgaW5jcmVt ZW50ICovCiAJCWNmZyB8PSBIUEVUX0NGR19MRUdBQ1k7CiAJfQogLyoKQEAgLTg0MSw3ICs5NTks OSBAQCBzdGF0aWMgaW50IGhwZXRfaW5pdCh2b2lkKQogCiAJaWQgPSBocGV0X3JlYWRsKEhQRVRf SUQpOwogCi0JaWYgKCEoaWQgJiBIUEVUX0lEX1ZFTkRPUikgfHwgIShpZCAmIEhQRVRfSURfTlVN QkVSKSkKKwlpZiAoIShpZCArIDEpCisJICAgIHx8ICEoaWQgJiBIUEVUX0lEX1ZFTkRPUikKKwkg ICAgfHwgIShpZCAmIEhQRVRfSURfTlVNQkVSKSkKIAkJcmV0dXJuIC0xOwogCiAJaHBldF9wZXJp b2QgPSBocGV0X3JlYWRsKEhQRVRfUEVSSU9EKTsKQEAgLTg1MywxMiArOTczLDE3IEBAIHN0YXRp YyBpbnQgaHBldF9pbml0KHZvaWQpCiAKIAlocGV0X3VzZV90aW1lciA9IChpZCAmIEhQRVRfSURf TEVHU1VQKTsKIAotCXJldHVybiBocGV0X3RpbWVyX3N0b3Bfc2V0X2dvKGhwZXRfdGljayk7Cisj aWZuZGVmIGhwZXQ2NAorCWlmIChocGV0NjQgJiYgKCFocGV0X3VzZV90aW1lciB8fCAhKGlkICYg SFBFVF9JRF82NEJJVCkpKQorCQlocGV0NjQgPSAwOworI2VuZGlmCisKKwlyZXR1cm4gaHBldF90 aW1lcl9zdG9wX3NldF9nbyhocGV0X3RpY2ssIChpZCAmIEhQRVRfSURfTlVNQkVSKSA+PiBIUEVU X0lEX05VTUJFUl9TSElGVCk7CiB9CiAKIHN0YXRpYyBpbnQgaHBldF9yZWVuYWJsZSh2b2lkKQog ewotCXJldHVybiBocGV0X3RpbWVyX3N0b3Bfc2V0X2dvKGhwZXRfdGljayk7CisJcmV0dXJuIGhw ZXRfdGltZXJfc3RvcF9zZXRfZ28oaHBldF90aWNrLCAwKTsKIH0KIAogdm9pZCBfX2luaXQgcGl0 X2luaXQodm9pZCkKQEAgLTg4OSwxNiArMTAxNCw0MiBAQCB2b2lkIF9faW5pdCB0aW1lX2luaXQo dm9pZCkKIAljaGFyICp0aW1lbmFtZTsKIAogI2lmZGVmIEhQRVRfSEFDS19FTkFCTEVfREFOR0VS T1VTCi0gICAgICAgIGlmICghdnh0aW1lLmhwZXRfYWRkcmVzcykgeworCWlmICghdnh0aW1lLmhw ZXRfYWRkcmVzcyAmJiAhbm9ocGV0KSB7CiAJCXByaW50ayhLRVJOX1dBUk5JTkcgInRpbWUuYzog V0FSTklORzogRW5hYmxpbmcgSFBFVCBiYXNlICIKIAkJICAgICAgICJtYW51YWxseSFcbiIpOwot ICAgICAgICAgICAgICAgIG91dGwoMHg4MDAwMzhhMCwgMHhjZjgpOwotICAgICAgICAgICAgICAg IG91dGwoMHhmZjAwMDAwMSwgMHhjZmMpOwotICAgICAgICAgICAgICAgIG91dGwoMHg4MDAwMzhh MCwgMHhjZjgpOwotICAgICAgICAgICAgICAgIHZ4dGltZS5ocGV0X2FkZHJlc3MgPSBpbmwoMHhj ZmMpICYgMHhmZmZmZmZmZTsKLQkJcHJpbnRrKEtFUk5fV0FSTklORyAidGltZS5jOiBXQVJOSU5H OiBFbmFibGVkIEhQRVQgIgotCQkgICAgICAgImF0ICUjbHguXG4iLCB2eHRpbWUuaHBldF9hZGRy ZXNzKTsKLSAgICAgICAgfQorCQlvdXRsKDB4ODAwMDM4MDAsIDB4Y2Y4KTsKKwkJaWYgKGludygw eGNmYykgPT0gMHgxMDIyKSB7CisJCQlvdXRsKDB4ODAwMDM4YTAsIDB4Y2Y4KTsKKwkJCW91dGwo aW5sKDB4Y2ZjKSB8IDB4MDAwMDAwMDEsIDB4Y2ZjKTsKKwkJCXZ4dGltZS5ocGV0X2FkZHJlc3Mg PSBpbmwoMHhjZmMpICYgMHhmZmZmZmMwMDsKKwkJfQorCQlvdXRsKDB4ODAwMGY4MDAsIDB4Y2Y4 KTsKKwkJaWYgKGludygweGNmYykgPT0gMHg4MDg2KSB7CisJCQlzd2l0Y2goaW5sKDB4Y2ZjKSA+ PiAxNikgeworCQkJY2FzZSAweDI0ZDA6IC8vIElDSDUKKwkJCQlvdXRsKDB4ODAwMGY4ZDAsIDB4 Y2Y4KTsKKwkJCQlvdXRsKGlubCgweGNmYykgfCAweDAwMDIwMDAwLCAweGNmYyk7CisJCQkJdnh0 aW1lLmhwZXRfYWRkcmVzcyA9IDB4ZmVkMDAwMDAgfCAoKGlubCgweGNmYykgPj4gMykgJiAweDAw MDAzMDAwKTsKKwkJCQlicmVhazsKKwkJCWNhc2UgMHgyNjQwOiAvLyBJQ0g2L0lDSDZSCisJCQlj YXNlIDB4MjY0MTogLy8gSUNINi1NCisJCQljYXNlIDB4MjZCODogLy8gSUNINy9JQ0g3UgorCQkJ CW91dGwoMHg4MDAwZjhmMCwgMHhjZjgpOworCQkJCW91dGwoaW5sKDB4Y2ZjKSB8IDB4MDAwMDAw MDEsIDB4Y2ZjKTsKKwkJCQl2eHRpbWUuaHBldF9hZGRyZXNzID0gaW5sKDB4Y2ZjKSAmIDB4ZmZm ZmMwMDA7CisJCQkJaWYgKHZ4dGltZS5ocGV0X2FkZHJlc3MpIHsKKwkJCQkJc2V0X2ZpeG1hcF9u b2NhY2hlKEZJWF9IUEVUX0JBU0UsIHZ4dGltZS5ocGV0X2FkZHJlc3MgKyAweDMwMDApOworCQkJ CQlocGV0X3dyaXRlbChocGV0X3JlYWRsKDB4NDA0KSB8IDB4ODAsIDB4NDA0KTsKKwkJCQkJdnh0 aW1lLmhwZXRfYWRkcmVzcyA9IDB4ZmVkMDAwMDAgfCAoKGhwZXRfcmVhZGwoMHg0MDQpICYgMHgw MDAwMDAwMykgPDwgMTIpOworCQkJCQlfX3NldF9maXhtYXAoRklYX0hQRVRfQkFTRSwgMCwgX19w Z3Byb3QoMCkpOworCQkJCX0KKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCQlpZiAodnh0aW1lLmhw ZXRfYWRkcmVzcykKKwkJCXByaW50ayhLRVJOX1dBUk5JTkcgInRpbWUuYzogV0FSTklORzogRW5h YmxlZCBIUEVUICIKKwkJCSAgICAgICAiYXQgJSNseC5cbiIsIHZ4dGltZS5ocGV0X2FkZHJlc3Mp OworCX0KICNlbmRpZgogCWlmIChub2hwZXQpCiAJCXZ4dGltZS5ocGV0X2FkZHJlc3MgPSAwOwpA QCAtOTc0LDggKzExMjUsMTYgQEAgdm9pZCBfX2luaXQgdGltZV9pbml0X2d0b2Qodm9pZCkKIAlp ZiAodW5zeW5jaHJvbml6ZWRfdHNjKCkpCiAJCW5vdHNjID0gMTsKIAlpZiAodnh0aW1lLmhwZXRf YWRkcmVzcyAmJiBub3RzYykgeworCQl1bnNpZ25lZCBpbnQgaGkxID0gaHBldDY0ID8gaHBldF9y ZWFkbChIUEVUX0NPVU5URVIrNCkgOiAwOworCiAJCXRpbWV0eXBlID0gaHBldF91c2VfdGltZXIg PyAiSFBFVCIgOiAiUElUL0hQRVQiOwogCQl2eHRpbWUubGFzdCA9IGhwZXRfcmVhZGwoSFBFVF9U MF9DTVApIC0gaHBldF90aWNrOworI2lmbmRlZiBocGV0NjQKKwkJaWYgKGhwZXQ2NCkgeworCQkJ dnh0aW1lLmxhc3Q2NCArPSAobG9uZykodnh0aW1lLmxhc3QgPj0gMCA/IGhpMSA6IGhwZXRfcmVh ZGwoSFBFVF9DT1VOVEVSKzQpKSA8PCAzMjsKKwkJCWhwZXQ2NCA9IDE7CisJCX0KKyNlbmRpZgog CQl2eHRpbWUubW9kZSA9IFZYVElNRV9IUEVUOwogCQlkb19nZXR0aW1lb2Zmc2V0ID0gZG9fZ2V0 dGltZW9mZnNldF9ocGV0OwogI2lmZGVmIENPTkZJR19YODZfUE1fVElNRVIKQEAgLTEyOTUsNiAr MTQ1NCwxNSBAQCBzdGF0aWMgaW50IF9faW5pdCBub2hwZXRfc2V0dXAoY2hhciAqcykgCiAKIF9f c2V0dXAoIm5vaHBldCIsIG5vaHBldF9zZXR1cCk7CiAKKyNpZm5kZWYgaHBldDY0CitzdGF0aWMg aW50IF9faW5pdCBub2hwZXQ2NF9zZXR1cChjaGFyICpzKQoreworCWhwZXQ2NCA9IDA7CisJcmV0 dXJuIDA7Cit9CisKK19fc2V0dXAoIm5vaHBldDY0Iiwgbm9ocGV0NjRfc2V0dXApOworI2VuZGlm CiAKIHN0YXRpYyBpbnQgX19pbml0IG5vdHNjX3NldHVwKGNoYXIgKnMpCiB7CkluZGV4OiAyLjYu MTQtbmxrZC9pbmNsdWRlL2FzbS14ODZfNjQvdnN5c2NhbGwuaAo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSAyLjYu MTQtbmxrZC5vcmlnL2luY2x1ZGUvYXNtLXg4Nl82NC92c3lzY2FsbC5oCTIwMDUtMTEtMDkgMTA6 NDA6MTcuMDAwMDAwMDAwICswMTAwCisrKyAyLjYuMTQtbmxrZC9pbmNsdWRlL2FzbS14ODZfNjQv dnN5c2NhbGwuaAkyMDA1LTExLTA3IDEwOjM5OjA1LjAwMDAwMDAwMCArMDEwMApAQCAtMjksNyAr MjksMTAgQEAgZW51bSB2c3lzY2FsbF9udW0gewogCiBzdHJ1Y3Qgdnh0aW1lX2RhdGEgewogCWxv bmcgaHBldF9hZGRyZXNzOwkvKiBIUEVUIGJhc2UgYWRkcmVzcyAqLwotCWludCBsYXN0OworCXVu aW9uIHsKKwkJaW50IGxhc3Q7CisJCWxvbmcgbGFzdDY0OworCX07CiAJdW5zaWduZWQgbG9uZyBs YXN0X3RzYzsKIAlsb25nIHF1b3Q7CiAJbG9uZyB0c2NfcXVvdDsKQEAgLTM3LDcgKzQwLDkgQEAg c3RydWN0IHZ4dGltZV9kYXRhIHsKIH07CiAKICNkZWZpbmUgaHBldF9yZWFkbChhKSAgICAgICAg ICAgcmVhZGwoKHZvaWQgKilmaXhfdG9fdmlydChGSVhfSFBFVF9CQVNFKSArIGEpCisjZGVmaW5l IGhwZXRfcmVhZHEoYSkgICAgICAgICAgIHJlYWRxKCh2b2lkICopZml4X3RvX3ZpcnQoRklYX0hQ RVRfQkFTRSkgKyBhKQogI2RlZmluZSBocGV0X3dyaXRlbChkLGEpICAgICAgICB3cml0ZWwoZCwg KHZvaWQgKilmaXhfdG9fdmlydChGSVhfSFBFVF9CQVNFKSArIGEpCisjZGVmaW5lIGhwZXRfd3Jp dGVxKGQsYSkgICAgICAgIHdyaXRlcShkLCAodm9pZCAqKWZpeF90b192aXJ0KEZJWF9IUEVUX0JB U0UpICsgYSkKIAogLyogdnN5c2NhbGwgc3BhY2UgKHJlYWRvbmx5KSAqLwogZXh0ZXJuIHN0cnVj dCB2eHRpbWVfZGF0YSBfX3Z4dGltZTsK --=__Part8AA8B6D1.1__=-- - 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/