From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Sat, 10 Feb 2001 15:01:31 -0600 From: "Joseph P. Garcia" To: Hollis R Blanchard Cc: linuxppc-dev@lists.linuxppc.org, wd@denx.de Subject: Re: BMAC stuff - what I have Message-Id: <20010210150131.6da9bb42.jpgarcia@execpc.com> In-Reply-To: References: <3A8579F6.4C5E97CD@vnet.ibm.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="Multipart_Sat__10_Feb_2001_15:01:31_-0600_1019d6b0" Sender: owner-linuxppc-dev@lists.linuxppc.org List-Id: This is a multi-part message in MIME format. --Multipart_Sat__10_Feb_2001_15:01:31_-0600_1019d6b0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Kernel version: any (2.2.x - 2.4.x) Symptoms: high speed transfers from a macintosh with a BMAC network device are limited to less than 100kB/s and often corrupted. Systems known to have this are some Wallstreets and beige Desktops. 10/100 chips in Lombard are BMAC+ which do not seem to have the bug. This is a hardware bug that exists in some releases of the chip, and only effects Tx packets. Reproduction instructions: Open an FTP client to any system you have a potential 10Mbit transfer speed. Transfering from the other computer will yeild high speeds, however transfering to the other system will reveal this problem. This works with most all protocols i've seen. This is also seen when on occation, SSH connections using scp or X-forwarding will close with a comment on connection quality/reliability. something like that. Explanation of problem: When there is a collision on the network, the BMAC chip will corrupt its Tx DMA buffer. Proposed solution is to have only one Tx packet in DMA at a time, which the current driver seems to almost do. Potential for more than one in transit seems to exist. I beleive that there might be something else relevant to what causes the collisions. Fixes: No known implementations in Linux. MacOS and Darwin appear to have workarounds. > (ie: http://www.geocrawler.com/archives/3/3/2000/10/0/4577176/ > http://www.geocrawler.com/archives/3/3/2000/2/0/3266218/ ). good links > Joseph Garcia said this bug had been listed and closed on sourceforge, but I > can't find any record of that. I don't recall saying that. Might have been a miscommunication. Some wallstreets aren't afflicted by the bug, so a 'works for me' may have been tagged on. I had the opportunity to use one. That's all I can say on that. Attached are some files I recevied from Dan Malek on Jan 25. I don't claim to be an expert on this. I base my information on my (sometimes incorrect) interpretations of what I read and hear. BenH has been much more helpful in explaining the problem. Feel free to modify the above makings of a report before posting it. I have tried my hand at hacking a solution together, but haven't gotten anywhere. -- Joseph P. Garcia http://www.execpc.com/~jpgarcia --Multipart_Sat__10_Feb_2001_15:01:31_-0600_1019d6b0 Content-Type: application/octet-stream; name="bmac.note" Content-Disposition: attachment; filename="bmac.note" Content-Transfer-Encoding: base64 Ck9rLCBoZXJlJ3MgYSBxdWljayBhbmQgZGlydHkgaGFjayB3aGljaCBJIGJlbGlldmUgYWxsb3dz IG9ubHkgb25lIHhtaXQKRE1BIHBhY2tldCBwZXIgQk1hYyB4bWl0IEZyYW1lU2VudCBpbnRlcnJ1 cHQuCgpJICpfcmVhbGx5XyogZG9uJ3QgdW5kZXJzdGFuZCB0aGUgZXhhY3QgbWVhbmluZ3Mgb2Yg dGhlIGRiZG1hIGNvbW1hbmQKYml0IGZpZWxkcyBoZXJlLiBMYWNraW5nIGRvY3VtZW50YXRpb24g b24gdGhpcyB0aGluZyBvdGhlciB0aGFuIHdoYXQncwpoZXJlIGluIHRoZSBsaW51eCBzb3VyY2Ug dHJlZSAod2hpY2ggYWludCBtdWNoIGluIHRoZSB3YXkgb2YgY29tbWVudHMpLApJJ20gbWVyZWx5 IGd1ZXNzaW5nIGF0IHRoZSBtZWFuaW5ncy4KCkJ1dCwgaWYgbXkgdW5kZXJzdGFuZGluZyBpcyBj b3JyZWN0LCB0aGUgQk1hYyBkcml2ZXIgaGFzIG5ldmVyIHRydWx5CmJlZW4gcnVubmluZyBpbiBj aGFpbmVkL3N0cmVhbWluZyBETUEgbW9kZS4gSXQncyBiZWVuIERNQWluZyBvbmUgcGFja2V0CnBl ciBUeERtYSBpbnRlcnJ1cHQgYW5kIHRoZW4gYWR2YW5jaW5nIHRoZSBxdWV1ZSBhbmQgcmVzdGFy dGluZyB0aGUKRE1BIGVuZ2luZSE/IEVhY2ggZW50cnkgaW4gdGhlIHF1ZXVlIGdldHMgYm90aCB0 aGUgT1VUUFVUX0xBU1QgYW5kCklOVFJfQUxXQVlTIGZpZWxkcyBzZXQuIEkgYXNzdW1lIHRoaXMg bWVhbnM6ICJ3aGVuIHlvdSdyZSBkb25lCndpdGggdGhpcyBETUEsIHN0b3AgYW5kIHNlbmQgYW4g aW50ZXJydXB0IGZvciBzZXJ2aWNlIj8KCkFueXdheSwgdGhpcyBtYXkgc3RpbGwgYWxsb3cgZm9y IHRoZSBub3RlZCBYbWl0IG11bHRpLXBhY2tldCBGSUZPCmNvbGxpc2lvbi9jb3JydXB0aW9uIHBy b2JsZW0geW91IG5vdGVkIGJlZm9yZS4gQWx0aG91Z2ggdGhlIHdpbmRvdwpvZiBvcHBvcnR1bm5p dHkgaXMgc21hbGxlciAtIHRoZSBETUEgZW5naW5lIG5lZWRzIHRvIGJlIHJlc3RhcnRlZAp2aWEg dGhlIGJtYWNfdHhkbWFfaW50ciBoYW5kbGVyIHNlcnZpY2UgYmVmb3JlIHRoZSBYbWl0IEZJRk8g ZW10aWVzCnRoZSBkYXRhIGZyb20gdGhlIHByZXZpb3VzIERNQT8KCkFueXdheSwgSSd2ZSBtZXJl bHkgY2hhbmdlZCB0aGlzIHRvICJJTlRSX05FVkVSIiBhbmQgcmVwbGFjZWQgc2VydmljaW5nCm9m IHRoZSBETUEgeG1pdCBxdWV1ZSB3aXRoIGEgZGlyZWN0IGNhbGwgdG8gYm1hY190eGRtYV9pbnRy IGZyb20gdGhlCmJtYWNfbWlzY19pbnRyIGhhbmRsZXIgd2hlbiBGcmFtZVNlbnQgb3IgVHhVbmRl cnJ1biBhcmUgdHJ1ZS4KCkluY2lkZW50YWxseSwgaXQgYXBwZWFycyB0aGF0IHRoZSBGcmFtZVNl bnQgaW50ZXJydXB0IGhhcyBiZWVuIGVuYWJsZWQKYWxsIGFsb25nIGFsdGhvdWdoIG5vdGhpbmcg d2FzIGJlaW5nIGRvbmUgZm9yIEZyYW1lU2VudCBpbnRlcnJ1cHRzIGluCmJtYWNfbWlzY19pbnRy PwoKT2gsIEkganVzdCBub3RpY2VkIHRoYXQgSSd2ZSBsZWZ0IFR4VW5kZXJydW4gaW50ZXJydXB0 cyBtYXNrZWQhIEkgd2FzCmNvbnNpZGVyaW5nIHRoYXQgdGhpcyBjb25kaXRpb24gc2hvdWxkIHJl c3VsdCBpbiByZXN0YXJ0IG9mIHRoZSBYbWl0CkRNQSBlbmdpbmUuIEJ1dCBJJ20gbm90IHN1cmUg aWYgdGhlcmUgYXJlIG90aGVyIHJlY292ZXJ5IGZpeHVwcyBuZWVkZWQKaW4gdGhpcyBjYXNlLiBP aCB3ZWxsLCBpdCB3YXMgZGlzYWJsZWQgYmVmb3JlIGFuZCBpdCdzIHN0aWxsIGRpc2FibGVkIQoK VGhpcyBtYXkgYmUgdGhlIGNhdXNlIG9mIGZ1dHVyZSBoYW5ncz8gSWYgd2UgZ2V0IGFuIFR4VW5k ZXJydW4sIHdlCm1heSBub3Qgc2VydmljZSBpdCB0byByZXN0YXJ0IHRoZSBETUEgZW5naW5lLiBB bnkgUmN2IHBhY2tldCBpbnRlcnJ1cHQKY29uZGl0aW9ucyB3b3VsZCB1bndlZGdlIGl0IEkgZ3Vl c3MuIEJ1dCBpdCB3b3VsZCBzdGlsbCBiZSBodW5nICd0aWwKd2UgcmVjZWl2ZSBhIHBhY2tldD8K Ci0tIApSZWdhcmRzLApHZW9yZ2UKCg== --Multipart_Sat__10_Feb_2001_15:01:31_-0600_1019d6b0 Content-Type: application/octet-stream; name="bmac.patch" Content-Disposition: attachment; filename="bmac.patch" Content-Transfer-Encoding: base64 LS0tIGxpbnV4LTIuMi4xN3ByZTEzLWJlbjEub3JpZy9kcml2ZXJzL25ldC9Db25maWcuaW4JU3Vu IEp1bCAyMyAwNjoyNDo1NSAyMDAwCisrKyBsaW51eC0yLjIuMTdwcmUxMy1iZW4xL2RyaXZlcnMv bmV0L0NvbmZpZy5pbglUdWUgTm92ICA3IDE3OjM4OjQ5IDIwMDAKQEAgLTUwLDYgKzUwLDkgQEAK ICAgICAgIGJvb2wgJ1VzZSBBQVVJIHBvcnQgaW5zdGVhZCBvZiBUUCBieSBkZWZhdWx0JyBDT05G SUdfTUFDRV9BQVVJX1BPUlQKICAgICBmaQogICAgIHRyaXN0YXRlICdCTUFDIChHMyBldGhlcm5l dCkgc3VwcG9ydCcgQ09ORklHX0JNQUMKKyAgICBpZiBbICIkQ09ORklHX0JNQUMiICE9ICJuIiBd OyB0aGVuCisgICAgICBib29sICdFbmFibGUgbm9uLXN0cmVhbWluZyBUcmFubWl0IERNQSBzdXBw b3J0JyBDT05GSUdfQk1BQ19OT19TVFJFQU1fWE1JVF9ETUEKKyAgICBmaQogICAgIHRyaXN0YXRl ICdHTUFDIChHNC9pQm9vayBldGhlcm5ldCkgc3VwcG9ydCcgQ09ORklHX0dNQUMKICAgICB0cmlz dGF0ZSAnU3ltYmlvcyA1M2M4ODUgKFN5bmVyZ3kgZXRoZXJuZXQpIHN1cHBvcnQnIENPTkZJR19O Q1I4ODVFCiAgIGZpCi0tLSBsaW51eC0yLjIuMTdwcmUxMy1iZW4xLm9yaWcvZHJpdmVycy9uZXQv Ym1hYy5jCVRodSBKdWwgMjAgMDU6MDY6NTkgMjAwMAorKysgbGludXgtMi4yLjE3cHJlMTMtYmVu MS9kcml2ZXJzL25ldC9ibWFjLmMJVHVlIE5vdiAgNyAxODowMTo0MyAyMDAwCkBAIC00OSw3ICs0 OSwxMiBAQAogLyogQml0cyBpbiB0cmFuc21pdCBETUEgc3RhdHVzICovCiAjZGVmaW5lIFRYX0RN QV9FUlIJMHg4MAogCi0jZGVmaW5lIFhYREVCVUcoYXJncykKKyN1bmRlZiBDT05GSUdfQk1BQ19E RUJVRworI2lmbmRlZiBDT05GSUdfQk1BQ19ERUJVRworI2RlZmluZSBYWERFQlVHKGFyZ3MuLi4p CisjZWxzZSAvKiBDT05GSUdfQk1BQ19ERUJVRyAqLworI2RlZmluZSBYWERFQlVHKGFyZ3MuLi4p IHByaW50ayhLRVJOX0lORk8gYXJncykKKyNlbmRpZiAvKiBDT05GSUdfQk1BQ19ERUJVRyAqLwog CiBzdHJ1Y3QgYm1hY19kYXRhIHsKIAkvKiB2b2xhdGlsZSBzdHJ1Y3QgYm1hYyAqYm1hYzsgKi8K QEAgLTMzMyw3ICszMzgsNyBAQAogCXVuc2lnbmVkIHNob3J0ICpwV29yZDE2OwogCWludCBpOwog Ci0JLyogWFhERUJVRygoImJtYWM6IGVudGVyIGluaXRfcmVnaXN0ZXJzXG4iKSk7ICovCisJWFhE RUJVRyAoImJtYWM6IGVudGVyIGluaXRfcmVnaXN0ZXJzXG4iKSA7CiAKIAlibXdyaXRlKGRldiwg UlhSU1QsIFJ4UmVzZXRWYWx1ZSk7CiAJYm13cml0ZShkZXYsIFRYUlNULCBUeFJlc2V0Qml0KTsK QEAgLTUxOCw3ICs1MjMsNyBAQAogCXVuc2lnbmVkIGxvbmcgZmxhZ3M7CiAJaW50IGk7CiAKLQlY WERFQlVHKCgiYm1hYzogZW50ZXIgc2V0X2FkZHJlc3NcbiIpKTsKKwlYWERFQlVHICgiYm1hYzog ZW50ZXIgc2V0X2FkZHJlc3NcbiIpIDsKIAlzYXZlX2ZsYWdzKGZsYWdzKTsgY2xpKCk7CiAKIAlm b3IgKGkgPSAwOyBpIDwgNjsgKytpKSB7CkBAIC01MzEsNyArNTM2LDcgQEAKIAlibXdyaXRlKGRl diwgTUFERDIsICpwV29yZDE2KTsKIAogCXJlc3RvcmVfZmxhZ3MoZmxhZ3MpOwotCVhYREVCVUco KCJibWFjOiBleGl0IHNldF9hZGRyZXNzXG4iKSk7CisJWFhERUJVRyAoImJtYWM6IGV4aXQgc2V0 X2FkZHJlc3NcbiIpIDsKIAlyZXR1cm4gMDsKIH0KIApAQCAtNTYzLDcgKzU2OCwxMiBAQAogCXZh ZGRyID0gc2tiLT5kYXRhOwogCWJhZGRyID0gdmlydF90b19idXModmFkZHIpOwogCisjaWZuZGVm IENPTkZJR19CTUFDX05PX1NUUkVBTV9YTUlUX0RNQQogCWRiZG1hX3NldGNtZChjcCwgKE9VVFBV VF9MQVNUIHwgSU5UUl9BTFdBWVMgfCBXQUlUX0lGQ0xSKSwgbGVuLCBiYWRkciwgMCk7CisjZWxz ZSAvKiBDT05GSUdfQk1BQ19OT19TVFJFQU1fWE1JVF9ETUEgKi8KKwlkYmRtYV9zZXRjbWQoY3As IChPVVRQVVRfTEFTVCB8IElOVFJfTkVWRVIgfCBXQUlUX0lGQ0xSKSwgbGVuLCBiYWRkciwgMCk7 CisJLyogZGJkbWFfc2V0Y21kKGNwLCAoT1VUUFVUX0xBU1QgfCBJTlRSX05FVkVSIHwgV0FJVF9O RVZFUiB8IEJSX05FVkVSIHwgS0VZX1NZU1RFTSksIGxlbiwgYmFkZHIsIDApOyovCisjZW5kaWYg LyogQ09ORklHX0JNQUNfTk9fU1RSRUFNX1hNSVRfRE1BICovCiB9CiAKIHN0YXRpYyB2b2lkCkBA IC02NTAsMTQgKzY2MCwxNCBAQAogCWludCBpOwogCiAJLyogc2VlIGlmIHRoZXJlJ3MgYSBmcmVl IHNsb3QgaW4gdGhlIHR4IHJpbmcgKi8KLQkvKiBYWERFQlVHKCgiYm1hY194bWl0X3N0YXJ0OiBl bXB0eT0lZCBmaWxsPSVkXG4iLCAqLwotCS8qIAkgICAgIGJwLT50eF9lbXB0eSwgYnAtPnR4X2Zp bGwpKTsgKi8KKwlYWERFQlVHICgiYm1hY194bWl0X3BhY2tldDogZW1wdHk9JWQgZmlsbD0lZFxu IiwKKwkgCSAgICAgYnAtPnR4X2VtcHR5LCBicC0+dHhfZmlsbCkgOwogCWkgPSBicC0+dHhfZmls bCArIDE7CiAJaWYgKGkgPj0gTl9UWF9SSU5HKSBpID0gMDsKIAlpZiAoaSA9PSBicC0+dHhfZW1w dHkpIHsKIAkJZGV2LT50YnVzeSA9IDE7CiAJCWJwLT50eF9mdWxsdXAgPSAxOwotCQlYWERFQlVH KCgiYm1hY190cmFuc21pdF9wYWNrZXQ6IHR4IHJpbmcgZnVsbFxuIikpOworCQlYWERFQlVHICgi Ym1hY190cmFuc21pdF9wYWNrZXQ6IHR4IHJpbmcgZnVsbFxuIikgOwogCQlyZXR1cm4gLTE7CQkv KiBjYW4ndCB0YWtlIGl0IGF0IHRoZSBtb21lbnQgKi8KIAl9CiAKQEAgLTY5Miw3ICs3MDIsNyBA QAogCXNhdmVfZmxhZ3MoZmxhZ3MpOyBjbGkoKTsKIAogCWlmICgrK3J4aW50Y291bnQgPCAxMCkg ewotCQlYWERFQlVHKCgiYm1hY19yeGRtYV9pbnRyXG4iKSk7CisJCVhYREVCVUcgKCJibWFjX3J4 ZG1hX2ludHJcbiIpIDsKIAl9CiAKIAlsYXN0ID0gLTE7CkBAIC03MzksNyArNzQ5LDcgQEAKIAlk YmRtYV9jb250aW51ZShyZCk7CiAKIAlpZiAocnhpbnRjb3VudCA8IDEwKSB7Ci0JCVhYREVCVUco KCJibWFjX3J4ZG1hX2ludHIgZG9uZVxuIikpOworCQlYWERFQlVHICgiYm1hY19yeGRtYV9pbnRy IGRvbmVcbiIpIDsKIAl9CiB9CiAKQEAgLTc1Niw3ICs3NjYsNyBAQAogCXNhdmVfZmxhZ3MoZmxh Z3MpOyBjbGkoKTsKIAogCWlmICh0eGludGNvdW50KysgPCAxMCkgewotCQlYWERFQlVHKCgiYm1h Y190eGRtYV9pbnRyXG4iKSk7CisJCVhYREVCVUcgKCJibWFjX3R4ZG1hX2ludHJcbiIpIDsKIAl9 CiAKIAkvKiAgICAgZGVsX3RpbWVyKCZicC0+dHhfdGltZW91dCk7ICovCkBAIC03NjYsNyArNzc2 LDcgQEAKIAkJY3AgPSAmYnAtPnR4X2NtZHNbYnAtPnR4X2VtcHR5XTsKIAkJc3RhdCA9IGxkX2xl MTYoJmNwLT54ZmVyX3N0YXR1cyk7CiAJCWlmICh0eGludGNvdW50IDwgMTApIHsKLQkJCVhYREVC VUcoKCJibWFjX3R4ZG1hX3hmZXJfc3RhdD0lIzB4XG4iLCBzdGF0KSk7CisJCQlYWERFQlVHICgi Ym1hY190eGRtYV94ZmVyX3N0YXQ9JSMweFxuIiwgc3RhdCkgOwogCQl9CiAJCWlmICghKHN0YXQg JiBBQ1RJVkUpKSBicmVhazsKIApAQCAtNzc3LDggKzc4Nyw4IEBACiAJCWJwLT50eF9idWZzW2Jw LT50eF9lbXB0eV0gPSBOVUxMOwogCQlicC0+dHhfZnVsbHVwID0gMDsKIAkJZGV2LT50YnVzeSA9 IDA7Ci0JCS8qIFhYREVCVUcoKCJibWFjX2ludHI6IGNsZWFyZWQgdGJ1c3ksIGVtcHR5PSVkIGZp bGw9JWRcbiIsICovCi0JCS8qIAkJIGksIGJwLT50eF9maWxsKSk7ICovCisJCVhYREVCVUcgKCJi bWFjX3R4ZG1hX2ludHI6IGNsZWFyZWQgdGJ1c3ksIGVtcHR5PSVkIGZpbGw9JWRcbiIsCisJCSAJ CSBicC0+dHhfZW1wdHksIGJwLT50eF9maWxsKSA7CiAJCW1hcmtfYmgoTkVUX0JIKTsKIAkJaWYg KCsrYnAtPnR4X2VtcHR5ID49IE5fVFhfUklORykgYnAtPnR4X2VtcHR5ID0gMDsKIAkJaWYgKGJw LT50eF9lbXB0eSA9PSBicC0+dHhfZmlsbCkgYnJlYWs7CkBAIC03ODcsNyArNzk3LDcgQEAKIAly ZXN0b3JlX2ZsYWdzKGZsYWdzKTsKIAogCWlmICh0eGludGNvdW50IDwgMTApIHsKLQkJWFhERUJV RygoImJtYWNfdHhkbWFfaW50ciBkb25lLT5ibWFjX3N0YXJ0XG4iKSk7CisJCVhYREVCVUcgKCJi bWFjX3R4ZG1hX2ludHIgZG9uZS0+Ym1hY19zdGFydFxuIikgOwogCX0KIAogCWJtYWNfc3RhcnQo ZGV2KTsKQEAgLTg0Niw3ICs4NTYsNyBAQAogewkKIAl1bnNpZ25lZCBpbnQgbmV3Y3JjOwogCi0J WFhERUJVRygoImJtYWNfY3JjOiBhZGRyPSUjMDR4LCAlIzA0eCwgJSMwNHhcbiIsICphZGRyZXNz LCBhZGRyZXNzWzFdLCBhZGRyZXNzWzJdKSk7CisJWFhERUJVRyAoImJtYWNfY3JjOiBhZGRyPSUj MDR4LCAlIzA0eCwgJSMwNHhcbiIsICphZGRyZXNzLCBhZGRyZXNzWzFdLCBhZGRyZXNzWzJdKSA7 CiAJbmV3Y3JjID0gY3JjNDE2KDB4ZmZmZmZmZmYsICphZGRyZXNzKTsJLyogYWRkcmVzcyBiaXRz IDQ3IC0gMzIgKi8KIAluZXdjcmMgPSBjcmM0MTYobmV3Y3JjLCBhZGRyZXNzWzFdKTsJLyogYWRk cmVzcyBiaXRzIDMxIC0gMTYgKi8KIAluZXdjcmMgPSBjcmM0MTYobmV3Y3JjLCBhZGRyZXNzWzJd KTsJLyogYWRkcmVzcyBiaXRzIDE1IC0gMCAgKi8KQEAgLTk0MCwxMiArOTUwLDEyIEBACiBibWFj X2FkZF9tdWx0aShzdHJ1Y3QgZGV2aWNlICpkZXYsCiAJICAgICAgIHN0cnVjdCBibWFjX2RhdGEg KmJwLCB1bnNpZ25lZCBjaGFyICphZGRyKQogewotCS8qIFhYREVCVUcoKCJibWFjOiBlbnRlciBi bWFjX2FkZF9tdWx0aVxuIikpOyAqLworCVhYREVCVUcgKCJibWFjOiBlbnRlciBibWFjX2FkZF9t dWx0aVxuIikgOwogCWJtYWNfYWRkaGFzaChicCwgYWRkcik7CiAJYm1hY19yeF9vZmYoZGV2KTsK IAlibWFjX3VwZGF0ZV9oYXNoX3RhYmxlX21hc2soZGV2LCBicCk7CiAJYm1hY19yeF9vbihkZXYs IDEsIChkZXYtPmZsYWdzICYgSUZGX1BST01JU0MpPyAxIDogMCk7Ci0JLyogWFhERUJVRygoImJt YWM6IGV4aXQgYm1hY19hZGRfbXVsdGlcbiIpKTsgKi8KKwlYWERFQlVHICgiYm1hYzogZXhpdCBi bWFjX2FkZF9tdWx0aVxuIikgOwogfQogCiBzdGF0aWMgdm9pZApAQCAtOTczLDM0ICs5ODMsMzQg QEAKIAl1bnNpZ25lZCBzaG9ydCByeF9jZmc7CiAJaW50IGk7CiAKLQlYWERFQlVHKCgiYm1hYzog ZW50ZXIgYm1hY19zZXRfbXVsdGljYXN0LCBuX2FkZHJzPSVkXG4iLCBudW1fYWRkcnMpKTsKKwlY WERFQlVHICgiYm1hYzogZW50ZXIgYm1hY19zZXRfbXVsdGljYXN0LCBuX2FkZHJzPSVkXG4iLCBu dW1fYWRkcnMpIDsKIAogCWlmKChkZXYtPmZsYWdzICYgSUZGX0FMTE1VTFRJKSB8fCAoZGV2LT5t Y19jb3VudCA+IDY0KSkgewogCQlmb3IgKGk9MDsgaTw0OyBpKyspIGJwLT5oYXNoX3RhYmxlX21h c2tbaV0gPSAweGZmZmY7CiAJCWJtYWNfdXBkYXRlX2hhc2hfdGFibGVfbWFzayhkZXYsIGJwKTsK IAkJcnhfY2ZnID0gYm1hY19yeF9vbihkZXYsIDEsIDApOwotCQlYWERFQlVHKCgiYm1hYzogYWxs IG11bHRpLCByeF9jZmc9JSMwOHhcbiIpKTsKKwkJWFhERUJVRyAoImJtYWM6IGFsbCBtdWx0aSwg cnhfY2ZnPSUjMDh4XG4iKSA7CiAJfSBlbHNlIGlmICgoZGV2LT5mbGFncyAmIElGRl9QUk9NSVND KSB8fCAobnVtX2FkZHJzIDwgMCkpIHsKIAkJcnhfY2ZnID0gYm1yZWFkKGRldiwgUlhDRkcpOwog CQlyeF9jZmcgfD0gUnhQcm9taXNjRW5hYmxlOwogCQlibXdyaXRlKGRldiwgUlhDRkcsIHJ4X2Nm Zyk7CiAJCXJ4X2NmZyA9IGJtYWNfcnhfb24oZGV2LCAwLCAxKTsKLQkJWFhERUJVRygoImJtYWM6 IHByb21pc2MgbW9kZSBlbmFibGVkLCByeF9jZmc9JSMwOHhcbiIsIHJ4X2NmZykpOworCQlYWERF QlVHICgiYm1hYzogcHJvbWlzYyBtb2RlIGVuYWJsZWQsIHJ4X2NmZz0lIzA4eFxuIiwgcnhfY2Zn KSA7CiAJfSBlbHNlIHsKIAkJZm9yIChpPTA7IGk8NDsgaSsrKSBicC0+aGFzaF90YWJsZV9tYXNr W2ldID0gMDsKIAkJZm9yIChpPTA7IGk8NjQ7IGkrKykgYnAtPmhhc2hfdXNlX2NvdW50W2ldID0g MDsKIAkJaWYgKG51bV9hZGRycyA9PSAwKSB7CiAJCQlyeF9jZmcgPSBibWFjX3J4X29uKGRldiwg MCwgMCk7Ci0JCQlYWERFQlVHKCgiYm1hYzogbXVsdGkgZGlzYWJsZWQsIHJ4X2NmZz0lIzA4eFxu IiwgcnhfY2ZnKSk7CisJCQlYWERFQlVHICgiYm1hYzogbXVsdGkgZGlzYWJsZWQsIHJ4X2NmZz0l IzA4eFxuIiwgcnhfY2ZnKSA7CiAJCX0gZWxzZSB7CiAJCQlmb3IgKGRtaT1kZXYtPm1jX2xpc3Q7 IGRtaSE9TlVMTDsgZG1pPWRtaS0+bmV4dCkKIAkJCQlibWFjX2FkZGhhc2goYnAsIGRtaS0+ZG1p X2FkZHIpOwogCQkJYm1hY191cGRhdGVfaGFzaF90YWJsZV9tYXNrKGRldiwgYnApOwogCQkJcnhf Y2ZnID0gYm1hY19yeF9vbihkZXYsIDEsIDApOwotCQkJWFhERUJVRygoImJtYWM6IG11bHRpIGVu YWJsZWQsIHJ4X2NmZz0lIzA4eFxuIiwgcnhfY2ZnKSk7CisJCQlYWERFQlVHICgiYm1hYzogbXVs dGkgZW5hYmxlZCwgcnhfY2ZnPSUjMDh4XG4iLCByeF9jZmcpIDsKIAkJfQogCX0KLQkvKiBYWERF QlVHKCgiYm1hYzogZXhpdCBibWFjX3NldF9tdWx0aWNhc3RcbiIpKTsgKi8KKwlYWERFQlVHICgi Ym1hYzogZXhpdCBibWFjX3NldF9tdWx0aWNhc3RcbiIpIDsKIH0KICNlbHNlIC8qIGlmZGVmIFNV TkhNRV9NVUxUSUNBU1QgKi8KIApAQCAtMTA4MSw5ICsxMDkxLDkgQEAKIAlzdHJ1Y3QgYm1hY19k YXRhICpicCA9IChzdHJ1Y3QgYm1hY19kYXRhICopZGV2LT5wcml2OwogCXVuc2lnbmVkIGludCBz dGF0dXMgPSBibXJlYWQoZGV2LCBTVEFUVVMpOwogCWlmIChtaXNjaW50Y291bnQrKyA8IDEwKSB7 Ci0JCVhYREVCVUcoKCJibWFjX21pc2NfaW50clxuIikpOworCQlYWERFQlVHICgiYm1hY19taXNj X2ludHJcbiIpIDsKIAl9Ci0JLyogWFhERUJVRygoImJtYWNfbWlzY19pbnRyLCBzdGF0dXM9JSMw OHhcbiIsIHN0YXR1cykpOyAqLworCVhYREVCVUcgKCJibWFjX21pc2NfaW50ciwgc3RhdHVzPSUj MDh4XG4iLCBzdGF0dXMpIDsKIAkvKiAgICAgYm1hY190eGRtYV9pbnRyX2lubmVyKGlycSwgZGV2 X2lkLCByZWdzKTsgKi8KIAkvKiAgIGlmIChzdGF0dXMgJiBGcmFtZVJlY2VpdmVkKSBicC0+c3Rh dHMucnhfZHJvcHBlZCsrOyAqLwogCWlmIChzdGF0dXMgJiBSeEVycm9yTWFzaykgYnAtPnN0YXRz LnJ4X2Vycm9ycysrOwpAQCAtMTA5Niw2ICsxMTA2LDEzIEBACiAJaWYgKHN0YXR1cyAmIFR4RXJy b3JNYXNrKSBicC0+c3RhdHMudHhfZXJyb3JzKys7CiAJaWYgKHN0YXR1cyAmIFR4VW5kZXJydW4p IGJwLT5zdGF0cy50eF9maWZvX2Vycm9ycysrOwogCWlmIChzdGF0dXMgJiBUeE5vcm1hbENvbGxF eHApIGJwLT5zdGF0cy5jb2xsaXNpb25zKys7CisKKyNpZmRlZiBDT05GSUdfQk1BQ19OT19TVFJF QU1fWE1JVF9ETUEKKwlpZiAoc3RhdHVzICYgKEZyYW1lU2VudCB8IFR4VW5kZXJydW4pKSB7CisJ CVhYREVCVUcgKCJibWFjX21pc2NfaW50cjogY2FsbGluZyBibWFjX3R4ZG1hX2ludHIgdG8gcmVz dGFydCBYbWl0IERNQSFcbiIpOworCQlibWFjX3R4ZG1hX2ludHIoaXJxLCBkZXZfaWQsIHJlZ3Mp OworCX0KKyNlbmRpZiAvKiBDT05GSUdfQk1BQ19OT19TVFJFQU1fWE1JVF9ETUEgKi8KIH0KIAog LyoKQEAgLTEzMjQsNyArMTM0MSw3IEBACiAJCWRldi0+ZGV2X2FkZHJbal0gPSByZXY/IGJpdHJl dihhZGRyW2pdKTogYWRkcltqXTsKIAkJcHJpbnRrKCIlYyUuMngiLCAoaj8gJzonOiAnICcpLCBk ZXYtPmRldl9hZGRyW2pdKTsKIAl9Ci0JWFhERUJVRygoIiwgYmFzZV9hZGRyPSUjMGx4IiwgZGV2 LT5iYXNlX2FkZHIpKTsKKwlYWERFQlVHICgiLCBiYXNlX2FkZHI9JSMwbHgiLCBkZXYtPmJhc2Vf YWRkcikgOwogCXByaW50aygiXG4iKTsKICAgICAKIAlkZXYtPm9wZW4gPSBibWFjX29wZW47CkBA IC0xMzkyLDcgKzE0MDksNyBAQAogCiBzdGF0aWMgaW50IGJtYWNfb3BlbihzdHJ1Y3QgZGV2aWNl ICpkZXYpCiB7Ci0JLyogWFhERUJVRygoImJtYWM6IGVudGVyIG9wZW5cbiIpKTsgKi8KKwlYWERF QlVHICgiYm1hYzogZW50ZXIgb3BlblxuIikgOwogCS8qIHJlc2V0IHRoZSBjaGlwICovCiAJYm1h Y19yZXNldF9hbmRfZW5hYmxlKGRldiwgMSk7CiAKQEAgLTE0MjYsNyArMTQ0Myw3IEBACiAJc3Rf bGUzMigmdGQtPmNvbnRyb2wsIERCRE1BX0NMRUFSKFJVTnxQQVVTRXxGTFVTSHxXQUtFKSk7CS8q IGNsZWFyIHJ1biBiaXQgKi8KIAogCS8qIGZyZWUgc29tZSBza2IncyAqLwotCVhYREVCVUcoKCJi bWFjOiBmcmVlIHJ4IGJ1ZnNcbiIpKTsKKwlYWERFQlVHICgiYm1hYzogZnJlZSByeCBidWZzXG4i KSA7CiAJZm9yIChpPTA7IGk8Tl9SWF9SSU5HOyBpKyspIHsKIAkJaWYgKGJwLT5yeF9idWZzW2ld ICE9IE5VTEwpIHsKIAkJCWRldl9rZnJlZV9za2IoYnAtPnJ4X2J1ZnNbaV0pOwpAQCAtMTQzNCw3 ICsxNDUxLDcgQEAKIAkJfQogCX0KIAlicC0+cnhfYWxsb2NhdGVkID0gMDsKLQlYWERFQlVHKCgi Ym1hYzogZnJlZSB0eCBidWZzXG4iKSk7CisJWFhERUJVRyAoImJtYWM6IGZyZWUgdHggYnVmc1xu IikgOwogCWZvciAoaSA9IDA7IGk8Tl9UWF9SSU5HOyBpKyspIHsKIAkJaWYgKGJwLT50eF9idWZz W2ldICE9IE5VTEwpIHsKIAkJCWRldl9rZnJlZV9za2IoYnAtPnR4X2J1ZnNbaV0pOwpAQCAtMTQ0 Miw3ICsxNDU5LDcgQEAKIAkJfQogCX0KIAlicC0+cmVzZXRfYW5kX2VuYWJsZWQgPSAwOwotCVhY REVCVUcoKCJibWFjOiBhbGwgYnVmcyBmcmVlZFxuIikpOworCVhYREVCVUcgKCJibWFjOiBhbGwg YnVmcyBmcmVlZFxuIikgOwogCiAJTU9EX0RFQ19VU0VfQ09VTlQ7CiAKQEAgLTE0ODksNyArMTUw Niw3IEBACiAJdW5zaWduZWQgc2hvcnQgY29uZmlnLCBvbGRDb25maWc7CiAJaW50IGk7CiAKLQlY WERFQlVHKCgiYm1hYzogdHhfdGltZW91dCBjYWxsZWRcbiIpKTsKKwlYWERFQlVHICgiYm1hYzog dHhfdGltZW91dCBjYWxsZWRcbiIpIDsKIAlzYXZlX2ZsYWdzKGZsYWdzKTsgY2xpKCk7CiAJYnAt PnRpbWVvdXRfYWN0aXZlID0gMDsKIApAQCAtMTQ5Nyw5ICsxNTE0LDkgQEAKIC8qICAgICAJYm1h Y19oYW5kbGVfbWlzY19pbnRycyhicCwgMCk7ICovCiAKIAljcCA9ICZicC0+dHhfY21kc1ticC0+ dHhfZW1wdHldOwotLyoJWFhERUJVRygoS0VSTl9ERUJVRyAiYm1hYzogdHggZG1hc3RhdD0leCAl eCBydW50PSVkIHByPSV4IGZzPSV4IGZjPSV4XG4iLCAqLwotLyogCSAgIGxkX2xlMzIoJnRkLT5z dGF0dXMpLCBsZF9sZTE2KCZjcC0+eGZlcl9zdGF0dXMpLCBicC0+dHhfYmFkX3J1bnQsICovCi0v KiAJICAgbWItPnByLCBtYi0+eG10ZnMsIG1iLT5maWZvZmMpKTsgKi8KKwkvKiBYWERFQlVHIChL RVJOX0RFQlVHICJibWFjOiB0eCBkbWFzdGF0PSV4ICV4IHJ1bnQ9JWQgcHI9JXggZnM9JXggZmM9 JXhcbiIsICovCisgCS8qICAgIGxkX2xlMzIoJnRkLT5zdGF0dXMpLCBsZF9sZTE2KCZjcC0+eGZl cl9zdGF0dXMpLCBicC0+dHhfYmFkX3J1bnQsICovCisgCS8qICAgIG1iLT5wciwgbWItPnhtdGZz LCBtYi0+Zmlmb2ZjKSA7ICovCiAKIAkvKiB0dXJuIG9mZiBib3RoIHR4IGFuZCByeCBhbmQgcmVz ZXQgdGhlIGNoaXAgKi8KIAljb25maWcgPSBibXJlYWQoZGV2LCBSWENGRyk7CkBAIC0xNTE4LDgg KzE1MzUsOCBAQAogCW91dF9sZTMyKCZyZC0+Y29udHJvbCwgREJETUFfU0VUKFJVTnxXQUtFKSk7 CiAKIAkvKiBmaXggdXAgdGhlIHRyYW5zbWl0IHNpZGUgKi8KLQlYWERFQlVHKChLRVJOX0RFQlVH ICJibWFjOiB0eCBlbXB0eT0lZCBmaWxsPSVkIGZ1bGx1cD0lZFxuIiwKLQkJIGJwLT50eF9lbXB0 eSwgYnAtPnR4X2ZpbGwsIGJwLT50eF9mdWxsdXApKTsKKwlYWERFQlVHIChLRVJOX0RFQlVHICJi bWFjOiB0eCBlbXB0eT0lZCBmaWxsPSVkIGZ1bGx1cD0lZFxuIiwKKwkJIGJwLT50eF9lbXB0eSwg YnAtPnR4X2ZpbGwsIGJwLT50eF9mdWxsdXApIDsKIAlpID0gYnAtPnR4X2VtcHR5OwogCSsrYnAt PnN0YXRzLnR4X2Vycm9yczsKIAlpZiAoaSAhPSBicC0+dHhfZmlsbCkgewpAQCAtMTUzMSw3ICsx NTQ4LDcgQEAKIAlicC0+dHhfZnVsbHVwID0gMDsKIAlkZXYtPnRidXN5ID0gMDsKIAltYXJrX2Jo KE5FVF9CSCk7Ci0JWFhERUJVRygoS0VSTl9ERUJVRyAiYm1hYzogY2xlYXJpbmcgdGJ1c3lcbiIp KTsKKwlYWERFQlVHIChLRVJOX0RFQlVHICJibWFjOiBjbGVhcmluZyB0YnVzeVxuIikgOwogCWlm IChpICE9IGJwLT50eF9maWxsKSB7CiAJCWNwID0gJmJwLT50eF9jbWRzW2ldOwogCQlvdXRfbGUx NigmY3AtPnhmZXJfc3RhdHVzLCAwKTsKQEAgLTE1MzksNyArMTU1Niw3IEBACiAJCW91dF9sZTMy KCZ0ZC0+Y21kcHRyLCB2aXJ0X3RvX2J1cyhjcCkpOwogCQlvdXRfbGUzMigmdGQtPmNvbnRyb2ws IERCRE1BX1NFVChSVU4pKTsKIAkJLyogCWJtYWNfc2V0X3RpbWVvdXQoZGV2KTsgKi8KLQkJWFhE RUJVRygoS0VSTl9ERUJVRyAiYm1hYzogc3RhcnRpbmcgJWRcbiIsIGkpKTsKKwkJWFhERUJVRyAo S0VSTl9ERUJVRyAiYm1hYzogc3RhcnRpbmcgJWRcbiIsIGkpIDsKIAl9CiAKIAkvKiB0dXJuIGl0 IGJhY2sgb24gKi8KCg== --Multipart_Sat__10_Feb_2001_15:01:31_-0600_1019d6b0-- ** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/