From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S262156AbULaWBq (ORCPT ); Fri, 31 Dec 2004 17:01:46 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S262157AbULaWBq (ORCPT ); Fri, 31 Dec 2004 17:01:46 -0500 Received: from fw.osdl.org ([65.172.181.6]:27035 "EHLO mail.osdl.org") by vger.kernel.org with ESMTP id S262156AbULaWBO (ORCPT ); Fri, 31 Dec 2004 17:01:14 -0500 Date: Fri, 31 Dec 2004 14:01:08 -0800 (PST) From: Linus Torvalds To: Davide Libenzi cc: Jesse Allen , Linux Kernel Mailing List , Andrew Morton Subject: Re: ptrace single-stepping change breaks Wine In-Reply-To: Message-ID: References: <200411152253.iAFMr8JL030601@magilla.sf.frob.com> <1104401393.5128.24.camel@gamecube.scs.ch> <1104411980.3073.6.camel@littlegreen> <200412311413.16313.sailer@scs.ch> <1104499860.3594.5.camel@littlegreen> <53046857041231074248b111d5@mail.gmail.com> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="19447976-890424159-1104530468=:2280" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. --19447976-890424159-1104530468=:2280 Content-Type: TEXT/PLAIN; charset=US-ASCII On Fri, 31 Dec 2004, Davide Libenzi wrote: > > I don't think Linus ever posted a POPF-only patch. Try to comment those > lines in his POPF patch ... Here the two patches are independently, if people want to take a look. If somebody wants to split (and test) the TF-careful thing further (the "send_sigtrap()" changes are independent, I think), that would be wonderful... Hint hint. Linus --19447976-890424159-1104530468=:2280 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=TF-careful Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=TF-careful IyBUaGlzIGlzIGEgQml0S2VlcGVyIGdlbmVyYXRlZCBkaWZmIC1OcnUgc3R5 bGUgcGF0Y2guDQojDQojIENoYW5nZVNldA0KIyAgIDIwMDQvMTIvMzEgMTM6 Mjk6MjctMDg6MDAgdG9ydmFsZHNAZXZvLm9zZGwub3JnIA0KIyAgIFVzZSBj b21tb24gaGVscGVyIHJvdXRpbmUgdG8gc2VuZCBkZWJ1ZyBldmVudCBTSUdU UkFQcw0KIyAgIA0KIyAgIEFsc28gYmUgbW9yZSBjYXJlZnVsIHdpdGggc2V0 dGluZyBhbmQgY2xlYXJpbmcgVEY6IGRvbid0DQojICAgc2V0IGl0IHVubGVz cyB3ZSByZWFsbHkgbmVlZCB0bywgYW5kIGRvbid0IGNsZWFyIGl0IHVubGVz cw0KIyAgIGl0IHdhcyBzZXQgYnkgdGhlIGtlcm5lbC4NCiMgDQojIGluY2x1 ZGUvYXNtLWkzODYvcHRyYWNlLmgNCiMgICAyMDA0LzEyLzMxIDEzOjI5OjE2 LTA4OjAwIHRvcnZhbGRzQGV2by5vc2RsLm9yZyArMSAtMA0KIyAgIFVzZSBj b21tb24gaGVscGVyIHJvdXRpbmUgdG8gc2VuZCBkZWJ1ZyBldmVudCBTSUdU UkFQcw0KIyAgIA0KIyAgIEFsc28gYmUgbW9yZSBjYXJlZnVsIHdpdGggc2V0 dGluZyBhbmQgY2xlYXJpbmcgVEY6IGRvbid0DQojICAgc2V0IGl0IHVubGVz cyB3ZSByZWFsbHkgbmVlZCB0bywgYW5kIGRvbid0IGNsZWFyIGl0IHVubGVz cw0KIyAgIGl0IHdhcyBzZXQgYnkgdGhlIGtlcm5lbC4NCiMgDQojIGFyY2gv aTM4Ni9rZXJuZWwvdHJhcHMuYw0KIyAgIDIwMDQvMTIvMzEgMTM6Mjk6MTYt MDg6MDAgdG9ydmFsZHNAZXZvLm9zZGwub3JnICsxMiAtMTQNCiMgICBVc2Ug Y29tbW9uIGhlbHBlciByb3V0aW5lIHRvIHNlbmQgZGVidWcgZXZlbnQgU0lH VFJBUHMNCiMgICANCiMgICBBbHNvIGJlIG1vcmUgY2FyZWZ1bCB3aXRoIHNl dHRpbmcgYW5kIGNsZWFyaW5nIFRGOiBkb24ndA0KIyAgIHNldCBpdCB1bmxl c3Mgd2UgcmVhbGx5IG5lZWQgdG8sIGFuZCBkb24ndCBjbGVhciBpdCB1bmxl c3MNCiMgICBpdCB3YXMgc2V0IGJ5IHRoZSBrZXJuZWwuDQojIA0KIyBhcmNo L2kzODYva2VybmVsL3NpZ25hbC5jDQojICAgMjAwNC8xMi8zMSAxMzoyOTox Ni0wODowMCB0b3J2YWxkc0Bldm8ub3NkbC5vcmcgKzcgLTIxDQojICAgVXNl IGNvbW1vbiBoZWxwZXIgcm91dGluZSB0byBzZW5kIGRlYnVnIGV2ZW50IFNJ R1RSQVBzDQojICAgDQojICAgQWxzbyBiZSBtb3JlIGNhcmVmdWwgd2l0aCBz ZXR0aW5nIGFuZCBjbGVhcmluZyBURjogZG9uJ3QNCiMgICBzZXQgaXQgdW5s ZXNzIHdlIHJlYWxseSBuZWVkIHRvLCBhbmQgZG9uJ3QgY2xlYXIgaXQgdW5s ZXNzDQojICAgaXQgd2FzIHNldCBieSB0aGUga2VybmVsLg0KIyANCiMgYXJj aC9pMzg2L2tlcm5lbC9wdHJhY2UuYw0KIyAgIDIwMDQvMTIvMzEgMTM6Mjk6 MTUtMDg6MDAgdG9ydmFsZHNAZXZvLm9zZGwub3JnICs1OCAtMTUNCiMgICBV c2UgY29tbW9uIGhlbHBlciByb3V0aW5lIHRvIHNlbmQgZGVidWcgZXZlbnQg U0lHVFJBUHMNCiMgICANCiMgICBBbHNvIGJlIG1vcmUgY2FyZWZ1bCB3aXRo IHNldHRpbmcgYW5kIGNsZWFyaW5nIFRGOiBkb24ndA0KIyAgIHNldCBpdCB1 bmxlc3Mgd2UgcmVhbGx5IG5lZWQgdG8sIGFuZCBkb24ndCBjbGVhciBpdCB1 bmxlc3MNCiMgICBpdCB3YXMgc2V0IGJ5IHRoZSBrZXJuZWwuDQojIA0KZGlm ZiAtTnJ1IGEvYXJjaC9pMzg2L2tlcm5lbC9wdHJhY2UuYyBiL2FyY2gvaTM4 Ni9rZXJuZWwvcHRyYWNlLmMNCi0tLSBhL2FyY2gvaTM4Ni9rZXJuZWwvcHRy YWNlLmMJMjAwNC0xMi0zMSAxMzozNDozNSAtMDg6MDANCisrKyBiL2FyY2gv aTM4Ni9rZXJuZWwvcHRyYWNlLmMJMjAwNC0xMi0zMSAxMzozNDozNSAtMDg6 MDANCkBAIC00Miw2ICs0MiwxMiBAQA0KICAqLw0KICNkZWZpbmUgRUZMX09G RlNFVCAoKEVGTC0yKSo0LXNpemVvZihzdHJ1Y3QgcHRfcmVncykpDQogDQor c3RhdGljIGlubGluZSBzdHJ1Y3QgcHRfcmVncyAqZ2V0X2NoaWxkX3JlZ3Mo c3RydWN0IHRhc2tfc3RydWN0ICp0YXNrKQ0KK3sNCisJdm9pZCAqc3RhY2tf dG9wID0gKHZvaWQgKil0YXNrLT50aHJlYWQuZXNwMDsNCisJcmV0dXJuIHN0 YWNrX3RvcCAtIHNpemVvZihzdHJ1Y3QgcHRfcmVncyk7DQorfQ0KKw0KIC8q DQogICogdGhpcyByb3V0aW5lIHdpbGwgZ2V0IGEgd29yZCBvZmYgb2YgdGhl IHByb2Nlc3NlcyBwcml2aWxlZ2VkIHN0YWNrLiANCiAgKiB0aGUgb2Zmc2V0 IGlzIGhvdyBmYXIgZnJvbSB0aGUgYmFzZSBhZGRyIGFzIHN0b3JlZCBpbiB0 aGUgVFNTLiAgDQpAQCAtMTQwLDIyICsxNDYsMzUgQEANCiANCiBzdGF0aWMg dm9pZCBzZXRfc2luZ2xlc3RlcChzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxk KQ0KIHsNCi0JbG9uZyBlZmxhZ3M7DQorCXN0cnVjdCBwdF9yZWdzICpyZWdz ID0gZ2V0X2NoaWxkX3JlZ3MoY2hpbGQpOw0KIA0KKwkvKg0KKwkgKiBBbHdh eXMgc2V0IFRJRl9TSU5HTEVTVEVQIC0gdGhpcyBndWFyYW50ZWVzIHRoYXQg DQorCSAqIHdlIHNpbmdsZS1zdGVwIHN5c3RlbSBjYWxscyBldGMuLiAgVGhp cyB3aWxsIGFsc28NCisJICogY2F1c2UgdXMgdG8gc2V0IFRGIHdoZW4gcmV0 dXJuaW5nIHRvIHVzZXIgbW9kZS4NCisJICovDQogCXNldF90c2tfdGhyZWFk X2ZsYWcoY2hpbGQsIFRJRl9TSU5HTEVTVEVQKTsNCi0JZWZsYWdzID0gZ2V0 X3N0YWNrX2xvbmcoY2hpbGQsIEVGTF9PRkZTRVQpOw0KLQlwdXRfc3RhY2tf bG9uZyhjaGlsZCwgRUZMX09GRlNFVCwgZWZsYWdzIHwgVFJBUF9GTEFHKTsN CisNCisJLyoNCisJICogSWYgVEYgd2FzIGFscmVhZHkgc2V0LCBkb24ndCBk byBhbnl0aGluZyBlbHNlDQorCSAqLw0KKwlpZiAocmVncy0+ZWZsYWdzICYg VFJBUF9GTEFHKQ0KKwkJcmV0dXJuOw0KKw0KKwkvKiBTZXQgVEYgb24gdGhl IGtlcm5lbCBzdGFjaywgYW5kIHNldCB0aGUgZmxhZyB0byBzYXkgc28gKi8N CisJcmVncy0+ZWZsYWdzIHw9IFRSQVBfRkxBRzsNCiAJY2hpbGQtPnB0cmFj ZSB8PSBQVF9EVFJBQ0U7DQogfQ0KIA0KIHN0YXRpYyB2b2lkIGNsZWFyX3Np bmdsZXN0ZXAoc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCkNCiB7DQotCWlm IChjaGlsZC0+cHRyYWNlICYgUFRfRFRSQUNFKSB7DQotCQlsb25nIGVmbGFn czsNCisJLyogQWx3YXlzIGNsZWFyIFRJRl9TSU5HTEVTVEVQLi4uICovDQor CWNsZWFyX3Rza190aHJlYWRfZmxhZyhjaGlsZCwgVElGX1NJTkdMRVNURVAp Ow0KIA0KLQkJY2xlYXJfdHNrX3RocmVhZF9mbGFnKGNoaWxkLCBUSUZfU0lO R0xFU1RFUCk7DQotCQllZmxhZ3MgPSBnZXRfc3RhY2tfbG9uZyhjaGlsZCwg RUZMX09GRlNFVCk7DQotCQlwdXRfc3RhY2tfbG9uZyhjaGlsZCwgRUZMX09G RlNFVCwgZWZsYWdzICYgflRSQVBfRkxBRyk7DQorCS8qIEJ1dCB0b3VjaCBU RiBvbmx5IGlmIGl0IHdhcyBzZXQgYnkgdXMuLiAqLw0KKwlpZiAoY2hpbGQt PnB0cmFjZSAmIFBUX0RUUkFDRSkgew0KKwkJc3RydWN0IHB0X3JlZ3MgKnJl Z3MgPSBnZXRfY2hpbGRfcmVncyhjaGlsZCk7DQorCQlyZWdzLT5lZmxhZ3Mg Jj0gflRSQVBfRkxBRzsNCiAJCWNoaWxkLT5wdHJhY2UgJj0gflBUX0RUUkFD RTsNCiAJfQ0KIH0NCkBAIC01NTMsNiArNTcyLDI5IEBADQogCXJldHVybiBy ZXQ7DQogfQ0KIA0KK3ZvaWQgc2VuZF9zaWd0cmFwKHN0cnVjdCB0YXNrX3N0 cnVjdCAqdHNrLCBzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IGVycm9yX2Nv ZGUpDQorew0KKwlzdHJ1Y3Qgc2lnaW5mbyBpbmZvOw0KKw0KKwl0c2stPnRo cmVhZC50cmFwX25vID0gMTsNCisJdHNrLT50aHJlYWQuZXJyb3JfY29kZSA9 IGVycm9yX2NvZGU7DQorDQorCW1lbXNldCgmaW5mbywgMCwgc2l6ZW9mKGlu Zm8pKTsNCisJaW5mby5zaV9zaWdubyA9IFNJR1RSQVA7DQorCWluZm8uc2lf Y29kZSA9IFRSQVBfQlJLUFQ7DQorDQorCS8qDQorCSAqIElmIHRoaXMgaXMg YSBrZXJuZWwgbW9kZSB0cmFwLCBzYXZlIHRoZSB1c2VyIFBDIG9uIGVudHJ5 IHRvDQorCSAqIHRoZSBrZXJuZWwsIHRoYXQncyB3aGF0IHRoZSBkZWJ1Z2dl ciBjYW4gbWFrZSBzZW5zZSBvZi4NCisJICovDQorCWluZm8uc2lfYWRkciA9 IHVzZXJfbW9kZShyZWdzKSA/DQorCQkJKHZvaWQgX191c2VyICopIHJlZ3Mt PmVpcCA6DQorCQkJKHZvaWQgX191c2VyICopdHNrLT50aHJlYWQuZWlwOw0K Kw0KKwkvKiBTZW5kIHVzIHRoZSBmYWtleSBTSUdUUkFQICovDQorCWZvcmNl X3NpZ19pbmZvKFNJR1RSQVAsICZpbmZvLCB0c2spOw0KK30NCisNCiAvKiBu b3RpZmljYXRpb24gb2Ygc3lzdGVtIGNhbGwgZW50cnkvZXhpdA0KICAqIC0g dHJpZ2dlcmVkIGJ5IGN1cnJlbnQtPndvcmsuc3lzY2FsbF90cmFjZQ0KICAq Lw0KQEAgLTU2OCwxNSArNjEwLDE2IEBADQogCQkJYXVkaXRfc3lzY2FsbF9l eGl0KGN1cnJlbnQsIHJlZ3MtPmVheCk7DQogCX0NCiANCi0JaWYgKCF0ZXN0 X3RocmVhZF9mbGFnKFRJRl9TWVNDQUxMX1RSQUNFKSAmJg0KLQkgICAgIXRl c3RfdGhyZWFkX2ZsYWcoVElGX1NJTkdMRVNURVApKQ0KLQkJcmV0dXJuOw0K IAlpZiAoIShjdXJyZW50LT5wdHJhY2UgJiBQVF9QVFJBQ0VEKSkNCiAJCXJl dHVybjsNCi0JLyogdGhlIDB4ODAgcHJvdmlkZXMgYSB3YXkgZm9yIHRoZSB0 cmFjaW5nIHBhcmVudCB0byBkaXN0aW5ndWlzaA0KLQkgICBiZXR3ZWVuIGEg c3lzY2FsbCBzdG9wIGFuZCBTSUdUUkFQIGRlbGl2ZXJ5ICovDQotCXB0cmFj ZV9ub3RpZnkoU0lHVFJBUCB8ICgoY3VycmVudC0+cHRyYWNlICYgUFRfVFJB Q0VTWVNHT09EKSAmJg0KLQkJCQkgIXRlc3RfdGhyZWFkX2ZsYWcoVElGX1NJ TkdMRVNURVApID8gMHg4MCA6IDApKTsNCisNCisJLyogRmFrZSBhIGRlYnVn IHRyYXAgKi8NCisJaWYgKHRlc3RfdGhyZWFkX2ZsYWcoVElGX1NJTkdMRVNU RVApKQ0KKwkJc2VuZF9zaWd0cmFwKGN1cnJlbnQsIHJlZ3MsIDApOw0KKw0K KwlpZiAoIXRlc3RfdGhyZWFkX2ZsYWcoVElGX1NZU0NBTExfVFJBQ0UpKQ0K KwkJcmV0dXJuOw0KKwlwdHJhY2Vfbm90aWZ5KFNJR1RSQVAgfCAoKGN1cnJl bnQtPnB0cmFjZSAmIFBUX1RSQUNFU1lTR09PRCkgPyAweDgwIDogMCkpOw0K IA0KIAkvKg0KIAkgKiB0aGlzIGlzbid0IHRoZSBzYW1lIGFzIGNvbnRpbnVp bmcgd2l0aCBhIHNpZ25hbCwgYnV0IGl0IHdpbGwgZG8NCmRpZmYgLU5ydSBh L2FyY2gvaTM4Ni9rZXJuZWwvc2lnbmFsLmMgYi9hcmNoL2kzODYva2VybmVs L3NpZ25hbC5jDQotLS0gYS9hcmNoL2kzODYva2VybmVsL3NpZ25hbC5jCTIw MDQtMTItMzEgMTM6MzQ6MzUgLTA4OjAwDQorKysgYi9hcmNoL2kzODYva2Vy bmVsL3NpZ25hbC5jCTIwMDQtMTItMzEgMTM6MzQ6MzUgLTA4OjAwDQpAQCAt MjcwLDcgKzI3MCw2IEBADQogCQkgc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIHVu c2lnbmVkIGxvbmcgbWFzaykNCiB7DQogCWludCB0bXAsIGVyciA9IDA7DQot CXVuc2lnbmVkIGxvbmcgZWZsYWdzOw0KIA0KIAl0bXAgPSAwOw0KIAlfX2Fz bV9fKCJtb3ZsICUlZ3MsJTAiIDogIj1yIih0bXApOiAiMCIodG1wKSk7DQpA QCAtMjkyLDE2ICsyOTEsNyBAQA0KIAllcnIgfD0gX19wdXRfdXNlcihjdXJy ZW50LT50aHJlYWQuZXJyb3JfY29kZSwgJnNjLT5lcnIpOw0KIAllcnIgfD0g X19wdXRfdXNlcihyZWdzLT5laXAsICZzYy0+ZWlwKTsNCiAJZXJyIHw9IF9f cHV0X3VzZXIocmVncy0+eGNzLCAodW5zaWduZWQgaW50IF9fdXNlciAqKSZz Yy0+Y3MpOw0KLQ0KLQkvKg0KLQkgKiBJZmYgVEYgd2FzIHNldCBiZWNhdXNl IHRoZSBwcm9ncmFtIGlzIGJlaW5nIHNpbmdsZS1zdGVwcGVkIGJ5IGENCi0J ICogZGVidWdnZXIsIGRvbid0IHNhdmUgdGhhdCBpbmZvcm1hdGlvbiBvbiB0 aGUgc2lnbmFsIHN0YWNrLi4gV2UNCi0JICogZG9uJ3Qgd2FudCBkZWJ1Z2dp bmcgdG8gY2hhbmdlIHN0YXRlLg0KLQkgKi8NCi0JZWZsYWdzID0gcmVncy0+ ZWZsYWdzOw0KLQlpZiAoY3VycmVudC0+cHRyYWNlICYgUFRfRFRSQUNFKQ0K LQkJZWZsYWdzICY9IH5URl9NQVNLOw0KLQllcnIgfD0gX19wdXRfdXNlcihl ZmxhZ3MsICZzYy0+ZWZsYWdzKTsNCisJZXJyIHw9IF9fcHV0X3VzZXIocmVn cy0+ZWZsYWdzLCAmc2MtPmVmbGFncyk7DQogCWVyciB8PSBfX3B1dF91c2Vy KHJlZ3MtPmVzcCwgJnNjLT5lc3BfYXRfc2lnbmFsKTsNCiAJZXJyIHw9IF9f cHV0X3VzZXIocmVncy0+eHNzLCAodW5zaWduZWQgaW50IF9fdXNlciAqKSZz Yy0+c3MpOw0KIA0KQEAgLTQyNCwxMSArNDE0LDkgQEANCiAJICogVGhlIHRy YWNlciBtYXkgd2FudCB0byBzaW5nbGUtc3RlcCBpbnNpZGUgdGhlDQogCSAq IGhhbmRsZXIgdG9vLg0KIAkgKi8NCi0JaWYgKHJlZ3MtPmVmbGFncyAmIFRG X01BU0spIHsNCi0JCXJlZ3MtPmVmbGFncyAmPSB+VEZfTUFTSzsNCi0JCWlm IChjdXJyZW50LT5wdHJhY2UgJiBQVF9EVFJBQ0UpDQotCQkJcHRyYWNlX25v dGlmeShTSUdUUkFQKTsNCi0JfQ0KKwlyZWdzLT5lZmxhZ3MgJj0gflRGX01B U0s7DQorCWlmICh0ZXN0X3RocmVhZF9mbGFnKFRJRl9TSU5HTEVTVEVQKSkN CisJCXB0cmFjZV9ub3RpZnkoU0lHVFJBUCk7DQogDQogI2lmIERFQlVHX1NJ Rw0KIAlwcmludGsoIlNJRyBkZWxpdmVyICglczolZCk6IHNwPSVwIHBjPSVw IHJhPSVwXG4iLA0KQEAgLTUxOSwxMSArNTA3LDkgQEANCiAJICogVGhlIHRy YWNlciBtYXkgd2FudCB0byBzaW5nbGUtc3RlcCBpbnNpZGUgdGhlDQogCSAq IGhhbmRsZXIgdG9vLg0KIAkgKi8NCi0JaWYgKHJlZ3MtPmVmbGFncyAmIFRG X01BU0spIHsNCi0JCXJlZ3MtPmVmbGFncyAmPSB+VEZfTUFTSzsNCi0JCWlm IChjdXJyZW50LT5wdHJhY2UgJiBQVF9EVFJBQ0UpDQotCQkJcHRyYWNlX25v dGlmeShTSUdUUkFQKTsNCi0JfQ0KKwlyZWdzLT5lZmxhZ3MgJj0gflRGX01B U0s7DQorCWlmICh0ZXN0X3RocmVhZF9mbGFnKFRJRl9TSU5HTEVTVEVQKSkN CisJCXB0cmFjZV9ub3RpZnkoU0lHVFJBUCk7DQogDQogI2lmIERFQlVHX1NJ Rw0KIAlwcmludGsoIlNJRyBkZWxpdmVyICglczolZCk6IHNwPSVwIHBjPSVw IHJhPSVwXG4iLA0KZGlmZiAtTnJ1IGEvYXJjaC9pMzg2L2tlcm5lbC90cmFw cy5jIGIvYXJjaC9pMzg2L2tlcm5lbC90cmFwcy5jDQotLS0gYS9hcmNoL2kz ODYva2VybmVsL3RyYXBzLmMJMjAwNC0xMi0zMSAxMzozNDozNSAtMDg6MDAN CisrKyBiL2FyY2gvaTM4Ni9rZXJuZWwvdHJhcHMuYwkyMDA0LTEyLTMxIDEz OjM0OjM1IC0wODowMA0KQEAgLTcxOCwyMyArNzE4LDIxIEBADQogCQkgKi8N CiAJCWlmICgocmVncy0+eGNzICYgMykgPT0gMCkNCiAJCQlnb3RvIGNsZWFy X1RGX3JlZW5hYmxlOw0KLQkJaWYgKCh0c2stPnB0cmFjZSAmIChQVF9EVFJB Q0V8UFRfUFRSQUNFRCkpID09IFBUX0RUUkFDRSkNCi0JCQlnb3RvIGNsZWFy X1RGOw0KKw0KKwkJLyoNCisJCSAqIFdhcyB0aGUgVEYgZmxhZyBzZXQgYnkg YSBkZWJ1Z2dlcj8gSWYgc28sIGNsZWFyIGl0IG5vdywNCisJCSAqIHNvIHRo YXQgcmVnaXN0ZXIgaW5mb3JtYXRpb24gaXMgY29ycmVjdC4NCisJCSAqLw0K KwkJaWYgKHRzay0+cHRyYWNlICYgUFRfRFRSQUNFKSB7DQorCQkJcmVncy0+ ZWZsYWdzICY9IH5URl9NQVNLOw0KKwkJCXRzay0+cHRyYWNlICY9IH5QVF9E VFJBQ0U7DQorCQkJaWYgKCF0c2stPnB0cmFjZSAmIFBUX0RUUkFDRSkNCisJ CQkJZ290byBjbGVhcl9URjsNCisJCX0NCiAJfQ0KIA0KIAkvKiBPaywgZmlu YWxseSBzb21ldGhpbmcgd2UgY2FuIGhhbmRsZSAqLw0KLQl0c2stPnRocmVh ZC50cmFwX25vID0gMTsNCi0JdHNrLT50aHJlYWQuZXJyb3JfY29kZSA9IGVy cm9yX2NvZGU7DQotCWluZm8uc2lfc2lnbm8gPSBTSUdUUkFQOw0KLQlpbmZv LnNpX2Vycm5vID0gMDsNCi0JaW5mby5zaV9jb2RlID0gVFJBUF9CUktQVDsN Ci0JDQotCS8qIElmIHRoaXMgaXMgYSBrZXJuZWwgbW9kZSB0cmFwLCBzYXZl IHRoZSB1c2VyIFBDIG9uIGVudHJ5IHRvIA0KLQkgKiB0aGUga2VybmVsLCB0 aGF0J3Mgd2hhdCB0aGUgZGVidWdnZXIgY2FuIG1ha2Ugc2Vuc2Ugb2YuDQot CSAqLw0KLQlpbmZvLnNpX2FkZHIgPSAoKHJlZ3MtPnhjcyAmIDMpID09IDAp ID8gKHZvaWQgX191c2VyICopdHNrLT50aHJlYWQuZWlwDQotCSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAodm9pZCBfX3VzZXIg KilyZWdzLT5laXA7DQotCWZvcmNlX3NpZ19pbmZvKFNJR1RSQVAsICZpbmZv LCB0c2spOw0KKwlzZW5kX3NpZ3RyYXAodHNrLCByZWdzLCBlcnJvcl9jb2Rl KTsNCiANCiAJLyogRGlzYWJsZSBhZGRpdGlvbmFsIHRyYXBzLiBUaGV5J2xs IGJlIHJlLWVuYWJsZWQgd2hlbg0KIAkgKiB0aGUgc2lnbmFsIGlzIGRlbGl2 ZXJlZC4NCmRpZmYgLU5ydSBhL2luY2x1ZGUvYXNtLWkzODYvcHRyYWNlLmgg Yi9pbmNsdWRlL2FzbS1pMzg2L3B0cmFjZS5oDQotLS0gYS9pbmNsdWRlL2Fz bS1pMzg2L3B0cmFjZS5oCTIwMDQtMTItMzEgMTM6MzQ6MzUgLTA4OjAwDQor KysgYi9pbmNsdWRlL2FzbS1pMzg2L3B0cmFjZS5oCTIwMDQtMTItMzEgMTM6 MzQ6MzUgLTA4OjAwDQpAQCAtNTUsNiArNTUsNyBAQA0KICNkZWZpbmUgUFRS QUNFX1NFVF9USFJFQURfQVJFQSAgICAyNg0KIA0KICNpZmRlZiBfX0tFUk5F TF9fDQorZXh0ZXJuIHZvaWQgc2VuZF9zaWd0cmFwKHN0cnVjdCB0YXNrX3N0 cnVjdCAqdHNrLCBzdHJ1Y3QgcHRfcmVncyAqcmVncywgaW50IGVycm9yX2Nv ZGUpOw0KICNkZWZpbmUgdXNlcl9tb2RlKHJlZ3MpICgoVk1fTUFTSyAmIChy ZWdzKS0+ZWZsYWdzKSB8fCAoMyAmIChyZWdzKS0+eGNzKSkNCiAjZGVmaW5l IGluc3RydWN0aW9uX3BvaW50ZXIocmVncykgKChyZWdzKS0+ZWlwKQ0KICNp ZiBkZWZpbmVkKENPTkZJR19TTVApICYmIGRlZmluZWQoQ09ORklHX0ZSQU1F X1BPSU5URVIpDQo= --19447976-890424159-1104530468=:2280 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=TF-popf Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=TF-popf IyBUaGlzIGlzIGEgQml0S2VlcGVyIGdlbmVyYXRlZCBkaWZmIC1OcnUgc3R5 bGUgcGF0Y2guDQojDQojIENoYW5nZVNldA0KIyAgIDIwMDQvMTIvMzEgMTM6 MzM6MzktMDg6MDAgdG9ydmFsZHNAZXZvLm9zZGwub3JnIA0KIyAgIHg4NiBU RiBoYW5kbGluZzogZG9uJ3QgY2xlYXIgYWZ0ZXIgdXNlciAicG9wZiINCiMg ICANCiMgICBUaGUgInBvcGYiIHdpbGwgaGF2ZSBzZXQgVEYgdG8gc29tZXRo aW5nIG5ldywNCiMgICB3ZSBzaG91bGQgbm90IGNsZWFyIGl0Lg0KIyAgIA0K IyAgIE5PVEUhIFdlIHNob3VsZCBub3QgYWxsb3cgdGhlIHVzZXIgdG8gc2Vl IFRGIG9uDQojICAgdGhlIHN0YWNrIGFmdGVyIGEgInB1c2hmIiwgYnV0IHRo YXQgaXMgYmV0dGVyIGRvbmUNCiMgICBieSB0aGUgY29udHJvbGxpbmcgcHJv Y2VzcyBpbiB1c2VyIHNwYWNlLiBUaGlzIGp1c3QNCiMgICBtYWtlcyBpdCBw b3NzaWJsZSB0byBkbyBub24taW50cnVzaXZlIHNpbmdsZS1zdGVwcGluZywN CiMgICBidXQgdGhlIGZpbmFsIHBhcnQgaXMgdXAgdG8gdGhlIGRlYnVnZ2Vy Lg0KIyANCiMgYXJjaC9pMzg2L2tlcm5lbC9wdHJhY2UuYw0KIyAgIDIwMDQv MTIvMzEgMTM6MzM6MjktMDg6MDAgdG9ydmFsZHNAZXZvLm9zZGwub3JnICs4 MyAtMQ0KIyAgIHg4NiBURiBoYW5kbGluZzogZG9uJ3QgY2xlYXIgYWZ0ZXIg dXNlciAicG9wZiINCiMgICANCiMgICBUaGUgInBvcGYiIHdpbGwgaGF2ZSBz ZXQgVEYgdG8gc29tZXRoaW5nIG5ldywNCiMgICB3ZSBzaG91bGQgbm90IGNs ZWFyIGl0Lg0KIyAgIA0KIyAgIE5PVEUhIFdlIHNob3VsZCBub3QgYWxsb3cg dGhlIHVzZXIgdG8gc2VlIFRGIG9uDQojICAgdGhlIHN0YWNrIGFmdGVyIGEg InB1c2hmIiwgYnV0IHRoYXQgaXMgYmV0dGVyIGRvbmUNCiMgICBieSB0aGUg Y29udHJvbGxpbmcgcHJvY2VzcyBpbiB1c2VyIHNwYWNlLiBUaGlzIGp1c3QN CiMgICBtYWtlcyBpdCBwb3NzaWJsZSB0byBkbyBub24taW50cnVzaXZlIHNp bmdsZS1zdGVwcGluZywNCiMgICBidXQgdGhlIGZpbmFsIHBhcnQgaXMgdXAg dG8gdGhlIGRlYnVnZ2VyLg0KIyANCmRpZmYgLU5ydSBhL2FyY2gvaTM4Ni9r ZXJuZWwvcHRyYWNlLmMgYi9hcmNoL2kzODYva2VybmVsL3B0cmFjZS5jDQot LS0gYS9hcmNoL2kzODYva2VybmVsL3B0cmFjZS5jCTIwMDQtMTItMzEgMTM6 MzQ6NDggLTA4OjAwDQorKysgYi9hcmNoL2kzODYva2VybmVsL3B0cmFjZS5j CTIwMDQtMTItMzEgMTM6MzQ6NDggLTA4OjAwDQpAQCAtMTQ0LDYgKzE0NCw3 OSBAQA0KIAlyZXR1cm4gcmV0dmFsOw0KIH0NCiANCisjZGVmaW5lIExEVF9T RUdNRU5UIDQNCisNCitzdGF0aWMgdW5zaWduZWQgbG9uZyBjb252ZXJ0X2Vp cF90b19saW5lYXIoc3RydWN0IHRhc2tfc3RydWN0ICpjaGlsZCwgc3RydWN0 IHB0X3JlZ3MgKnJlZ3MpDQorew0KKwl1bnNpZ25lZCBsb25nIGFkZHIsIHNl ZzsNCisNCisJYWRkciA9IHJlZ3MtPmVpcDsNCisJc2VnID0gcmVncy0+eGNz ICYgMHhmZmZmOw0KKwlpZiAocmVncy0+ZWZsYWdzICYgVk1fTUFTSykgew0K KwkJYWRkciA9IChhZGRyICYgMHhmZmZmKSArIChzZWcgPDwgNCk7DQorCQly ZXR1cm4gYWRkcjsNCisJfQ0KKw0KKwkvKg0KKwkgKiBXZSdsbCBhc3N1bWUg dGhhdCB0aGUgY29kZSBzZWdtZW50cyBpbiB0aGUgR0RUDQorCSAqIGFyZSBh bGwgemVyby1iYXNlZC4gVGhhdCBpcyBsYXJnZWx5IHRydWU6IHRoZQ0KKwkg KiBUTFMgc2VnbWVudHMgYXJlIHVzZWQgZm9yIGRhdGEsIGFuZCB0aGUgUE5Q QklPUw0KKwkgKiBhbmQgQVBNIGJpb3Mgb25lcyB3ZSBqdXN0IGlnbm9yZSBo ZXJlLg0KKwkgKi8NCisJaWYgKHNlZyAmIExEVF9TRUdNRU5UKSB7DQorCQl1 MzIgKmRlc2M7DQorCQl1bnNpZ25lZCBsb25nIGJhc2U7DQorDQorCQlkb3du KCZjaGlsZC0+bW0tPmNvbnRleHQuc2VtKTsNCisJCWRlc2MgPSBjaGlsZC0+ bW0tPmNvbnRleHQubGR0ICsgKHNlZyAmIH43KTsNCisJCWJhc2UgPSAoZGVz Y1swXSA+PiAxNikgfCAoKGRlc2NbMV0gJiAweGZmKSA8PCAxNikgfCAoZGVz Y1sxXSAmIDB4ZmYwMDAwMDApOw0KKw0KKwkJLyogMTYtYml0IGNvZGUgc2Vn bWVudD8gKi8NCisJCWlmICghKChkZXNjWzFdID4+IDIyKSAmIDEpKQ0KKwkJ CWFkZHIgJj0gMHhmZmZmOw0KKwkJYWRkciArPSBiYXNlOw0KKwkJdXAoJmNo aWxkLT5tbS0+Y29udGV4dC5zZW0pOw0KKwl9DQorCXJldHVybiBhZGRyOw0K K30NCisNCitzdGF0aWMgaW5saW5lIGludCBpc19hdF9wb3BmKHN0cnVjdCB0 YXNrX3N0cnVjdCAqY2hpbGQsIHN0cnVjdCBwdF9yZWdzICpyZWdzKQ0KK3sN CisJaW50IGksIGNvcGllZDsNCisJdW5zaWduZWQgY2hhciBvcGNvZGVbMTZd Ow0KKwl1bnNpZ25lZCBsb25nIGFkZHIgPSBjb252ZXJ0X2VpcF90b19saW5l YXIoY2hpbGQsIHJlZ3MpOw0KKw0KKwljb3BpZWQgPSBhY2Nlc3NfcHJvY2Vz c192bShjaGlsZCwgYWRkciwgb3Bjb2RlLCBzaXplb2Yob3Bjb2RlKSwgMCk7 DQorCWZvciAoaSA9IDA7IGkgPCBjb3BpZWQ7IGkrKykgew0KKwkJc3dpdGNo IChvcGNvZGVbaV0pIHsNCisJCS8qIHBvcGYgKi8NCisJCWNhc2UgMHg5ZDoN CisJCQlyZXR1cm4gMTsNCisJCS8qIG9wY29kZSBhbmQgYWRkcmVzcyBzaXpl IHByZWZpeGVzICovDQorCQljYXNlIDB4NjY6IGNhc2UgMHg2NzoNCisJCQlj b250aW51ZTsNCisJCS8qIGlycmVsZXZhbnQgcHJlZml4ZXMgKHNlZ21lbnQg b3ZlcnJpZGVzIGFuZCByZXBlYXRzKSAqLw0KKwkJY2FzZSAweDI2OiBjYXNl IDB4MmU6DQorCQljYXNlIDB4MzY6IGNhc2UgMHgzZToNCisJCWNhc2UgMHg2 NDogY2FzZSAweDY1Og0KKwkJY2FzZSAweGYwOiBjYXNlIDB4ZjI6IGNhc2Ug MHhmMzoNCisJCQljb250aW51ZTsNCisNCisJCS8qDQorCQkgKiBwdXNoZjog Tk9URSEgV2Ugc2hvdWxkIHByb2JhYmx5IG5vdCBsZXQNCisJCSAqIHRoZSB1 c2VyIHNlZSB0aGUgVEYgYml0IGJlaW5nIHNldC4gQnV0DQorCQkgKiBpdCdz IG1vcmUgcGFpbiB0aGFuIGl0J3Mgd29ydGggdG8gYXZvaWQNCisJCSAqIGl0 LCBhbmQgYSBkZWJ1Z2dlciBjb3VsZCBlbXVsYXRlIHRoaXMNCisJCSAqIGFs bCBpbiB1c2VyIHNwYWNlIGlmIGl0IF9yZWFsbHlfIGNhcmVzLg0KKwkJICov DQorCQljYXNlIDB4OWM6DQorCQlkZWZhdWx0Og0KKwkJCXJldHVybiAwOw0K KwkJfQ0KKwl9DQorCXJldHVybiAwOw0KK30NCisNCiBzdGF0aWMgdm9pZCBz ZXRfc2luZ2xlc3RlcChzdHJ1Y3QgdGFza19zdHJ1Y3QgKmNoaWxkKQ0KIHsN CiAJc3RydWN0IHB0X3JlZ3MgKnJlZ3MgPSBnZXRfY2hpbGRfcmVncyhjaGls ZCk7DQpAQCAtMTYxLDggKzIzNCwxNyBAQA0KIAlpZiAocmVncy0+ZWZsYWdz ICYgVFJBUF9GTEFHKQ0KIAkJcmV0dXJuOw0KIA0KLQkvKiBTZXQgVEYgb24g dGhlIGtlcm5lbCBzdGFjaywgYW5kIHNldCB0aGUgZmxhZyB0byBzYXkgc28g Ki8NCisJLyogU2V0IFRGIG9uIHRoZSBrZXJuZWwgc3RhY2suLiAqLw0KIAly ZWdzLT5lZmxhZ3MgfD0gVFJBUF9GTEFHOw0KKw0KKwkvKg0KKwkgKiAuLmJ1 dCBpZiBURiBpcyBjaGFuZ2VkIGJ5IHRoZSBpbnN0cnVjdGlvbiB3ZSB3aWxs IHRyYWNlLA0KKwkgKiBkb24ndCBtYXJrIGl0IGFzIGJlaW5nICJ1cyIgdGhh dCBzZXQgaXQsIHNvIHRoYXQgd2UNCisJICogd29uJ3QgY2xlYXIgaXQgYnkg aGFuZCBsYXRlci4NCisJICovDQorCWlmIChpc19hdF9wb3BmKGNoaWxkLCBy ZWdzKSkNCisJCXJldHVybjsNCisJDQogCWNoaWxkLT5wdHJhY2UgfD0gUFRf RFRSQUNFOw0KIH0NCiANCg== --19447976-890424159-1104530468=:2280--