From mboxrd@z Thu Jan 1 00:00:00 1970 From: "David S. Miller" Subject: Re: bad TSO performance in 2.6.9-rc2-BK Date: Tue, 28 Sep 2004 14:53:45 -0700 Sender: netdev-bounce@oss.sgi.com Message-ID: <20040928145345.2530d30e.davem@davemloft.net> References: <20040923164149.5368d291.davem@davemloft.net> <20040927025048.GA6723@gondor.apana.org.au> <20040926210029.22750d47.davem@davemloft.net> <20040927054541.GA8858@gondor.apana.org.au> <20040927120154.09fdcadf.davem@davemloft.net> <20040927213233.GC7243@gondor.apana.org.au> <20040928141002.164c60af.davem@davemloft.net> <20040928213415.GA4646@wotan.suse.de> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart=_Tue__28_Sep_2004_14_53_45_-0700_2eQioA_ZEUtD7SAt" Cc: herbert@gondor.apana.org.au, ak@suse.de, niv@us.ibm.com, andy.grover@gmail.com, anton@samba.org, netdev@oss.sgi.com Return-path: To: Andi Kleen In-Reply-To: <20040928213415.GA4646@wotan.suse.de> Errors-to: netdev-bounce@oss.sgi.com List-Id: netdev.vger.kernel.org This is a multi-part message in MIME format. --Multipart=_Tue__28_Sep_2004_14_53_45_-0700_2eQioA_ZEUtD7SAt Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Tue, 28 Sep 2004 23:34:15 +0200 Andi Kleen wrote: > I admit I lost track of all your patches now - can you give me a big > diff against the latest BK so that I can check that the problem > is gone for me too? Here are all of the pending TCP bug fixes, attached in order. I'll be pushing these to Linus some time today. --Multipart=_Tue__28_Sep_2004_14_53_45_-0700_2eQioA_ZEUtD7SAt Content-Type: application/octet-stream; name="diff1" Content-Disposition: attachment; filename="diff1" Content-Transfer-Encoding: base64 IyBUaGlzIGlzIGEgQml0S2VlcGVyIGdlbmVyYXRlZCBkaWZmIC1OcnUgc3R5bGUgcGF0Y2guCiMK IyBDaGFuZ2VTZXQKIyAgIDIwMDQvMDkvMjcgMjE6NTA6MTEtMDc6MDAgZGF2ZW1AbnV0cy5kYXZl bWxvZnQubmV0IAojICAgW1RDUF06IEZpeCBjb25nZXN0aW9uIHdpbmRvdyBleHBhbnNpb24gd2hl biB1c2luZyBUU08uCiMgICAKIyAgIFdlIG9ubHkgZG8gY29uZ2VzdGlvbiB3aW5kb3cgZXhwYW5z aW9uIG9uIGZ1bGwgcGFja2V0CiMgICBBQ0tzLiAgV2Ugc2hvdWxkIGRvIGl0IGZvciBBQ0tzIG9m IHN1Yi1wYWNrZXRzIG9mIGEKIyAgIFRTTyBmcmFtZSBhcyB3ZWxsLgojICAgCiMgICBTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+CiMgCiMgbmV0L2lw djQvdGNwX291dHB1dC5jCiMgICAyMDA0LzA5LzI3IDIxOjQ4OjU5LTA3OjAwIGRhdmVtQG51dHMu ZGF2ZW1sb2Z0Lm5ldCArMzUgLTIKIyAgIFtUQ1BdOiBGaXggY29uZ2VzdGlvbiB3aW5kb3cgZXhw YW5zaW9uIHdoZW4gdXNpbmcgVFNPLgojIAojIG5ldC9pcHY0L3RjcF9pbnB1dC5jCiMgICAyMDA0 LzA5LzI3IDIxOjQ4OjU5LTA3OjAwIGRhdmVtQG51dHMuZGF2ZW1sb2Z0Lm5ldCArODUgLTEKIyAg IFtUQ1BdOiBGaXggY29uZ2VzdGlvbiB3aW5kb3cgZXhwYW5zaW9uIHdoZW4gdXNpbmcgVFNPLgoj IAojIGluY2x1ZGUvbmV0L3RjcC5oCiMgICAyMDA0LzA5LzI3IDIxOjQ4OjU5LTA3OjAwIGRhdmVt QG51dHMuZGF2ZW1sb2Z0Lm5ldCArMiAtMQojICAgW1RDUF06IEZpeCBjb25nZXN0aW9uIHdpbmRv dyBleHBhbnNpb24gd2hlbiB1c2luZyBUU08uCiMgCmRpZmYgLU5ydSBhL2luY2x1ZGUvbmV0L3Rj cC5oIGIvaW5jbHVkZS9uZXQvdGNwLmgKLS0tIGEvaW5jbHVkZS9uZXQvdGNwLmgJMjAwNC0wOS0y OCAxNDozMDoyOCAtMDc6MDAKKysrIGIvaW5jbHVkZS9uZXQvdGNwLmgJMjAwNC0wOS0yOCAxNDoz MDoyOCAtMDc6MDAKQEAgLTExODAsNyArMTE4MCw4IEBACiAKIAlfX3UxNgkJdXJnX3B0cjsJLyog VmFsaWQgdy9VUkcgZmxhZ3MgaXMgc2V0LgkqLwogCV9fdTMyCQlhY2tfc2VxOwkvKiBTZXF1ZW5j ZSBudW1iZXIgQUNLJ2QJKi8KLQlfX3UzMgkJdHNvX2ZhY3RvcjsKKwlfX3UxNgkJdHNvX2ZhY3Rv cjsJLyogSWYgPiAxLCBUU08gZnJhbWUJCSovCisJX191MTYJCXRzb19tc3M7CS8qIE1TUyB0aGF0 IEZBQ1RPUidzIGluIHRlcm1zIG9mKi8KIH07CiAKICNkZWZpbmUgVENQX1NLQl9DQihfX3NrYikJ KChzdHJ1Y3QgdGNwX3NrYl9jYiAqKSYoKF9fc2tiKS0+Y2JbMF0pKQpkaWZmIC1OcnUgYS9uZXQv aXB2NC90Y3BfaW5wdXQuYyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jCi0tLSBhL25ldC9pcHY0L3Rj cF9pbnB1dC5jCTIwMDQtMDktMjggMTQ6MzA6MjggLTA3OjAwCisrKyBiL25ldC9pcHY0L3RjcF9p bnB1dC5jCTIwMDQtMDktMjggMTQ6MzA6MjggLTA3OjAwCkBAIC0yMzU1LDYgKzIzNTUsODYgQEAK IAl9CiB9CiAKKy8qIFRoZXJlIGlzIG9uZSBkb3duc2lkZSB0byB0aGlzIHNjaGVtZS4gIEFsdGhv dWdoIHdlIGtlZXAgdGhlCisgKiBBQ0sgY2xvY2sgdGlja2luZywgYWRqdXN0aW5nIHBhY2tldCBj b3VudGVycyBhbmQgYWR2YW5jaW5nCisgKiBjb25nZXN0aW9uIHdpbmRvdywgd2UgZG8gbm90IGxp YmVyYXRlIHNvY2tldCBzZW5kIGJ1ZmZlcgorICogc3BhY2UuCisgKgorICogTXVja2luZyB3aXRo IHNrYi0+dHJ1ZXNpemUgYW5kIHNrLT5za193bWVtX2FsbG9jIGV0IGFsLgorICogdGhlbiBtYWtp bmcgYSB3cml0ZSBzcGFjZSB3YWtldXAgY2FsbGJhY2sgaXMgYSBwb3NzaWJsZQorICogZnV0dXJl IGVuaGFuY2VtZW50LiAgV0FSTklORzogaXQgaXMgbm90IHRyaXZpYWwgdG8gbWFrZS4KKyAqLwor c3RhdGljIGludCB0Y3BfdHNvX2Fja2VkKHN0cnVjdCB0Y3Bfb3B0ICp0cCwgc3RydWN0IHNrX2J1 ZmYgKnNrYiwKKwkJCSBfX3UzMiBub3csIF9fczMyICpzZXFfcnR0KQoreworCXN0cnVjdCB0Y3Bf c2tiX2NiICpzY2IgPSBUQ1BfU0tCX0NCKHNrYik7IAorCV9fdTMyIG1zcyA9IHNjYi0+dHNvX21z czsKKwlfX3UzMiBzbmRfdW5hID0gdHAtPnNuZF91bmE7CisJX191MzIgc2VxID0gc2NiLT5zZXE7 CisJX191MzIgcGFja2V0c19hY2tlZCA9IDA7CisJaW50IGFja2VkID0gMDsKKworCS8qIElmIHdl IGdldCBoZXJlLCB0aGUgd2hvbGUgVFNPIHBhY2tldCBoYXMgbm90IGJlZW4KKwkgKiBhY2tlZC4K KwkgKi8KKwlCVUdfT04oIWFmdGVyKHNjYi0+ZW5kX3NlcSwgc25kX3VuYSkpOworCisJd2hpbGUg KCFhZnRlcihzZXEgKyBtc3MsIHNuZF91bmEpKSB7CisJCXBhY2tldHNfYWNrZWQrKzsKKwkJc2Vx ICs9IG1zczsKKwl9CisKKwlpZiAocGFja2V0c19hY2tlZCkgeworCQlfX3U4IHNhY2tlZCA9IHNj Yi0+c2Fja2VkOworCisJCS8qIFdlIGFkanVzdCBzY2ItPnNlcSBidXQgd2UgZG8gbm90IHBza2Jf cHVsbCgpIHRoZQorCQkgKiBTS0IuICBXZSBsZXQgdGNwX3JldHJhbnNtaXRfc2tiKCkgaGFuZGxl IHRoaXMgY2FzZQorCQkgKiBieSBjaGVja2luZyBza2ItPmxlbiBhZ2FpbnN0IHRoZSBkYXRhIHNl cXVlbmNlIHNwYW4uCisJCSAqIFRoaXMgd2F5LCB3ZSBhdm9pZCB0aGUgcHNrYl9wdWxsKCkgd29y ayB1bmxlc3Mgd2UKKwkJICogYWN0dWFsbHkgbmVlZCB0byByZXRyYW5zbWl0IHRoZSBTS0IuCisJ CSAqLworCQlzY2ItPnNlcSA9IHNlcTsKKworCQlhY2tlZCB8PSBGTEFHX0RBVEFfQUNLRUQ7CisJ CWlmIChzYWNrZWQpIHsKKwkJCWlmIChzYWNrZWQgJiBUQ1BDQl9SRVRSQU5TKSB7CisJCQkJaWYg KHNhY2tlZCAmIFRDUENCX1NBQ0tFRF9SRVRSQU5TKQorCQkJCQl0Y3BfZGVjX3Bjb3VudF9leHBs aWNpdCgmdHAtPnJldHJhbnNfb3V0LAorCQkJCQkJCQlwYWNrZXRzX2Fja2VkKTsKKwkJCQlhY2tl ZCB8PSBGTEFHX1JFVFJBTlNfREFUQV9BQ0tFRDsKKwkJCQkqc2VxX3J0dCA9IC0xOworCQkJfSBl bHNlIGlmICgqc2VxX3J0dCA8IDApCisJCQkJKnNlcV9ydHQgPSBub3cgLSBzY2ItPndoZW47CisJ CQlpZiAoc2Fja2VkICYgVENQQ0JfU0FDS0VEX0FDS0VEKQorCQkJCXRjcF9kZWNfcGNvdW50X2V4 cGxpY2l0KCZ0cC0+c2Fja2VkX291dCwKKwkJCQkJCQlwYWNrZXRzX2Fja2VkKTsKKwkJCWlmIChz YWNrZWQgJiBUQ1BDQl9MT1NUKQorCQkJCXRjcF9kZWNfcGNvdW50X2V4cGxpY2l0KCZ0cC0+bG9z dF9vdXQsCisJCQkJCQkJcGFja2V0c19hY2tlZCk7CisJCQlpZiAoc2Fja2VkICYgVENQQ0JfVVJH KSB7CisJCQkJaWYgKHRwLT51cmdfbW9kZSAmJgorCQkJCSAgICAhYmVmb3JlKHNjYi0+c2VxLCB0 cC0+c25kX3VwKSkKKwkJCQkJdHAtPnVyZ19tb2RlID0gMDsKKwkJCX0KKwkJfSBlbHNlIGlmICgq c2VxX3J0dCA8IDApCisJCQkqc2VxX3J0dCA9IG5vdyAtIHNjYi0+d2hlbjsKKworCQlpZiAodGNw X2dldF9wY291bnQoJnRwLT5mYWNrZXRzX291dCkpIHsKKwkJCV9fdTMyIGR2YWwgPSBtaW4odGNw X2dldF9wY291bnQoJnRwLT5mYWNrZXRzX291dCksCisJCQkJCSBwYWNrZXRzX2Fja2VkKTsKKwkJ CXRjcF9kZWNfcGNvdW50X2V4cGxpY2l0KCZ0cC0+ZmFja2V0c19vdXQsIGR2YWwpOworCQl9CisJ CXRjcF9kZWNfcGNvdW50X2V4cGxpY2l0KCZ0cC0+cGFja2V0c19vdXQsIHBhY2tldHNfYWNrZWQp OworCQlzY2ItPnRzb19mYWN0b3IgLT0gcGFja2V0c19hY2tlZDsKKworCQlCVUdfT04oc2NiLT50 c29fZmFjdG9yID09IDApOworCQlCVUdfT04oIWJlZm9yZShzY2ItPnNlcSwgc2NiLT5lbmRfc2Vx KSk7CisJfQorCisJcmV0dXJuIGFja2VkOworfQorCisKIC8qIFJlbW92ZSBhY2tub3dsZWRnZWQg ZnJhbWVzIGZyb20gdGhlIHJldHJhbnNtaXNzaW9uIHF1ZXVlLiAqLwogc3RhdGljIGludCB0Y3Bf Y2xlYW5fcnR4X3F1ZXVlKHN0cnVjdCBzb2NrICpzaywgX19zMzIgKnNlcV9ydHRfcCkKIHsKQEAg LTIzNzMsOCArMjQ1MywxMiBAQAogCQkgKiBkaXNjYXJkIGl0IGFzIGl0J3MgY29uZmlybWVkIHRv IGhhdmUgYXJyaXZlZCBhdAogCQkgKiB0aGUgb3RoZXIgZW5kLgogCQkgKi8KLQkJaWYgKGFmdGVy KHNjYi0+ZW5kX3NlcSwgdHAtPnNuZF91bmEpKQorCQlpZiAoYWZ0ZXIoc2NiLT5lbmRfc2VxLCB0 cC0+c25kX3VuYSkpIHsKKwkJCWlmIChzY2ItPnRzb19mYWN0b3IgPiAxKQorCQkJCWFja2VkIHw9 IHRjcF90c29fYWNrZWQodHAsIHNrYiwKKwkJCQkJCSAgICAgICBub3csICZzZXFfcnR0KTsKIAkJ CWJyZWFrOworCQl9CiAKIAkJLyogSW5pdGlhbCBvdXRnb2luZyBTWU4ncyBnZXQgcHV0IG9udG8g dGhlIHdyaXRlX3F1ZXVlCiAJCSAqIGp1c3QgbGlrZSBhbnl0aGluZyBlbHNlIHdlIHRyYW5zbWl0 LiAgSXQgaXMgbm90CmRpZmYgLU5ydSBhL25ldC9pcHY0L3RjcF9vdXRwdXQuYyBiL25ldC9pcHY0 L3RjcF9vdXRwdXQuYwotLS0gYS9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMJMjAwNC0wOS0yOCAxNDoz MDoyOCAtMDc6MDAKKysrIGIvbmV0L2lwdjQvdGNwX291dHB1dC5jCTIwMDQtMDktMjggMTQ6MzA6 MjggLTA3OjAwCkBAIC00MzYsNiArNDM2LDcgQEAKIAkJZmFjdG9yIC89IG1zc19zdGQ7CiAJCVRD UF9TS0JfQ0Ioc2tiKS0+dHNvX2ZhY3RvciA9IGZhY3RvcjsKIAl9CisJVENQX1NLQl9DQihza2Ip LT50c29fbXNzID0gbXNzX3N0ZDsKIH0KIAogLyogRnVuY3Rpb24gdG8gY3JlYXRlIHR3byBuZXcg VENQIHNlZ21lbnRzLiAgU2hyaW5rcyB0aGUgZ2l2ZW4gc2VnbWVudApAQCAtNTUyLDcgKzU1Myw3 IEBACiAJcmV0dXJuIHNrYi0+dGFpbDsKIH0KIAotc3RhdGljIGludCB0Y3BfdHJpbV9oZWFkKHN0 cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIGxlbikKK3N0YXRpYyBpbnQg X190Y3BfdHJpbV9oZWFkKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMy IGxlbikKIHsKIAlpZiAoc2tiX2Nsb25lZChza2IpICYmCiAJICAgIHBza2JfZXhwYW5kX2hlYWQo c2tiLCAwLCAwLCBHRlBfQVRPTUlDKSkKQEAgLTU2NSwxMSArNTY2LDIwIEBACiAJCQlyZXR1cm4g LUVOT01FTTsKIAl9CiAKLQlUQ1BfU0tCX0NCKHNrYiktPnNlcSArPSBsZW47CiAJc2tiLT5pcF9z dW1tZWQgPSBDSEVDS1NVTV9IVzsKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGlubGluZSBpbnQg dGNwX3RyaW1faGVhZChzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsIHUzMiBs ZW4pCit7CisJaW50IGVyciA9IF9fdGNwX3RyaW1faGVhZChzaywgc2tiLCBsZW4pOworCisJaWYg KCFlcnIpCisJCVRDUF9TS0JfQ0Ioc2tiKS0+c2VxICs9IGxlbjsKKworCXJldHVybiBlcnI7Cit9 CisKIC8qIFRoaXMgZnVuY3Rpb24gc3luY2hyb25pemUgc25kIG1zcyB0byBjdXJyZW50IHBtdHUv ZXh0aGRyIHNldC4KIAogICAgdHAtPnVzZXJfbXNzIGlzIG1zcyBzZXQgYnkgdXNlciBieSBUQ1Bf TUFYU0VHLiBJdCBkb2VzIE5PVCBjb3VudHMKQEAgLTk0OSw2ICs5NTksNyBAQAogewogCXN0cnVj dCB0Y3Bfb3B0ICp0cCA9IHRjcF9zayhzayk7CiAgCXVuc2lnbmVkIGludCBjdXJfbXNzID0gdGNw X2N1cnJlbnRfbXNzKHNrLCAwKTsKKwlfX3UzMiBkYXRhX3NlcSwgZGF0YV9lbmRfc2VxOwogCWlu dCBlcnI7CiAKIAkvKiBEbyBub3Qgc2VudCBtb3JlIHRoYW4gd2UgcXVldWVkLiAxLzQgaXMgcmVz ZXJ2ZWQgZm9yIHBvc3NpYmxlCkBAIC05NTgsNiArOTY5LDIyIEBACiAJICAgIG1pbihzay0+c2tf d21lbV9xdWV1ZWQgKyAoc2stPnNrX3dtZW1fcXVldWVkID4+IDIpLCBzay0+c2tfc25kYnVmKSkK IAkJcmV0dXJuIC1FQUdBSU47CiAKKwkvKiBXaGF0IGlzIGdvaW5nIG9uIGhlcmU/ICBXaGVuIFRT TyBwYWNrZXRzIGFyZSBwYXJ0aWFsbHkgQUNLJ2QsCisJICogd2UgYWRqdXN0IHRoZSBUQ1BfU0tC X0NCKHNrYiktPnNlcSB2YWx1ZSBmb3J3YXJkIGJ1dCB3ZSBkbworCSAqIG5vdCBhZGp1c3QgdGhl IGRhdGEgYXJlYSBvZiB0aGUgU0tCLiAgV2UgZGVmZXIgdGhhdCB0byBoZXJlCisJICogc28gdGhh dCB3ZSBjYW4gYXZvaWQgdGhlIHdvcmsgdW5sZXNzIHdlIHJlYWxseSByZXRyYW5zbWl0CisJICog dGhlIHBhY2tldC4KKwkgKi8KKwlkYXRhX3NlcSA9IFRDUF9TS0JfQ0Ioc2tiKS0+c2VxOworCWRh dGFfZW5kX3NlcSA9IFRDUF9TS0JfQ0Ioc2tiKS0+ZW5kX3NlcTsKKwlpZiAoVENQX1NLQl9DQihz a2IpLT5mbGFncyAmIFRDUENCX0ZMQUdfRklOKQorCQlkYXRhX2VuZF9zZXEtLTsKKworCWlmIChz a2ItPmxlbiAhPSAoZGF0YV9lbmRfc2VxIC0gZGF0YV9zZXEpKSB7CisJCWlmIChfX3RjcF90cmlt X2hlYWQoc2ssIHNrYiwgZGF0YV9lbmRfc2VxIC0gZGF0YV9zZXEpKQorCQkJcmV0dXJuIC1FTk9N RU07CisJfQkJCisKIAlpZiAoYmVmb3JlKFRDUF9TS0JfQ0Ioc2tiKS0+c2VxLCB0cC0+c25kX3Vu YSkpIHsKIAkJaWYgKGJlZm9yZShUQ1BfU0tCX0NCKHNrYiktPmVuZF9zZXEsIHRwLT5zbmRfdW5h KSkKIAkJCUJVRygpOwpAQCAtMTE5MSw2ICsxMjE4LDcgQEAKIAkJVENQX1NLQl9DQihza2IpLT5m bGFncyA9IChUQ1BDQl9GTEFHX0FDSyB8IFRDUENCX0ZMQUdfRklOKTsKIAkJVENQX1NLQl9DQihz a2IpLT5zYWNrZWQgPSAwOwogCQlUQ1BfU0tCX0NCKHNrYiktPnRzb19mYWN0b3IgPSAxOworCQlU Q1BfU0tCX0NCKHNrYiktPnRzb19tc3MgPSB0cC0+bXNzX2NhY2hlX3N0ZDsKIAogCQkvKiBGSU4g ZWF0cyBhIHNlcXVlbmNlIGJ5dGUsIHdyaXRlX3NlcSBhZHZhbmNlZCBieSB0Y3BfcXVldWVfc2ti KCkuICovCiAJCVRDUF9TS0JfQ0Ioc2tiKS0+c2VxID0gdHAtPndyaXRlX3NlcTsKQEAgLTEyMjMs NiArMTI1MSw3IEBACiAJVENQX1NLQl9DQihza2IpLT5mbGFncyA9IChUQ1BDQl9GTEFHX0FDSyB8 IFRDUENCX0ZMQUdfUlNUKTsKIAlUQ1BfU0tCX0NCKHNrYiktPnNhY2tlZCA9IDA7CiAJVENQX1NL Ql9DQihza2IpLT50c29fZmFjdG9yID0gMTsKKwlUQ1BfU0tCX0NCKHNrYiktPnRzb19tc3MgPSB0 cC0+bXNzX2NhY2hlX3N0ZDsKIAogCS8qIFNlbmQgaXQgb2ZmLiAqLwogCVRDUF9TS0JfQ0Ioc2ti KS0+c2VxID0gdGNwX2FjY2VwdGFibGVfc2VxKHNrLCB0cCk7CkBAIC0xMzA0LDYgKzEzMzMsNyBA QAogCVRDUF9TS0JfQ0Ioc2tiKS0+ZW5kX3NlcSA9IFRDUF9TS0JfQ0Ioc2tiKS0+c2VxICsgMTsK IAlUQ1BfU0tCX0NCKHNrYiktPnNhY2tlZCA9IDA7CiAJVENQX1NLQl9DQihza2IpLT50c29fZmFj dG9yID0gMTsKKwlUQ1BfU0tCX0NCKHNrYiktPnRzb19tc3MgPSB0cC0+bXNzX2NhY2hlX3N0ZDsK IAl0aC0+c2VxID0gaHRvbmwoVENQX1NLQl9DQihza2IpLT5zZXEpOwogCXRoLT5hY2tfc2VxID0g aHRvbmwocmVxLT5yY3ZfaXNuICsgMSk7CiAJaWYgKHJlcS0+cmN2X3duZCA9PSAwKSB7IC8qIGln bm9yZWQgZm9yIHJldHJhbnNtaXR0ZWQgc3lucyAqLwpAQCAtMTQwNiw2ICsxNDM2LDcgQEAKIAlU Q1BfRUNOX3NlbmRfc3luKHNrLCB0cCwgYnVmZik7CiAJVENQX1NLQl9DQihidWZmKS0+c2Fja2Vk ID0gMDsKIAlUQ1BfU0tCX0NCKGJ1ZmYpLT50c29fZmFjdG9yID0gMTsKKwlUQ1BfU0tCX0NCKGJ1 ZmYpLT50c29fbXNzID0gdHAtPm1zc19jYWNoZV9zdGQ7CiAJYnVmZi0+Y3N1bSA9IDA7CiAJVENQ X1NLQl9DQihidWZmKS0+c2VxID0gdHAtPndyaXRlX3NlcSsrOwogCVRDUF9TS0JfQ0IoYnVmZikt PmVuZF9zZXEgPSB0cC0+d3JpdGVfc2VxOwpAQCAtMTUwNiw2ICsxNTM3LDcgQEAKIAkJVENQX1NL Ql9DQihidWZmKS0+ZmxhZ3MgPSBUQ1BDQl9GTEFHX0FDSzsKIAkJVENQX1NLQl9DQihidWZmKS0+ c2Fja2VkID0gMDsKIAkJVENQX1NLQl9DQihidWZmKS0+dHNvX2ZhY3RvciA9IDE7CisJCVRDUF9T S0JfQ0IoYnVmZiktPnRzb19tc3MgPSB0cC0+bXNzX2NhY2hlX3N0ZDsKIAogCQkvKiBTZW5kIGl0 IG9mZiwgdGhpcyBjbGVhcnMgZGVsYXllZCBhY2tzIGZvciB1cy4gKi8KIAkJVENQX1NLQl9DQihi dWZmKS0+c2VxID0gVENQX1NLQl9DQihidWZmKS0+ZW5kX3NlcSA9IHRjcF9hY2NlcHRhYmxlX3Nl cShzaywgdHApOwpAQCAtMTU0MSw2ICsxNTczLDcgQEAKIAlUQ1BfU0tCX0NCKHNrYiktPmZsYWdz ID0gVENQQ0JfRkxBR19BQ0s7CiAJVENQX1NLQl9DQihza2IpLT5zYWNrZWQgPSB1cmdlbnQ7CiAJ VENQX1NLQl9DQihza2IpLT50c29fZmFjdG9yID0gMTsKKwlUQ1BfU0tCX0NCKHNrYiktPnRzb19t c3MgPSB0cC0+bXNzX2NhY2hlX3N0ZDsKIAogCS8qIFVzZSBhIHByZXZpb3VzIHNlcXVlbmNlLiAg VGhpcyBzaG91bGQgY2F1c2UgdGhlIG90aGVyCiAJICogZW5kIHRvIHNlbmQgYW4gYWNrLiAgRG9u J3QgcXVldWUgb3IgY2xvbmUgU0tCLCBqdXN0Cg== --Multipart=_Tue__28_Sep_2004_14_53_45_-0700_2eQioA_ZEUtD7SAt Content-Type: application/octet-stream; name="diff2" Content-Disposition: attachment; filename="diff2" Content-Transfer-Encoding: base64 IyBUaGlzIGlzIGEgQml0S2VlcGVyIGdlbmVyYXRlZCBkaWZmIC1OcnUgc3R5bGUgcGF0Y2guCiMK IyBDaGFuZ2VTZXQKIyAgIDIwMDQvMDkvMjcgMjI6MDA6MTgtMDc6MDAgaGVyYmVydEBnb25kb3Iu YXBhbmEub3JnLmF1IAojICAgW1RDUF06IFVzZSBtc3NfY2FjaGVfc3RkIGluIHRjcF9pbml0X21l dHJpY3MoKS4KIyAgIAojICAgU2lnbmVkLW9mZi1ieTogSGVyYmVydCBYdSA8aGVyYmVydEBnb25k b3IuYXBhbmEub3JnLmF1PgojICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgojIAojIG5ldC9pcHY0L3RjcF9pbnB1dC5jCiMgICAyMDA0LzA5LzI3 IDIxOjU5OjM4LTA3OjAwIGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdSArMiAtMgojICAgW1RD UF06IFVzZSBtc3NfY2FjaGVfc3RkIGluIHRjcF9pbml0X21ldHJpY3MoKS4KIyAKZGlmZiAtTnJ1 IGEvbmV0L2lwdjQvdGNwX2lucHV0LmMgYi9uZXQvaXB2NC90Y3BfaW5wdXQuYwotLS0gYS9uZXQv aXB2NC90Y3BfaW5wdXQuYwkyMDA0LTA5LTI4IDE0OjMxOjEyIC0wNzowMAorKysgYi9uZXQvaXB2 NC90Y3BfaW5wdXQuYwkyMDA0LTA5LTI4IDE0OjMxOjEyIC0wNzowMApAQCAtODAyLDEwICs4MDIs MTAgQEAKIAlfX3UzMiBjd25kID0gKGRzdCA/IGRzdF9tZXRyaWMoZHN0LCBSVEFYX0lOSVRDV05E KSA6IDApOwogCiAJaWYgKCFjd25kKSB7Ci0JCWlmICh0cC0+bXNzX2NhY2hlID4gMTQ2MCkKKwkJ aWYgKHRwLT5tc3NfY2FjaGVfc3RkID4gMTQ2MCkKIAkJCWN3bmQgPSAyOwogCQllbHNlCi0JCQlj d25kID0gKHRwLT5tc3NfY2FjaGUgPiAxMDk1KSA/IDMgOiA0OworCQkJY3duZCA9ICh0cC0+bXNz X2NhY2hlX3N0ZCA+IDEwOTUpID8gMyA6IDQ7CiAJfQogCXJldHVybiBtaW5fdChfX3UzMiwgY3du ZCwgdHAtPnNuZF9jd25kX2NsYW1wKTsKIH0K --Multipart=_Tue__28_Sep_2004_14_53_45_-0700_2eQioA_ZEUtD7SAt Content-Type: application/octet-stream; name="diff3" Content-Disposition: attachment; filename="diff3" Content-Transfer-Encoding: base64 IyBUaGlzIGlzIGEgQml0S2VlcGVyIGdlbmVyYXRlZCBkaWZmIC1OcnUgc3R5bGUgcGF0Y2guCiMK IyBDaGFuZ2VTZXQKIyAgIDIwMDQvMDkvMjcgMjI6Mzc6MjctMDc6MDAgZGF2ZW1AbnV0cy5kYXZl bWxvZnQubmV0IAojICAgW1RDUF06IEZpeCB0aGlyZCBhcmcgdG8gX190Y3BfdHJpbV9oZWFkKCku CiMgICAKIyAgIE5vdGVkIGJ5IEhlcmJlcnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5h dT4KIyAgIAojICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgojIAojIG5ldC9pcHY0L3RjcF9vdXRwdXQuYwojICAgMjAwNC8wOS8yNyAyMjozNjo0 MS0wNzowMCBkYXZlbUBudXRzLmRhdmVtbG9mdC5uZXQgKzQgLTIKIyAgIFtUQ1BdOiBGaXggdGhp cmQgYXJnIHRvIF9fdGNwX3RyaW1faGVhZCgpLgojIApkaWZmIC1OcnUgYS9uZXQvaXB2NC90Y3Bf b3V0cHV0LmMgYi9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMKLS0tIGEvbmV0L2lwdjQvdGNwX291dHB1 dC5jCTIwMDQtMDktMjggMTQ6MzE6NDAgLTA3OjAwCisrKyBiL25ldC9pcHY0L3RjcF9vdXRwdXQu YwkyMDA0LTA5LTI4IDE0OjMxOjQwIC0wNzowMApAQCAtOTgwLDggKzk4MCwxMCBAQAogCWlmIChU Q1BfU0tCX0NCKHNrYiktPmZsYWdzICYgVENQQ0JfRkxBR19GSU4pCiAJCWRhdGFfZW5kX3NlcS0t OwogCi0JaWYgKHNrYi0+bGVuICE9IChkYXRhX2VuZF9zZXEgLSBkYXRhX3NlcSkpIHsKLQkJaWYg KF9fdGNwX3RyaW1faGVhZChzaywgc2tiLCBkYXRhX2VuZF9zZXEgLSBkYXRhX3NlcSkpCisJaWYg KHNrYi0+bGVuID4gKGRhdGFfZW5kX3NlcSAtIGRhdGFfc2VxKSkgeworCQl1MzIgdG9fdHJpbSA9 IHNrYi0+bGVuIC0gKGRhdGFfZW5kX3NlcSAtIGRhdGFfc2VxKTsKKworCQlpZiAoX190Y3BfdHJp bV9oZWFkKHNrLCBza2IsIHRvX3RyaW0pKQogCQkJcmV0dXJuIC1FTk9NRU07CiAJfQkJCiAK --Multipart=_Tue__28_Sep_2004_14_53_45_-0700_2eQioA_ZEUtD7SAt Content-Type: application/octet-stream; name="diff4" Content-Disposition: attachment; filename="diff4" Content-Transfer-Encoding: base64 IyBUaGlzIGlzIGEgQml0S2VlcGVyIGdlbmVyYXRlZCBkaWZmIC1OcnUgc3R5bGUgcGF0Y2guCiMK IyBDaGFuZ2VTZXQKIyAgIDIwMDQvMDkvMjggMTM6MjY6NTQtMDc6MDAgZGF2ZW1AbnV0cy5kYXZl bWxvZnQubmV0IAojICAgW1RDUF06IFVuaW5saW5lIHRjcF9jdXJyZW50X21zcygpLgojICAgCiMg ICBBbHNvIGZpeCB0aGUgcmV0dXJuIHZhbHVlIG9mIHRjcF9zeW5jX21zcygpIHRvCiMgICBiZSB1 bnNpZ25lZC4KIyAgIAojICAgU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgojIAojIG5ldC9pcHY0L3RjcF9vdXRwdXQuYwojICAgMjAwNC8wOS8yOCAx MzoyNjowMS0wNzowMCBkYXZlbUBudXRzLmRhdmVtbG9mdC5uZXQgKzMxIC0xCiMgICBbVENQXTog VW5pbmxpbmUgdGNwX2N1cnJlbnRfbXNzKCkuCiMgCiMgaW5jbHVkZS9uZXQvdGNwLmgKIyAgIDIw MDQvMDkvMjggMTM6MjY6MDAtMDc6MDAgZGF2ZW1AbnV0cy5kYXZlbWxvZnQubmV0ICsyIC0zMgoj ICAgW1RDUF06IFVuaW5saW5lIHRjcF9jdXJyZW50X21zcygpLgojIApkaWZmIC1OcnUgYS9pbmNs dWRlL25ldC90Y3AuaCBiL2luY2x1ZGUvbmV0L3RjcC5oCi0tLSBhL2luY2x1ZGUvbmV0L3RjcC5o CTIwMDQtMDktMjggMTQ6MzI6MDcgLTA3OjAwCisrKyBiL2luY2x1ZGUvbmV0L3RjcC5oCTIwMDQt MDktMjggMTQ6MzI6MDcgLTA3OjAwCkBAIC05NjEsNyArOTYxLDggQEAKIAogZXh0ZXJuIHZvaWQg dGNwX2RlbGV0ZV9rZWVwYWxpdmVfdGltZXIgKHN0cnVjdCBzb2NrICopOwogZXh0ZXJuIHZvaWQg dGNwX3Jlc2V0X2tlZXBhbGl2ZV90aW1lciAoc3RydWN0IHNvY2sgKiwgdW5zaWduZWQgbG9uZyk7 Ci1leHRlcm4gaW50IHRjcF9zeW5jX21zcyhzdHJ1Y3Qgc29jayAqc2ssIHUzMiBwbXR1KTsKK2V4 dGVybiB1bnNpZ25lZCBpbnQgdGNwX3N5bmNfbXNzKHN0cnVjdCBzb2NrICpzaywgdTMyIHBtdHUp OworZXh0ZXJuIHVuc2lnbmVkIGludCB0Y3BfY3VycmVudF9tc3Moc3RydWN0IHNvY2sgKnNrLCBp bnQgbGFyZ2UpOwogCiBleHRlcm4gY29uc3QgY2hhciB0aW1lcl9idWdfbXNnW107CiAKQEAgLTEw MzMsMzcgKzEwMzQsNiBAQAogCWRlZmF1bHQ6CiAJCXByaW50ayh0aW1lcl9idWdfbXNnKTsKIAl9 OwotfQotCi0vKiBDb21wdXRlIHRoZSBjdXJyZW50IGVmZmVjdGl2ZSBNU1MsIHRha2luZyBTQUNL cyBhbmQgSVAgb3B0aW9ucywKLSAqIGFuZCBldmVuIFBNVFUgZGlzY292ZXJ5IGV2ZW50cyBpbnRv IGFjY291bnQuCi0gKgotICogTEFSR0VTRU5EIG5vdGU6ICF1cmdfbW9kZSBpcyBvdmVya2lsbCwg b25seSBmcmFtZXMgdXAgdG8gc25kX3VwCi0gKiBjYW5ub3QgYmUgbGFyZ2UuIEhvd2V2ZXIsIHRh a2luZyBpbnRvIGFjY291bnQgcmFyZSB1c2Ugb2YgVVJHLCB0aGlzCi0gKiBpcyBub3QgYSBiaWcg Zmxhdy4KLSAqLwotCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCB0Y3BfY3VycmVudF9tc3Mo c3RydWN0IHNvY2sgKnNrLCBpbnQgbGFyZ2UpCi17Ci0Jc3RydWN0IHRjcF9vcHQgKnRwID0gdGNw X3NrKHNrKTsKLQlzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QgPSBfX3NrX2RzdF9nZXQoc2spOwotCWlu dCBkb19sYXJnZSwgbXNzX25vdzsKLQotCWRvX2xhcmdlID0gKGxhcmdlICYmCi0JCSAgICAoc2st PnNrX3JvdXRlX2NhcHMgJiBORVRJRl9GX1RTTykgJiYKLQkJICAgICF0cC0+dXJnX21vZGUpOwot CW1zc19ub3cgPSBkb19sYXJnZSA/IHRwLT5tc3NfY2FjaGUgOiB0cC0+bXNzX2NhY2hlX3N0ZDsK LQotCWlmIChkc3QpIHsKLQkJdTMyIG10dSA9IGRzdF9wbXR1KGRzdCk7Ci0JCWlmIChtdHUgIT0g dHAtPnBtdHVfY29va2llIHx8Ci0JCSAgICB0cC0+ZXh0Ml9oZWFkZXJfbGVuICE9IGRzdC0+aGVh ZGVyX2xlbikKLQkJCW1zc19ub3cgPSB0Y3Bfc3luY19tc3Moc2ssIG10dSk7Ci0JfQotCWlmICh0 cC0+ZWZmX3NhY2tzKQotCQltc3Nfbm93IC09IChUQ1BPTEVOX1NBQ0tfQkFTRV9BTElHTkVEICsK LQkJCSAgICAodHAtPmVmZl9zYWNrcyAqIFRDUE9MRU5fU0FDS19QRVJCTE9DSykpOwotCXJldHVy biBtc3Nfbm93OwogfQogCiAvKiBJbml0aWFsaXplIFJDVl9NU1MgdmFsdWUuCmRpZmYgLU5ydSBh L25ldC9pcHY0L3RjcF9vdXRwdXQuYyBiL25ldC9pcHY0L3RjcF9vdXRwdXQuYwotLS0gYS9uZXQv aXB2NC90Y3Bfb3V0cHV0LmMJMjAwNC0wOS0yOCAxNDozMjowNyAtMDc6MDAKKysrIGIvbmV0L2lw djQvdGNwX291dHB1dC5jCTIwMDQtMDktMjggMTQ6MzI6MDcgLTA3OjAwCkBAIC02MDMsNyArNjAz LDcgQEAKICAgIHRoaXMgZnVuY3Rpb24uCQkJLS1BTksgKDk4MDczMSkKICAqLwogCi1pbnQgdGNw X3N5bmNfbXNzKHN0cnVjdCBzb2NrICpzaywgdTMyIHBtdHUpCit1bnNpZ25lZCBpbnQgdGNwX3N5 bmNfbXNzKHN0cnVjdCBzb2NrICpzaywgdTMyIHBtdHUpCiB7CiAJc3RydWN0IHRjcF9vcHQgKnRw ID0gdGNwX3NrKHNrKTsKIAlzdHJ1Y3QgZHN0X2VudHJ5ICpkc3QgPSBfX3NrX2RzdF9nZXQoc2sp OwpAQCAtNjYxLDYgKzY2MSwzNiBAQAogCXJldHVybiBtc3Nfbm93OwogfQogCisvKiBDb21wdXRl IHRoZSBjdXJyZW50IGVmZmVjdGl2ZSBNU1MsIHRha2luZyBTQUNLcyBhbmQgSVAgb3B0aW9ucywK KyAqIGFuZCBldmVuIFBNVFUgZGlzY292ZXJ5IGV2ZW50cyBpbnRvIGFjY291bnQuCisgKgorICog TEFSR0VTRU5EIG5vdGU6ICF1cmdfbW9kZSBpcyBvdmVya2lsbCwgb25seSBmcmFtZXMgdXAgdG8g c25kX3VwCisgKiBjYW5ub3QgYmUgbGFyZ2UuIEhvd2V2ZXIsIHRha2luZyBpbnRvIGFjY291bnQg cmFyZSB1c2Ugb2YgVVJHLCB0aGlzCisgKiBpcyBub3QgYSBiaWcgZmxhdy4KKyAqLworCit1bnNp Z25lZCBpbnQgdGNwX2N1cnJlbnRfbXNzKHN0cnVjdCBzb2NrICpzaywgaW50IGxhcmdlKQorewor CXN0cnVjdCB0Y3Bfb3B0ICp0cCA9IHRjcF9zayhzayk7CisJc3RydWN0IGRzdF9lbnRyeSAqZHN0 ID0gX19za19kc3RfZ2V0KHNrKTsKKwlpbnQgZG9fbGFyZ2UsIG1zc19ub3c7CisKKwlkb19sYXJn ZSA9IChsYXJnZSAmJgorCQkgICAgKHNrLT5za19yb3V0ZV9jYXBzICYgTkVUSUZfRl9UU08pICYm CisJCSAgICAhdHAtPnVyZ19tb2RlKTsKKwltc3Nfbm93ID0gZG9fbGFyZ2UgPyB0cC0+bXNzX2Nh Y2hlIDogdHAtPm1zc19jYWNoZV9zdGQ7CisKKwlpZiAoZHN0KSB7CisJCXUzMiBtdHUgPSBkc3Rf cG10dShkc3QpOworCQlpZiAobXR1ICE9IHRwLT5wbXR1X2Nvb2tpZSB8fAorCQkgICAgdHAtPmV4 dDJfaGVhZGVyX2xlbiAhPSBkc3QtPmhlYWRlcl9sZW4pCisJCQltc3Nfbm93ID0gdGNwX3N5bmNf bXNzKHNrLCBtdHUpOworCX0KKwlpZiAodHAtPmVmZl9zYWNrcykKKwkJbXNzX25vdyAtPSAoVENQ T0xFTl9TQUNLX0JBU0VfQUxJR05FRCArCisJCQkgICAgKHRwLT5lZmZfc2Fja3MgKiBUQ1BPTEVO X1NBQ0tfUEVSQkxPQ0spKTsKKwlyZXR1cm4gbXNzX25vdzsKK30KIAogLyogVGhpcyByb3V0aW5l IHdyaXRlcyBwYWNrZXRzIHRvIHRoZSBuZXR3b3JrLiAgSXQgYWR2YW5jZXMgdGhlCiAgKiBzZW5k X2hlYWQuICBUaGlzIGhhcHBlbnMgYXMgaW5jb21pbmcgYWNrcyBvcGVuIHVwIHRoZSByZW1vdGUK --Multipart=_Tue__28_Sep_2004_14_53_45_-0700_2eQioA_ZEUtD7SAt Content-Type: application/octet-stream; name="diff5" Content-Disposition: attachment; filename="diff5" Content-Transfer-Encoding: base64 IyBUaGlzIGlzIGEgQml0S2VlcGVyIGdlbmVyYXRlZCBkaWZmIC1OcnUgc3R5bGUgcGF0Y2guCiMK IyBDaGFuZ2VTZXQKIyAgIDIwMDQvMDkvMjggMTM6NDY6NTgtMDc6MDAgZGF2ZW1AbnV0cy5kYXZl bWxvZnQubmV0IAojICAgW1RDUF06IE1vdmUgVFNPIG1zcyBjYWxjcyB0byB0Y3BfY3VycmVudF9t c3MoKQojICAgCiMgICBCYXNlZCB1cG9uIGEgYnVnIGZpeCBwYXRjaCBhbmQgc3VnZ2VzdGlvbnMg ZnJvbQojICAgSGVyYmVydCBYdSA8aGVyYmVydEBnb25kb3IuYXBhbmEub3JnLmF1PgojICAgCiMg ICBTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+CiMg CiMgbmV0L2lwdjQvdGNwX291dHB1dC5jCiMgICAyMDA0LzA5LzI4IDEzOjQ2OjI4LTA3OjAwIGRh dmVtQG51dHMuZGF2ZW1sb2Z0Lm5ldCArMjkgLTI0CiMgICBbVENQXTogTW92ZSBUU08gbXNzIGNh bGNzIHRvIHRjcF9jdXJyZW50X21zcygpCiMgICAKIyAgIEJhc2VkIHVwb24gYSBidWcgZml4IHBh dGNoIGFuZCBzdWdnZXN0aW9ucyBmcm9tCiMgICBIZXJiZXJ0IFh1IDxoZXJiZXJ0QGdvbmRvci5h cGFuYS5vcmcuYXU+CiMgICAKIyAgIFNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2 ZW1AZGF2ZW1sb2Z0Lm5ldD4KIyAKZGlmZiAtTnJ1IGEvbmV0L2lwdjQvdGNwX291dHB1dC5jIGIv bmV0L2lwdjQvdGNwX291dHB1dC5jCi0tLSBhL25ldC9pcHY0L3RjcF9vdXRwdXQuYwkyMDA0LTA5 LTI4IDE0OjMyOjM0IC0wNzowMAorKysgYi9uZXQvaXB2NC90Y3Bfb3V0cHV0LmMJMjAwNC0wOS0y OCAxNDozMjozNCAtMDc6MDAKQEAgLTYzOSwyNSArNjM5LDYgQEAKIAl0cC0+cG10dV9jb29raWUg PSBwbXR1OwogCXRwLT5tc3NfY2FjaGUgPSB0cC0+bXNzX2NhY2hlX3N0ZCA9IG1zc19ub3c7CiAK LQlpZiAoc2stPnNrX3JvdXRlX2NhcHMgJiBORVRJRl9GX1RTTykgewotCQlpbnQgbGFyZ2VfbXNz LCBmYWN0b3I7Ci0KLQkJbGFyZ2VfbXNzID0gNjU1MzUgLSB0cC0+YWZfc3BlY2lmaWMtPm5ldF9o ZWFkZXJfbGVuIC0KLQkJCXRwLT5leHRfaGVhZGVyX2xlbiAtIHRwLT5leHQyX2hlYWRlcl9sZW4g LSB0cC0+dGNwX2hlYWRlcl9sZW47Ci0KLQkJaWYgKHRwLT5tYXhfd2luZG93ICYmIGxhcmdlX21z cyA+ICh0cC0+bWF4X3dpbmRvdz4+MSkpCi0JCQlsYXJnZV9tc3MgPSBtYXgoKHRwLT5tYXhfd2lu ZG93Pj4xKSwgNjhVIC0gdHAtPnRjcF9oZWFkZXJfbGVuKTsKLQotCQkvKiBBbHdheXMga2VlcCBs YXJnZSBtc3MgbXVsdGlwbGUgb2YgcmVhbCBtc3MsIGJ1dAotCQkgKiBkbyBub3QgZXhjZWVkIGNv bmdlc3Rpb24gd2luZG93LgotCQkgKi8KLQkJZmFjdG9yID0gbGFyZ2VfbXNzIC8gbXNzX25vdzsK LQkJaWYgKGZhY3RvciA+IHRwLT5zbmRfY3duZCkKLQkJCWZhY3RvciA9IHRwLT5zbmRfY3duZDsK LQotCQl0cC0+bXNzX2NhY2hlID0gbXNzX25vdyAqIGZhY3RvcjsKLQl9Ci0KIAlyZXR1cm4gbXNz X25vdzsKIH0KIApAQCAtNjc1LDE3ICs2NTYsNDEgQEAKIAlzdHJ1Y3QgZHN0X2VudHJ5ICpkc3Qg PSBfX3NrX2RzdF9nZXQoc2spOwogCWludCBkb19sYXJnZSwgbXNzX25vdzsKIAotCWRvX2xhcmdl ID0gKGxhcmdlICYmCi0JCSAgICAoc2stPnNrX3JvdXRlX2NhcHMgJiBORVRJRl9GX1RTTykgJiYK LQkJICAgICF0cC0+dXJnX21vZGUpOwotCW1zc19ub3cgPSBkb19sYXJnZSA/IHRwLT5tc3NfY2Fj aGUgOiB0cC0+bXNzX2NhY2hlX3N0ZDsKLQorCW1zc19ub3cgPSB0cC0+bXNzX2NhY2hlX3N0ZDsK IAlpZiAoZHN0KSB7CiAJCXUzMiBtdHUgPSBkc3RfcG10dShkc3QpOwogCQlpZiAobXR1ICE9IHRw LT5wbXR1X2Nvb2tpZSB8fAogCQkgICAgdHAtPmV4dDJfaGVhZGVyX2xlbiAhPSBkc3QtPmhlYWRl cl9sZW4pCiAJCQltc3Nfbm93ID0gdGNwX3N5bmNfbXNzKHNrLCBtdHUpOwogCX0KKworCWRvX2xh cmdlID0gKGxhcmdlICYmCisJCSAgICAoc2stPnNrX3JvdXRlX2NhcHMgJiBORVRJRl9GX1RTTykg JiYKKwkJICAgICF0cC0+dXJnX21vZGUpOworCisJaWYgKGRvX2xhcmdlKSB7CisJCWludCBsYXJn ZV9tc3MsIGZhY3RvcjsKKworCQlsYXJnZV9tc3MgPSA2NTUzNSAtIHRwLT5hZl9zcGVjaWZpYy0+ bmV0X2hlYWRlcl9sZW4gLQorCQkJdHAtPmV4dF9oZWFkZXJfbGVuIC0gdHAtPmV4dDJfaGVhZGVy X2xlbiAtCisJCQl0cC0+dGNwX2hlYWRlcl9sZW47CisKKwkJaWYgKHRwLT5tYXhfd2luZG93ICYm IGxhcmdlX21zcyA+ICh0cC0+bWF4X3dpbmRvdz4+MSkpCisJCQlsYXJnZV9tc3MgPSBtYXgoKHRw LT5tYXhfd2luZG93Pj4xKSwKKwkJCQkJNjhVIC0gdHAtPnRjcF9oZWFkZXJfbGVuKTsKKworCQkv KiBBbHdheXMga2VlcCBsYXJnZSBtc3MgbXVsdGlwbGUgb2YgcmVhbCBtc3MsIGJ1dAorCQkgKiBk byBub3QgZXhjZWVkIGNvbmdlc3Rpb24gd2luZG93LgorCQkgKi8KKwkJZmFjdG9yID0gbGFyZ2Vf bXNzIC8gbXNzX25vdzsKKwkJaWYgKGZhY3RvciA+IHRwLT5zbmRfY3duZCkKKwkJCWZhY3RvciA9 IHRwLT5zbmRfY3duZDsKKworCQl0cC0+bXNzX2NhY2hlID0gbXNzX25vdyAqIGZhY3RvcjsKKwor CQltc3Nfbm93ID0gdHAtPm1zc19jYWNoZTsKKwl9CisKIAlpZiAodHAtPmVmZl9zYWNrcykKIAkJ bXNzX25vdyAtPSAoVENQT0xFTl9TQUNLX0JBU0VfQUxJR05FRCArCiAJCQkgICAgKHRwLT5lZmZf c2Fja3MgKiBUQ1BPTEVOX1NBQ0tfUEVSQkxPQ0spKTsK --Multipart=_Tue__28_Sep_2004_14_53_45_-0700_2eQioA_ZEUtD7SAt--