Re: plip.c and transmit timeout madness

Shaun Wilson (plexus@ionet.net)
Thu, 28 Jan 1999 10:44:14 -0600 (CST)


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.

---559023410-684387517-917541854=:1134
Content-Type: TEXT/PLAIN; charset=US-ASCII

here is a diff to apply to /drivers/net/plip.c since it was broken in
2.2.0 and I couldn't make much use of my systems here without it. any
suggestions, flames and beers are welcome.

It's all documented in the source, enjoy.

On Thu, 28 Jan 1999, Alexander Viro wrote:

>
>
> On Thu, 28 Jan 1999, Shaun Wilson wrote:
>
> > It seems taht for whatever reason teh first patch extends teh time which
> > teh interface remains functional, oterh than that, I'm at a loss because I
> > can't see anything besides two macros and a new HS_TIMEOUT define that is
> > new to plip.c
> >
> > I've emailed the maintainer before(gniibe@*.jp) and received no response,
> > so if anyone knows what the purpose behind HS_TIMEOUT is please fill me
> > in, afaik it's nothing more than a method of capturing a timeout specific
> > to the transmit operation, which would also be my problem.
>
> HS_TIMEOUT is the result of rebalancing enable/disable_irq()
> stuff. When somebody (Andrea?) changed enable/disable_irq() semantics old
> PLIP code broke. These days disable_irq();disable_irq();enable_irq();
> leaves IRQ *disabled*, not enabled as it used to do. Now, we need to
> have equal amounts of eanble_irq() and disable_irq() on every loop. If
> you'll look at sending part you'll see that there are two kinds of exits -
> ones from the handshaking phase vs. everything else. They leave different
> number of disable_irq() to undo. Hence the special return value - it
> allows to compensate the stuff in error recovery.
> Look for my posting on l-k ([PATCH] plip breakage (2.2.0-pre1))
> and comments in drivers/net/plip.c (line 382) for details.
> Be *very* accurate with irq stuff - rules had been changed here.
>
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.rutgers.edu
> Please read the FAQ at http://www.tux.org/lkml/
>

---559023410-684387517-917541854=:1134
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="plip.c-diff-ely"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.3.96.990128104414.1134I@ultra5>
Content-Description:

LS0tIHBsaXAuYy1vbGQJV2VkIEphbiAyNyAwODozNjozNSAxOTk5DQorKysg
cGxpcC5jCVRodSBKYW4gMjggMDk6MDk6MTUgMTk5OQ0KQEAgLTI1LDYgKzI1
LDE2IEBADQogICoJCSAgLSBDaGFuZ2VkIHtlbmFibGUsZGlzYWJsZX1faXJx
IGhhbmRsaW5nIHRvIG1ha2UgaXQgd29yaw0KICAqCQkgICAgd2l0aCBuZXcg
KCJzdGFjayIpIHNlbWFudGljcy4NCiAgKg0KKyAqCQlFbHkgV2lsc29uDQor
ICoJCSAgLSByZXdvcmtlZCBuZXRfZGVidWcuIE5FVF9ERUJVRyBub3cgZGVm
YXVsdHMgdG8gMCwgYSBmZXcNCisgKgkJICAgIHByaW50aydzIHdlcmUgbW92
ZWQgaW50byBpZiAobmV0X2RlYnVnID4gMCkgYmxvY2tzIGFuZA0KKyAqCQkg
ICAgYSBzaWxseSBwcm9ibGVtIHdpdGggcGxpcCBpZ25vcmluZyBuZXRfZGVi
dWcgdmFsdWVzIG9mIDINCisgKgkJICAgIHdhcyBmaXhlZCB3aGVyZSBhcHBy
b3ByaWF0ZS4NCisgKgkJICAtIGEgYnVnIGluIHRoZSBpcnEgZW5hYmxlIGNv
ZGUgd2FzIGZpeGVkLCBhcyB3ZWxsIGFzIG5ldw0KKyAqCQkgICAgbWFjcm9z
IHRvIGhhbmRsZSBpcnEgZW5hYmxlL2Rpc2FibGUuICBzcGluIGxvY2tzIGFy
ZSBzdGlsbA0KKyAqCQkgICAgZW1wbG95ZWQgYnV0IHVubGVzcyB5b3UgZGVm
aW5lIFBMSVBfVVNFX0lSUSB0aGUgaXJxIGVuYWJsZQ0KKyAqCQkgICAgZGlz
YWJsZSBtYWNyb3Mgd2lsbCBkZWZhdWx0IHRvIE5PUHMgKGFoZW0pDQorICoN
CiAgKgkJVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcg0KICAqCQltb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0K
ICAqCQlhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyIHZlcnNpb24NCkBAIC0xMTYsMTcgKzEyNiwxNCBAQA0K
ICNpbmNsdWRlIDxsaW51eC9wYXJwb3J0Lmg+DQogDQogLyogTWF4aW11bSBu
dW1iZXIgb2YgZGV2aWNlcyB0byBzdXBwb3J0LiAqLw0KLSNkZWZpbmUgUExJ
UF9NQVggIDgNCisjZGVmaW5lIFBMSVBfTUFYICBQQVJQT1JUX01BWA0KIA0K
LS8qIFVzZSAwIGZvciBwcm9kdWN0aW9uLCAxIGZvciB2ZXJpZmljYXRpb24s
ID4yIGZvciBkZWJ1ZyAqLw0KKy8qIFVzZSAwIGZvciBwcm9kdWN0aW9uLCAx
IGZvciB2ZXJpZmljYXRpb24sID49IDIgZm9yIGRlYnVnICovDQogI2lmbmRl
ZiBORVRfREVCVUcNCi0jZGVmaW5lIE5FVF9ERUJVRyAxDQorI2RlZmluZSBO
RVRfREVCVUcgMA0KICNlbmRpZg0KIHN0YXRpYyB1bnNpZ25lZCBpbnQgbmV0
X2RlYnVnID0gTkVUX0RFQlVHOw0KIA0KLSNkZWZpbmUgRU5BQkxFKGlycSkg
ZW5hYmxlX2lycShpcnEpDQotI2RlZmluZSBESVNBQkxFKGlycSkgZGlzYWJs
ZV9pcnEoaXJxKQ0KLQ0KIC8qIEluIG1pY3JvIHNlY29uZCAqLw0KICNkZWZp
bmUgUExJUF9ERUxBWV9VTklUCQkgICAxDQogDQpAQCAtMTM2LDEyICsxNDMs
MjEgQEANCiAvKiBOaWJibGUgdGltZSBvdXQgPSBQTElQX05JQkJMRV9XQUlU
ICogUExJUF9ERUxBWV9VTklUIHVzZWMgKi8NCiAjZGVmaW5lIFBMSVBfTklC
QkxFX1dBSVQgICAgICAgIDMwMDANCiANCi0jZGVmaW5lIFBBUl9JTlRSX09O
CQkoTFBfUElOSVRQfExQX1BTRUxFQ1B8TFBfUElOVEVOKQ0KLSNkZWZpbmUg
UEFSX0lOVFJfT0ZGCQkoTFBfUElOSVRQfExQX1BTRUxFQ1ApDQorLyogcGFy
cG9ydCBjb250cm9sbGVyIGNvZGVzIChpbnRlcnJ1cHQgZW5hYmxlKGludGVu
KSBtaXhlZCB3aXRoIG91dHB1dCBtb2RlcykgKi8NCisjZGVmaW5lIFBBUl9J
TlRSX09OCQkoUEFSUE9SVF9DT05UUk9MX0lOSVR8UEFSUE9SVF9DT05UUk9M
X1NFTEVDVHxQQVJQT1JUX0NPTlRST0xfSU5URU4pDQorI2RlZmluZSBQQVJf
SU5UUl9PRkYJCShQQVJQT1JUX0NPTlRST0xfSU5JVHxQQVJQT1JUX0NPTlRS
T0xfU0VMRUNUKQ0KKw0KKy8qIHBhcnBvcnQgZGF0YSwgY29udHJvbCBhbmQg
c3RhdHVzIGxpbmUgcG9ydCBvZmZzZXRzICovDQogI2RlZmluZSBQQVJfREFU
QShkZXYpCQkoKGRldiktPmJhc2VfYWRkciswKQ0KICNkZWZpbmUgUEFSX1NU
QVRVUyhkZXYpCQkoKGRldiktPmJhc2VfYWRkcisxKQ0KICNkZWZpbmUgUEFS
X0NPTlRST0woZGV2KQkoKGRldiktPmJhc2VfYWRkcisyKQ0KIA0KKy8qIHJl
dHVybiB2YWx1ZXMgKi8NCisjZGVmaW5lIE9LICAgICAgICAwDQorI2RlZmlu
ZSBUSU1FT1VUICAgMQ0KKyNkZWZpbmUgRVJST1IgICAgIDINCisNCisNCiAv
KiBCb3R0b20gaGFsZnMgKi8NCiBzdGF0aWMgdm9pZCBwbGlwX2tpY2tfYmgo
c3RydWN0IGRldmljZSAqZGV2KTsNCiBzdGF0aWMgdm9pZCBwbGlwX2JoKHN0
cnVjdCBkZXZpY2UgKmRldik7DQpAQCAtMTQ5LDYgKzE2NSwyOCBAQA0KIC8q
IEludGVycnVwdCBoYW5kbGVyICovDQogc3RhdGljIHZvaWQgcGxpcF9pbnRl
cnJ1cHQoaW50IGlycSwgdm9pZCAqZGV2X2lkLCBzdHJ1Y3QgcHRfcmVncyAq
cmVncyk7DQogDQorLyogaXJxIGNvZGUgKi8NCisjaWZuZGVmIFBMSVBfVVNF
X0lSUQ0KKyNkZWZpbmUgUExJUF9FTkFCTEVfSVJRKGRldmljZSkgOw0KKyNk
ZWZpbmUgUExJUF9ESVNBQkxFX0lSUShkZXZpY2UpIDsgDQorI2Vsc2UNCitz
dGF0aWMgaW50IHBsaXBfaXJxX3N0YXRlW05SX0lSUVNdID0geyAwIH07DQor
I2RlZmluZSBQTElQX0VOQUJMRV9JUlEoZGV2aWNlKSBcDQorCWlmICghcGxp
cF9pcnFfc3RhdGVbZGV2aWNlLT5pcnFdKSB7IFwNCisJCXBsaXBfaXJxX3N0
YXRlW2RldmljZS0+aXJxXSBePSAxOyBcDQorCQllbmFibGVfaXJxKGRldmlj
ZS0+aXJxKTsgXA0KKwl9IGVsc2UgaWYgKG5ldF9kZWJ1ZyA+IDApIHsgXA0K
KwkJcHJpbnRrKEtFUk5fV0FSTklORyAicGxpcDogSVJRICVkIGFscmVhZHkg
dXAuXG4iLCBkZXZpY2UtPmlycSk7IFwNCisJfQ0KKyNkZWZpbmUgUExJUF9E
SVNBQkxFX0lSUShkZXZpY2UpIFwNCisJaWYgKHBsaXBfaXJxX3N0YXRlW2Rl
dmljZS0+aXJxXSkgeyBcDQorCQlwbGlwX2lycV9zdGF0ZVtkZXZpY2UtPmly
cV0gXj0gMTsgXA0KKwkJZGlzYWJsZV9pcnEoZGV2aWNlLT5pcnEpOyBcDQor
CX0gZWxzZSBpZiAobmV0X2RlYnVnID4gMCkgeyBcDQorCQlwcmludGsoS0VS
Tl9XQVJOSU5HICJwbGlwOiBJUlEgJWQgd2FzIG5vdCB1cC5cbiIsIGRldmlj
ZS0+aXJxKTsgXA0KKwl9DQorI2VuZGlmDQorDQogLyogRnVuY3Rpb25zIGZv
ciBERVYgbWV0aG9kcyAqLw0KIHN0YXRpYyBpbnQgcGxpcF9yZWJ1aWxkX2hl
YWRlcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsNCiBzdGF0aWMgaW50IHBsaXBf
dHhfcGFja2V0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBkZXZpY2Ug
KmRldik7DQpAQCAtMTU5LDcgKzE5Nyw3IEBADQogc3RhdGljIGludCBwbGlw
X2lvY3RsKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGlmcmVxICppZnIs
IGludCBjbWQpOw0KIHN0YXRpYyBpbnQgcGxpcF9wcmVlbXB0KHZvaWQgKmhh
bmRsZSk7DQogc3RhdGljIHZvaWQgcGxpcF93YWtldXAodm9pZCAqaGFuZGxl
KTsNCi0MDQorDQogZW51bSBwbGlwX2Nvbm5lY3Rpb25fc3RhdGUgew0KIAlQ
TElQX0NOX05PTkU9MCwNCiAJUExJUF9DTl9SRUNFSVZFLA0KQEAgLTE4MCw3
ICsyMTgsNyBAQA0KIGVudW0gcGxpcF9uaWJibGVfc3RhdGUgew0KIAlQTElQ
X05CX0JFR0lOLA0KIAlQTElQX05CXzEsDQotCVBMSVBfTkJfMiwNCisJUExJ
UF9OQl8yDQogfTsNCiANCiBzdHJ1Y3QgcGxpcF9sb2NhbCB7DQpAQCAtMjIz
LDcgKzI2MSw3IEBADQogCWludCAoKm9yaWdfcmVidWlsZF9oZWFkZXIpKHN0
cnVjdCBza19idWZmICpza2IpOw0KIAlzcGlubG9ja190IGxvY2s7DQogfTsN
Ci0MDQorDQogLyogRW50cnkgcG9pbnQgb2YgUExJUCBkcml2ZXIuDQogICAg
UHJvYmUgdGhlIGhhcmR3YXJlLCBhbmQgcmVnaXN0ZXIvaW5pdGlhbGl6ZSB0
aGUgZHJpdmVyLg0KIA0KQEAgLTI0MywyMSArMjgxLDI2IEBADQogCWRldi0+
YmFzZV9hZGRyID0gcGItPmJhc2U7DQogDQogCWlmIChwYi0+aXJxID09IC0x
KSB7DQotCQlwcmludGsoS0VSTl9JTkZPICJwbGlwOiAlcyBoYXMgbm8gSVJR
LlxuIiwgcGItPm5hbWUpOw0KKwkJcHJpbnRrKEtFUk5fSU5GTyAiJXM6IHBv
cnQgJSMzbHggaGFzIG5vIGFzc2lnbmVkIElSUS5cbiIsIHBiLT5uYW1lLCBk
ZXYtPmJhc2VfYWRkcik7DQogCQlyZXR1cm4gLUVOT0RFVjsNCiAJfQ0KIA0K
IAlwYXJkZXYgPSBwYXJwb3J0X3JlZ2lzdGVyX2RldmljZShwYiwgZGV2LT5u
YW1lLCBwbGlwX3ByZWVtcHQsDQogCQkJCQkgcGxpcF93YWtldXAsIHBsaXBf
aW50ZXJydXB0LCANCi0JCQkJCSAwLCBkZXYpOw0KLQ0KLQlpZiAoIXBhcmRl
dikNCisJCQkJCSBQQVJQT1JUX0ZMQUdfQ09NQSwgZGV2KTsNCisJCQkJCSAN
CisJaWYgKHBhcmRldiA9PSBOVUxMKQ0KIAkJcmV0dXJuIC1FTk9ERVY7DQog
DQogCXByaW50ayhLRVJOX0lORk8gIiVzIiwgdmVyc2lvbik7DQogCXByaW50
ayhLRVJOX0lORk8gIiVzOiBQYXJhbGxlbCBwb3J0IGF0ICUjM2x4LCB1c2lu
ZyBJUlEgJWRcbiIsIGRldi0+bmFtZSwNCiAJICAgICAgIGRldi0+YmFzZV9h
ZGRyLCBkZXYtPmlycSk7DQogDQorI2lmZGVmIFBMSVBfVVNFX0lSUQ0KKwkv
KiBkZWNsYXJlIHRoZSBpcnEgZm9yIGRldmljZSBhcyBiZWluZyBlbmFibGVk
ICovDQorCXBsaXBfaXJxX3N0YXRlW2Rldi0+aXJxXSA9IDE7DQorI2VuZGlm
IC8qUExJUF9VU0VfSVJRKi8NCisNCiAJLyogRmlsbCBpbiB0aGUgZ2VuZXJp
YyBmaWVsZHMgb2YgdGhlIGRldmljZSBzdHJ1Y3R1cmUuICovDQogCWV0aGVy
X3NldHVwKGRldik7DQogDQpAQCAtMzA2LDIwICszNDksNiBAQA0KIA0KIAly
ZXR1cm4gMDsNCiB9DQotDA0KLS8qIEJvdHRvbSBoYWxmIGhhbmRsZXIgZm9y
IHRoZSBkZWxheWVkIHJlcXVlc3QuDQotICAgVGhpcyByb3V0aW5lIGlzIGtp
Y2tlZCBieSBkb190aW1lcigpLg0KLSAgIFJlcXVlc3QgYHBsaXBfYmgnIHRv
IGJlIGludm9rZWQuICovDQotc3RhdGljIHZvaWQNCi1wbGlwX2tpY2tfYmgo
c3RydWN0IGRldmljZSAqZGV2KQ0KLXsNCi0Jc3RydWN0IG5ldF9sb2NhbCAq
bmwgPSAoc3RydWN0IG5ldF9sb2NhbCAqKWRldi0+cHJpdjsNCi0NCi0JaWYg
KG5sLT5pc19kZWZlcnJlZCkgew0KLQkJcXVldWVfdGFzaygmbmwtPmltbWVk
aWF0ZSwgJnRxX2ltbWVkaWF0ZSk7DQotCQltYXJrX2JoKElNTUVESUFURV9C
SCk7DQotCX0NCi19DQogDQogLyogRm9yd2FyZCBkZWNsYXJhdGlvbnMgb2Yg
aW50ZXJuYWwgcm91dGluZXMgKi8NCiBzdGF0aWMgaW50IHBsaXBfbm9uZShz
dHJ1Y3QgZGV2aWNlICosIHN0cnVjdCBuZXRfbG9jYWwgKiwNCkBAIC0zMzcs
MTEgKzM2Niw2IEBADQogCQkJCSBzdHJ1Y3QgcGxpcF9sb2NhbCAqcmN2LA0K
IAkJCQkgaW50IGVycm9yKTsNCiANCi0jZGVmaW5lIE9LICAgICAgICAwDQot
I2RlZmluZSBUSU1FT1VUICAgMQ0KLSNkZWZpbmUgRVJST1IgICAgIDINCi0j
ZGVmaW5lIEhTX1RJTUVPVVQJMw0KLQ0KIHR5cGVkZWYgaW50ICgqcGxpcF9m
dW5jKShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBuZXRfbG9jYWwgKm5s
LA0KIAkJCSBzdHJ1Y3QgcGxpcF9sb2NhbCAqc25kLCBzdHJ1Y3QgcGxpcF9s
b2NhbCAqcmN2KTsNCiANCkBAIC0zNTQsNiArMzc4LDIwIEBADQogCXBsaXBf
ZXJyb3INCiB9Ow0KIA0KKy8qIEJvdHRvbSBoYWxmIGhhbmRsZXIgZm9yIHRo
ZSBkZWxheWVkIHJlcXVlc3QuDQorICAgVGhpcyByb3V0aW5lIGlzIGtpY2tl
ZCBieSBkb190aW1lcigpLg0KKyAgIFJlcXVlc3QgYHBsaXBfYmgnIHRvIGJl
IGludm9rZWQuICovDQorc3RhdGljIHZvaWQNCitwbGlwX2tpY2tfYmgoc3Ry
dWN0IGRldmljZSAqZGV2KQ0KK3sNCisJc3RydWN0IG5ldF9sb2NhbCAqbmwg
PSAoc3RydWN0IG5ldF9sb2NhbCAqKWRldi0+cHJpdjsNCisNCisJaWYgKG5s
LT5pc19kZWZlcnJlZCkgew0KKwkJcXVldWVfdGFzaygmbmwtPmltbWVkaWF0
ZSwgJnRxX2ltbWVkaWF0ZSk7DQorCQltYXJrX2JoKElNTUVESUFURV9CSCk7
DQorCX0NCit9DQorDQogLyogQm90dG9tIGhhbGYgaGFuZGxlciBvZiBQTElQ
LiAqLw0KIHN0YXRpYyB2b2lkDQogcGxpcF9iaChzdHJ1Y3QgZGV2aWNlICpk
ZXYpDQpAQCAtMzY2LDggKzQwNCw4IEBADQogDQogCW5sLT5pc19kZWZlcnJl
ZCA9IDA7DQogCWYgPSBjb25uZWN0aW9uX3N0YXRlX3RhYmxlW25sLT5jb25u
ZWN0aW9uXTsNCi0JaWYgKChyID0gKCpmKShkZXYsIG5sLCBzbmQsIHJjdikp
ICE9IE9LDQotCSAgICAmJiAociA9IHBsaXBfYmhfdGltZW91dF9lcnJvcihk
ZXYsIG5sLCBzbmQsIHJjdiwgcikpICE9IE9LKSB7DQorCWlmICggKChyID0g
KCpmKShkZXYsIG5sLCBzbmQsIHJjdikpICE9IE9LKSAmJiAoKHIgPSBwbGlw
X2JoX3RpbWVvdXRfZXJyb3IoZGV2LCBubCwgc25kLCByY3YsIHIpKSAhPSBP
SykgDQorCQkpIHsNCiAJCW5sLT5pc19kZWZlcnJlZCA9IDE7DQogCQlxdWV1
ZV90YXNrKCZubC0+ZGVmZXJyZWQsICZ0cV90aW1lcik7DQogCX0NCkBAIC0z
NzksMzMgKzQxNywyNSBAQA0KIAkJICAgICAgaW50IGVycm9yKQ0KIHsNCiAJ
dW5zaWduZWQgY2hhciBjMDsNCi0JLyoNCi0JICogVGhpcyBpcyB0cmlja3ku
IElmIHdlIGdvdCBoZXJlIGZyb20gdGhlIGJlZ2lubmluZyBvZiBzZW5kIChl
aXRoZXINCi0JICogd2l0aCBFUlJPUiBvciBIU19USU1FT1VUKSB3ZSBoYXZl
IElSUSBlbmFibGVkLiBPdGhlcndpc2UgaXQncw0KLQkgKiBhbHJlYWR5IGRp
c2FibGVkLiBXaXRoIHRoZSBvbGQgdmFyaWFudCBvZiB7ZW5hYmxlLGRpc2Fi
bGV9X2lycSgpDQotCSAqIGV4dHJhIGRpc2FibGVfaXJxKCkgd2FzIGEgbm8t
b3AuIE5vdyBpdCBiZWNhbWUgbW9ydGFsIC0gaXQncw0KLQkgKiB1bmJhbGFu
Y2VkIGFuZCB0aHVzIHdlJ2xsIG5ldmVyIHJlLWVuYWJsZSBJUlEgKHVudGls
IHJtbW9kIHBsaXAsDQotCSAqIHRoYXQgaXMpLiBTbyB3ZSBoYXZlIHRvIHRy
ZWF0IEhTX1RJTUVPVVQgYW5kIEVSUk9SIGZyb20gc2VuZA0KLQkgKiBpbiBh
IHNwZWNpYWwgd2F5Lg0KLQkgKi8NCiANCiAJc3Bpbl9sb2NrX2lycSgmbmwt
PmxvY2spOw0KIAlpZiAobmwtPmNvbm5lY3Rpb24gPT0gUExJUF9DTl9TRU5E
KSB7DQogDQogCQlpZiAoZXJyb3IgIT0gRVJST1IpIHsgLyogVGltZW91dCAq
Lw0KIAkJCW5sLT50aW1lb3V0X2NvdW50Kys7DQotCQkJaWYgKChlcnJvciA9
PSBIU19USU1FT1VUDQotCQkJICAgICAmJiBubC0+dGltZW91dF9jb3VudCA8
PSAxMCkNCi0JCQkgICAgfHwgbmwtPnRpbWVvdXRfY291bnQgPD0gMykgew0K
KwkJCWlmICggKHNuZC0+c3RhdGUgPT0gUExJUF9QS19UUklHR0VSIA0KKwkJ
CQkmJiBubC0+dGltZW91dF9jb3VudCA8PSAxMCkgDQorCQkJCXx8IG5sLT50
aW1lb3V0X2NvdW50IDw9IDMgKSB7DQorCQkJCQ0KIAkJCQlzcGluX3VubG9j
a19pcnEoJm5sLT5sb2NrKTsNCiAJCQkJLyogVHJ5IGFnYWluIGxhdGVyICov
DQogCQkJCXJldHVybiBUSU1FT1VUOw0KIAkJCX0NCiAJCQljMCA9IGluYihQ
QVJfU1RBVFVTKGRldikpOw0KLQkJCXByaW50ayhLRVJOX1dBUk5JTkcgIiVz
OiB0cmFuc21pdCB0aW1lb3V0KCVkLCUwMngpXG4iLA0KLQkJCSAgICAgICBk
ZXYtPm5hbWUsIHNuZC0+c3RhdGUsIGMwKTsNCi0JCX0gZWxzZQ0KLQkJCWVy
cm9yID0gSFNfVElNRU9VVDsNCisJCQlpZiAobmV0X2RlYnVnID4gMCkNCisJ
CQkJcHJpbnRrKEtFUk5fV0FSTklORyAiJXM6IHRyYW5zbWl0IHRpbWVvdXQo
JWQsJTAyeClcbiIsDQorCQkJCQlkZXYtPm5hbWUsIHNuZC0+c3RhdGUsIGMw
KTsNCisJCX0NCiAJCW5sLT5lbmV0X3N0YXRzLnR4X2Vycm9ycysrOw0KIAkJ
bmwtPmVuZXRfc3RhdHMudHhfYWJvcnRlZF9lcnJvcnMrKzsNCiAJfSBlbHNl
IGlmIChubC0+Y29ubmVjdGlvbiA9PSBQTElQX0NOX1JFQ0VJVkUpIHsNCkBA
IC00MjEsOCArNDUxLDkgQEANCiAJCQkJcmV0dXJuIFRJTUVPVVQ7DQogCQkJ
fQ0KIAkJCWMwID0gaW5iKFBBUl9TVEFUVVMoZGV2KSk7DQotCQkJcHJpbnRr
KEtFUk5fV0FSTklORyAiJXM6IHJlY2VpdmUgdGltZW91dCglZCwlMDJ4KVxu
IiwNCi0JCQkgICAgICAgZGV2LT5uYW1lLCByY3YtPnN0YXRlLCBjMCk7DQor
CQkJaWYgKG5ldF9kZWJ1ZyA+IDApDQorCQkJCXByaW50ayhLRVJOX1dBUk5J
TkcgIiVzOiByZWNlaXZlIHRpbWVvdXQoJWQsJTAyeClcbiIsDQorCQkJCQlk
ZXYtPm5hbWUsIHJjdi0+c3RhdGUsIGMwKTsNCiAJCX0NCiAJCW5sLT5lbmV0
X3N0YXRzLnJ4X2Ryb3BwZWQrKzsNCiAJfQ0KQEAgLTQzNywxMCArNDY4LDcg
QEANCiAJCXNuZC0+c2tiID0gTlVMTDsNCiAJfQ0KIAlzcGluX3VubG9ja19p
cnEoJm5sLT5sb2NrKTsNCi0JaWYgKGVycm9yID09IEhTX1RJTUVPVVQpIHsN
Ci0JCURJU0FCTEUoZGV2LT5pcnEpOw0KLQkJc3luY2hyb25pemVfaXJxKCk7
DQotCX0NCisJUExJUF9ESVNBQkxFX0lSUShkZXYpOw0KIAlvdXRiKFBBUl9J
TlRSX09GRiwgUEFSX0NPTlRST0woZGV2KSk7DQogCWRldi0+dGJ1c3kgPSAx
Ow0KIAlubC0+Y29ubmVjdGlvbiA9IFBMSVBfQ05fRVJST1I7DQpAQCAtNDQ4
LDcgKzQ3NiwxMCBAQA0KIA0KIAlyZXR1cm4gVElNRU9VVDsNCiB9DQotDA0K
Kw0KKw0KKw0KKw0KIHN0YXRpYyBpbnQNCiBwbGlwX25vbmUoc3RydWN0IGRl
dmljZSAqZGV2LCBzdHJ1Y3QgbmV0X2xvY2FsICpubCwNCiAJICBzdHJ1Y3Qg
cGxpcF9sb2NhbCAqc25kLCBzdHJ1Y3QgcGxpcF9sb2NhbCAqcmN2KQ0KQEAg
LTUxOCwxMiArNTQ5LDExIEBADQogDQogCXN3aXRjaCAocmN2LT5zdGF0ZSkg
ew0KIAljYXNlIFBMSVBfUEtfVFJJR0dFUjoNCi0JCURJU0FCTEUoZGV2LT5p
cnEpOw0KLQkJLyogRG9uJ3QgbmVlZCB0byBzeW5jaHJvbml6ZSBpcnEsIGFz
IHdlIGNhbiBzYWZlbHkgaWdub3JlIGl0ICovDQorCQlQTElQX0RJU0FCTEVf
SVJRKGRldik7DQogCQlvdXRiKFBBUl9JTlRSX09GRiwgUEFSX0NPTlRST0wo
ZGV2KSk7DQogCQlkZXYtPmludGVycnVwdCA9IDA7DQogCQlvdXRiKDB4MDEs
IFBBUl9EQVRBKGRldikpOyAvKiBzZW5kIEFDSyAqLw0KLQkJaWYgKG5ldF9k
ZWJ1ZyA+IDIpDQorCQlpZiAobmV0X2RlYnVnID4gMSkNCiAJCQlwcmludGso
S0VSTl9ERUJVRyAiJXM6IHJlY2VpdmUgc3RhcnRcbiIsIGRldi0+bmFtZSk7
DQogCQlyY3YtPnN0YXRlID0gUExJUF9QS19MRU5HVEhfTFNCOw0KIAkJcmN2
LT5uaWJibGUgPSBQTElQX05CX0JFR0lOOw0KQEAgLTUzOCw3ICs1NjgsNyBA
QA0KIAkJCQlubC0+Y29ubmVjdGlvbiA9IFBMSVBfQ05fU0VORDsNCiAJCQkJ
cXVldWVfdGFzaygmbmwtPmRlZmVycmVkLCAmdHFfdGltZXIpOw0KIAkJCQlv
dXRiKFBBUl9JTlRSX09OLCBQQVJfQ09OVFJPTChkZXYpKTsNCi0JCQkJRU5B
QkxFKGRldi0+aXJxKTsNCisJCQkJUExJUF9FTkFCTEVfSVJRKGRldik7DQog
CQkJCXJldHVybiBPSzsNCiAJCQl9DQogCQl9IGVsc2Ugew0KQEAgLTU4Nyw3
ICs2MTcsNyBAQA0KIAkJCXJldHVybiBUSU1FT1VUOw0KIAkJaWYgKHJjdi0+
ZGF0YSAhPSByY3YtPmNoZWNrc3VtKSB7DQogCQkJbmwtPmVuZXRfc3RhdHMu
cnhfY3JjX2Vycm9ycysrOw0KLQkJCWlmIChuZXRfZGVidWcpDQorCQkJaWYg
KG5ldF9kZWJ1ZyA+IDApDQogCQkJCXByaW50ayhLRVJOX0RFQlVHICIlczog
Y2hlY2tzdW0gZXJyb3JcbiIsIGRldi0+bmFtZSk7DQogCQkJcmV0dXJuIEVS
Uk9SOw0KIAkJfQ0KQEAgLTYwMCw3ICs2MzAsNyBAQA0KIAkJbmwtPmVuZXRf
c3RhdHMucnhfYnl0ZXMgKz0gcmN2LT5sZW5ndGguaDsNCiAJCW5sLT5lbmV0
X3N0YXRzLnJ4X3BhY2tldHMrKzsNCiAJCXJjdi0+c2tiID0gTlVMTDsNCi0J
CWlmIChuZXRfZGVidWcgPiAyKQ0KKwkJaWYgKG5ldF9kZWJ1ZyA+IDEpDQog
CQkJcHJpbnRrKEtFUk5fREVCVUcgIiVzOiByZWNlaXZlIGVuZFxuIiwgZGV2
LT5uYW1lKTsNCiANCiAJCS8qIENsb3NlIHRoZSBjb25uZWN0aW9uLiAqLw0K
QEAgLTYxMiwxMyArNjQyLDEzIEBADQogCQkJcXVldWVfdGFzaygmbmwtPmlt
bWVkaWF0ZSwgJnRxX2ltbWVkaWF0ZSk7DQogCQkJbWFya19iaChJTU1FRElB
VEVfQkgpOw0KIAkJCW91dGIoUEFSX0lOVFJfT04sIFBBUl9DT05UUk9MKGRl
dikpOw0KLQkJCUVOQUJMRShkZXYtPmlycSk7DQorCQkJUExJUF9FTkFCTEVf
SVJRKGRldik7DQogCQkJcmV0dXJuIE9LOw0KIAkJfSBlbHNlIHsNCiAJCQlu
bC0+Y29ubmVjdGlvbiA9IFBMSVBfQ05fTk9ORTsNCiAJCQlzcGluX3VubG9j
a19pcnEoJm5sLT5sb2NrKTsNCiAJCQlvdXRiKFBBUl9JTlRSX09OLCBQQVJf
Q09OVFJPTChkZXYpKTsNCi0JCQlFTkFCTEUoZGV2LT5pcnEpOw0KKwkJCVBM
SVBfRU5BQkxFX0lSUShkZXYpOwkJCQkNCiAJCQlyZXR1cm4gT0s7DQogCQl9
DQogCX0NCkBAIC02ODUsNyArNzE1LDggQEANCiAJdW5zaWduZWQgaW50IGN4
Ow0KIA0KIAlpZiAoc25kLT5za2IgPT0gTlVMTCB8fCAobGJ1ZiA9IHNuZC0+
c2tiLT5kYXRhKSA9PSBOVUxMKSB7DQotCQlwcmludGsoS0VSTl9ERUJVRyAi
JXM6IHNlbmQgc2tiIGxvc3RcbiIsIGRldi0+bmFtZSk7DQorCQlpZiAobmV0
X2RlYnVnID4gMCkNCisJCQlwcmludGsoS0VSTl9ERUJVRyAiJXM6IHNlbmQg
c2tiIGxvc3RcbiIsIGRldi0+bmFtZSk7DQogCQlzbmQtPnN0YXRlID0gUExJ
UF9QS19ET05FOw0KIAkJc25kLT5za2IgPSBOVUxMOw0KIAkJcmV0dXJuIEVS
Uk9SOw0KQEAgLTY5NCw3ICs3MjUsNyBAQA0KIAlzd2l0Y2ggKHNuZC0+c3Rh
dGUpIHsNCiAJY2FzZSBQTElQX1BLX1RSSUdHRVI6DQogCQlpZiAoKGluYihQ
QVJfU1RBVFVTKGRldikpICYgMHhmOCkgIT0gMHg4MCkNCi0JCQlyZXR1cm4g
SFNfVElNRU9VVDsNCisJCQlyZXR1cm4gVElNRU9VVDsNCiANCiAJCS8qIFRy
aWdnZXIgcmVtb3RlIHJ4IGludGVycnVwdC4gKi8NCiAJCW91dGIoMHgwOCwg
ZGF0YV9hZGRyKTsNCkBAIC03MTEsMjEgKzc0MiwxNyBAQA0KIAkJCWMwID0g
aW5iKFBBUl9TVEFUVVMoZGV2KSk7DQogCQkJaWYgKGMwICYgMHgwOCkgew0K
IAkJCQlzcGluX3VubG9ja19pcnEoJm5sLT5sb2NrKTsNCi0JCQkJRElTQUJM
RShkZXYtPmlycSk7DQotCQkJCXN5bmNocm9uaXplX2lycSgpOw0KKwkJCQlQ
TElQX0RJU0FCTEVfSVJRKGRldik7DQogCQkJCWlmIChubC0+Y29ubmVjdGlv
biA9PSBQTElQX0NOX1JFQ0VJVkUpIHsNCiAJCQkJCS8qIEludGVycnVwdGVk
Lg0KIAkJCQkJICAgV2UgZG9uJ3QgbmVlZCB0byBlbmFibGUgaXJxLA0KIAkJ
CQkJICAgYXMgaXQgaXMgc29vbiBkaXNhYmxlZC4gICAgKi8NCi0JCQkJCS8q
IFllcywgd2UgZG8uIE5ldyB2YXJpYW50IG9mDQotCQkJCQkgICB7ZW5hYmxl
LGRpc2FibGV9X2lycSAqY291bnRzKg0KLQkJCQkJICAgdGhlbS4gIC0tIEFW
ICAqLw0KLQkJCQkJRU5BQkxFKGRldi0+aXJxKTsNCisJCQkJCVBMSVBfRU5B
QkxFX0lSUShkZXYpOw0KIAkJCQkJbmwtPmVuZXRfc3RhdHMuY29sbGlzaW9u
cysrOw0KIAkJCQkJcmV0dXJuIE9LOw0KIAkJCQl9DQogCQkJCW91dGIoUEFS
X0lOVFJfT0ZGLCBQQVJfQ09OVFJPTChkZXYpKTsNCi0JCQkJaWYgKG5ldF9k
ZWJ1ZyA+IDIpDQorCQkJCWlmIChuZXRfZGVidWcgPiAxKQ0KIAkJCQkJcHJp
bnRrKEtFUk5fREVCVUcgIiVzOiBzZW5kIHN0YXJ0XG4iLCBkZXYtPm5hbWUp
Ow0KIAkJCQlzbmQtPnN0YXRlID0gUExJUF9QS19MRU5HVEhfTFNCOw0KIAkJ
CQlzbmQtPm5pYmJsZSA9IFBMSVBfTkJfQkVHSU47DQpAQCAtNzM1LDkgKzc2
MiwxMCBAQA0KIAkJCXNwaW5fdW5sb2NrX2lycSgmbmwtPmxvY2spOw0KIAkJ
CWlmICgtLWN4ID09IDApIHsNCiAJCQkJb3V0YigweDAwLCBkYXRhX2FkZHIp
Ow0KLQkJCQlyZXR1cm4gSFNfVElNRU9VVDsNCisJCQkJcmV0dXJuIFRJTUVP
VVQ7DQogCQkJfQ0KIAkJfQ0KKwlQTElQX0VOQUJMRV9JUlEoZGV2KTsNCiAN
CiAJY2FzZSBQTElQX1BLX0xFTkdUSF9MU0I6DQogCQlpZiAocGxpcF9zZW5k
KG5pYmJsZV90aW1lb3V0LCBkYXRhX2FkZHIsDQpAQCAtNzc4LDEzICs4MDYs
MTIgQEANCiAJCS8qIENsb3NlIHRoZSBjb25uZWN0aW9uICovDQogCQlvdXRi
ICgweDAwLCBkYXRhX2FkZHIpOw0KIAkJc25kLT5za2IgPSBOVUxMOw0KLQkJ
aWYgKG5ldF9kZWJ1ZyA+IDIpDQorCQlpZiAobmV0X2RlYnVnID4gMSkNCiAJ
CQlwcmludGsoS0VSTl9ERUJVRyAiJXM6IHNlbmQgZW5kXG4iLCBkZXYtPm5h
bWUpOw0KIAkJbmwtPmNvbm5lY3Rpb24gPSBQTElQX0NOX0NMT1NJTkc7DQog
CQlubC0+aXNfZGVmZXJyZWQgPSAxOw0KIAkJcXVldWVfdGFzaygmbmwtPmRl
ZmVycmVkLCAmdHFfdGltZXIpOw0KIAkJb3V0YihQQVJfSU5UUl9PTiwgUEFS
X0NPTlRST0woZGV2KSk7DQotCQlFTkFCTEUoZGV2LT5pcnEpOw0KIAkJcmV0
dXJuIE9LOw0KIAl9DQogCXJldHVybiBPSzsNCkBAIC04MTcsMTQgKzg0NCwx
MyBAQA0KIA0KIAlzdGF0dXMgPSBpbmIoUEFSX1NUQVRVUyhkZXYpKTsNCiAJ
aWYgKChzdGF0dXMgJiAweGY4KSA9PSAweDgwKSB7DQotCQlpZiAobmV0X2Rl
YnVnID4gMikNCisJCWlmIChuZXRfZGVidWcgPiAxKQ0KIAkJCXByaW50ayhL
RVJOX0RFQlVHICIlczogcmVzZXQgaW50ZXJmYWNlLlxuIiwgZGV2LT5uYW1l
KTsNCiAJCW5sLT5jb25uZWN0aW9uID0gUExJUF9DTl9OT05FOw0KIAkJbmwt
PnNob3VsZF9yZWxpbnF1aXNoID0gMDsNCiAJCWRldi0+dGJ1c3kgPSAwOw0K
IAkJZGV2LT5pbnRlcnJ1cHQgPSAwOw0KIAkJb3V0YihQQVJfSU5UUl9PTiwg
UEFSX0NPTlRST0woZGV2KSk7DQotCQlFTkFCTEUoZGV2LT5pcnEpOw0KIAkJ
bWFya19iaChORVRfQkgpOw0KIAl9IGVsc2Ugew0KIAkJbmwtPmlzX2RlZmVy
cmVkID0gMTsNCkBAIC04MzMsNyArODU5LDcgQEANCiANCiAJcmV0dXJuIE9L
Ow0KIH0NCi0MDQorDQogLyogSGFuZGxlIHRoZSBwYXJhbGxlbCBwb3J0IGlu
dGVycnVwdHMuICovDQogc3RhdGljIHZvaWQNCiBwbGlwX2ludGVycnVwdChp
bnQgaXJxLCB2b2lkICpkZXZfaWQsIHN0cnVjdCBwdF9yZWdzICogcmVncykN
CkBAIC04NjEsNyArODg3LDcgQEANCiAJCXJldHVybjsNCiAJfQ0KIAlkZXYt
PmludGVycnVwdCA9IDE7DQotCWlmIChuZXRfZGVidWcgPiAzKQ0KKwlpZiAo
bmV0X2RlYnVnID4gMikNCiAJCXByaW50ayhLRVJOX0RFQlVHICIlczogaW50
ZXJydXB0LlxuIiwgZGV2LT5uYW1lKTsNCiANCiAJc3Bpbl9sb2NrX2lycSgm
bmwtPmxvY2spOw0KQEAgLTg5Miw3ICs5MTgsNyBAQA0KIAkJYnJlYWs7DQog
CX0NCiB9DQotDA0KKw0KIC8qIFdlIGRvbid0IG5lZWQgdG8gc2VuZCBhcnAs
IGZvciBwbGlwIGlzIHBvaW50LXRvLXBvaW50LiAqLw0KIHN0YXRpYyBpbnQN
CiBwbGlwX3JlYnVpbGRfaGVhZGVyKHN0cnVjdCBza19idWZmICpza2IpDQpA
QCAtOTM2LDcgKzk2Miw3IEBADQogCQlyZXR1cm4gMDsNCiAJfQ0KIA0KLQlp
ZiAobmV0X2RlYnVnID4gMikNCisJaWYgKG5ldF9kZWJ1ZyA+IDEpDQogCQlw
cmludGsoS0VSTl9ERUJVRyAiJXM6IHNlbmQgcmVxdWVzdFxuIiwgZGV2LT5u
YW1lKTsNCiANCiAJc3Bpbl9sb2NrX2lycSgmbmwtPmxvY2spOw0KQEAgLTEw
MjQsOSArMTA1MCw4IEBADQogDQogCWRldi0+dGJ1c3kgPSAxOw0KIAlkZXYt
PnN0YXJ0ID0gMDsNCi0JRElTQUJMRShkZXYtPmlycSk7DQotCXN5bmNocm9u
aXplX2lycSgpOw0KLQ0KKwlQTElQX0RJU0FCTEVfSVJRKGRldik7DQorCQ0K
ICNpZmRlZiBOT1RERUYNCiAJb3V0YigweDAwLCBQQVJfREFUQShkZXYpKTsN
CiAjZW5kaWYNCkBAIC0xMTUxLDcgKzExNzYsNyBAQA0KIAl9DQogCXJldHVy
biAwOw0KIH0NCi0MDQorDQogc3RhdGljIGludCBwYXJwb3J0W1BMSVBfTUFY
XSA9IHsgWzAgLi4uIFBMSVBfTUFYLTFdID0gLTEgfTsNCiBzdGF0aWMgaW50
IHRpbWlkID0gMDsNCiANCkBAIC0xMjI3LDYgKzEyNTIsNyBAQA0KIHBsaXBf
aW5pdCh2b2lkKSkNCiB7DQogCXN0cnVjdCBwYXJwb3J0ICpwYiA9IHBhcnBv
cnRfZW51bWVyYXRlKCk7DQorCWludCBkZXZpY2VzPTA7DQogCWludCBpPTA7
DQogDQogCWlmIChwYXJwb3J0WzBdID09IC0yKQ0KQEAgLTEyMzcsNyArMTI2
Myw3IEBADQogCQl0aW1pZCA9IDA7DQogCX0NCiANCi0JLyogSWYgdGhlIHVz
ZXIgZmVlZHMgcGFyYW1ldGVycywgdXNlIHRoZW0gKi8NCisJLyogV2hlbiB1
c2VyIGZlZWRzIHBhcmFtZXRlcnMsIHVzZSB0aGVtICovDQogCXdoaWxlIChw
Yikgew0KIAkJaWYgKChwYXJwb3J0WzBdID09IC0xICYmICghdGltaWQgfHwg
IXBiLT5kZXZpY2VzKSkgfHwgDQogCQkgICAgcGxpcF9zZWFyY2hmb3IocGFy
cG9ydCwgaSkpIHsNCkBAIC0xMjY1LDE5ICsxMjkxLDIwIEBADQogCQkJCWtm
cmVlKGRldl9wbGlwW2ldLT5uYW1lKTsNCiAJCQkJa2ZyZWUoZGV2X3BsaXBb
aV0pOw0KIAkJCX0gZWxzZSB7DQotCQkJCWkrKzsNCisJCQkJZGV2aWNlcysr
Ow0KIAkJCX0NCiAJCX0NCisJCWkrKzsNCiAJCXBiID0gcGItPm5leHQ7DQog
ICAJfQ0KIA0KLQlpZiAoaSA9PSAwKSB7DQorCWlmIChkZXZpY2VzID09IDAp
IHsNCiAJCXByaW50ayhLRVJOX0lORk8gInBsaXA6IG5vIGRldmljZXMgcmVn
aXN0ZXJlZFxuIik7DQogCQlyZXR1cm4gLUVJTzsNCiAJfQ0KIAlyZXR1cm4g
MDsNCiB9DQotDA0KKw0KIC8qDQogICogTG9jYWwgdmFyaWFibGVzOg0KICAq
IGNvbXBpbGUtY29tbWFuZDogImdjYyAtRE1PRFVMRSAtRE1PRFZFUlNJT05T
IC1EX19LRVJORUxfXyAtV2FsbCAtV3N0cmljdC1wcm90b3R5cGVzIC1PMiAt
ZyAtZm9taXQtZnJhbWUtcG9pbnRlciAtcGlwZSAtYyBwbGlwLmMiDQo=
---559023410-684387517-917541854=:1134--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/