This message generated a parse failure. Raw output follows here. Please use 'back' to navigate. From devnull@lkml.org Wed May 29 11:52:26 2024 Received: from entropy.muc.muohio.edu (entropy.muc.muohio.edu [134.53.213.10]) by herbie.ucs.indiana.edu (8.8.8/8.8.8) with ESMTP id LAA02510 for ; Thu, 28 Jan 1999 11:57:41 -0500 (EST) Received: from vger.rutgers.edu (vger.rutgers.edu [128.6.190.2]) by entropy.muc.muohio.edu (Postfix) with ESMTP id 33DC822562; Thu, 28 Jan 1999 11:52:52 -0500 (EST) Received: by vger.rutgers.edu via listexpand id <154515-27300>; Thu, 28 Jan 1999 11:43:51 -0500 Received: by vger.rutgers.edu id <153904-27302>; Thu, 28 Jan 1999 11:43:03 -0500 Received: from ultra5.ionet.net ([206.41.128.23]:46371 "EHLO ultra5.ionet.net" ident: "plexus") by vger.rutgers.edu with ESMTP id <154429-27300>; Thu, 28 Jan 1999 11:42:41 -0500 Received: from localhost (plexus@localhost) by ultra5.ionet.net (8.9.1a/8.9.1) with SMTP id KAA01246; Thu, 28 Jan 1999 10:44:14 -0600 (CST) X-Authentication-Warning: ultra5.ionet.net: plexus owned process doing -bs Date: Thu, 28 Jan 1999 10:44:14 -0600 (CST) From: Shaun Wilson X-Sender: plexus@ultra5 To: Alexander Viro Cc: linux-kernel@vger.rutgers.edu Subject: Re: plip.c and transmit timeout madness In-Reply-To: Message-Id: Mime-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-684387517-917541854=:1134" Sender: owner-linux-kernel@vger.rutgers.edu Precedence: bulk X-Loop: majordomo@vger.rutgers.edu X-Orcpt: rfc822;linux-kernel-outgoing-dig 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: 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/