Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S262019AbUDNX0l (ORCPT ); Wed, 14 Apr 2004 19:26:41 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S262063AbUDNXZA (ORCPT ); Wed, 14 Apr 2004 19:25:00 -0400 Received: from fmr05.intel.com ([134.134.136.6]:12947 "EHLO hermes.jf.intel.com") by vger.kernel.org with ESMTP id S262019AbUDNXVJ (ORCPT ); Wed, 14 Apr 2004 19:21:09 -0400 content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01C42277.04586110" X-MimeOLE: Produced By Microsoft Exchange V6.0.6487.1 Subject: RE: 2.6.5-rc3-mm4 x86_64 sched domains patch Date: Wed, 14 Apr 2004 16:20:04 -0700 Message-ID: <9AB83E4717F13F419BD880F5254709E5011EBAC2@scsmsx402.sc.intel.com> X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Thread-Topic: 2.6.5-rc3-mm4 x86_64 sched domains patch Thread-Index: AcQicwWRsDvcJWM/TpSXCQ3lgW+KuwAApIGw From: "Siddha, Suresh B" To: "Darren Hart" , "Andi Kleen" Cc: "lkml" , , "Martin J Bligh" , "Rick Lindsley" , X-OriginalArrivalTime: 14 Apr 2004 23:20:05.0025 (UTC) FILETIME=[04CD9110:01C42277] Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 24588 Lines: 345 This is a multi-part message in MIME format. ------_=_NextPart_001_01C42277.04586110 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Darren Hart wrote: > On Wed, 2004-04-14 at 06:44, Andi Kleen wrote: > > Also it will need merging with the patch that adds SMT=20 > support for IA32e machines > > on x86-64. >=20 > Where is this patch? >=20 > -- Darren Attched the patch which goes on top of a slightly older mm tree. thanks, suresh ------_=_NextPart_001_01C42277.04586110 Content-Type: application/octet-stream; name="smt.diff" Content-Transfer-Encoding: base64 Content-Description: smt.diff Content-Disposition: attachment; filename="smt.diff" ZGlmZiAtTnJ1IGxpbnV4LTIuNi40LXJjMS9hcmNoL2kzODYva2VybmVsL01ha2VmaWxlIGxpbnV4 LTY0L2FyY2gvaTM4Ni9rZXJuZWwvTWFrZWZpbGUKLS0tIGxpbnV4LTIuNi40LXJjMS9hcmNoL2kz ODYva2VybmVsL01ha2VmaWxlCTIwMDQtMDMtMDIgMDk6NDU6NDMuMjE0MTcwNDA4IC0wODAwCisr KyBsaW51eC02NC9hcmNoL2kzODYva2VybmVsL01ha2VmaWxlCTIwMDQtMDMtMDEgMTc6MzQ6MTIu MDAwMDAwMDAwIC0wODAwCkBAIC0zMiw2ICszMiw3IEBACiBvYmotJChDT05GSUdfSFBFVF9USU1F UikgCSs9IHRpbWVfaHBldC5vCiBvYmotJChDT05GSUdfRUZJKSAJCSs9IGVmaS5vIGVmaV9zdHVi Lm8KIG9iai0kKENPTkZJR19FQVJMWV9QUklOVEspCSs9IGVhcmx5X3ByaW50ay5vCitvYmotJChD T05GSUdfU0NIRURfU01UKQkJKz0gaW5pdF9zY2hlZF9kb21haW5zLm8KIAogRVhUUkFfQUZMQUdT ICAgOj0gLXRyYWRpdGlvbmFsCiAKZGlmZiAtTnJ1IGxpbnV4LTIuNi40LXJjMS9hcmNoL2kzODYv a2VybmVsL3NtcGJvb3QuYyBsaW51eC02NC9hcmNoL2kzODYva2VybmVsL3NtcGJvb3QuYwotLS0g bGludXgtMi42LjQtcmMxL2FyY2gvaTM4Ni9rZXJuZWwvc21wYm9vdC5jCTIwMDQtMDMtMDIgMDk6 NDU6NDMuMjQ1MTY1Njk2IC0wODAwCisrKyBsaW51eC02NC9hcmNoL2kzODYva2VybmVsL3NtcGJv b3QuYwkyMDA0LTAzLTAxIDE3OjM0OjEyLjAwMDAwMDAwMCAtMDgwMApAQCAtMTEyMywyMTUgKzEx MjMsNiBAQAogCQlzeW5jaHJvbml6ZV90c2NfYnAoKTsKIH0KIAotI2lmZGVmIENPTkZJR19TQ0hF RF9TTVQKLSNpZmRlZiBDT05GSUdfTlVNQQotc3RhdGljIHN0cnVjdCBzY2hlZF9ncm91cCBzY2hl ZF9ncm91cF9jcHVzW05SX0NQVVNdOwotc3RhdGljIHN0cnVjdCBzY2hlZF9ncm91cCBzY2hlZF9n cm91cF9waHlzW05SX0NQVVNdOwotc3RhdGljIHN0cnVjdCBzY2hlZF9ncm91cCBzY2hlZF9ncm91 cF9ub2Rlc1tNQVhfTlVNTk9ERVNdOwotc3RhdGljIERFRklORV9QRVJfQ1BVKHN0cnVjdCBzY2hl ZF9kb21haW4sIHBoeXNfZG9tYWlucyk7Ci1zdGF0aWMgREVGSU5FX1BFUl9DUFUoc3RydWN0IHNj aGVkX2RvbWFpbiwgbm9kZV9kb21haW5zKTsKLV9faW5pdCB2b2lkIGFyY2hfaW5pdF9zY2hlZF9k b21haW5zKHZvaWQpCi17Ci0JaW50IGk7Ci0Jc3RydWN0IHNjaGVkX2dyb3VwICpmaXJzdF9jcHUg PSBOVUxMLCAqbGFzdF9jcHUgPSBOVUxMOwotCi0JLyogU2V0IHVwIGRvbWFpbnMgKi8KLQlmb3Jf ZWFjaF9jcHUoaSkgewotCQlzdHJ1Y3Qgc2NoZWRfZG9tYWluICpjcHVfZG9tYWluID0gY3B1X3Nj aGVkX2RvbWFpbihpKTsKLQkJc3RydWN0IHNjaGVkX2RvbWFpbiAqcGh5c19kb21haW4gPSAmcGVy X2NwdShwaHlzX2RvbWFpbnMsIGkpOwotCQlzdHJ1Y3Qgc2NoZWRfZG9tYWluICpub2RlX2RvbWFp biA9ICZwZXJfY3B1KG5vZGVfZG9tYWlucywgaSk7Ci0JCWludCBub2RlID0gY3B1X3RvX25vZGUo aSk7Ci0JCWNwdW1hc2tfdCBub2RlbWFzayA9IG5vZGVfdG9fY3B1bWFzayhub2RlKTsKLQotCQkq Y3B1X2RvbWFpbiA9IFNEX1NJQkxJTkdfSU5JVDsKLQkJY3B1X2RvbWFpbi0+c3BhbiA9IGNwdV9z aWJsaW5nX21hcFtpXTsKLQotCQkqcGh5c19kb21haW4gPSBTRF9DUFVfSU5JVDsKLQkJcGh5c19k b21haW4tPnNwYW4gPSBub2RlbWFzazsKLQotCQkqbm9kZV9kb21haW4gPSBTRF9OT0RFX0lOSVQ7 Ci0JCW5vZGVfZG9tYWluLT5zcGFuID0gY3B1X3Bvc3NpYmxlX21hcDsKLQl9Ci0KLQkvKiBTZXQg dXAgQ1BVIChzaWJsaW5nKSBncm91cHMgKi8KLQlmb3JfZWFjaF9jcHUoaSkgewotCQlzdHJ1Y3Qg c2NoZWRfZG9tYWluICpjcHVfZG9tYWluID0gY3B1X3NjaGVkX2RvbWFpbihpKTsKLQkJaW50IGo7 Ci0JCWZpcnN0X2NwdSA9IGxhc3RfY3B1ID0gTlVMTDsKLQotCQlpZiAoaSAhPSBmaXJzdF9jcHUo Y3B1X2RvbWFpbi0+c3BhbikpCi0JCQljb250aW51ZTsKLQotCQlmb3JfZWFjaF9jcHVfbWFzayhq LCBjcHVfZG9tYWluLT5zcGFuKSB7Ci0JCQlzdHJ1Y3Qgc2NoZWRfZ3JvdXAgKmNwdSA9ICZzY2hl ZF9ncm91cF9jcHVzW2pdOwotCi0JCQljcHUtPmNwdW1hc2sgPSBDUFVfTUFTS19OT05FOwotCQkJ Y3B1X3NldChqLCBjcHUtPmNwdW1hc2spOwotCQkJY3B1LT5jcHVfcG93ZXIgPSBTQ0hFRF9MT0FE X1NDQUxFOwotCi0JCQlpZiAoIWZpcnN0X2NwdSkKLQkJCQlmaXJzdF9jcHUgPSBjcHU7Ci0JCQlp ZiAobGFzdF9jcHUpCi0JCQkJbGFzdF9jcHUtPm5leHQgPSBjcHU7Ci0JCQlsYXN0X2NwdSA9IGNw dTsKLQkJfQotCQlsYXN0X2NwdS0+bmV4dCA9IGZpcnN0X2NwdTsKLQl9Ci0KLQlmb3IgKGkgPSAw OyBpIDwgTUFYX05VTU5PREVTOyBpKyspIHsKLQkJaW50IGo7Ci0JCWNwdW1hc2tfdCBub2RlbWFz azsKLQkJc3RydWN0IHNjaGVkX2dyb3VwICpub2RlID0gJnNjaGVkX2dyb3VwX25vZGVzW2ldOwot CQljcHVzX2FuZChub2RlbWFzaywgbm9kZV90b19jcHVtYXNrKGkpLCBjcHVfcG9zc2libGVfbWFw KTsKLQotCQlpZiAoY3B1c19lbXB0eShub2RlbWFzaykpCi0JCQljb250aW51ZTsKLQotCQlmaXJz dF9jcHUgPSBsYXN0X2NwdSA9IE5VTEw7Ci0JCS8qIFNldCB1cCBwaHlzaWNhbCBncm91cHMgKi8K LQkJZm9yX2VhY2hfY3B1X21hc2soaiwgbm9kZW1hc2spIHsKLQkJCXN0cnVjdCBzY2hlZF9kb21h aW4gKmNwdV9kb21haW4gPSBjcHVfc2NoZWRfZG9tYWluKGopOwotCQkJc3RydWN0IHNjaGVkX2dy b3VwICpjcHUgPSAmc2NoZWRfZ3JvdXBfcGh5c1tqXTsKLQotCQkJaWYgKGogIT0gZmlyc3RfY3B1 KGNwdV9kb21haW4tPnNwYW4pKQotCQkJCWNvbnRpbnVlOwotCi0JCQljcHUtPmNwdW1hc2sgPSBj cHVfZG9tYWluLT5zcGFuOwotCQkJLyoKLQkJCSAqIE1ha2UgZWFjaCBleHRyYSBzaWJsaW5nIGlu Y3JlYXNlIHBvd2VyIGJ5IDEwJSBvZgotCQkJICogdGhlIGJhc2ljIENQVS4gVGhpcyBpcyB2ZXJ5 IGFyYml0cmFyeS4KLQkJCSAqLwotCQkJY3B1LT5jcHVfcG93ZXIgPSBTQ0hFRF9MT0FEX1NDQUxF ICsgU0NIRURfTE9BRF9TQ0FMRSooY3B1c193ZWlnaHQoY3B1LT5jcHVtYXNrKS0xKSAvIDEwOwot CQkJbm9kZS0+Y3B1X3Bvd2VyICs9IGNwdS0+Y3B1X3Bvd2VyOwotCi0JCQlpZiAoIWZpcnN0X2Nw dSkKLQkJCQlmaXJzdF9jcHUgPSBjcHU7Ci0JCQlpZiAobGFzdF9jcHUpCi0JCQkJbGFzdF9jcHUt Pm5leHQgPSBjcHU7Ci0JCQlsYXN0X2NwdSA9IGNwdTsKLQkJfQotCQlsYXN0X2NwdS0+bmV4dCA9 IGZpcnN0X2NwdTsKLQl9Ci0KLQkvKiBTZXQgdXAgbm9kZXMgKi8KLQlmaXJzdF9jcHUgPSBsYXN0 X2NwdSA9IE5VTEw7Ci0JZm9yIChpID0gMDsgaSA8IE1BWF9OVU1OT0RFUzsgaSsrKSB7Ci0JCXN0 cnVjdCBzY2hlZF9ncm91cCAqY3B1ID0gJnNjaGVkX2dyb3VwX25vZGVzW2ldOwotCQljcHVtYXNr X3Qgbm9kZW1hc2s7Ci0JCWNwdXNfYW5kKG5vZGVtYXNrLCBub2RlX3RvX2NwdW1hc2soaSksIGNw dV9wb3NzaWJsZV9tYXApOwotCi0JCWlmIChjcHVzX2VtcHR5KG5vZGVtYXNrKSkKLQkJCWNvbnRp bnVlOwotCi0JCWNwdS0+Y3B1bWFzayA9IG5vZGVtYXNrOwotCQkvKiAtPmNwdV9wb3dlciBhbHJl YWR5IHNldHVwICovCi0KLQkJaWYgKCFmaXJzdF9jcHUpCi0JCQlmaXJzdF9jcHUgPSBjcHU7Ci0J CWlmIChsYXN0X2NwdSkKLQkJCWxhc3RfY3B1LT5uZXh0ID0gY3B1OwotCQlsYXN0X2NwdSA9IGNw dTsKLQl9Ci0JbGFzdF9jcHUtPm5leHQgPSBmaXJzdF9jcHU7Ci0KLQltYigpOwotCWZvcl9lYWNo X2NwdShpKSB7Ci0JCWludCBub2RlID0gY3B1X3RvX25vZGUoaSk7Ci0JCXN0cnVjdCBzY2hlZF9k b21haW4gKmNwdV9kb21haW4gPSBjcHVfc2NoZWRfZG9tYWluKGkpOwotCQlzdHJ1Y3Qgc2NoZWRf ZG9tYWluICpwaHlzX2RvbWFpbiA9ICZwZXJfY3B1KHBoeXNfZG9tYWlucywgaSk7Ci0JCXN0cnVj dCBzY2hlZF9kb21haW4gKm5vZGVfZG9tYWluID0gJnBlcl9jcHUobm9kZV9kb21haW5zLCBpKTsK LQkJc3RydWN0IHNjaGVkX2dyb3VwICpjcHVfZ3JvdXAgPSAmc2NoZWRfZ3JvdXBfY3B1c1tpXTsK LQkJc3RydWN0IHNjaGVkX2dyb3VwICpwaHlzX2dyb3VwID0gJnNjaGVkX2dyb3VwX3BoeXNbZmly c3RfY3B1KGNwdV9kb21haW4tPnNwYW4pXTsKLQkJc3RydWN0IHNjaGVkX2dyb3VwICpub2RlX2dy b3VwID0gJnNjaGVkX2dyb3VwX25vZGVzW25vZGVdOwotCi0JCWNwdV9kb21haW4tPnBhcmVudCA9 IHBoeXNfZG9tYWluOwotCQlwaHlzX2RvbWFpbi0+cGFyZW50ID0gbm9kZV9kb21haW47Ci0KLQkJ bm9kZV9kb21haW4tPmdyb3VwcyA9IG5vZGVfZ3JvdXA7Ci0JCXBoeXNfZG9tYWluLT5ncm91cHMg PSBwaHlzX2dyb3VwOwotCQljcHVfZG9tYWluLT5ncm91cHMgPSBjcHVfZ3JvdXA7Ci0JfQotfQot I2Vsc2UgLyogQ09ORklHX05VTUEgKi8KLXN0YXRpYyBzdHJ1Y3Qgc2NoZWRfZ3JvdXAgc2NoZWRf Z3JvdXBfY3B1c1tOUl9DUFVTXTsKLXN0YXRpYyBzdHJ1Y3Qgc2NoZWRfZ3JvdXAgc2NoZWRfZ3Jv dXBfcGh5c1tOUl9DUFVTXTsKLXN0YXRpYyBERUZJTkVfUEVSX0NQVShzdHJ1Y3Qgc2NoZWRfZG9t YWluLCBwaHlzX2RvbWFpbnMpOwotX19pbml0IHZvaWQgYXJjaF9pbml0X3NjaGVkX2RvbWFpbnMo dm9pZCkKLXsKLQlpbnQgaTsKLQlzdHJ1Y3Qgc2NoZWRfZ3JvdXAgKmZpcnN0X2NwdSA9IE5VTEws ICpsYXN0X2NwdSA9IE5VTEw7Ci0KLQkvKiBTZXQgdXAgZG9tYWlucyAqLwotCWZvcl9lYWNoX2Nw dShpKSB7Ci0JCXN0cnVjdCBzY2hlZF9kb21haW4gKmNwdV9kb21haW4gPSBjcHVfc2NoZWRfZG9t YWluKGkpOwotCQlzdHJ1Y3Qgc2NoZWRfZG9tYWluICpwaHlzX2RvbWFpbiA9ICZwZXJfY3B1KHBo eXNfZG9tYWlucywgaSk7Ci0KLQkJKmNwdV9kb21haW4gPSBTRF9TSUJMSU5HX0lOSVQ7Ci0JCWNw dV9kb21haW4tPnNwYW4gPSBjcHVfc2libGluZ19tYXBbaV07Ci0KLQkJKnBoeXNfZG9tYWluID0g U0RfQ1BVX0lOSVQ7Ci0JCXBoeXNfZG9tYWluLT5zcGFuID0gY3B1X3Bvc3NpYmxlX21hcDsKLQl9 Ci0KLQkvKiBTZXQgdXAgQ1BVIChzaWJsaW5nKSBncm91cHMgKi8KLQlmb3JfZWFjaF9jcHUoaSkg ewotCQlzdHJ1Y3Qgc2NoZWRfZG9tYWluICpjcHVfZG9tYWluID0gY3B1X3NjaGVkX2RvbWFpbihp KTsKLQkJaW50IGo7Ci0JCWZpcnN0X2NwdSA9IGxhc3RfY3B1ID0gTlVMTDsKLQotCQlpZiAoaSAh PSBmaXJzdF9jcHUoY3B1X2RvbWFpbi0+c3BhbikpCi0JCQljb250aW51ZTsKLQotCQlmb3JfZWFj aF9jcHVfbWFzayhqLCBjcHVfZG9tYWluLT5zcGFuKSB7Ci0JCQlzdHJ1Y3Qgc2NoZWRfZ3JvdXAg KmNwdSA9ICZzY2hlZF9ncm91cF9jcHVzW2pdOwotCi0JCQljcHVzX2NsZWFyKGNwdS0+Y3B1bWFz ayk7Ci0JCQljcHVfc2V0KGosIGNwdS0+Y3B1bWFzayk7Ci0JCQljcHUtPmNwdV9wb3dlciA9IFND SEVEX0xPQURfU0NBTEU7Ci0KLQkJCWlmICghZmlyc3RfY3B1KQotCQkJCWZpcnN0X2NwdSA9IGNw dTsKLQkJCWlmIChsYXN0X2NwdSkKLQkJCQlsYXN0X2NwdS0+bmV4dCA9IGNwdTsKLQkJCWxhc3Rf Y3B1ID0gY3B1OwotCQl9Ci0JCWxhc3RfY3B1LT5uZXh0ID0gZmlyc3RfY3B1OwotCX0KLQotCWZp cnN0X2NwdSA9IGxhc3RfY3B1ID0gTlVMTDsKLQkvKiBTZXQgdXAgcGh5c2ljYWwgZ3JvdXBzICov Ci0JZm9yX2VhY2hfY3B1KGkpIHsKLQkJc3RydWN0IHNjaGVkX2RvbWFpbiAqY3B1X2RvbWFpbiA9 IGNwdV9zY2hlZF9kb21haW4oaSk7Ci0JCXN0cnVjdCBzY2hlZF9ncm91cCAqY3B1ID0gJnNjaGVk X2dyb3VwX3BoeXNbaV07Ci0KLQkJaWYgKGkgIT0gZmlyc3RfY3B1KGNwdV9kb21haW4tPnNwYW4p KQotCQkJY29udGludWU7Ci0KLQkJY3B1LT5jcHVtYXNrID0gY3B1X2RvbWFpbi0+c3BhbjsKLQkJ LyogU2VlIFNNVCtOVU1BIHNldHVwIGZvciBjb21tZW50ICovCi0JCWNwdS0+Y3B1X3Bvd2VyID0g U0NIRURfTE9BRF9TQ0FMRSArIFNDSEVEX0xPQURfU0NBTEUqKGNwdXNfd2VpZ2h0KGNwdS0+Y3B1 bWFzayktMSkgLyAxMDsKLQotCQlpZiAoIWZpcnN0X2NwdSkKLQkJCWZpcnN0X2NwdSA9IGNwdTsK LQkJaWYgKGxhc3RfY3B1KQotCQkJbGFzdF9jcHUtPm5leHQgPSBjcHU7Ci0JCWxhc3RfY3B1ID0g Y3B1OwotCX0KLQlsYXN0X2NwdS0+bmV4dCA9IGZpcnN0X2NwdTsKLQotCW1iKCk7Ci0JZm9yX2Vh Y2hfY3B1KGkpIHsKLQkJc3RydWN0IHNjaGVkX2RvbWFpbiAqY3B1X2RvbWFpbiA9IGNwdV9zY2hl ZF9kb21haW4oaSk7Ci0JCXN0cnVjdCBzY2hlZF9kb21haW4gKnBoeXNfZG9tYWluID0gJnBlcl9j cHUocGh5c19kb21haW5zLCBpKTsKLQkJc3RydWN0IHNjaGVkX2dyb3VwICpjcHVfZ3JvdXAgPSAm c2NoZWRfZ3JvdXBfY3B1c1tpXTsKLQkJc3RydWN0IHNjaGVkX2dyb3VwICpwaHlzX2dyb3VwID0g JnNjaGVkX2dyb3VwX3BoeXNbZmlyc3RfY3B1KGNwdV9kb21haW4tPnNwYW4pXTsKLQkJY3B1X2Rv bWFpbi0+cGFyZW50ID0gcGh5c19kb21haW47Ci0JCXBoeXNfZG9tYWluLT5ncm91cHMgPSBwaHlz X2dyb3VwOwotCQljcHVfZG9tYWluLT5ncm91cHMgPSBjcHVfZ3JvdXA7Ci0JfQotfQotI2VuZGlm IC8qIENPTkZJR19OVU1BICovCi0jZW5kaWYgLyogQ09ORklHX1NDSEVEX1NNVCAqLwogCiAvKiBU aGVzZSBhcmUgd3JhcHBlcnMgdG8gaW50ZXJmYWNlIHRvIHRoZSBuZXcgYm9vdCBwcm9jZXNzLiAg U29tZW9uZQogICAgd2hvIHVuZGVyc3RhbmRzIGFsbCB0aGlzIHN0dWZmIHNob3VsZCByZXdyaXRl IGl0IHByb3Blcmx5LiAtLVJSIDE1L0p1bC8wMiAqLwpkaWZmIC1OcnUgbGludXgtMi42LjQtcmMx L2FyY2gvaTM4Ni9rZXJuZWwvaW5pdF9zY2hlZF9kb21haW5zLmMgbGludXgtNjQvYXJjaC9pMzg2 L2tlcm5lbC9pbml0X3NjaGVkX2RvbWFpbnMuYwotLS0gbGludXgtMi42LjQtcmMxL2FyY2gvaTM4 Ni9rZXJuZWwvaW5pdF9zY2hlZF9kb21haW5zLmMJMTk2OS0xMi0zMSAxNjowMDowMC4wMDAwMDAw MDAgLTA4MDAKKysrIGxpbnV4LTY0L2FyY2gvaTM4Ni9rZXJuZWwvaW5pdF9zY2hlZF9kb21haW5z LmMJMjAwNC0wMy0wMSAxNzozNDoxMi4wMDAwMDAwMDAgLTA4MDAKQEAgLTAsMCArMSwyMTIgQEAK KyNpbmNsdWRlIDxsaW51eC9jb25maWcuaD4KKyNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgorI2lu Y2x1ZGUgPGxpbnV4L3NtcC5oPgorCisKKyNpZmRlZiBDT05GSUdfTlVNQQorc3RhdGljIHN0cnVj dCBzY2hlZF9ncm91cCBzY2hlZF9ncm91cF9jcHVzW05SX0NQVVNdOworc3RhdGljIHN0cnVjdCBz Y2hlZF9ncm91cCBzY2hlZF9ncm91cF9waHlzW05SX0NQVVNdOworc3RhdGljIHN0cnVjdCBzY2hl ZF9ncm91cCBzY2hlZF9ncm91cF9ub2Rlc1tNQVhfTlVNTk9ERVNdOworc3RhdGljIERFRklORV9Q RVJfQ1BVKHN0cnVjdCBzY2hlZF9kb21haW4sIHBoeXNfZG9tYWlucyk7CitzdGF0aWMgREVGSU5F X1BFUl9DUFUoc3RydWN0IHNjaGVkX2RvbWFpbiwgbm9kZV9kb21haW5zKTsKK19faW5pdCB2b2lk IGFyY2hfaW5pdF9zY2hlZF9kb21haW5zKHZvaWQpCit7CisJaW50IGk7CisJc3RydWN0IHNjaGVk X2dyb3VwICpmaXJzdF9jcHUgPSBOVUxMLCAqbGFzdF9jcHUgPSBOVUxMOworCisJLyogU2V0IHVw IGRvbWFpbnMgKi8KKwlmb3JfZWFjaF9jcHUoaSkgeworCQlzdHJ1Y3Qgc2NoZWRfZG9tYWluICpj cHVfZG9tYWluID0gY3B1X3NjaGVkX2RvbWFpbihpKTsKKwkJc3RydWN0IHNjaGVkX2RvbWFpbiAq cGh5c19kb21haW4gPSAmcGVyX2NwdShwaHlzX2RvbWFpbnMsIGkpOworCQlzdHJ1Y3Qgc2NoZWRf ZG9tYWluICpub2RlX2RvbWFpbiA9ICZwZXJfY3B1KG5vZGVfZG9tYWlucywgaSk7CisJCWludCBu b2RlID0gY3B1X3RvX25vZGUoaSk7CisJCWNwdW1hc2tfdCBub2RlbWFzayA9IG5vZGVfdG9fY3B1 bWFzayhub2RlKTsKKworCQkqY3B1X2RvbWFpbiA9IFNEX1NJQkxJTkdfSU5JVDsKKwkJY3B1X2Rv bWFpbi0+c3BhbiA9IGNwdV9zaWJsaW5nX21hcFtpXTsKKworCQkqcGh5c19kb21haW4gPSBTRF9D UFVfSU5JVDsKKwkJcGh5c19kb21haW4tPnNwYW4gPSBub2RlbWFzazsKKworCQkqbm9kZV9kb21h aW4gPSBTRF9OT0RFX0lOSVQ7CisJCW5vZGVfZG9tYWluLT5zcGFuID0gY3B1X3Bvc3NpYmxlX21h cDsKKwl9CisKKwkvKiBTZXQgdXAgQ1BVIChzaWJsaW5nKSBncm91cHMgKi8KKwlmb3JfZWFjaF9j cHUoaSkgeworCQlzdHJ1Y3Qgc2NoZWRfZG9tYWluICpjcHVfZG9tYWluID0gY3B1X3NjaGVkX2Rv bWFpbihpKTsKKwkJaW50IGo7CisJCWZpcnN0X2NwdSA9IGxhc3RfY3B1ID0gTlVMTDsKKworCQlp ZiAoaSAhPSBmaXJzdF9jcHUoY3B1X2RvbWFpbi0+c3BhbikpCisJCQljb250aW51ZTsKKworCQlm b3JfZWFjaF9jcHVfbWFzayhqLCBjcHVfZG9tYWluLT5zcGFuKSB7CisJCQlzdHJ1Y3Qgc2NoZWRf Z3JvdXAgKmNwdSA9ICZzY2hlZF9ncm91cF9jcHVzW2pdOworCisJCQljcHUtPmNwdW1hc2sgPSBD UFVfTUFTS19OT05FOworCQkJY3B1X3NldChqLCBjcHUtPmNwdW1hc2spOworCQkJY3B1LT5jcHVf cG93ZXIgPSBTQ0hFRF9MT0FEX1NDQUxFOworCisJCQlpZiAoIWZpcnN0X2NwdSkKKwkJCQlmaXJz dF9jcHUgPSBjcHU7CisJCQlpZiAobGFzdF9jcHUpCisJCQkJbGFzdF9jcHUtPm5leHQgPSBjcHU7 CisJCQlsYXN0X2NwdSA9IGNwdTsKKwkJfQorCQlsYXN0X2NwdS0+bmV4dCA9IGZpcnN0X2NwdTsK Kwl9CisKKwlmb3IgKGkgPSAwOyBpIDwgTUFYX05VTU5PREVTOyBpKyspIHsKKwkJaW50IGo7CisJ CWNwdW1hc2tfdCBub2RlbWFzazsKKwkJc3RydWN0IHNjaGVkX2dyb3VwICpub2RlID0gJnNjaGVk X2dyb3VwX25vZGVzW2ldOworCQljcHVzX2FuZChub2RlbWFzaywgbm9kZV90b19jcHVtYXNrKGkp LCBjcHVfcG9zc2libGVfbWFwKTsKKworCQlpZiAoY3B1c19lbXB0eShub2RlbWFzaykpCisJCQlj b250aW51ZTsKKworCQlmaXJzdF9jcHUgPSBsYXN0X2NwdSA9IE5VTEw7CisJCS8qIFNldCB1cCBw aHlzaWNhbCBncm91cHMgKi8KKwkJZm9yX2VhY2hfY3B1X21hc2soaiwgbm9kZW1hc2spIHsKKwkJ CXN0cnVjdCBzY2hlZF9kb21haW4gKmNwdV9kb21haW4gPSBjcHVfc2NoZWRfZG9tYWluKGopOwor CQkJc3RydWN0IHNjaGVkX2dyb3VwICpjcHUgPSAmc2NoZWRfZ3JvdXBfcGh5c1tqXTsKKworCQkJ aWYgKGogIT0gZmlyc3RfY3B1KGNwdV9kb21haW4tPnNwYW4pKQorCQkJCWNvbnRpbnVlOworCisJ CQljcHUtPmNwdW1hc2sgPSBjcHVfZG9tYWluLT5zcGFuOworCQkJLyoKKwkJCSAqIE1ha2UgZWFj aCBleHRyYSBzaWJsaW5nIGluY3JlYXNlIHBvd2VyIGJ5IDEwJSBvZgorCQkJICogdGhlIGJhc2lj IENQVS4gVGhpcyBpcyB2ZXJ5IGFyYml0cmFyeS4KKwkJCSAqLworCQkJY3B1LT5jcHVfcG93ZXIg PSBTQ0hFRF9MT0FEX1NDQUxFICsgU0NIRURfTE9BRF9TQ0FMRSooY3B1c193ZWlnaHQoY3B1LT5j cHVtYXNrKS0xKSAvIDEwOworCQkJbm9kZS0+Y3B1X3Bvd2VyICs9IGNwdS0+Y3B1X3Bvd2VyOwor CisJCQlpZiAoIWZpcnN0X2NwdSkKKwkJCQlmaXJzdF9jcHUgPSBjcHU7CisJCQlpZiAobGFzdF9j cHUpCisJCQkJbGFzdF9jcHUtPm5leHQgPSBjcHU7CisJCQlsYXN0X2NwdSA9IGNwdTsKKwkJfQor CQlsYXN0X2NwdS0+bmV4dCA9IGZpcnN0X2NwdTsKKwl9CisKKwkvKiBTZXQgdXAgbm9kZXMgKi8K KwlmaXJzdF9jcHUgPSBsYXN0X2NwdSA9IE5VTEw7CisJZm9yIChpID0gMDsgaSA8IE1BWF9OVU1O T0RFUzsgaSsrKSB7CisJCXN0cnVjdCBzY2hlZF9ncm91cCAqY3B1ID0gJnNjaGVkX2dyb3VwX25v ZGVzW2ldOworCQljcHVtYXNrX3Qgbm9kZW1hc2s7CisJCWNwdXNfYW5kKG5vZGVtYXNrLCBub2Rl X3RvX2NwdW1hc2soaSksIGNwdV9wb3NzaWJsZV9tYXApOworCisJCWlmIChjcHVzX2VtcHR5KG5v ZGVtYXNrKSkKKwkJCWNvbnRpbnVlOworCisJCWNwdS0+Y3B1bWFzayA9IG5vZGVtYXNrOworCQkv KiAtPmNwdV9wb3dlciBhbHJlYWR5IHNldHVwICovCisKKwkJaWYgKCFmaXJzdF9jcHUpCisJCQlm aXJzdF9jcHUgPSBjcHU7CisJCWlmIChsYXN0X2NwdSkKKwkJCWxhc3RfY3B1LT5uZXh0ID0gY3B1 OworCQlsYXN0X2NwdSA9IGNwdTsKKwl9CisJbGFzdF9jcHUtPm5leHQgPSBmaXJzdF9jcHU7CisK KwltYigpOworCWZvcl9lYWNoX2NwdShpKSB7CisJCWludCBub2RlID0gY3B1X3RvX25vZGUoaSk7 CisJCXN0cnVjdCBzY2hlZF9kb21haW4gKmNwdV9kb21haW4gPSBjcHVfc2NoZWRfZG9tYWluKGkp OworCQlzdHJ1Y3Qgc2NoZWRfZG9tYWluICpwaHlzX2RvbWFpbiA9ICZwZXJfY3B1KHBoeXNfZG9t YWlucywgaSk7CisJCXN0cnVjdCBzY2hlZF9kb21haW4gKm5vZGVfZG9tYWluID0gJnBlcl9jcHUo bm9kZV9kb21haW5zLCBpKTsKKwkJc3RydWN0IHNjaGVkX2dyb3VwICpjcHVfZ3JvdXAgPSAmc2No ZWRfZ3JvdXBfY3B1c1tpXTsKKwkJc3RydWN0IHNjaGVkX2dyb3VwICpwaHlzX2dyb3VwID0gJnNj aGVkX2dyb3VwX3BoeXNbZmlyc3RfY3B1KGNwdV9kb21haW4tPnNwYW4pXTsKKwkJc3RydWN0IHNj aGVkX2dyb3VwICpub2RlX2dyb3VwID0gJnNjaGVkX2dyb3VwX25vZGVzW25vZGVdOworCisJCWNw dV9kb21haW4tPnBhcmVudCA9IHBoeXNfZG9tYWluOworCQlwaHlzX2RvbWFpbi0+cGFyZW50ID0g bm9kZV9kb21haW47CisKKwkJbm9kZV9kb21haW4tPmdyb3VwcyA9IG5vZGVfZ3JvdXA7CisJCXBo eXNfZG9tYWluLT5ncm91cHMgPSBwaHlzX2dyb3VwOworCQljcHVfZG9tYWluLT5ncm91cHMgPSBj cHVfZ3JvdXA7CisJfQorfQorI2Vsc2UgLyogQ09ORklHX05VTUEgKi8KK3N0YXRpYyBzdHJ1Y3Qg c2NoZWRfZ3JvdXAgc2NoZWRfZ3JvdXBfY3B1c1tOUl9DUFVTXTsKK3N0YXRpYyBzdHJ1Y3Qgc2No ZWRfZ3JvdXAgc2NoZWRfZ3JvdXBfcGh5c1tOUl9DUFVTXTsKK3N0YXRpYyBERUZJTkVfUEVSX0NQ VShzdHJ1Y3Qgc2NoZWRfZG9tYWluLCBwaHlzX2RvbWFpbnMpOworX19pbml0IHZvaWQgYXJjaF9p bml0X3NjaGVkX2RvbWFpbnModm9pZCkKK3sKKwlpbnQgaTsKKwlzdHJ1Y3Qgc2NoZWRfZ3JvdXAg KmZpcnN0X2NwdSA9IE5VTEwsICpsYXN0X2NwdSA9IE5VTEw7CisKKwkvKiBTZXQgdXAgZG9tYWlu cyAqLworCWZvcl9lYWNoX2NwdShpKSB7CisJCXN0cnVjdCBzY2hlZF9kb21haW4gKmNwdV9kb21h aW4gPSBjcHVfc2NoZWRfZG9tYWluKGkpOworCQlzdHJ1Y3Qgc2NoZWRfZG9tYWluICpwaHlzX2Rv bWFpbiA9ICZwZXJfY3B1KHBoeXNfZG9tYWlucywgaSk7CisKKwkJKmNwdV9kb21haW4gPSBTRF9T SUJMSU5HX0lOSVQ7CisJCWNwdV9kb21haW4tPnNwYW4gPSBjcHVfc2libGluZ19tYXBbaV07CisK KwkJKnBoeXNfZG9tYWluID0gU0RfQ1BVX0lOSVQ7CisJCXBoeXNfZG9tYWluLT5zcGFuID0gY3B1 X3Bvc3NpYmxlX21hcDsKKwl9CisKKwkvKiBTZXQgdXAgQ1BVIChzaWJsaW5nKSBncm91cHMgKi8K Kwlmb3JfZWFjaF9jcHUoaSkgeworCQlzdHJ1Y3Qgc2NoZWRfZG9tYWluICpjcHVfZG9tYWluID0g Y3B1X3NjaGVkX2RvbWFpbihpKTsKKwkJaW50IGo7CisJCWZpcnN0X2NwdSA9IGxhc3RfY3B1ID0g TlVMTDsKKworCQlpZiAoaSAhPSBmaXJzdF9jcHUoY3B1X2RvbWFpbi0+c3BhbikpCisJCQljb250 aW51ZTsKKworCQlmb3JfZWFjaF9jcHVfbWFzayhqLCBjcHVfZG9tYWluLT5zcGFuKSB7CisJCQlz dHJ1Y3Qgc2NoZWRfZ3JvdXAgKmNwdSA9ICZzY2hlZF9ncm91cF9jcHVzW2pdOworCisJCQljcHVz X2NsZWFyKGNwdS0+Y3B1bWFzayk7CisJCQljcHVfc2V0KGosIGNwdS0+Y3B1bWFzayk7CisJCQlj cHUtPmNwdV9wb3dlciA9IFNDSEVEX0xPQURfU0NBTEU7CisKKwkJCWlmICghZmlyc3RfY3B1KQor CQkJCWZpcnN0X2NwdSA9IGNwdTsKKwkJCWlmIChsYXN0X2NwdSkKKwkJCQlsYXN0X2NwdS0+bmV4 dCA9IGNwdTsKKwkJCWxhc3RfY3B1ID0gY3B1OworCQl9CisJCWxhc3RfY3B1LT5uZXh0ID0gZmly c3RfY3B1OworCX0KKworCWZpcnN0X2NwdSA9IGxhc3RfY3B1ID0gTlVMTDsKKwkvKiBTZXQgdXAg cGh5c2ljYWwgZ3JvdXBzICovCisJZm9yX2VhY2hfY3B1KGkpIHsKKwkJc3RydWN0IHNjaGVkX2Rv bWFpbiAqY3B1X2RvbWFpbiA9IGNwdV9zY2hlZF9kb21haW4oaSk7CisJCXN0cnVjdCBzY2hlZF9n cm91cCAqY3B1ID0gJnNjaGVkX2dyb3VwX3BoeXNbaV07CisKKwkJaWYgKGkgIT0gZmlyc3RfY3B1 KGNwdV9kb21haW4tPnNwYW4pKQorCQkJY29udGludWU7CisKKwkJY3B1LT5jcHVtYXNrID0gY3B1 X2RvbWFpbi0+c3BhbjsKKwkJLyogU2VlIFNNVCtOVU1BIHNldHVwIGZvciBjb21tZW50ICovCisJ CWNwdS0+Y3B1X3Bvd2VyID0gU0NIRURfTE9BRF9TQ0FMRSArIFNDSEVEX0xPQURfU0NBTEUqKGNw dXNfd2VpZ2h0KGNwdS0+Y3B1bWFzayktMSkgLyAxMDsKKworCQlpZiAoIWZpcnN0X2NwdSkKKwkJ CWZpcnN0X2NwdSA9IGNwdTsKKwkJaWYgKGxhc3RfY3B1KQorCQkJbGFzdF9jcHUtPm5leHQgPSBj cHU7CisJCWxhc3RfY3B1ID0gY3B1OworCX0KKwlsYXN0X2NwdS0+bmV4dCA9IGZpcnN0X2NwdTsK KworCW1iKCk7CisJZm9yX2VhY2hfY3B1KGkpIHsKKwkJc3RydWN0IHNjaGVkX2RvbWFpbiAqY3B1 X2RvbWFpbiA9IGNwdV9zY2hlZF9kb21haW4oaSk7CisJCXN0cnVjdCBzY2hlZF9kb21haW4gKnBo eXNfZG9tYWluID0gJnBlcl9jcHUocGh5c19kb21haW5zLCBpKTsKKwkJc3RydWN0IHNjaGVkX2dy b3VwICpjcHVfZ3JvdXAgPSAmc2NoZWRfZ3JvdXBfY3B1c1tpXTsKKwkJc3RydWN0IHNjaGVkX2dy b3VwICpwaHlzX2dyb3VwID0gJnNjaGVkX2dyb3VwX3BoeXNbZmlyc3RfY3B1KGNwdV9kb21haW4t PnNwYW4pXTsKKwkJY3B1X2RvbWFpbi0+cGFyZW50ID0gcGh5c19kb21haW47CisJCXBoeXNfZG9t YWluLT5ncm91cHMgPSBwaHlzX2dyb3VwOworCQljcHVfZG9tYWluLT5ncm91cHMgPSBjcHVfZ3Jv dXA7CisJfQorfQorI2VuZGlmIC8qIENPTkZJR19OVU1BICovCmRpZmYgLU5ydSBsaW51eC0yLjYu NC1yYzEvYXJjaC94ODZfNjQvS2NvbmZpZyBsaW51eC02NC9hcmNoL3g4Nl82NC9LY29uZmlnCi0t LSBsaW51eC0yLjYuNC1yYzEvYXJjaC94ODZfNjQvS2NvbmZpZwkyMDA0LTAzLTAyIDA5OjQ1OjQ0 LjA1NTA0MjU3NiAtMDgwMAorKysgbGludXgtNjQvYXJjaC94ODZfNjQvS2NvbmZpZwkyMDA0LTAz LTAxIDE3OjM0OjEyLjAwMDAwMDAwMCAtMDgwMApAQCAtMjIyLDYgKzIyMiwxNiBAQAogCiAJICBJ ZiB5b3UgZG9uJ3Qga25vdyB3aGF0IHRvIGRvIGhlcmUsIHNheSBOLgogCitjb25maWcgU0NIRURf U01UCisJYm9vbCAiU01UIChIeXBlcnRocmVhZGluZykgc2NoZWR1bGVyIHN1cHBvcnQiCisJZGVw ZW5kcyBvbiBTTVAKKwlkZWZhdWx0IG9mZgorCWhlbHAKKwkgIFNNVCBzY2hlZHVsZXIgc3VwcG9y dCBpbXByb3ZlcyB0aGUgQ1BVIHNjaGVkdWxlcidzIGRlY2lzaW9uIG1ha2luZworCSAgd2hlbiBk ZWFsaW5nIHdpdGggSW50ZWwgUGVudGl1bSA0IGNoaXBzIHdpdGggSHlwZXJUaHJlYWRpbmcgYXQg YQorCSAgY29zdCBvZiBzbGlnaHRseSBpbmNyZWFzZWQgb3ZlcmhlYWQgaW4gc29tZSBwbGFjZXMu IElmIHVuc3VyZSBzYXkKKwkgIE4gaGVyZS4KKwogY29uZmlnIFBSRUVNUFQKIAlib29sICJQcmVl bXB0aWJsZSBLZXJuZWwiCiAJLS0taGVscC0tLQpkaWZmIC1OcnUgbGludXgtMi42LjQtcmMxL2Fy Y2gveDg2XzY0L2tlcm5lbC9NYWtlZmlsZSBsaW51eC02NC9hcmNoL3g4Nl82NC9rZXJuZWwvTWFr ZWZpbGUKLS0tIGxpbnV4LTIuNi40LXJjMS9hcmNoL3g4Nl82NC9rZXJuZWwvTWFrZWZpbGUJMjAw NC0wMy0wMiAwOTo0NTo0NC4xMTEwMzQwNjQgLTA4MDAKKysrIGxpbnV4LTY0L2FyY2gveDg2XzY0 L2tlcm5lbC9NYWtlZmlsZQkyMDA0LTAzLTAxIDE3OjM0OjM0LjAwMDAwMDAwMCAtMDgwMApAQCAt MjUsNiArMjUsNyBAQAogb2JqLSQoQ09ORklHX0dBUlRfSU9NTVUpCSs9IHBjaS1nYXJ0Lm8gYXBl cnR1cmUubwogb2JqLSQoQ09ORklHX0RVTU1ZX0lPTU1VKQkrPSBwY2ktbm9tbXUubyBwY2ktZG1h Lm8KIG9iai0kKENPTkZJR19TV0lPVExCKQkJKz0gc3dpb3RsYi5vCitvYmotJChDT05GSUdfU0NI RURfU01UKQkJKz0gaW5pdF9zY2hlZF9kb21haW5zLm8KIAogb2JqLSQoQ09ORklHX01PRFVMRVMp CQkrPSBtb2R1bGUubwogb2JqLSQoQ09ORklHX0tHREIpCQkrPSBrZ2RiX3N0dWIubwpAQCAtMzYs MyArMzcsNCBAQAogdG9wb2xvZ3kteSAgICAgICAgICAgICAgICAgICAgICs9IC4uLy4uL2kzODYv bWFjaC1kZWZhdWx0L3RvcG9sb2d5Lm8KIHN3aW90bGItJChDT05GSUdfU1dJT1RMQikgICAgICAr PSAuLi8uLi9pYTY0L2xpYi9zd2lvdGxiLm8KIG1pY3JvY29kZS0kKHN1YnN0IG0seSwkKENPTkZJ R19NSUNST0NPREUpKSAgKz0gLi4vLi4vaTM4Ni9rZXJuZWwvbWljcm9jb2RlLm8KK2luaXRfc2No ZWRfZG9tYWlucy0kKENPTkZJR19TQ0hFRF9TTVQpICAgICAgICAgICAgICAgICs9IC4uLy4uL2kz ODYva2VybmVsL2luaXRfc2NoZWRfZG9tYWlucy5vCmRpZmYgLU5ydSBsaW51eC0yLjYuNC1yYzEv YXJjaC94ODZfNjQva2VybmVsL3NtcGJvb3QuYyBsaW51eC02NC9hcmNoL3g4Nl82NC9rZXJuZWwv c21wYm9vdC5jCi0tLSBsaW51eC0yLjYuNC1yYzEvYXJjaC94ODZfNjQva2VybmVsL3NtcGJvb3Qu YwkyMDA0LTAzLTAyIDA5OjQ1OjU3LjI3NDAzMjk4NCAtMDgwMAorKysgbGludXgtNjQvYXJjaC94 ODZfNjQva2VybmVsL3NtcGJvb3QuYwkyMDA0LTAzLTAxIDE3OjM5OjE5LjAwMDAwMDAwMCAtMDgw MApAQCAtNzUsNyArNzUsNyBAQAogLyogU2V0IHdoZW4gdGhlIGlkbGVycyBhcmUgYWxsIGZvcmtl ZCAqLwogaW50IHNtcF90aHJlYWRzX3JlYWR5OwogCi1pbnQgY3B1X3NpYmxpbmdfbWFwW05SX0NQ VVNdIF9fY2FjaGVsaW5lX2FsaWduZWQ7CitjcHVtYXNrX3QgY3B1X3NpYmxpbmdfbWFwW05SX0NQ VVNdIF9fY2FjaGVsaW5lX2FsaWduZWQ7CiAKIC8qCiAgKiBUcmFtcG9saW5lIDgweDg2IHByb2dy YW0gYXMgYW4gYXJyYXkuCkBAIC04NzIsMzUgKzg3MiwzOCBAQAogCQlEcHJpbnRrKCJCZWZvcmUg Ym9nb2NvdW50IC0gc2V0dGluZyBhY3RpdmF0ZWQ9MS5cbiIpOwogCX0KIAorCURwcmludGsoIkJv b3QgZG9uZS5cbiIpOworCiAJLyoKLQkgKiBJZiBIeXBlci1UaHJlYWRpbmcgaXMgYXZhaWFsYmxl LCBjb25zdHJ1Y3QgY3B1X3NpYmxpbmdfbWFwW10sIHNvCi0JICogdGhhdCB3ZSBjYW4gdGVsbCB0 aGUgc2libGluZyBDUFUgZWZmaWNpZW50bHkuCisJICogY29uc3RydWN0IGNwdV9zaWJsaW5nX21h cFtdLCBzbyB0aGF0IHdlIGNhbiB0ZWxsIHNpYmxpbmcgQ1BVcworCSAqIGVmZmljaWVudGx5Lgog CSAqLwotCWlmIChjcHVfaGFzX2h0ICYmIHNtcF9udW1fc2libGluZ3MgPiAxKSB7Ci0JCWZvciAo Y3B1ID0gMDsgY3B1IDwgTlJfQ1BVUzsgY3B1KyspCi0JCQljcHVfc2libGluZ19tYXBbY3B1XSA9 IE5PX1BST0NfSUQ7Ci0JCQotCQlmb3IgKGNwdSA9IDA7IGNwdSA8IE5SX0NQVVM7IGNwdSsrKSB7 Ci0JCQlpbnQgCWk7Ci0JCQlpZiAoIWNwdV9pc3NldChjcHUsIGNwdV9jYWxsb3V0X21hcCkpCi0J CQkJY29udGludWU7CisJZm9yIChjcHUgPSAwOyBjcHUgPCBOUl9DUFVTOyBjcHUrKykKKwkJY3B1 c19jbGVhcihjcHVfc2libGluZ19tYXBbY3B1XSk7CisKKwlmb3IgKGNwdSA9IDA7IGNwdSA8IE5S X0NQVVM7IGNwdSsrKSB7CisJCWludCBzaWJsaW5ncyA9IDA7CisJCWludCBpOworCQlpZiAoIWNw dV9pc3NldChjcHUsIGNwdV9jYWxsb3V0X21hcCkpCisJCQljb250aW51ZTsKIAorCQlpZiAoc21w X251bV9zaWJsaW5ncyA+IDEpIHsKIAkJCWZvciAoaSA9IDA7IGkgPCBOUl9DUFVTOyBpKyspIHsK LQkJCQlpZiAoaSA9PSBjcHUgfHwgIWNwdV9pc3NldChpLCBjcHVfY2FsbG91dF9tYXApKQorCQkJ CWlmICghY3B1X2lzc2V0KGksIGNwdV9jYWxsb3V0X21hcCkpCiAJCQkJCWNvbnRpbnVlOwogCQkJ CWlmIChwaHlzX3Byb2NfaWRbY3B1XSA9PSBwaHlzX3Byb2NfaWRbaV0pIHsKLQkJCQkJY3B1X3Np YmxpbmdfbWFwW2NwdV0gPSBpOwotCQkJCQlicmVhazsKKwkJCQkJc2libGluZ3MrKzsKKwkJCQkJ Y3B1X3NldChpLCBjcHVfc2libGluZ19tYXBbY3B1XSk7CiAJCQkJfQogCQkJfQotCQkJaWYgKGNw dV9zaWJsaW5nX21hcFtjcHVdID09IE5PX1BST0NfSUQpIHsKLQkJCQlzbXBfbnVtX3NpYmxpbmdz ID0gMTsKLQkJCQlwcmludGsoS0VSTl9XQVJOSU5HICJXQVJOSU5HOiBObyBzaWJsaW5nIGZvdW5k IGZvciBDUFUgJWQuXG4iLCBjcHUpOwotCQkJfQorCQl9IGVsc2UgeworCQkJc2libGluZ3MrKzsK KwkJCWNwdV9zZXQoY3B1LCBjcHVfc2libGluZ19tYXBbY3B1XSk7CiAJCX0KLQl9CiAKLQlEcHJp bnRrKCJCb290IGRvbmUuXG4iKTsKKwkJaWYgKHNpYmxpbmdzICE9IHNtcF9udW1fc2libGluZ3Mp CisJCQlwcmludGsoS0VSTl9XQVJOSU5HICJXQVJOSU5HOiAlZCBzaWJsaW5ncyBmb3VuZCBmb3Ig Q1BVJWQsIHNob3VsZCBiZSAlZFxuIiwgc2libGluZ3MsIGNwdSwgc21wX251bV9zaWJsaW5ncyk7 CisJfQogCiAJLyoKIAkgKiBIZXJlIHdlIGNhbiBiZSBzdXJlIHRoYXQgdGhlcmUgaXMgYW4gSU8t QVBJQyBpbiB0aGUgc3lzdGVtLiBMZXQncwpkaWZmIC1OcnUgbGludXgtMi42LjQtcmMxL2luY2x1 ZGUvYXNtLXg4Nl82NC9wcm9jZXNzb3IuaCBsaW51eC02NC9pbmNsdWRlL2FzbS14ODZfNjQvcHJv Y2Vzc29yLmgKLS0tIGxpbnV4LTIuNi40LXJjMS9pbmNsdWRlL2FzbS14ODZfNjQvcHJvY2Vzc29y LmgJMjAwNC0wMy0wMiAwOTo0NTo1MC4xOTAxMDk5MDQgLTA4MDAKKysrIGxpbnV4LTY0L2luY2x1 ZGUvYXNtLXg4Nl82NC9wcm9jZXNzb3IuaAkyMDA0LTAzLTAxIDE3OjM0OjEyLjAwMDAwMDAwMCAt MDgwMApAQCAtNDUxLDQgKzQ1MSwxMCBAQAogCXRpLT50YXNrOwkJCQkJXAogfSkKIAorCisjaWZk ZWYgQ09ORklHX1NDSEVEX1NNVAorI2RlZmluZSBBUkNIX0hBU19TQ0hFRF9ET01BSU4KKyNkZWZp bmUgQVJDSF9IQVNfU0NIRURfV0FLRV9CQUxBTkNFCisjZW5kaWYKKwogI2VuZGlmIC8qIF9fQVNN X1g4Nl82NF9QUk9DRVNTT1JfSCAqLwpkaWZmIC1OcnUgbGludXgtMi42LjQtcmMxL2luY2x1ZGUv YXNtLXg4Nl82NC9zbXAuaCBsaW51eC02NC9pbmNsdWRlL2FzbS14ODZfNjQvc21wLmgKLS0tIGxp bnV4LTIuNi40LXJjMS9pbmNsdWRlL2FzbS14ODZfNjQvc21wLmgJMjAwNC0wMy0wMiAwOTo0NTo1 Ny4yODQwMzE0NjQgLTA4MDAKKysrIGxpbnV4LTY0L2luY2x1ZGUvYXNtLXg4Nl82NC9zbXAuaAky MDA0LTAzLTAxIDE3OjM5OjQzLjAwMDAwMDAwMCAtMDgwMApAQCAtNDcsNyArNDcsNyBAQAogZXh0 ZXJuIHZvaWQgKCptdHJyX2hvb2spICh2b2lkKTsKIGV4dGVybiB2b2lkIHphcF9sb3dfbWFwcGlu Z3Modm9pZCk7CiB2b2lkIHNtcF9zdG9wX2NwdSh2b2lkKTsKLWV4dGVybiBpbnQgY3B1X3NpYmxp bmdfbWFwW107CitleHRlcm4gY3B1bWFza190IGNwdV9zaWJsaW5nX21hcFtdOwogCiAjZGVmaW5l IFNNUF9UUkFNUE9MSU5FX0JBU0UgMHg2MDAwCiAK ------_=_NextPart_001_01C42277.04586110-- - 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/