Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Tue, 29 Jan 2002 16:07:36 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Tue, 29 Jan 2002 16:07:30 -0500 Received: from fungus.teststation.com ([212.32.186.211]:63239 "EHLO fungus.teststation.com") by vger.kernel.org with ESMTP id ; Tue, 29 Jan 2002 16:07:19 -0500 Date: Tue, 29 Jan 2002 22:06:50 +0100 (CET) From: Urban Widmark X-X-Sender: To: Justin A cc: Subject: Re: via-rhine timeouts In-Reply-To: <1012270407.22269.0.camel@bouncybouncy.net> Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-1463780587-359932590-1012338410=:6137" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org 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. ---1463780587-359932590-1012338410=:6137 Content-Type: TEXT/PLAIN; charset=US-ASCII On 28 Jan 2002, Justin A wrote: > Ok, it was working for a while, even after a reboot... > but now > 21:04:33 up 2 days, 20 min, 10 users, load average: 0.12, 0.47, 0.38 > > Jan 28 01:39:10 bouncybouncy kernel: eth0: Transmitter underflow?, > status 2008. This is not a transmit underflow (I was lazy when adding that message, this is what the ? is about). It is a transmit abort caused by excessive collisions. 2000 - transmit abort because of excessive collisions 0008 - transmit error It is interesting that the linuxfet driver does not fail/recovers. I have added some more code from that driver and attached a new version of the patch. It re-initializes the ring pointer and tells the card to try to transmit the packet again. > Jan 28 20:26:06 bouncybouncy kernel: eth0: reset finished after 10005 > microseconds. The "You have reset me too many times. Go away." error. > After reloading the driver it started working again: > > linuxfet.c : v3.23 05/15/2001 > The PCI BIOS has not enabled the device at 0/144! Updating PCI > command 0003->0007. > eth0: VIA PCI 10/100Mb Fast Ethernet Adapter > eth0: IO Address = 0xe800, MAC Address = 00:50:2c:01:64:a9, IRQ = 11. > eth0: MII PHY found at address 1, status 0x782d advertising 01e1 Link > 0021. > eth0: netdev_open() irq 11. > eth0: Done netdev_open(), status 881a MII status: 782d. 0003->0007 is that it turns on bus mastering. I have copied the code from the linuxfet driver that sets that bit. But for me that is set later by the pci_set_master function, and I think the warning is incorrect. After reloading the linuxfet driver, does the via-rhine driver work better if you switch back to it without rebooting? > I think that last message might be a clue on why this is happening... Which message are you refering to? I don't feel particularly clueful after reading any of it. :) /Urban ---1463780587-359932590-1012338410=:6137 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="2.4.17-rhine-2.patch" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="2.4.17-rhine-2.patch" ZGlmZiAtdXJOIC1YIGV4Y2x1ZGUgbGludXgtMi40LjE3LW9yaWcvZHJpdmVy cy9uZXQvdmlhLXJoaW5lLmMgbGludXgtMi40LjE3LXJoaW5lL2RyaXZlcnMv bmV0L3ZpYS1yaGluZS5jDQotLS0gbGludXgtMi40LjE3LW9yaWcvZHJpdmVy cy9uZXQvdmlhLXJoaW5lLmMJU2F0IEphbiAxMiAxNjo1Njo1MCAyMDAyDQor KysgbGludXgtMi40LjE3LXJoaW5lL2RyaXZlcnMvbmV0L3ZpYS1yaGluZS5j CVR1ZSBKYW4gMjkgMjE6NDk6NDMgMjAwMg0KQEAgLTgyLDcgKzgyLDcgQEAN CiAvKiBBIGZldyB1c2VyLWNvbmZpZ3VyYWJsZSB2YWx1ZXMuDQogICAgVGhl c2UgbWF5IGJlIG1vZGlmaWVkIHdoZW4gYSBkcml2ZXIgbW9kdWxlIGlzIGxv YWRlZC4gKi8NCiANCi1zdGF0aWMgaW50IGRlYnVnID0gMTsJCQkvKiAxIG5v cm1hbCBtZXNzYWdlcywgMCBxdWlldCAuLiA3IHZlcmJvc2UuICovDQorc3Rh dGljIGludCBkZWJ1ZyA9IDM7CQkJLyogMSBub3JtYWwgbWVzc2FnZXMsIDAg cXVpZXQgLi4gNyB2ZXJib3NlLiAqLw0KIHN0YXRpYyBpbnQgbWF4X2ludGVy cnVwdF93b3JrID0gMjA7DQogDQogLyogU2V0IHRoZSBjb3B5IGJyZWFrcG9p bnQgZm9yIHRoZSBjb3B5LW9ubHktdGlueS1mcmFtZXMgc2NoZW1lLg0KQEAg LTMxOCw3ICszMTgsNyBAQA0KIA0KIGVudW0gY2hpcF9jYXBhYmlsaXR5X2Zs YWdzIHsNCiAJQ2FuSGF2ZU1JST0xLCBIYXNFU0lQaHk9MiwgSGFzRGF2aWNv bVBoeT00LA0KLQlSZXFUeEFsaWduPTB4MTAsIEhhc1dPTD0weDIwLCB9Ow0K KwlSZXFUeEFsaWduPTB4MTAsIEhhc1dPTD0weDIwLCBIYXNJbnRUeFVuZGVy Rmxvdz0weDQwLCB9Ow0KIA0KICNpZmRlZiBVU0VfTUVNDQogI2RlZmluZSBS SElORV9JT1RZUEUgKFBDSV9VU0VTX01FTSB8IFBDSV9VU0VTX01BU1RFUiB8 IFBDSV9BRERSMSkNCkBAIC0zMzIsMTEgKzMzMiwxMyBAQA0KIAl7ICJWSUEg VlQ4NkMxMDBBIFJoaW5lIiwgUkhJTkVfSU9UWVBFLCAxMjgsDQogCSAgQ2Fu SGF2ZU1JSSB8IFJlcVR4QWxpZ24gfSwNCiAJeyAiVklBIFZUNjEwMiBSaGlu ZS1JSSIsIFJISU5FX0lPVFlQRSwgMjU2LA0KLQkgIENhbkhhdmVNSUkgfCBI YXNXT0wgfSwNCisJICBDYW5IYXZlTUlJIHwgSGFzV09MIHwgSGFzSW50VHhV bmRlckZsb3cgfSwNCiAJeyAiVklBIFZUMzA0MyBSaGluZSIsICAgIFJISU5F X0lPVFlQRSwgMTI4LA0KIAkgIENhbkhhdmVNSUkgfCBSZXFUeEFsaWduIH0N CiB9Ow0KIA0KKyNkZWZpbmUgTUlJX0RBVklDT01fRE05MTAxCQkweDAxODFi ODAwDQorDQogc3RhdGljIHN0cnVjdCBwY2lfZGV2aWNlX2lkIHZpYV9yaGlu ZV9wY2lfdGJsW10gX19kZXZpbml0ZGF0YSA9DQogew0KIAl7MHgxMTA2LCAw eDYxMDAsIFBDSV9BTllfSUQsIFBDSV9BTllfSUQsIDAsIDAsIFZUODZDMTAw QX0sDQpAQCAtMzczLDI3ICszNzUsMTQgQEANCiAJSW50clJ4RG9uZT0weDAw MDEsIEludHJSeEVycj0weDAwMDQsIEludHJSeEVtcHR5PTB4MDAyMCwNCiAJ SW50clR4RG9uZT0weDAwMDIsIEludHJUeEFib3J0PTB4MDAwOCwgSW50clR4 VW5kZXJydW49MHgwMDEwLA0KIAlJbnRyUENJRXJyPTB4MDA0MCwNCi0JSW50 clN0YXRzTWF4PTB4MDA4MCwgSW50clJ4RWFybHk9MHgwMTAwLCBJbnRyTUlJ Q2hhbmdlPTB4MDIwMCwNCisJSW50clN0YXRzTWF4PTB4MDA4MCwgSW50clJ4 RWFybHk9MHgwMTAwLA0KKwlJbnRyTUlJQ2hhbmdlPTB4MDIwMCwgSW50clR4 VW5kZXJmbG93PTB4MDIwMCwJLyogc2VlIEhhc0ludFR4VW5kZXJGbG93ICov DQogCUludHJSeE92ZXJmbG93PTB4MDQwMCwgSW50clJ4RHJvcHBlZD0weDA4 MDAsIEludHJSeE5vQnVmPTB4MTAwMCwNCiAJSW50clR4QWJvcnRlZD0weDIw MDAsIEludHJMaW5rQ2hhbmdlPTB4NDAwMCwNCiAJSW50clJ4V2FrZVVwPTB4 ODAwMCwNCiAJSW50ck5vcm1hbFN1bW1hcnk9MHgwMDAzLCBJbnRyQWJub3Jt YWxTdW1tYXJ5PTB4QzI2MCwNCiB9Ow0KIA0KLS8qIE1JSSBpbnRlcmZhY2Us IHN0YXR1cyBmbGFncy4NCi0gICBOb3QgdG8gYmUgY29uZnVzZWQgd2l0aCB0 aGUgTUlJU3RhdHVzIHJlZ2lzdGVyIC4uLiAqLw0KLWVudW0gbWlpX3N0YXR1 c19iaXRzIHsNCi0JTUlJQ2FwMTAwVDQJCQk9IDB4ODAwMCwNCi0JTUlJQ2Fw MTAxMDBIZEZkCQk9IDB4NzgwMCwNCi0JTUlJUHJlYW1ibGVTdXByCQk9IDB4 MDA0MCwNCi0JTUlJQXV0b05lZ0NvbXBsZXRlZAk9IDB4MDAyMCwNCi0JTUlJ UmVtb3RlRmF1bHQJCT0gMHgwMDEwLA0KLQlNSUlDYXBBdXRvTmVnCQk9IDB4 MDAwOCwNCi0JTUlJTGluawkJCQk9IDB4MDAwNCwNCi0JTUlJSmFiYmVyCQkJ PSAweDAwMDIsDQotCU1JSUV4dGVuZGVkCQkJPSAweDAwMDENCi19Ow0KLQ0K IC8qIFRoZSBSeCBhbmQgVHggYnVmZmVyIGRlc2NyaXB0b3JzLiAqLw0KIHN0 cnVjdCByeF9kZXNjIHsNCiAJczMyIHJ4X3N0YXR1czsNCkBAIC00NTMsNiAr NDQyLDcgQEANCiANCiAJLyogRnJlcXVlbnRseSB1c2VkIHZhbHVlczoga2Vl cCBzb21lIGFkamFjZW50IGZvciBjYWNoZSBlZmZlY3QuICovDQogCWludCBj aGlwX2lkLCBkcnZfZmxhZ3M7DQorCXU4IHJldl9pZDsNCiAJc3RydWN0IHJ4 X2Rlc2MgKnJ4X2hlYWRfZGVzYzsNCiAJdW5zaWduZWQgaW50IGN1cl9yeCwg ZGlydHlfcng7CQkvKiBQcm9kdWNlci9jb25zdW1lciByaW5nIGluZGljZXMg Ki8NCiAJdW5zaWduZWQgaW50IGN1cl90eCwgZGlydHlfdHg7DQpAQCAtNDY5 LDEzICs0NTksMTMgQEANCiAJdTE2IGFkdmVydGlzaW5nOwkJCQkJLyogTldh eSBtZWRpYSBhZHZlcnRpc2VtZW50ICovDQogCXVuc2lnbmVkIGNoYXIgcGh5 c1tNQVhfTUlJX0NOVF07CQkJLyogTUlJIGRldmljZSBhZGRyZXNzZXMuICov DQogCXVuc2lnbmVkIGludCBtaWlfY250OwkJCS8qIG51bWJlciBvZiBNSUlz IGZvdW5kLCBidXQgb25seSB0aGUgZmlyc3Qgb25lIGlzIHVzZWQgKi8NCi0J dTE2IG1paV9zdGF0dXM7CQkJCQkJLyogbGFzdCByZWFkIE1JSSBzdGF0dXMg Ki8NCisJdTMyIG1paTsNCiB9Ow0KIA0KIHN0YXRpYyBpbnQgIG1kaW9fcmVh ZChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQgcGh5X2lkLCBpbnQgbG9j YXRpb24pOw0KIHN0YXRpYyB2b2lkIG1kaW9fd3JpdGUoc3RydWN0IG5ldF9k ZXZpY2UgKmRldiwgaW50IHBoeV9pZCwgaW50IGxvY2F0aW9uLCBpbnQgdmFs dWUpOw0KIHN0YXRpYyBpbnQgIHZpYV9yaGluZV9vcGVuKHN0cnVjdCBuZXRf ZGV2aWNlICpkZXYpOw0KLXN0YXRpYyB2b2lkIHZpYV9yaGluZV9jaGVja19k dXBsZXgoc3RydWN0IG5ldF9kZXZpY2UgKmRldik7DQorc3RhdGljIGludCAg dmlhX3JoaW5lX2NoZWNrX2R1cGxleChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2 KTsNCiBzdGF0aWMgdm9pZCB2aWFfcmhpbmVfdGltZXIodW5zaWduZWQgbG9u ZyBkYXRhKTsNCiBzdGF0aWMgdm9pZCB2aWFfcmhpbmVfdHhfdGltZW91dChz dHJ1Y3QgbmV0X2RldmljZSAqZGV2KTsNCiBzdGF0aWMgaW50ICB2aWFfcmhp bmVfc3RhcnRfdHgoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5ldF9k ZXZpY2UgKmRldik7DQpAQCAtNTU0LDcgKzU0NCw4IEBADQogI2lmZGVmIFVT RV9NRU0NCiAJbG9uZyBpb2FkZHIwOw0KICNlbmRpZg0KLQkNCisJdTE2IHBj aV9jb21tYW5kLCBuZXdfY29tbWFuZDsNCisNCiAvKiB3aGVuIGJ1aWx0IGlu dG8gdGhlIGtlcm5lbCwgd2Ugb25seSBwcmludCB2ZXJzaW9uIGlmIGRldmlj ZSBpcyBmb3VuZCAqLw0KICNpZm5kZWYgTU9EVUxFDQogCXN0YXRpYyBpbnQg cHJpbnRlZF92ZXJzaW9uOw0KQEAgLTU3MCw2ICs1NjEsOSBAQA0KIAlpZiAo cGNpX2VuYWJsZV9kZXZpY2UgKHBkZXYpKQ0KIAkJZ290byBlcnJfb3V0Ow0K IA0KKwlwY2lfcmVhZF9jb25maWdfd29yZChwZGV2LCBQQ0lfQ09NTUFORCwg JnBjaV9jb21tYW5kKTsNCisJcHJpbnRrKEtFUk5fREVCVUcgIlBDSV9DT01N QU5EOiAlNC40eFxuIiwgcGNpX2NvbW1hbmQpOw0KKw0KIAkvKiB0aGlzIHNo b3VsZCBhbHdheXMgYmUgc3VwcG9ydGVkICovDQogCWlmIChwY2lfc2V0X2Rt YV9tYXNrKHBkZXYsIDB4ZmZmZmZmZmYpKSB7DQogCQlwcmludGsoS0VSTl9F UlIgIjMyLWJpdCBQQ0kgRE1BIGFkZHJlc3NlcyBub3Qgc3VwcG9ydGVkIGJ5 IHRoZSBjYXJkIT9cbiIpOw0KQEAgLTU4OSw2ICs1ODMsMjAgQEANCiAJaWYg KHBjaV9mbGFncyAmIFBDSV9VU0VTX01BU1RFUikNCiAJCXBjaV9zZXRfbWFz dGVyIChwZGV2KTsNCiANCisJcGNpX3JlYWRfY29uZmlnX3dvcmQocGRldiwg UENJX0NPTU1BTkQsICZwY2lfY29tbWFuZCk7DQorCXByaW50ayhLRVJOX0RF QlVHICJQQ0lfQ09NTUFORDogJTQuNHhcbiIsIHBjaV9jb21tYW5kKTsNCisJ aWYgKCEocGNpX2NvbW1hbmQgJiBQQ0lfQ09NTUFORF9NQVNURVIpKSB7DQor CQkvKiBUcnkgdG8gc2V0ICovDQorCQlwcmludGsoS0VSTl9JTkZPICIgIFRo ZSBQQ0kgQklPUyBoYXMgbm90IGVuYWJsZWQgdGhlIg0KKwkJCSAgICIgZGV2 aWNlIGF0ICVkLyVkISAgVXBkYXRpbmcgUENJIGNvbW1hbmQgJTQuNHgtPiU0 LjR4LlxuIiwNCisJCQkgICBwZGV2LT5idXMtPm51bWJlciwgcGRldi0+ZGV2 Zm4sIHBjaV9jb21tYW5kLCBuZXdfY29tbWFuZCk7DQorCQluZXdfY29tbWFu ZCA9IHBjaV9jb21tYW5kIHwgKHBjaV9mbGFncyAmIDcpOw0KKwkJcGNpX3dy aXRlX2NvbmZpZ193b3JkKHBkZXYsIFBDSV9DT01NQU5ELCBuZXdfY29tbWFu ZCk7DQorDQorCQlwY2lfcmVhZF9jb25maWdfd29yZChwZGV2LCBQQ0lfQ09N TUFORCwgJnBjaV9jb21tYW5kKTsNCisJCXByaW50ayhLRVJOX0RFQlVHICJQ Q0lfQ09NTUFORDogJTQuNHhcbiIsIHBjaV9jb21tYW5kKTsNCisJfQ0KKw0K IAlkZXYgPSBhbGxvY19ldGhlcmRldihzaXplb2YoKm5wKSk7DQogCWlmIChk ZXYgPT0gTlVMTCkgew0KIAkJcHJpbnRrIChLRVJOX0VSUiAiaW5pdF9ldGhl cm5ldCBmYWlsZWQgZm9yIGNhcmQgIyVkXG4iLCBjYXJkX2lkeCk7DQpAQCAt NjY3LDE5ICs2NzUsMzEgQEANCiAJCWdvdG8gZXJyX291dF91bm1hcDsNCiAJ fQ0KIA0KKwkvKiAiMzA2NSIgc3BlY2lhbHMgLi4uICovDQogCWlmIChjaGlw X2lkID09IFZUNjEwMikgew0KKwkJdTggbW9kZTNfcmVnOw0KKw0KIAkJLyoN CiAJCSAqIGZvciAzMDY1RCwgRUVQUk9NIHJlbG9hZGVkIHdpbGwgY2F1c2Ug Yml0IDAgaW4gTUFDX1JFR19DRkdBDQogCQkgKiB0dXJuZWQgb24uICBpdCBt YWtlcyBNQUMgcmVjZWl2ZSBtYWdpYyBwYWNrZXQNCiAJCSAqIGF1dG9tYXRp Y2FsbHkuIFNvLCB3ZSB0dXJuIGl0IG9mZi4gKEQtTGluaykNCiAJCSAqLw0K IAkJd3JpdGViKHJlYWRiKGlvYWRkciArIENvbmZpZ0EpICYgMHhGRSwgaW9h ZGRyICsgQ29uZmlnQSk7DQorDQorCQkvKg0KKwkJICogdHVybiBvbiBiaXQy IGluIFBDSSBjb25maWd1cmF0aW9uIHJlZ2lzdGVyIDB4NTMgKCJQQ0lfUkVH X01PREUzIikNCisJCSAqIDB4MDQgPT0gTU9ERTNfTUlJT04NCisJCSAqIEZJ WE1FOiB3aGF0IGRvZXMgdGhpcyBkbz8NCisJCSAqLw0KKwkJcGNpX3JlYWRf Y29uZmlnX2J5dGUocGRldiwgMHg1MywgJm1vZGUzX3JlZyk7DQorCQlwY2lf d3JpdGVfY29uZmlnX2J5dGUocGRldiwgMHg1MywgbW9kZTNfcmVnIHwgMHgw NCk7DQogCX0NCiANCiAJZGV2LT5pcnEgPSBwZGV2LT5pcnE7DQogDQogCW5w ID0gZGV2LT5wcml2Ow0KIAlzcGluX2xvY2tfaW5pdCAoJm5wLT5sb2NrKTsN CisJcGNpX3JlYWRfY29uZmlnX2J5dGUocGRldiwgUENJX1JFVklTSU9OX0lE LCAmKG5wLT5yZXZfaWQpKTsNCiAJbnAtPmNoaXBfaWQgPSBjaGlwX2lkOw0K IAlucC0+ZHJ2X2ZsYWdzID0gdmlhX3JoaW5lX2NoaXBfaW5mb1tjaGlwX2lk XS5kcnZfZmxhZ3M7DQogCW5wLT5wZGV2ID0gcGRldjsNCkBAIC03MTgsOCAr NzM4LDkgQEANCiAJaWYgKGkpDQogCQlnb3RvIGVycl9vdXRfdW5tYXA7DQog DQotCXByaW50ayhLRVJOX0lORk8gIiVzOiAlcyBhdCAweCVseCwgIiwNCisJ cHJpbnRrKEtFUk5fSU5GTyAiJXM6ICVzIChyZXYgMHglMDJ4KSBhdCAweCVs eCwgIiwNCiAJCSAgIGRldi0+bmFtZSwgdmlhX3JoaW5lX2NoaXBfaW5mb1tj aGlwX2lkXS5uYW1lLA0KKwkJICAgbnAtPnJldl9pZCwNCiAJCSAgIChwY2lf ZmxhZ3MgJiBQQ0lfVVNFU19JTykgPyBpb2FkZHIgOiBtZW1hZGRyKTsNCiAN CiAJZm9yIChpID0gMDsgaSA8IDU7IGkrKykNCkBAIC03MzIsMjMgKzc1Mywy NiBAQA0KIAkJaW50IHBoeSwgcGh5X2lkeCA9IDA7DQogCQlucC0+cGh5c1sw XSA9IDE7CQkvKiBTdGFuZGFyZCBmb3IgdGhpcyBjaGlwLiAqLw0KIAkJZm9y IChwaHkgPSAxOyBwaHkgPCAzMiAmJiBwaHlfaWR4IDwgTUFYX01JSV9DTlQ7 IHBoeSsrKSB7DQotCQkJaW50IG1paV9zdGF0dXMgPSBtZGlvX3JlYWQoZGV2 LCBwaHksIDEpOw0KKwkJCWludCBtaWlfc3RhdHVzID0gbWRpb19yZWFkKGRl diwgcGh5LCBNSUlfQk1TUik7DQogCQkJaWYgKG1paV9zdGF0dXMgIT0gMHhm ZmZmICAmJiAgbWlpX3N0YXR1cyAhPSAweDAwMDApIHsNCiAJCQkJbnAtPnBo eXNbcGh5X2lkeCsrXSA9IHBoeTsNCi0JCQkJbnAtPmFkdmVydGlzaW5nID0g bWRpb19yZWFkKGRldiwgcGh5LCA0KTsNCi0JCQkJcHJpbnRrKEtFUk5fSU5G TyAiJXM6IE1JSSBQSFkgZm91bmQgYXQgYWRkcmVzcyAlZCwgc3RhdHVzICIN CisJCQkJbnAtPmFkdmVydGlzaW5nID0gbWRpb19yZWFkKGRldiwgcGh5LCBN SUlfQURWRVJUSVNFKTsNCisJCQkJbnAtPm1paSA9IChtZGlvX3JlYWQoZGV2 LCBwaHksIE1JSV9QSFlTSUQxKSA8PCAxNikgKw0KKwkJCQkJbWRpb19yZWFk KGRldiwgcGh5LCBNSUlfUEhZU0lEMik7DQorCQkJCXByaW50ayhLRVJOX0lO Rk8gIiVzOiBNSUkgUEhZICU4Ljh4IGZvdW5kIGF0IGFkZHJlc3MgJWQsIHN0 YXR1cyAiDQogCQkJCQkgICAiMHglNC40eCBhZHZlcnRpc2luZyAlNC40eCBM aW5rICU0LjR4LlxuIiwNCi0JCQkJCSAgIGRldi0+bmFtZSwgcGh5LCBtaWlf c3RhdHVzLCBucC0+YWR2ZXJ0aXNpbmcsDQotCQkJCQkgICBtZGlvX3JlYWQo ZGV2LCBwaHksIDUpKTsNCisJCQkJCSAgIGRldi0+bmFtZSwgbnAtPm1paSwg cGh5LCBtaWlfc3RhdHVzLCBucC0+YWR2ZXJ0aXNpbmcsDQorCQkJCQkgICBt ZGlvX3JlYWQoZGV2LCBwaHksIE1JSV9MUEEpKTsNCiANCi0JCQkJLyogc2V0 IElGRl9SVU5OSU5HICovDQotCQkJCWlmIChtaWlfc3RhdHVzICYgTUlJTGlu aykNCi0JCQkJCW5ldGlmX2NhcnJpZXJfb24oZGV2KTsNCi0JCQkJZWxzZQ0K LQkJCQkJbmV0aWZfY2Fycmllcl9vZmYoZGV2KTsNCisJCQkJaWYgKChucC0+ bWlpICYgfjB4ZikgPT0gTUlJX0RBVklDT01fRE05MTAxKQ0KKwkJCQkJbnAt PmRydl9mbGFncyB8PSBIYXNEYXZpY29tUGh5Ow0KIAkJCX0NCiAJCX0NCiAJ CW5wLT5taWlfY250ID0gcGh5X2lkeDsNCisJCWlmIChwaHlfaWR4ID09IDAp IHsNCisJCQlwcmludGsoS0VSTl9XQVJOSU5HICIlczogTUlJIFBIWSBub3Qg Zm91bmQgLS0gdGhpcyBkZXZpY2UgbWF5ICINCisJCQkJICAgIm5vdCBvcGVy YXRlIGNvcnJlY3RseS5cbiIsIGRldi0+bmFtZSk7DQorCQl9DQogCX0NCiAN CiAJLyogQWxsb3cgZm9yY2luZyB0aGUgbWVkaWEgdHlwZS4gKi8NCkBAIC03 NTcsMTUgKzc4MSwxMyBAQA0KIAkJCW5wLT5mdWxsX2R1cGxleCA9IDE7DQog CQlucC0+ZGVmYXVsdF9wb3J0ID0gb3B0aW9uICYgMHgzZmY7DQogCQlpZiAo bnAtPmRlZmF1bHRfcG9ydCAmIDB4MzMwKSB7DQotCQkJLyogRklYTUU6IHNo b3VsZG4ndCBzb21lb25lIGNoZWNrIHRoaXMgdmFyaWFibGU/ICovDQotCQkJ LyogbnAtPm1lZGlhbG9jayA9IDE7ICovDQogCQkJcHJpbnRrKEtFUk5fSU5G TyAiICBGb3JjaW5nICVkTWJzICVzLWR1cGxleCBvcGVyYXRpb24uXG4iLA0K IAkJCQkgICAob3B0aW9uICYgMHgzMDAgPyAxMDAgOiAxMCksDQogCQkJCSAg IChvcHRpb24gJiAweDIyMCA/ICJmdWxsIiA6ICJoYWxmIikpOw0KIAkJCWlm IChucC0+bWlpX2NudCkNCi0JCQkJbWRpb193cml0ZShkZXYsIG5wLT5waHlz WzBdLCAwLA0KLQkJCQkJCSAgICgob3B0aW9uICYgMHgzMDApID8gMHgyMDAw IDogMCkgfCAgLyogMTAwbWJwcz8gKi8NCi0JCQkJCQkgICAoKG9wdGlvbiAm IDB4MjIwKSA/IDB4MDEwMCA6IDApKTsgIC8qIEZ1bGwgZHVwbGV4PyAqLw0K KwkJCQltZGlvX3dyaXRlKGRldiwgbnAtPnBoeXNbMF0sIE1JSV9CTUNSLA0K KwkJCQkJCSAgICgob3B0aW9uICYgMHgzMDApID8gMHgyMDAwIDogMCkgfCAg LyogMTAwbWJwcyAqLw0KKwkJCQkJCSAgICgob3B0aW9uICYgMHgyMjApID8g MHgwMTAwIDogMCkpOyAgLyogRnVsbCBkdXBsZXggKi8NCiAJCX0NCiAJfQ0K IA0KQEAgLTk0NiwxMCArOTY4LDI2IEBADQogCWZvciAoaSA9IDA7IGkgPCA2 OyBpKyspDQogCQl3cml0ZWIoZGV2LT5kZXZfYWRkcltpXSwgaW9hZGRyICsg U3RhdGlvbkFkZHIgKyBpKTsNCiANCi0JLyogSW5pdGlhbGl6ZSBvdGhlciBy ZWdpc3RlcnMuICovDQorCS8qIFR1cm4gb24gYml0MyAoT0ZTRVQpIGluIFRD UiBkdXJpbmcgTUFDIGluaXRpYWxpemF0aW9uLiAqLw0KKwl3cml0ZWIocmVh ZGIoaW9hZGRyICsgVHhDb25maWcpIHwgMHgwOCwgaW9hZGRyICsgVHhDb25m aWcpOw0KKw0KKwkvKiBUdXJuIG9mZiBtYXV0byAqLw0KKwl3cml0ZWIocmVh ZGIoaW9hZGRyICsgTUlJQ21kKSAmIDB4N2YsIGlvYWRkciArIE1JSUNtZCk7 DQorCWlmIChucC0+ZHJ2X2ZsYWdzICYgSGFzRGF2aWNvbVBoeSkgIHsNCisJ CXVkZWxheSgxMDApOw0KKwl9IGVsc2Ugew0KKwkJaW50IGJvZ3VzY250ID0g MHgzZmZmOw0KKwkJd2hpbGUgKCEocmVhZGIoaW9hZGRyICsgTUlJUmVnQWRk cikgJiAweDgwKSAmJiAtLWJvZ3VzY250ID4gMCkNCisJCQk7DQorCX0NCisN CiAJd3JpdGV3KDB4MDAwNiwgaW9hZGRyICsgUENJQnVzQ29uZmlnKTsJLyog VHVuZSBjb25maWd1cmF0aW9uPz8/ICovDQorDQorCS8qIENsZWFyIHRoZSBs b3dlciA0IGJpdHMgaW4gQ29uZmlnIEQuICovDQorCW91dGIoaW5iKGlvYWRk ciArIENvbmZpZ0QpICYgMHhmMCwgaW9hZGRyICsgQ29uZmlnRCk7DQorDQog CS8qIENvbmZpZ3VyZSB0aGUgRklGTyB0aHJlc2hvbGRzLiAqLw0KLQl3cml0 ZWIoMHgyMCwgaW9hZGRyICsgVHhDb25maWcpOwkvKiBJbml0aWFsIHRocmVz aG9sZCAzMiBieXRlcyAqLw0KKwl3cml0ZWIoMHgyMCwgaW9hZGRyICsgVHhD b25maWcpOwkvKiBJbml0aWFsIHRocmVzaG9sZCAqLw0KIAlucC0+dHhfdGhy ZXNoID0gMHgyMDsNCiAJbnAtPnJ4X3RocmVzaCA9IDB4NjA7CQkJLyogV3Jp dHRlbiBpbiB2aWFfcmhpbmVfc2V0X3J4X21vZGUoKS4gKi8NCiANCkBAIC05 NzIsMTMgKzEwMTAsMzEgQEANCiAJCW5wLT5jaGlwX2NtZCB8PSBDbWRGRHVw bGV4Ow0KIAl3cml0ZXcobnAtPmNoaXBfY21kLCBpb2FkZHIgKyBDaGlwQ21k KTsNCiANCisJLyogUmVzdGFydCBNSUkgYXV0by1uZWdvdGlhdGlvbiBmb3Ig ZGF2aWRjb20gcGh5IGJ1ZyAqLw0KKwlpZiAobnAtPmRydl9mbGFncyAmIEhh c0Rhdmljb21QaHkpIHsNCisJCW1kaW9fd3JpdGUoZGV2LG5wLT5waHlzWzBd LCBNSUlfQk1DUiwNCisJCQkJICAgbWRpb19yZWFkKGRldiwgbnAtPnBoeXNb MF0sIE1JSV9CTUNSKSB8IDB4MTIwMCk7DQorCQkvKiBGSVhNRTogc2hvdWxk bid0IHdlIHdhaXQgZm9yIGl0IHRvIGNvbXBsZXRlPyBBZGRpbmcgc2lsbHkt ZGVsYXkuICovDQorCQl1ZGVsYXkoMTAwKTsNCisJfQ0KKw0KIAl2aWFfcmhp bmVfY2hlY2tfZHVwbGV4KGRldik7DQogDQogCS8qIFRoZSBMRUQgb3V0cHV0 cyBvZiB2YXJpb3VzIE1JSSB4Y3ZycyBzaG91bGQgYmUgY29uZmlndXJlZC4g ICovDQorCS8qIEZvciBEYXZpY29tIHBoeXMsIHR1cm4gb24gYml0IDUgaW4g cmVnaXN0ZXIgMHgxNi4gKi8NCiAJLyogRm9yIE5TIG9yIE1pc29uIHBoeXMs IHR1cm4gb24gYml0IDEgaW4gcmVnaXN0ZXIgMHgxNyAqLw0KIAkvKiBGb3Ig RVNJIHBoeXMsIHR1cm4gb24gYml0IDcgaW4gcmVnaXN0ZXIgMHgxNy4gKi8N Ci0JbWRpb193cml0ZShkZXYsIG5wLT5waHlzWzBdLCAweDE3LCBtZGlvX3Jl YWQoZGV2LCBucC0+cGh5c1swXSwgMHgxNykgfA0KLQkJCSAgIChucC0+ZHJ2 X2ZsYWdzICYgSGFzRVNJUGh5KSA/IDB4MDA4MCA6IDB4MDAwMSk7DQorCWlm IChucC0+ZHJ2X2ZsYWdzICYgSGFzRGF2aWNvbVBoeSkgew0KKwkJbWRpb193 cml0ZShkZXYsIG5wLT5waHlzWzBdLCAweDE2LA0KKwkJCQkgICBtZGlvX3Jl YWQoZGV2LCBucC0+cGh5c1swXSwgMHgxNikgfCAweDIwKTsNCisJfSBlbHNl IGlmIChucC0+ZHJ2X2ZsYWdzICYgSGFzRVNJUGh5KSB7DQorCQltZGlvX3dy aXRlKGRldiwgbnAtPnBoeXNbMF0sIDB4MTcsDQorCQkJCSAgIG1kaW9fcmVh ZChkZXYsIG5wLT5waHlzWzBdLCAweDE3KSB8IDB4ODApOw0KKwl9IGVsc2Ug ew0KKwkJLyogQWxsIHVua25vd25zIGdldCB0aGlzLiBDb3VsZCBiZSBhIHBy b2JsZW0uICovDQorCQltZGlvX3dyaXRlKGRldiwgbnAtPnBoeXNbMF0sIDB4 MTcsDQorCQkJCSAgIG1kaW9fcmVhZChkZXYsIG5wLT5waHlzWzBdLCAweDE3 KSB8IDB4MDEpOw0KKwl9DQogfQ0KIC8qIFJlYWQgYW5kIHdyaXRlIG92ZXIg dGhlIE1JSSBNYW5hZ2VtZW50IERhdGEgSS9PIChNRElPKSBpbnRlcmZhY2Uu ICovDQogDQpAQCAtMTA1OSw3ICsxMTE1LDcgQEANCiAJCXByaW50ayhLRVJO X0RFQlVHICIlczogRG9uZSB2aWFfcmhpbmVfb3BlbigpLCBzdGF0dXMgJTQu NHggIg0KIAkJCSAgICJNSUkgc3RhdHVzOiAlNC40eC5cbiIsDQogCQkJICAg ZGV2LT5uYW1lLCByZWFkdyhpb2FkZHIgKyBDaGlwQ21kKSwNCi0JCQkgICBt ZGlvX3JlYWQoZGV2LCBucC0+cGh5c1swXSwgMSkpOw0KKwkJCSAgIG1kaW9f cmVhZChkZXYsIG5wLT5waHlzWzBdLCBNSUlfQk1TUikpOw0KIA0KIAluZXRp Zl9zdGFydF9xdWV1ZShkZXYpOw0KIA0KQEAgLTEwNzMsMjkgKzExMjksNzAg QEANCiAJcmV0dXJuIDA7DQogfQ0KIA0KLXN0YXRpYyB2b2lkIHZpYV9yaGlu ZV9jaGVja19kdXBsZXgoc3RydWN0IG5ldF9kZXZpY2UgKmRldikNCitzdGF0 aWMgaW50IHZpYV9yaGluZV9jaGVja19kdXBsZXgoc3RydWN0IG5ldF9kZXZp Y2UgKmRldikNCiB7DQogCXN0cnVjdCBuZXRkZXZfcHJpdmF0ZSAqbnAgPSBk ZXYtPnByaXY7DQogCWxvbmcgaW9hZGRyID0gZGV2LT5iYXNlX2FkZHI7DQot CWludCBtaWlfcmVnNSA9IG1kaW9fcmVhZChkZXYsIG5wLT5waHlzWzBdLCA1 KTsNCi0JaW50IG5lZ290aWF0ZWQgPSBtaWlfcmVnNSAmIG5wLT5hZHZlcnRp c2luZzsNCisJaW50IG1paV9yZWc7DQogCWludCBkdXBsZXg7DQorCWludCBj aGFuZ2VkID0gMDsNCiANCi0JaWYgKG5wLT5kdXBsZXhfbG9jayAgfHwgIG1p aV9yZWc1ID09IDB4ZmZmZikNCi0JCXJldHVybjsNCi0JZHVwbGV4ID0gKG5l Z290aWF0ZWQgJiAweDAxMDApIHx8IChuZWdvdGlhdGVkICYgMHgwMUMwKSA9 PSAweDAwNDA7DQorCW1paV9yZWcgPSBtZGlvX3JlYWQoZGV2LCBucC0+cGh5 c1swXSwgTUlJX0JNU1IpOw0KKwlpZiAobWlpX3JlZyA9PSAweGZmZmYpDQor CQlyZXR1cm4gY2hhbmdlZDsNCisNCisJaWYgKGRlYnVnID4gMykNCisJCXBy aW50ayhLRVJOX0RFQlVHICIlczogTUlJICMlZCByZXBvcnRzOiAlNC40eCwg Y2FycmllciBpczogJWRcbiIsDQorCQkJICAgZGV2LT5uYW1lLCBucC0+cGh5 c1swXSwgbWlpX3JlZywgbmV0aWZfY2Fycmllcl9vayhkZXYpKTsNCisJaWYg KCEobWlpX3JlZyAmIEJNU1JfTFNUQVRVUykpIHsNCisJCWlmIChuZXRpZl9j YXJyaWVyX29rKGRldikpIHsNCisJCQlpZiAoZGVidWcgPiAxKQ0KKwkJCQlw cmludGsoS0VSTl9ERUJVRyAiJXM6IE1JSSAjJWQgcmVwb3J0cyBubyBsaW5r LiBEaXNhYmxpbmcgd2F0Y2hkb2cuXG4iLA0KKwkJCQkJICAgZGV2LT5uYW1l LCBucC0+cGh5c1swXSk7DQorCQkJbmV0aWZfY2Fycmllcl9vZmYoZGV2KTsN CisJCX0NCisJfSBlbHNlIGlmICghbmV0aWZfY2Fycmllcl9vayhkZXYpKSB7 DQorCQlpZiAoZGVidWcgPiAxKQ0KKwkJCXByaW50ayhLRVJOX0RFQlVHICIl czogTUlJICMlZCBsaW5rIGlzIGJhY2suIEVuYWJsaW5nIHdhdGNoZG9nLlxu IiwNCisJCQkJICAgZGV2LT5uYW1lLCBucC0+cGh5c1swXSk7DQorCQluZXRp Zl9jYXJyaWVyX29uKGRldik7DQorCX0NCisNCisJaWYgKG5wLT5kcnZfZmxh Z3MgJiBIYXNEYXZpY29tUGh5KSB7DQorCQkvKiBJZiB0aGUgbGluayBwYXJ0 bmVyIGRvZXNuJ3Qgc3VwcG9ydCBhdXRvbmVnb3RpYXRpb24NCisJCSAqIHRo ZSBNSUkgZGV0ZWN0cyBpdCdzIGFiaWxpdGllcyB3aXRoIHRoZSAicGFyYWxs ZWwgZGV0ZWN0aW9uIi4NCisJCSAqIFNvbWUgTUlJcyB1cGRhdGUgdGhlIExQ QSByZWdpc3RlciB0byB0aGUgcmVzdWx0IG9mIHRoZSBwYXJhbGxlbA0KKwkJ ICogZGV0ZWN0aW9uLCBzb21lIGRvbid0Lg0KKwkJICogVGhlIERhdmljb20g UEhZIFthdCBsZWFzdCAwMTgxYjgwMF0gZG9lc24ndC4NCisJCSAqIEluc3Rl YWQgYml0IDggYW5kIDEzIG9mIHRoZSBCTUNSIGFyZSB1cGRhdGVkIHRvIHRo ZSByZXN1bHQNCisJCSAqIG9mIHRoZSBuZWdvdGlhdGlvbi4uDQorCQkgKi8N CisJCW1paV9yZWcgPSBtZGlvX3JlYWQoZGV2LCBucC0+cGh5c1swXSwgTUlJ X0JNQ1IpOw0KKwkJZHVwbGV4ID0gbWlpX3JlZyAmIDB4MTAwOw0KKwl9IGVs c2Ugew0KKwkJaW50IG5lZ290aWF0ZWQ7DQorCQltaWlfcmVnID0gbWRpb19y ZWFkKGRldiwgbnAtPnBoeXNbMF0sIE1JSV9MUEEpOw0KKwkJbmVnb3RpYXRl ZCA9IG1paV9yZWcgJiBucC0+YWR2ZXJ0aXNpbmc7DQorDQorCQlkdXBsZXgg PSAobmVnb3RpYXRlZCAmIDB4MDEwMCkgfHwgKChuZWdvdGlhdGVkICYgMHgw MkMwKSA9PSAweDAwNDApOw0KKwl9DQorDQorCWlmIChucC0+ZHVwbGV4X2xv Y2sgfHwgbWlpX3JlZyA9PSAweGZmZmYpDQorCQlyZXR1cm4gY2hhbmdlZDsN CiAJaWYgKG5wLT5mdWxsX2R1cGxleCAhPSBkdXBsZXgpIHsNCiAJCW5wLT5m dWxsX2R1cGxleCA9IGR1cGxleDsNCisJCWNoYW5nZWQgPSAxOw0KIAkJaWYg KGRlYnVnKQ0KIAkJCXByaW50ayhLRVJOX0lORk8gIiVzOiBTZXR0aW5nICVz LWR1cGxleCBiYXNlZCBvbiBNSUkgIyVkIGxpbmsiDQogCQkJCSAgICIgcGFy dG5lciBjYXBhYmlsaXR5IG9mICU0LjR4LlxuIiwgZGV2LT5uYW1lLA0KLQkJ CQkgICBkdXBsZXggPyAiZnVsbCIgOiAiaGFsZiIsIG5wLT5waHlzWzBdLCBt aWlfcmVnNSk7DQorCQkJCSAgIGR1cGxleCA/ICJmdWxsIiA6ICJoYWxmIiwg bnAtPnBoeXNbMF0sIG1paV9yZWcpOw0KIAkJaWYgKGR1cGxleCkNCiAJCQlu cC0+Y2hpcF9jbWQgfD0gQ21kRkR1cGxleDsNCiAJCWVsc2UNCiAJCQlucC0+ Y2hpcF9jbWQgJj0gfkNtZEZEdXBsZXg7DQogCQl3cml0ZXcobnAtPmNoaXBf Y21kLCBpb2FkZHIgKyBDaGlwQ21kKTsNCiAJfQ0KKwlyZXR1cm4gY2hhbmdl ZDsNCiB9DQogDQogDQpAQCAtMTEwNSw3ICsxMjAyLDYgQEANCiAJc3RydWN0 IG5ldGRldl9wcml2YXRlICpucCA9IGRldi0+cHJpdjsNCiAJbG9uZyBpb2Fk ZHIgPSBkZXYtPmJhc2VfYWRkcjsNCiAJaW50IG5leHRfdGljayA9IDEwKkha Ow0KLQlpbnQgbWlpX3N0YXR1czsNCiANCiAJaWYgKGRlYnVnID4gMykgew0K IAkJcHJpbnRrKEtFUk5fREVCVUcgIiVzOiBWSUEgUmhpbmUgbW9uaXRvciB0 aWNrLCBzdGF0dXMgJTQuNHguXG4iLA0KQEAgLTExMTMsMTkgKzEyMDksNyBA QA0KIAl9DQogDQogCXNwaW5fbG9ja19pcnEgKCZucC0+bG9jayk7DQotDQog CXZpYV9yaGluZV9jaGVja19kdXBsZXgoZGV2KTsNCi0NCi0JLyogbWFrZSBJ RkZfUlVOTklORyBmb2xsb3cgdGhlIE1JSSBzdGF0dXMgYml0ICJMaW5rIGVz dGFibGlzaGVkIiAqLw0KLQltaWlfc3RhdHVzID0gbWRpb19yZWFkKGRldiwg bnAtPnBoeXNbMF0sIDEpOw0KLQlpZiAoIChtaWlfc3RhdHVzICYgTUlJTGlu aykgIT0gKG5wLT5taWlfc3RhdHVzICYgTUlJTGluaykgKSB7DQotCQlpZiAo bWlpX3N0YXR1cyAmIE1JSUxpbmspDQotCQkJbmV0aWZfY2Fycmllcl9vbihk ZXYpOw0KLQkJZWxzZQ0KLQkJCW5ldGlmX2NhcnJpZXJfb2ZmKGRldik7DQot CX0NCi0JbnAtPm1paV9zdGF0dXMgPSBtaWlfc3RhdHVzOw0KLQ0KIAlzcGlu X3VubG9ja19pcnEgKCZucC0+bG9jayk7DQogDQogCW5wLT50aW1lci5leHBp cmVzID0gamlmZmllcyArIG5leHRfdGljazsNCkBAIC0xMTQxLDcgKzEyMjUs NyBAQA0KIAlwcmludGsgKEtFUk5fV0FSTklORyAiJXM6IFRyYW5zbWl0IHRp bWVkIG91dCwgc3RhdHVzICU0LjR4LCBQSFkgc3RhdHVzICINCiAJCSIlNC40 eCwgcmVzZXR0aW5nLi4uXG4iLA0KIAkJZGV2LT5uYW1lLCByZWFkdyAoaW9h ZGRyICsgSW50clN0YXR1cyksDQotCQltZGlvX3JlYWQgKGRldiwgbnAtPnBo eXNbMF0sIDEpKTsNCisJCW1kaW9fcmVhZCAoZGV2LCBucC0+cGh5c1swXSwg TUlJX0JNU1IpKTsNCiANCiAJZGV2LT5pZl9wb3J0ID0gMDsNCiANCkBAIC0x MjQzLDYgKzEzMjcsOCBAQA0KIAlsb25nIGlvYWRkcjsNCiAJdTMyIGludHJf c3RhdHVzOw0KIAlpbnQgYm9ndXNjbnQgPSBtYXhfaW50ZXJydXB0X3dvcms7 DQorCXN0cnVjdCBuZXRkZXZfcHJpdmF0ZSAqbnAgPSBkZXYtPnByaXY7DQor CWludCB1bmRlcmZsb3cgPSBucC0+ZHJ2X2ZsYWdzICYgSGFzSW50VHhVbmRl ckZsb3cgPyBJbnRyVHhVbmRlcmZsb3cgOiAwOw0KIA0KIAlpb2FkZHIgPSBk ZXYtPmJhc2VfYWRkcjsNCiAJDQpAQCAtMTI1OSw3ICsxMzQ1LDcgQEANCiAJ CQl2aWFfcmhpbmVfcngoZGV2KTsNCiANCiAJCWlmIChpbnRyX3N0YXR1cyAm IChJbnRyVHhEb25lIHwgSW50clR4QWJvcnQgfCBJbnRyVHhVbmRlcnJ1biB8 DQotCQkJCQkJICAgSW50clR4QWJvcnRlZCkpDQorCQkJCQkJICAgSW50clR4 QWJvcnRlZCB8IHVuZGVyZmxvdykpDQogCQkJdmlhX3JoaW5lX3R4KGRldik7 DQogDQogCQkvKiBBYm5vcm1hbCBlcnJvciBzdW1tYXJ5L3VuY29tbW9uIGV2 ZW50cyBoYW5kbGVycy4gKi8NCkBAIC0xMjg2LDYgKzEzNzIsNyBAQA0KIHsN CiAJc3RydWN0IG5ldGRldl9wcml2YXRlICpucCA9IGRldi0+cHJpdjsNCiAJ aW50IHR4c3RhdHVzID0gMCwgZW50cnkgPSBucC0+ZGlydHlfdHggJSBUWF9S SU5HX1NJWkU7DQorCWxvbmcgaW9hZGRyID0gZGV2LT5iYXNlX2FkZHI7DQog DQogCXNwaW5fbG9jayAoJm5wLT5sb2NrKTsNCiANCkBAIC0xMzA3LDcgKzEz OTQsMjUgQEANCiAJCQlpZiAodHhzdGF0dXMgJiAweDAxMDApIG5wLT5zdGF0 cy50eF9hYm9ydGVkX2Vycm9ycysrOw0KIAkJCWlmICh0eHN0YXR1cyAmIDB4 MDA4MCkgbnAtPnN0YXRzLnR4X2hlYXJ0YmVhdF9lcnJvcnMrKzsNCiAJCQlp ZiAodHhzdGF0dXMgJiAweDAwMDIpIG5wLT5zdGF0cy50eF9maWZvX2Vycm9y cysrOw0KKw0KIAkJCS8qIFRyYW5zbWl0dGVyIHJlc3RhcnRlZCBpbiAnYWJu b3JtYWwnIGhhbmRsZXIuICovDQorCQkJaWYgKHR4c3RhdHVzICYgMHgwOTAw KSB7DQorCQkJCW5wLT5zdGF0cy50eF9hYm9ydGVkX2Vycm9ycysrOw0KKwkJ CQl3bWIoKTsNCisJCQkJbnAtPnR4X3JpbmdbZW50cnldLnR4X3N0YXR1cyA9 IGNwdV90b19sZTMyKERlc2NPd24pOw0KKwkJCQl3bWIoKTsNCisJCQkJd3Jp dGVsKG5wLT50eF9yaW5nX2RtYSArIGVudHJ5ICogc2l6ZW9mKHN0cnVjdCB0 eF9kZXNjKSwNCisJCQkJCSAgIGlvYWRkciArIFR4UmluZ1B0cik7DQorDQor CQkJCS8qIFR1cm4gb24gVHggT24qLw0KKwkJCQl3cml0ZXcoQ21kVHhPbiB8 IG5wLT5jaGlwX2NtZCwgZGV2LT5iYXNlX2FkZHIgKyBDaGlwQ21kKTsgICAN CisgICAgIA0KKwkJCQkvKiBTdGF0cyBjb3VudGVkIGluIFR4LWRvbmUgaGFu ZGxlciwganVzdCByZXN0YXJ0IFR4LiAqLw0KKwkJCQl3cml0ZXcoQ21kVHhE ZW1hbmQgfCBucC0+Y2hpcF9jbWQsIGRldi0+YmFzZV9hZGRyICsgQ2hpcENt ZCk7DQorCQkJCWlmIChkZWJ1ZyA+IDEpIA0KKwkJCQkJcHJpbnRrKEtFUk5f RVJSICJUeCBBYm9ydCIpOw0KKwkJCQlicmVhazsNCisJCQl9DQogCQl9IGVs c2Ugew0KIAkJCW5wLT5zdGF0cy5jb2xsaXNpb25zICs9ICh0eHN0YXR1cyA+ PiAzKSAmIDE1Ow0KIAkJCW5wLT5zdGF0cy50eF9ieXRlcyArPSBucC0+dHhf c2tidWZmW2VudHJ5XS0+bGVuOw0KQEAgLTE0NDksMzAgKzE1NTQsNDYgQEAN CiB7DQogCXN0cnVjdCBuZXRkZXZfcHJpdmF0ZSAqbnAgPSBkZXYtPnByaXY7 DQogCWxvbmcgaW9hZGRyID0gZGV2LT5iYXNlX2FkZHI7DQorCWludCBtaWkg ICAgICAgPSBucC0+ZHJ2X2ZsYWdzICYgSGFzSW50VHhVbmRlckZsb3cgPyAw IDogSW50ck1JSUNoYW5nZTsNCisJaW50IHVuZGVyZmxvdyA9IG5wLT5kcnZf ZmxhZ3MgJiBIYXNJbnRUeFVuZGVyRmxvdyA/IEludHJUeFVuZGVyZmxvdyA6 IDA7DQogDQogCXNwaW5fbG9jayAoJm5wLT5sb2NrKTsNCiANCi0JaWYgKGlu dHJfc3RhdHVzICYgKEludHJNSUlDaGFuZ2UgfCBJbnRyTGlua0NoYW5nZSkp IHsNCisJaWYgKGludHJfc3RhdHVzICYgKG1paSB8IEludHJMaW5rQ2hhbmdl KSkgew0KKwkJaW50IGNoYW5nZWQ7DQorCQlpZiAoZGVidWcpDQorCQkJcHJp bnRrKEtFUk5fREVCVUcgIiVzOiBMaW5rIGNoYW5nZSwgc3RhdHVzPSU0LjR4 XG4iLA0KKwkJCSAgIGRldi0+bmFtZSwgaW50cl9zdGF0dXMpOw0KIAkJaWYg KHJlYWRiKGlvYWRkciArIE1JSVN0YXR1cykgJiAweDAyKSB7DQogCQkJLyog TGluayBmYWlsZWQsIHJlc3RhcnQgYXV0b25lZ290aWF0aW9uLiAqLw0KIAkJ CWlmIChucC0+ZHJ2X2ZsYWdzICYgSGFzRGF2aWNvbVBoeSkNCi0JCQkJbWRp b193cml0ZShkZXYsIG5wLT5waHlzWzBdLCAwLCAweDMzMDApOw0KKwkJCQlt ZGlvX3dyaXRlKGRldiwgbnAtPnBoeXNbMF0sIE1JSV9CTUNSLCAweDMzMDAp Ow0KKwkJCS8qIFdpbGwgdGhlIG5ldyBsaW5rIHN0YXR1cyBiZSByZXBvcnRl ZCBsYXRlPyAqLw0KKwkJCWNoYW5nZWQgPSAwOw0KIAkJfSBlbHNlDQotCQkJ dmlhX3JoaW5lX2NoZWNrX2R1cGxleChkZXYpOw0KLQkJaWYgKGRlYnVnKQ0K KwkJCWNoYW5nZWQgPSB2aWFfcmhpbmVfY2hlY2tfZHVwbGV4KGRldik7DQor CQlpZiAoZGVidWcgJiYgY2hhbmdlZCkNCiAJCQlwcmludGsoS0VSTl9FUlIg IiVzOiBNSUkgc3RhdHVzIGNoYW5nZWQ6IEF1dG9uZWdvdGlhdGlvbiAiDQog CQkJCSAgICJhZHZlcnRpc2luZyAlNC40eCAgcGFydG5lciAlNC40eC5cbiIs IGRldi0+bmFtZSwNCi0JCQkgICBtZGlvX3JlYWQoZGV2LCBucC0+cGh5c1sw XSwgNCksDQotCQkJICAgbWRpb19yZWFkKGRldiwgbnAtPnBoeXNbMF0sIDUp KTsNCisJCQkgICBtZGlvX3JlYWQoZGV2LCBucC0+cGh5c1swXSwgTUlJX0FE VkVSVElTRSksDQorCQkJICAgbWRpb19yZWFkKGRldiwgbnAtPnBoeXNbMF0s IE1JSV9MUEEpKTsNCiAJfQ0KIAlpZiAoaW50cl9zdGF0dXMgJiBJbnRyU3Rh dHNNYXgpIHsNCiAJCW5wLT5zdGF0cy5yeF9jcmNfZXJyb3JzCSs9IHJlYWR3 KGlvYWRkciArIFJ4Q1JDRXJycyk7DQogCQlucC0+c3RhdHMucnhfbWlzc2Vk X2Vycm9ycwkrPSByZWFkdyhpb2FkZHIgKyBSeE1pc3NlZCk7DQogCQljbGVh cl90YWxseV9jb3VudGVycyhpb2FkZHIpOw0KIAl9DQotCWlmIChpbnRyX3N0 YXR1cyAmIEludHJUeEFib3J0KSB7DQorCWlmIChpbnRyX3N0YXR1cyAmICh1 bmRlcmZsb3cgfCBJbnRyVHhBYm9ydCkpIHsNCiAJCS8qIFN0YXRzIGNvdW50 ZWQgaW4gVHgtZG9uZSBoYW5kbGVyLCBqdXN0IHJlc3RhcnQgVHguICovDQog CQl3cml0ZXcoQ21kVHhEZW1hbmQgfCBucC0+Y2hpcF9jbWQsIGRldi0+YmFz ZV9hZGRyICsgQ2hpcENtZCk7DQorCQlpZiAoZGVidWcgPiAxKSB7DQorCQkJ aWYgKGludHJfc3RhdHVzICYgdW5kZXJmbG93KQ0KKwkJCQlwcmludGsoS0VS Tl9JTkZPICIlczogVHJhbnNtaXR0ZXIgdW5kZXJmbG93LCBzdGF0dXMgJTQu NHguXG4iLA0KKwkJCQkJICAgZGV2LT5uYW1lLCBpbnRyX3N0YXR1cyk7DQor CQkJaWYgKGludHJfc3RhdHVzICYgKEludHJUeEFib3J0IHwgSW50clR4QWJv cnRlZCkpDQorCQkJCXByaW50ayhLRVJOX0lORk8gIiVzOiBFeGNlc3NpdmUg Y29sbGlzaW9ucywgc3RhdHVzICU0LjR4LlxuIiwNCisJCQkJCSAgIGRldi0+ bmFtZSwgaW50cl9zdGF0dXMpOw0KKwkJfQ0KIAl9DQogCWlmIChpbnRyX3N0 YXR1cyAmIEludHJUeFVuZGVycnVuKSB7DQogCQlpZiAobnAtPnR4X3RocmVz aCA8IDB4RTApDQpAQCAtMTQ4MSw4ICsxNjAyLDcgQEANCiAJCQlwcmludGso S0VSTl9JTkZPICIlczogVHJhbnNtaXR0ZXIgdW5kZXJydW4sIGluY3JlYXNp bmcgVHggIg0KIAkJCQkgICAidGhyZXNob2xkIHNldHRpbmcgdG8gJTIuMngu XG4iLCBkZXYtPm5hbWUsIG5wLT50eF90aHJlc2gpOw0KIAl9DQotCWlmICgo aW50cl9zdGF0dXMgJiB+KCBJbnRyTGlua0NoYW5nZSB8IEludHJTdGF0c01h eCB8DQotCQkJCQkJICBJbnRyVHhBYm9ydCB8IEludHJUeEFib3J0ZWQpKSkg ew0KKwlpZiAoKGludHJfc3RhdHVzICYgfiggSW50ckxpbmtDaGFuZ2UgfCBJ bnRyU3RhdHNNYXggfCBJbnRyVHhBYm9ydGVkKSkpIHsNCiAJCWlmIChkZWJ1 ZyA+IDEpDQogCQkJcHJpbnRrKEtFUk5fRVJSICIlczogU29tZXRoaW5nIFdp Y2tlZCBoYXBwZW5lZCEgJTQuNHguXG4iLA0KIAkJCSAgIGRldi0+bmFtZSwg aW50cl9zdGF0dXMpOw0K ---1463780587-359932590-1012338410=:6137-- - 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/