From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Wed, 13 Jun 2001 19:22:29 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Wed, 13 Jun 2001 19:22:20 -0400 Received: from cip.physik.uni-wuerzburg.de ([132.187.42.13]:37387 "EHLO wpax13.physik.uni-wuerzburg.de") by vger.kernel.org with ESMTP id ; Wed, 13 Jun 2001 19:22:01 -0400 Date: Thu, 14 Jun 2001 01:20:42 +0200 (METDST) From: Andreas Klein To: Kai Germaschewski cc: Boenisch Joerg , "Linux-Kernel (E-Mail)" Subject: Re: AVM A1 pcmcia, kernel 2.4.5-ac11 problem In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="2003038337-851401618-992474442=:2297" 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. --2003038337-851401618-992474442=:2297 Content-Type: TEXT/PLAIN; charset=US-ASCII Hello, On Wed, 13 Jun 2001, Kai Germaschewski wrote: > On Tue, 12 Jun 2001, Boenisch Joerg wrote: > > If you dig it up somewhere and get it working with 2.4.5, it would be nice > if you let me know. We can then work together to integrate it into the > kernel tree - I can't do it myself, because I don't have the card. > > --Kai I am using the attached patch without problems with the 2.4.X series of the linux-kernel (at the moment I am runnign 2.4.5-ac13). The patch is the same, as the one Jochen Friedrich has sent a few day ago (including a small fix). Bye, -- Andreas Klein asklein@cip.physik.uni-wuerzburg.de root / webmaster @cip.physik.uni-wuerzburg.de root / webmaster @www.physik.uni-wuerzburg.de _____________________________________ | | | Long live our gracious AMIGA! | |___________________________________| --2003038337-851401618-992474442=:2297 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="avm.dif" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename="avm.dif" ZGlmZiAtdSAtciAtTiBsaW51eC9kcml2ZXJzL2lzZG4vTWFrZWZpbGUgbGlu dXgtMi40LjIvZHJpdmVycy9pc2RuL01ha2VmaWxlDQotLS0gbGludXgvZHJp dmVycy9pc2RuL01ha2VmaWxlCUZyaSBEZWMgMjkgMjM6NDA6NTQgMjAwMA0K KysrIGxpbnV4LTIuNC4yL2RyaXZlcnMvaXNkbi9NYWtlZmlsZQlTYXQgTWFy IDEwIDE1OjU1OjU5IDIwMDENCkBAIC00NSw2ICs0NSwxNSBAQA0KIHN1YmRp ci0kKENPTkZJR19JU0ROX0RSVl9FSUNPTikJCSs9IGVpY29uDQogc3ViZGly LSQoQ09ORklHX0hZU0ROKQkJCSs9IGh5c2RuDQogDQoraWZlcSAoJChDT05G SUdfUENNQ0lBKSx5KQ0KKyAgc3ViZGlyLXkgKz0gcGNtY2lhDQorICBzdWJk aXItbSArPSBwY21jaWENCitlbHNlDQorICBpZmVxICgkKENPTkZJR19QQ01D SUEpLG0pDQorICAgIHN1YmRpci1tICs9IHBjbWNpYQ0KKyAgZW5kaWYNCitl bmRpZg0KKw0KIG9iai15ICs9ICQoYWRkc3VmZml4IC92bWxpbnV4LW9iai5v LCAkKHN1YmRpci15KSkNCiANCiAjIFRoZSBnbG9iYWwgUnVsZXMubWFrZS4N CmRpZmYgLXUgLXIgLU4gbGludXgvZHJpdmVycy9pc2RuL3BjbWNpYS9NYWtl ZmlsZSBsaW51eC0yLjQuMi9kcml2ZXJzL2lzZG4vcGNtY2lhL01ha2VmaWxl DQotLS0gbGludXgvZHJpdmVycy9pc2RuL3BjbWNpYS9NYWtlZmlsZQlUaHUg SmFuICAxIDAxOjAwOjAwIDE5NzANCisrKyBsaW51eC0yLjQuMi9kcml2ZXJz L2lzZG4vcGNtY2lhL01ha2VmaWxlCVNhdCBNYXIgMTAgMTU6NTU6MzAgMjAw MQ0KQEAgLTAsMCArMSwyMCBAQA0KKyMNCisjIE1ha2VmaWxlIGZvciBkcml2 ZXJzL2lzZG4vcGNtY2lhDQorIw0KKyMgTm90ZSEgRGVwZW5kZW5jaWVzIGFy ZSBkb25lIGF1dG9tYWdpY2FsbHkgYnkgJ21ha2UgZGVwJywgd2hpY2ggYWxz bw0KKyMgcmVtb3ZlcyBhbnkgb2xkIGRlcGVuZGVuY2llcy4gRE9OJ1QgcHV0 IHlvdXIgb3duIGRlcGVuZGVuY2llcyBoZXJlDQorIyB1bmxlc3MgaXQncyBz b21ldGhpbmcgc3BlY2lhbCAoaWUgbm90IGEgLmMgZmlsZSkuDQorIw0KKw0K K29iai15ICAgOj0NCitvYmotbiAgIDo9DQorb2JqLW0gICA6PQ0KK29iai0g ICAgOj0NCisNCitpZmVxICgkKENPTkZJR19JU0ROX0RSVl9ISVNBWCksbSkN CisgIGlmZXEgKCQoQ09ORklHX0hJU0FYX0FWTV9BMV9QQ01DSUEpLHkpDQor ICAgIG9iai1tICs9IGF2bWExX2NzLm8NCisgIGVuZGlmDQorZW5kaWYNCisN CitpbmNsdWRlICQoVE9QRElSKS9SdWxlcy5tYWtlDQpkaWZmIC11IC1yIC1O IGxpbnV4L2RyaXZlcnMvaXNkbi9wY21jaWEvYXZtYTFfY3MuYyBsaW51eC0y LjQuMi9kcml2ZXJzL2lzZG4vcGNtY2lhL2F2bWExX2NzLmMNCi0tLSBsaW51 eC9kcml2ZXJzL2lzZG4vcGNtY2lhL2F2bWExX2NzLmMJVGh1IEphbiAgMSAw MTowMDowMCAxOTcwDQorKysgbGludXgtMi40LjIvZHJpdmVycy9pc2RuL3Bj bWNpYS9hdm1hMV9jcy5jCVNhdCBNYXIgMTAgMTU6NTU6MzAgMjAwMQ0KQEAg LTAsMCArMSw1NDEgQEANCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N CisNCisgICAgQSBQQ01DSUEgY2xpZW50IGRyaXZlciBmb3IgQVZNIEIxL00x L00yDQorDQorICAgIFdyaXR0ZW4gYnkgQ2Fyc3RlbiBQYWV0aCwgY2FsbGVA Y2FsbGUuaW4tYmVybGluLmRlDQorICAgIA0KKz09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0qLw0KKw0KKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4NCisj aW5jbHVkZSA8bGludXgva2VybmVsLmg+DQorI2luY2x1ZGUgPGxpbnV4L3Nj aGVkLmg+DQorI2luY2x1ZGUgPGxpbnV4L3B0cmFjZS5oPg0KKyNpbmNsdWRl IDxsaW51eC9tYWxsb2MuaD4NCisjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+ DQorI2luY2x1ZGUgPGxpbnV4L3RpbWVyLmg+DQorI2luY2x1ZGUgPGFzbS9p by5oPg0KKyNpbmNsdWRlIDxhc20vc3lzdGVtLmg+DQorDQorI2luY2x1ZGUg PHBjbWNpYS92ZXJzaW9uLmg+DQorI2luY2x1ZGUgPHBjbWNpYS9jc190eXBl cy5oPg0KKyNpbmNsdWRlIDxwY21jaWEvY3MuaD4NCisjaW5jbHVkZSA8cGNt Y2lhL2Npc3RwbC5oPg0KKyNpbmNsdWRlIDxwY21jaWEvZHMuaD4NCisNCitp bnQgYXZtX2ExX2luaXRfcGNtY2lhKHZvaWQgKnBjbV9pb2IsIGludCBwY21f aXJxLCBpbnQgKmJ1c3lfZmxhZywgaW50IHByb3QpOw0KK3ZvaWQgSGlTYXhf Y2xvc2VjYXJkKGludCBjYXJkbnIpOw0KKw0KKw0KKy8qDQorICAgQWxsIHRo ZSBQQ01DSUEgbW9kdWxlcyB1c2UgUENNQ0lBX0RFQlVHIHRvIGNvbnRyb2wg ZGVidWdnaW5nLiAgSWYNCisgICB5b3UgZG8gbm90IGRlZmluZSBQQ01DSUFf REVCVUcgYXQgYWxsLCBhbGwgdGhlIGRlYnVnIGNvZGUgd2lsbCBiZQ0KKyAg IGxlZnQgb3V0LiAgSWYgeW91IGNvbXBpbGUgd2l0aCBQQ01DSUFfREVCVUc9 MCwgdGhlIGRlYnVnIGNvZGUgd2lsbA0KKyAgIGJlIHByZXNlbnQgYnV0IGRp c2FibGVkIC0tIGJ1dCBpdCBjYW4gdGhlbiBiZSBlbmFibGVkIGZvciBzcGVj aWZpYw0KKyAgIG1vZHVsZXMgYXQgbG9hZCB0aW1lIHdpdGggYSAncGNfZGVi dWc9Iycgb3B0aW9uIHRvIGluc21vZC4NCisqLw0KKyNpZmRlZiBQQ01DSUFf REVCVUcNCitzdGF0aWMgaW50IHBjX2RlYnVnID0gUENNQ0lBX0RFQlVHOw0K K01PRFVMRV9QQVJNKHBjX2RlYnVnLCAiaSIpOw0KKyNkZWZpbmUgREVCVUco biwgYXJncy4uLikgaWYgKHBjX2RlYnVnPihuKSkgcHJpbnRrKEtFUk5fREVC VUcgYXJncyk7DQorc3RhdGljIGNoYXIgKnZlcnNpb24gPQ0KKyJhdm1hMV9j cy5jIDEuMDAgMTk5OC8wMS8yMyAxMDowMDowMCAoQ2Fyc3RlbiBQYWV0aCki Ow0KKyNlbHNlDQorI2RlZmluZSBERUJVRyhuLCBhcmdzLi4uKQ0KKyNlbmRp Zg0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KKw0KKy8qIFBh cmFtZXRlcnMgdGhhdCBjYW4gYmUgc2V0IHdpdGggJ2luc21vZCcgKi8NCisN CitzdGF0aWMgaW50IGRlZmF1bHRfaXJxX2xpc3RbMTFdID0geyAxNSwgMTMs IDEyLCAxMSwgMTAsIDksIDcsIDUsIDQsIDMsIC0xIH07DQorc3RhdGljIGlu dCBpcnFfbGlzdFsxMV0gPSB7IC0xIH07DQorc3RhdGljIGludCBpc2RucHJv dCA9IDI7DQorDQorTU9EVUxFX1BBUk0oaXJxX2xpc3QsICIxLTExaSIpOw0K K01PRFVMRV9QQVJNKGlzZG5wcm90LCAiMS00aSIpOw0KKw0KKy8qPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0qLw0KKw0KKy8qDQorICAgVGhlIGV2ZW50KCkg ZnVuY3Rpb24gaXMgdGhpcyBkcml2ZXIncyBDYXJkIFNlcnZpY2VzIGV2ZW50 IGhhbmRsZXIuDQorICAgSXQgd2lsbCBiZSBjYWxsZWQgYnkgQ2FyZCBTZXJ2 aWNlcyB3aGVuIGFuIGFwcHJvcHJpYXRlIGNhcmQgc3RhdHVzDQorICAgZXZl bnQgaXMgcmVjZWl2ZWQuICBUaGUgY29uZmlnKCkgYW5kIHJlbGVhc2UoKSBl bnRyeSBwb2ludHMgYXJlDQorICAgdXNlZCB0byBjb25maWd1cmUgb3IgcmVs ZWFzZSBhIHNvY2tldCwgaW4gcmVzcG9uc2UgdG8gY2FyZCBpbnNlcnRpb24N CisgICBhbmQgZWplY3Rpb24gZXZlbnRzLiAgVGhleSBhcmUgaW52b2tlZCBm cm9tIHRoZSBza2VsZXRvbiBldmVudA0KKyAgIGhhbmRsZXIuDQorKi8NCisN CitzdGF0aWMgdm9pZCBhdm1hMWNzX2NvbmZpZyhkZXZfbGlua190ICpsaW5r KTsNCitzdGF0aWMgdm9pZCBhdm1hMWNzX3JlbGVhc2UodV9sb25nIGFyZyk7 DQorc3RhdGljIGludCBhdm1hMWNzX2V2ZW50KGV2ZW50X3QgZXZlbnQsIGlu dCBwcmlvcml0eSwNCisJCQkgIGV2ZW50X2NhbGxiYWNrX2FyZ3NfdCAqYXJn cyk7DQorDQorLyoNCisgICBUaGUgYXR0YWNoKCkgYW5kIGRldGFjaCgpIGVu dHJ5IHBvaW50cyBhcmUgdXNlZCB0byBjcmVhdGUgYW5kIGRlc3Ryb3kNCisg ICAiaW5zdGFuY2VzIiBvZiB0aGUgZHJpdmVyLCB3aGVyZSBlYWNoIGluc3Rh bmNlIHJlcHJlc2VudHMgZXZlcnl0aGluZw0KKyAgIG5lZWRlZCB0byBtYW5h Z2Ugb25lIGFjdHVhbCBQQ01DSUEgY2FyZC4NCisqLw0KKw0KK3N0YXRpYyBk ZXZfbGlua190ICphdm1hMWNzX2F0dGFjaCh2b2lkKTsNCitzdGF0aWMgdm9p ZCBhdm1hMWNzX2RldGFjaChkZXZfbGlua190ICopOw0KKw0KKy8qDQorICAg VGhlIGRldl9pbmZvIHZhcmlhYmxlIGlzIHRoZSAia2V5IiB0aGF0IGlzIHVz ZWQgdG8gbWF0Y2ggdXAgdGhpcw0KKyAgIGRldmljZSBkcml2ZXIgd2l0aCBh cHByb3ByaWF0ZSBjYXJkcywgdGhyb3VnaCB0aGUgY2FyZCBjb25maWd1cmF0 aW9uDQorICAgZGF0YWJhc2UuDQorKi8NCisNCitzdGF0aWMgZGV2X2luZm9f dCBkZXZfaW5mbyA9ICJhdm1hMV9jcyI7DQorDQorLyoNCisgICBBIGxpbmtl ZCBsaXN0IG9mICJpbnN0YW5jZXMiIG9mIHRoZSBza2VsZXRvbiBkZXZpY2Uu ICBFYWNoIGFjdHVhbA0KKyAgIFBDTUNJQSBjYXJkIGNvcnJlc3BvbmRzIHRv IG9uZSBkZXZpY2UgaW5zdGFuY2UsIGFuZCBpcyBkZXNjcmliZWQNCisgICBi eSBvbmUgZGV2X2xpbmtfdCBzdHJ1Y3R1cmUgKGRlZmluZWQgaW4gZHMuaCku DQorDQorICAgWW91IG1heSBub3Qgd2FudCB0byB1c2UgYSBsaW5rZWQgbGlz dCBmb3IgdGhpcyAtLSBmb3IgZXhhbXBsZSwgdGhlDQorICAgbWVtb3J5IGNh cmQgZHJpdmVyIHVzZXMgYW4gYXJyYXkgb2YgZGV2X2xpbmtfdCBwb2ludGVy cywgd2hlcmUgbWlub3INCisgICBkZXZpY2UgbnVtYmVycyBhcmUgdXNlZCB0 byBkZXJpdmUgdGhlIGNvcnJlc3BvbmRpbmcgYXJyYXkgaW5kZXguDQorKi8N CisNCitzdGF0aWMgZGV2X2xpbmtfdCAqZGV2X2xpc3QgPSBOVUxMOw0KKw0K Ky8qDQorICAgQSBkZXZfbGlua190IHN0cnVjdHVyZSBoYXMgZmllbGRzIGZv ciBtb3N0IHRoaW5ncyB0aGF0IGFyZSBuZWVkZWQNCisgICB0byBrZWVwIHRy YWNrIG9mIGEgc29ja2V0LCBidXQgdGhlcmUgd2lsbCB1c3VhbGx5IGJlIHNv bWUgZGV2aWNlDQorICAgc3BlY2lmaWMgaW5mb3JtYXRpb24gdGhhdCBhbHNv IG5lZWRzIHRvIGJlIGtlcHQgdHJhY2sgb2YuICBUaGUNCisgICAncHJpdicg cG9pbnRlciBpbiBhIGRldl9saW5rX3Qgc3RydWN0dXJlIGNhbiBiZSB1c2Vk IHRvIHBvaW50IHRvDQorICAgYSBkZXZpY2Utc3BlY2lmaWMgcHJpdmF0ZSBk YXRhIHN0cnVjdHVyZSwgbGlrZSB0aGlzLg0KKw0KKyAgIEEgZHJpdmVyIG5l ZWRzIHRvIHByb3ZpZGUgYSBkZXZfbm9kZV90IHN0cnVjdHVyZSBmb3IgZWFj aCBkZXZpY2UNCisgICBvbiBhIGNhcmQuICBJbiBzb21lIGNhc2VzLCB0aGVy ZSBpcyBvbmx5IG9uZSBkZXZpY2UgcGVyIGNhcmQgKGZvcg0KKyAgIGV4YW1w bGUsIGV0aGVybmV0IGNhcmRzLCBtb2RlbXMpLiAgSW4gb3RoZXIgY2FzZXMs IHRoZXJlIG1heSBiZQ0KKyAgIG1hbnkgYWN0dWFsIG9yIGxvZ2ljYWwgZGV2 aWNlcyAoU0NTSSBhZGFwdGVycywgbWVtb3J5IGNhcmRzIHdpdGgNCisgICBt dWx0aXBsZSBwYXJ0aXRpb25zKS4gIFRoZSBkZXZfbm9kZV90IHN0cnVjdHVy ZXMgbmVlZCB0byBiZSBrZXB0DQorICAgaW4gYSBsaW5rZWQgbGlzdCBzdGFy dGluZyBhdCB0aGUgJ2RldicgZmllbGQgb2YgYSBkZXZfbGlua190DQorICAg c3RydWN0dXJlLiAgV2UgYWxsb2NhdGUgdGhlbSBpbiB0aGUgY2FyZCdzIHBy aXZhdGUgZGF0YSBzdHJ1Y3R1cmUsDQorICAgYmVjYXVzZSB0aGV5IGdlbmVy YWxseSBjYW4ndCBiZSBhbGxvY2F0ZWQgZHluYW1pY2FsbHkuDQorKi8NCisg ICANCit0eXBlZGVmIHN0cnVjdCBsb2NhbF9pbmZvX3Qgew0KKyAgICBkZXZf bm9kZV90CW5vZGU7DQorfSBsb2NhbF9pbmZvX3Q7DQorDQorLyo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PSovDQorDQorc3RhdGljIHZvaWQgY3NfZXJyb3Io Y2xpZW50X2hhbmRsZV90IGhhbmRsZSwgaW50IGZ1bmMsIGludCByZXQpDQor ew0KKyAgICBlcnJvcl9pbmZvX3QgZXJyID0geyBmdW5jLCByZXQgfTsNCisg ICAgQ2FyZFNlcnZpY2VzKFJlcG9ydEVycm9yLCBoYW5kbGUsICZlcnIpOw0K K30NCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisNCisgICAg YXZtYTFjc19hdHRhY2goKSBjcmVhdGVzIGFuICJpbnN0YW5jZSIgb2YgdGhl IGRyaXZlciwgYWxsb2NhdGluZw0KKyAgICBsb2NhbCBkYXRhIHN0cnVjdHVy ZXMgZm9yIG9uZSBkZXZpY2UuICBUaGUgZGV2aWNlIGlzIHJlZ2lzdGVyZWQN CisgICAgd2l0aCBDYXJkIFNlcnZpY2VzLg0KKw0KKyAgICBUaGUgZGV2X2xp bmsgc3RydWN0dXJlIGlzIGluaXRpYWxpemVkLCBidXQgd2UgZG9uJ3QgYWN0 dWFsbHkNCisgICAgY29uZmlndXJlIHRoZSBjYXJkIGF0IHRoaXMgcG9pbnQg LS0gd2Ugd2FpdCB1bnRpbCB3ZSByZWNlaXZlIGENCisgICAgY2FyZCBpbnNl cnRpb24gZXZlbnQuDQorICAgIA0KKz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0qLw0KKw0KK3N0YXRpYyBkZXZfbGlua190ICphdm1hMWNzX2F0dGFjaCh2 b2lkKQ0KK3sNCisgICAgY2xpZW50X3JlZ190IGNsaWVudF9yZWc7DQorICAg IGRldl9saW5rX3QgKmxpbms7DQorICAgIGxvY2FsX2luZm9fdCAqbG9jYWw7 DQorICAgIGludCByZXQsIGk7DQorICAgIA0KKyAgICBERUJVRygwLCAiYXZt YTFjc19hdHRhY2goKVxuIik7DQorDQorICAgIC8qIEluaXRpYWxpemUgdGhl IGRldl9saW5rX3Qgc3RydWN0dXJlICovDQorICAgIGxpbmsgPSBrbWFsbG9j KHNpemVvZihzdHJ1Y3QgZGV2X2xpbmtfdCksIEdGUF9LRVJORUwpOw0KKyAg ICBtZW1zZXQobGluaywgMCwgc2l6ZW9mKHN0cnVjdCBkZXZfbGlua190KSk7 DQorICAgIGxpbmstPnJlbGVhc2UuZnVuY3Rpb24gPSAmYXZtYTFjc19yZWxl YXNlOw0KKyAgICBsaW5rLT5yZWxlYXNlLmRhdGEgPSAodV9sb25nKWxpbms7 DQorDQorICAgIC8qIFRoZSBpbyBzdHJ1Y3R1cmUgZGVzY3JpYmVzIElPIHBv cnQgbWFwcGluZyAqLw0KKyAgICBsaW5rLT5pby5OdW1Qb3J0czEgPSAxNjsN CisgICAgbGluay0+aW8uQXR0cmlidXRlczEgPSBJT19EQVRBX1BBVEhfV0lE VEhfODsNCisgICAgbGluay0+aW8uTnVtUG9ydHMyID0gMTY7DQorICAgIGxp bmstPmlvLkF0dHJpYnV0ZXMyID0gSU9fREFUQV9QQVRIX1dJRFRIXzE2Ow0K KyAgICBsaW5rLT5pby5JT0FkZHJMaW5lcyA9IDU7DQorDQorICAgIC8qIElu dGVycnVwdCBzZXR1cCAqLw0KKyAgICBsaW5rLT5pcnEuQXR0cmlidXRlcyA9 IElSUV9UWVBFX0VYQ0xVU0lWRTsNCisgICAgbGluay0+aXJxLkF0dHJpYnV0 ZXMgPSBJUlFfVFlQRV9EWU5BTUlDX1NIQVJJTkd8SVJRX0ZJUlNUX1NIQVJF RDsNCisNCisgICAgbGluay0+aXJxLklSUUluZm8xID0gSVJRX0lORk8yX1ZB TElEfElSUV9MRVZFTF9JRDsNCisgICAgaWYgKGlycV9saXN0WzBdICE9IC0x KSB7DQorCSAgICBmb3IgKGkgPSAwOyBpIDwgMTAgJiYgaXJxX2xpc3RbaV0g PiAwOyBpKyspDQorCSAgICAgICBsaW5rLT5pcnEuSVJRSW5mbzIgfD0gMSA8 PCBpcnFfbGlzdFtpXTsNCisgICAgfSBlbHNlIHsNCisJICAgIGZvciAoaSA9 IDA7IGkgPCAxMCAmJiBkZWZhdWx0X2lycV9saXN0W2ldID4gMDsgaSsrKQ0K KwkgICAgICAgbGluay0+aXJxLklSUUluZm8yIHw9IDEgPDwgZGVmYXVsdF9p cnFfbGlzdFtpXTsNCisgICAgfQ0KKyAgICANCisgICAgLyogR2VuZXJhbCBz b2NrZXQgY29uZmlndXJhdGlvbiAqLw0KKyAgICBsaW5rLT5jb25mLkF0dHJp YnV0ZXMgPSBDT05GX0VOQUJMRV9JUlE7DQorICAgIGxpbmstPmNvbmYuVmNj ID0gNTA7DQorICAgIGxpbmstPmNvbmYuSW50VHlwZSA9IElOVF9NRU1PUllf QU5EX0lPOw0KKyAgICBsaW5rLT5jb25mLkNvbmZpZ0luZGV4ID0gMTsNCisg ICAgbGluay0+Y29uZi5QcmVzZW50ID0gUFJFU0VOVF9PUFRJT047DQorDQor ICAgIC8qIEFsbG9jYXRlIHNwYWNlIGZvciBwcml2YXRlIGRldmljZS1zcGVj aWZpYyBkYXRhICovDQorICAgIGxvY2FsID0ga21hbGxvYyhzaXplb2YobG9j YWxfaW5mb190KSwgR0ZQX0tFUk5FTCk7DQorICAgIG1lbXNldChsb2NhbCwg MCwgc2l6ZW9mKGxvY2FsX2luZm9fdCkpOw0KKyAgICBsaW5rLT5wcml2ID0g bG9jYWw7DQorICAgIA0KKyAgICAvKiBSZWdpc3RlciB3aXRoIENhcmQgU2Vy dmljZXMgKi8NCisgICAgbGluay0+bmV4dCA9IGRldl9saXN0Ow0KKyAgICBk ZXZfbGlzdCA9IGxpbms7DQorICAgIGNsaWVudF9yZWcuZGV2X2luZm8gPSAm ZGV2X2luZm87DQorICAgIGNsaWVudF9yZWcuQXR0cmlidXRlcyA9IElORk9f SU9fQ0xJRU5UIHwgSU5GT19DQVJEX1NIQVJFOw0KKyAgICBjbGllbnRfcmVn LkV2ZW50TWFzayA9DQorCUNTX0VWRU5UX0NBUkRfSU5TRVJUSU9OIHwgQ1Nf RVZFTlRfQ0FSRF9SRU1PVkFMIHwNCisJQ1NfRVZFTlRfUkVTRVRfUEhZU0lD QUwgfCBDU19FVkVOVF9DQVJEX1JFU0VUIHwNCisJQ1NfRVZFTlRfUE1fU1VT UEVORCB8IENTX0VWRU5UX1BNX1JFU1VNRTsNCisgICAgY2xpZW50X3JlZy5l dmVudF9oYW5kbGVyID0gJmF2bWExY3NfZXZlbnQ7DQorICAgIGNsaWVudF9y ZWcuVmVyc2lvbiA9IDB4MDIxMDsNCisgICAgY2xpZW50X3JlZy5ldmVudF9j YWxsYmFja19hcmdzLmNsaWVudF9kYXRhID0gbGluazsNCisgICAgcmV0ID0g Q2FyZFNlcnZpY2VzKFJlZ2lzdGVyQ2xpZW50LCAmbGluay0+aGFuZGxlLCAm Y2xpZW50X3JlZyk7DQorICAgIGlmIChyZXQgIT0gMCkgew0KKwljc19lcnJv cihsaW5rLT5oYW5kbGUsIFJlZ2lzdGVyQ2xpZW50LCByZXQpOw0KKwlhdm1h MWNzX2RldGFjaChsaW5rKTsNCisJcmV0dXJuIE5VTEw7DQorICAgIH0NCisN CisgICAgcmV0dXJuIGxpbms7DQorfSAvKiBhdm1hMWNzX2F0dGFjaCAqLw0K Kw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKw0KKyAgICBUaGlz IGRlbGV0ZXMgYSBkcml2ZXIgImluc3RhbmNlIi4gIFRoZSBkZXZpY2UgaXMg ZGUtcmVnaXN0ZXJlZA0KKyAgICB3aXRoIENhcmQgU2VydmljZXMuICBJZiBp dCBoYXMgYmVlbiByZWxlYXNlZCwgYWxsIGxvY2FsIGRhdGENCisgICAgc3Ry dWN0dXJlcyBhcmUgZnJlZWQuICBPdGhlcndpc2UsIHRoZSBzdHJ1Y3R1cmVz IHdpbGwgYmUgZnJlZWQNCisgICAgd2hlbiB0aGUgZGV2aWNlIGlzIHJlbGVh c2VkLg0KKw0KKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0qLw0KKw0KK3N0 YXRpYyB2b2lkIGF2bWExY3NfZGV0YWNoKGRldl9saW5rX3QgKmxpbmspDQor ew0KKyAgICBkZXZfbGlua190ICoqbGlua3A7DQorDQorICAgIERFQlVHKDAs ICJhdm1hMWNzX2RldGFjaCgweCVwKVxuIiwgbGluayk7DQorICAgIA0KKyAg ICAvKiBMb2NhdGUgZGV2aWNlIHN0cnVjdHVyZSAqLw0KKyAgICBmb3IgKGxp bmtwID0gJmRldl9saXN0OyAqbGlua3A7IGxpbmtwID0gJigqbGlua3ApLT5u ZXh0KQ0KKwlpZiAoKmxpbmtwID09IGxpbmspIGJyZWFrOw0KKyAgICBpZiAo KmxpbmtwID09IE5VTEwpDQorCXJldHVybjsNCisNCisgICAgLyoNCisgICAg ICAgSWYgdGhlIGRldmljZSBpcyBjdXJyZW50bHkgY29uZmlndXJlZCBhbmQg YWN0aXZlLCB3ZSB3b24ndA0KKyAgICAgICBhY3R1YWxseSBkZWxldGUgaXQg eWV0LiAgSW5zdGVhZCwgaXQgaXMgbWFya2VkIHNvIHRoYXQgd2hlbg0KKyAg ICAgICB0aGUgcmVsZWFzZSgpIGZ1bmN0aW9uIGlzIGNhbGxlZCwgdGhhdCB3 aWxsIHRyaWdnZXIgYSBwcm9wZXINCisgICAgICAgZGV0YWNoKCkuDQorICAg ICovDQorICAgIGlmIChsaW5rLT5zdGF0ZSAmIERFVl9DT05GSUcpIHsNCisj aWZkZWYgUENNQ0lBX0RFQlVHDQorCXByaW50ayhLRVJOX0RFQlVHICJhdm1h MV9jczogZGV0YWNoIHBvc3Rwb25lZCwgJyVzJyAiDQorCSAgICAgICAic3Rp bGwgbG9ja2VkXG4iLCBsaW5rLT5kZXYtPmRldl9uYW1lKTsNCisjZW5kaWYN CisJbGluay0+c3RhdGUgfD0gREVWX1NUQUxFX0xJTks7DQorCXJldHVybjsN CisgICAgfQ0KKw0KKyAgICAvKiBCcmVhayB0aGUgbGluayB3aXRoIENhcmQg U2VydmljZXMgKi8NCisgICAgaWYgKGxpbmstPmhhbmRsZSkNCisJQ2FyZFNl cnZpY2VzKERlcmVnaXN0ZXJDbGllbnQsIGxpbmstPmhhbmRsZSk7DQorICAg IA0KKyAgICAvKiBVbmxpbmsgZGV2aWNlIHN0cnVjdHVyZSwgZnJlZSBwaWVj ZXMgKi8NCisgICAgKmxpbmtwID0gbGluay0+bmV4dDsNCisgICAgaWYgKGxp bmstPnByaXYpIHsNCisJa2ZyZWUobGluay0+cHJpdik7DQorICAgIH0NCisg ICAga2ZyZWUobGluayk7DQorICAgIA0KK30gLyogYXZtYTFjc19kZXRhY2gg Ki8NCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisNCisgICAg YXZtYTFjc19jb25maWcoKSBpcyBzY2hlZHVsZWQgdG8gcnVuIGFmdGVyIGEg Q0FSRF9JTlNFUlRJT04gZXZlbnQNCisgICAgaXMgcmVjZWl2ZWQsIHRvIGNv bmZpZ3VyZSB0aGUgUENNQ0lBIHNvY2tldCwgYW5kIHRvIG1ha2UgdGhlDQor ICAgIGV0aGVybmV0IGRldmljZSBhdmFpbGFibGUgdG8gdGhlIHN5c3RlbS4N CisgICAgDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQorDQorc3Rh dGljIGludCBnZXRfdHVwbGUoaW50IGZuLCBjbGllbnRfaGFuZGxlX3QgaGFu ZGxlLCB0dXBsZV90ICp0dXBsZSwNCisJCSAgICAgY2lzcGFyc2VfdCAqcGFy c2UpDQorew0KKyAgICBpbnQgaTsNCisgICAgaSA9IENhcmRTZXJ2aWNlcyhm biwgaGFuZGxlLCB0dXBsZSk7DQorICAgIGlmIChpICE9IENTX1NVQ0NFU1Mp IHJldHVybiBpOw0KKyAgICBpID0gQ2FyZFNlcnZpY2VzKEdldFR1cGxlRGF0 YSwgaGFuZGxlLCB0dXBsZSk7DQorICAgIGlmIChpICE9IENTX1NVQ0NFU1Mp IHJldHVybiBpOw0KKyAgICByZXR1cm4gQ2FyZFNlcnZpY2VzKFBhcnNlVHVw bGUsIGhhbmRsZSwgdHVwbGUsIHBhcnNlKTsNCit9DQorDQorI2RlZmluZSBm aXJzdF90dXBsZShhLCBiLCBjKSBnZXRfdHVwbGUoR2V0Rmlyc3RUdXBsZSwg YSwgYiwgYykNCisjZGVmaW5lIG5leHRfdHVwbGUoYSwgYiwgYykgZ2V0X3R1 cGxlKEdldE5leHRUdXBsZSwgYSwgYiwgYykNCisNCitzdGF0aWMgdm9pZCBh dm1hMWNzX2NvbmZpZyhkZXZfbGlua190ICpsaW5rKQ0KK3sNCisgICAgY2xp ZW50X2hhbmRsZV90IGhhbmRsZTsNCisgICAgdHVwbGVfdCB0dXBsZTsNCisg ICAgY2lzcGFyc2VfdCBwYXJzZTsNCisgICAgY2lzdHBsX2NmdGFibGVfZW50 cnlfdCAqY2YgPSAmcGFyc2UuY2Z0YWJsZV9lbnRyeTsNCisgICAgbG9jYWxf aW5mb190ICpkZXY7DQorICAgIGludCBpOw0KKyAgICB1X2NoYXIgYnVmWzY0 XTsNCisgICAgY2hhciBkZXZuYW1lWzEyOF07DQorICAgIGludCBidXN5ID0g MDsNCisgICAgDQorICAgIGhhbmRsZSA9IGxpbmstPmhhbmRsZTsNCisgICAg ZGV2ID0gbGluay0+cHJpdjsNCisNCisgICAgREVCVUcoMCwgImF2bWExY3Nf Y29uZmlnKDB4JXApXG4iLCBsaW5rKTsNCisNCisgICAgLyoNCisgICAgICAg VGhpcyByZWFkcyB0aGUgY2FyZCdzIENPTkZJRyB0dXBsZSB0byBmaW5kIGl0 cyBjb25maWd1cmF0aW9uDQorICAgICAgIHJlZ2lzdGVycy4NCisgICAgKi8N CisgICAgZG8gew0KKwl0dXBsZS5EZXNpcmVkVHVwbGUgPSBDSVNUUExfQ09O RklHOw0KKwlpID0gQ2FyZFNlcnZpY2VzKEdldEZpcnN0VHVwbGUsIGhhbmRs ZSwgJnR1cGxlKTsNCisJaWYgKGkgIT0gQ1NfU1VDQ0VTUykgYnJlYWs7DQor CXR1cGxlLlR1cGxlRGF0YSA9IGJ1ZjsNCisJdHVwbGUuVHVwbGVEYXRhTWF4 ID0gNjQ7DQorCXR1cGxlLlR1cGxlT2Zmc2V0ID0gMDsNCisJaSA9IENhcmRT ZXJ2aWNlcyhHZXRUdXBsZURhdGEsIGhhbmRsZSwgJnR1cGxlKTsNCisJaWYg KGkgIT0gQ1NfU1VDQ0VTUykgYnJlYWs7DQorCWkgPSBDYXJkU2VydmljZXMo UGFyc2VUdXBsZSwgaGFuZGxlLCAmdHVwbGUsICZwYXJzZSk7DQorCWlmIChp ICE9IENTX1NVQ0NFU1MpIGJyZWFrOw0KKwlsaW5rLT5jb25mLkNvbmZpZ0Jh c2UgPSBwYXJzZS5jb25maWcuYmFzZTsNCisgICAgfSB3aGlsZSAoMCk7DQor ICAgIGlmIChpICE9IENTX1NVQ0NFU1MpIHsNCisJY3NfZXJyb3IobGluay0+ aGFuZGxlLCBQYXJzZVR1cGxlLCBpKTsNCisJbGluay0+c3RhdGUgJj0gfkRF Vl9DT05GSUdfUEVORElORzsNCisJcmV0dXJuOw0KKyAgICB9DQorICAgIA0K KyAgICAvKiBDb25maWd1cmUgY2FyZCAqLw0KKyAgICBsaW5rLT5zdGF0ZSB8 PSBERVZfQ09ORklHOw0KKw0KKyAgICBkbyB7DQorDQorCXR1cGxlLkF0dHJp YnV0ZXMgPSAwOw0KKwl0dXBsZS5UdXBsZURhdGEgPSBidWY7DQorCXR1cGxl LlR1cGxlRGF0YU1heCA9IDI1NDsNCisJdHVwbGUuVHVwbGVPZmZzZXQgPSAw Ow0KKwl0dXBsZS5EZXNpcmVkVHVwbGUgPSBDSVNUUExfVkVSU18xOw0KKw0K KwlkZXZuYW1lWzBdID0gMDsNCisJaWYoICFmaXJzdF90dXBsZShoYW5kbGUs ICZ0dXBsZSwgJnBhcnNlKSAmJiBwYXJzZS52ZXJzaW9uXzEubnMgPiAxICkg ew0KKwkgICAgc3RybmNweShkZXZuYW1lLHBhcnNlLnZlcnNpb25fMS5zdHIg KyBwYXJzZS52ZXJzaW9uXzEub2ZzWzFdLCANCisJCQlzaXplb2YoZGV2bmFt ZSkpOw0KKwl9DQorCS8qDQorICAgICAgICAgKiBmaW5kIElPIHBvcnQNCisg ICAgICAgICAqLw0KKwl0dXBsZS5UdXBsZURhdGEgPSAoY2lzZGF0YV90ICop YnVmOw0KKwl0dXBsZS5UdXBsZU9mZnNldCA9IDA7IHR1cGxlLlR1cGxlRGF0 YU1heCA9IDI1NTsNCisJdHVwbGUuQXR0cmlidXRlcyA9IDA7DQorCXR1cGxl LkRlc2lyZWRUdXBsZSA9IENJU1RQTF9DRlRBQkxFX0VOVFJZOw0KKwlpID0g Zmlyc3RfdHVwbGUoaGFuZGxlLCAmdHVwbGUsICZwYXJzZSk7DQorCXdoaWxl IChpID09IENTX1NVQ0NFU1MpIHsNCisJICAgIGlmIChjZi0+aW8ubndpbiA+ IDApIHsNCisJCWxpbmstPmNvbmYuQ29uZmlnSW5kZXggPSBjZi0+aW5kZXg7 DQorCQlsaW5rLT5pby5CYXNlUG9ydDEgPSBjZi0+aW8ud2luWzBdLmJhc2U7 DQorCQlsaW5rLT5pby5OdW1Qb3J0czEgPSBjZi0+aW8ud2luWzBdLmxlbjsN CisJCWxpbmstPmlvLkJhc2VQb3J0MiA9IDA7DQorCQlsaW5rLT5pby5OdW1Q b3J0czIgPSAwOw0KKyAgICAgICAgICAgICAgICBwcmludGsoS0VSTl9JTkZP ICJhdm1hMV9jczogdGVzdGluZyBpL28gJSN4LSUjeFxuIiwNCisJCQlsaW5r LT5pby5CYXNlUG9ydDEsDQorCQkgICAgICAgIGxpbmstPmlvLkJhc2VQb3J0 MStsaW5rLT5pby5OdW1Qb3J0czEpOw0KKwkJaSA9IENhcmRTZXJ2aWNlcyhS ZXF1ZXN0SU8sIGxpbmstPmhhbmRsZSwgJmxpbmstPmlvKTsNCisJCWlmIChp ID09IENTX1NVQ0NFU1MpIGdvdG8gZm91bmRfcG9ydDsNCisJICAgIH0NCisJ ICAgIGkgPSBuZXh0X3R1cGxlKGhhbmRsZSwgJnR1cGxlLCAmcGFyc2UpOw0K Kwl9DQorZm91bmRfcG9ydDoNCisJaWYgKGkgIT0gQ1NfU1VDQ0VTUykgew0K KwkgICAgY3NfZXJyb3IobGluay0+aGFuZGxlLCBSZXF1ZXN0SU8sIGkpOw0K KwkgICAgYnJlYWs7DQorCX0NCisJDQorCS8qDQorCSAqIGFsbG9jYXRlIGFu IGludGVycnVwdCBsaW5lDQorCSAqLw0KKwlpID0gQ2FyZFNlcnZpY2VzKFJl cXVlc3RJUlEsIGxpbmstPmhhbmRsZSwgJmxpbmstPmlycSk7DQorCWlmIChp ICE9IENTX1NVQ0NFU1MpIHsNCisJICAgIGNzX2Vycm9yKGxpbmstPmhhbmRs ZSwgUmVxdWVzdElSUSwgaSk7DQorCSAgICBDYXJkU2VydmljZXMoUmVsZWFz ZUlPLCBsaW5rLT5oYW5kbGUsICZsaW5rLT5pbyk7DQorCSAgICBicmVhazsN CisJfQ0KKwkNCisJLyoNCisgICAgICAgICAqIGNvbmZpZ3VyZSB0aGUgUENN Q0lBIHNvY2tldA0KKwkgICovDQorCWkgPSBDYXJkU2VydmljZXMoUmVxdWVz dENvbmZpZ3VyYXRpb24sIGxpbmstPmhhbmRsZSwgJmxpbmstPmNvbmYpOw0K KwlpZiAoaSAhPSBDU19TVUNDRVNTKSB7DQorCSAgICBjc19lcnJvcihsaW5r LT5oYW5kbGUsIFJlcXVlc3RDb25maWd1cmF0aW9uLCBpKTsNCisJICAgIENh cmRTZXJ2aWNlcyhSZWxlYXNlSU8sIGxpbmstPmhhbmRsZSwgJmxpbmstPmlv KTsNCisJICAgIENhcmRTZXJ2aWNlcyhSZWxlYXNlSVJRLCBsaW5rLT5oYW5k bGUsICZsaW5rLT5pcnEpOw0KKwkgICAgYnJlYWs7DQorCX0NCisNCisgICAg fSB3aGlsZSAoMCk7DQorDQorICAgIC8qIEF0IHRoaXMgcG9pbnQsIHRoZSBk ZXZfbm9kZV90IHN0cnVjdHVyZShzKSBzaG91bGQgYmUNCisgICAgICAgaW5p dGlhbGl6ZWQgYW5kIGFycmFuZ2VkIGluIGEgbGlua2VkIGxpc3QgYXQgbGlu ay0+ZGV2LiAqLw0KKw0KKyAgICBzdHJjcHkoZGV2LT5ub2RlLmRldl9uYW1l LCAiQTEiKTsNCisgICAgZGV2LT5ub2RlLm1ham9yID0gNDU7DQorICAgIGRl di0+bm9kZS5taW5vciA9IDA7DQorICAgIGxpbmstPmRldiA9ICZkZXYtPm5v ZGU7DQorICAgIA0KKyAgICBsaW5rLT5zdGF0ZSAmPSB+REVWX0NPTkZJR19Q RU5ESU5HOw0KKyAgICAvKiBJZiBhbnkgc3RlcCBmYWlsZWQsIHJlbGVhc2Ug YW55IHBhcnRpYWxseSBjb25maWd1cmVkIHN0YXRlICovDQorICAgIGlmIChp ICE9IDApIHsNCisJYXZtYTFjc19yZWxlYXNlKCh1X2xvbmcpbGluayk7DQor CXJldHVybjsNCisgICAgfQ0KKw0KKyAgICBwcmludGsoS0VSTl9OT1RJQ0Ug ImF2bWExX2NzOiBjaGVja2luZyBhdCBpL28gJSN4LCBpcnEgJWRcbiIsDQor CQkJCWxpbmstPmlvLkJhc2VQb3J0MSwgbGluay0+aXJxLkFzc2lnbmVkSVJR KTsNCisNCisgICAgaWYgKGF2bV9hMV9pbml0X3BjbWNpYSgodm9pZCAqKShp bnQpbGluay0+aW8uQmFzZVBvcnQxLA0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIGxpbmstPmlycS5Bc3NpZ25lZElSUSwNCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAmYnVzeSwgaXNkbnByb3QpICE9IDApIHsNCisgICAg ICAgcHJpbnRrKEtFUk5fRVJSICJhdm1hMV9jczogZmFpbGVkIHRvIGluaXRp YWxpemUgQVZNIEExIFBDTUNJQSAlZCBhdCBpL28gJSN4XG4iLCBpLCBsaW5r LT5pby5CYXNlUG9ydDEpOw0KKyAgICAgICByZXR1cm47DQorICAgIH0NCisN CisgICAgaSA9IDA7IC8qIG5vIHJldHVybmNvZGUgZm9yIGNhcmRuciA6LSgg Ki8NCisNCisgICAgZGV2LT5ub2RlLm1pbm9yID0gaTsNCisNCit9IC8qIGF2 bWExY3NfY29uZmlnICovDQorDQorLyo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09DQorDQorICAgIEFmdGVyIGEgY2FyZCBpcyByZW1vdmVkLCBhdm1hMWNz X3JlbGVhc2UoKSB3aWxsIHVucmVnaXN0ZXIgdGhlIG5ldA0KKyAgICBkZXZp Y2UsIGFuZCByZWxlYXNlIHRoZSBQQ01DSUEgY29uZmlndXJhdGlvbi4gIElm IHRoZSBkZXZpY2UgaXMNCisgICAgc3RpbGwgb3BlbiwgdGhpcyB3aWxsIGJl IHBvc3Rwb25lZCB1bnRpbCBpdCBpcyBjbG9zZWQuDQorICAgIA0KKz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0qLw0KKw0KK3N0YXRpYyB2b2lkIGF2bWEx Y3NfcmVsZWFzZSh1X2xvbmcgYXJnKQ0KK3sNCisgICAgZGV2X2xpbmtfdCAq bGluayA9IChkZXZfbGlua190ICopYXJnOw0KKyAgICBsb2NhbF9pbmZvX3Qg KmxvY2FsID0gbGluay0+cHJpdjsNCisNCisgICAgREVCVUcoMCwgImF2bWEx Y3NfcmVsZWFzZSgweCVwKVxuIiwgbGluayk7DQorDQorICAgIC8qDQorICAg ICAgIElmIHRoZSBkZXZpY2UgaXMgY3VycmVudGx5IGluIHVzZSwgd2Ugd29u J3QgcmVsZWFzZSB1bnRpbCBpdA0KKyAgICAgICBpcyBhY3R1YWxseSBjbG9z ZWQuDQorICAgICovDQorICAgIGlmIChsaW5rLT5vcGVuKSB7DQorCURFQlVH KDEsICJhdm1hMV9jczogcmVsZWFzZSBwb3N0cG9uZWQsICclcycgc3RpbGwg b3BlblxuIiwNCisJICAgICAgbGluay0+ZGV2LT5kZXZfbmFtZSk7DQorCWxp bmstPnN0YXRlIHw9IERFVl9TVEFMRV9DT05GSUc7DQorCXJldHVybjsNCisg ICAgfQ0KKw0KKyAgICAvKiBubyB1bnJlZ2lzdGVyIGZ1bmN0aW9uIHdpdGgg aGlzYXggKi8NCisgICAgSGlTYXhfY2xvc2VjYXJkKGxvY2FsLT5ub2RlLm1p bm9yKTsNCisNCisgICAgLyogVW5saW5rIHRoZSBkZXZpY2UgY2hhaW4gKi8N CisgICAgbGluay0+ZGV2ID0gTlVMTDsNCisgICAgDQorICAgIC8qIERvbid0 IGJvdGhlciBjaGVja2luZyB0byBzZWUgaWYgdGhlc2Ugc3VjY2VlZCBvciBu b3QgKi8NCisgICAgQ2FyZFNlcnZpY2VzKFJlbGVhc2VDb25maWd1cmF0aW9u LCBsaW5rLT5oYW5kbGUpOw0KKyAgICBDYXJkU2VydmljZXMoUmVsZWFzZUlP LCBsaW5rLT5oYW5kbGUsICZsaW5rLT5pbyk7DQorICAgIENhcmRTZXJ2aWNl cyhSZWxlYXNlSVJRLCBsaW5rLT5oYW5kbGUsICZsaW5rLT5pcnEpOw0KKyAg ICBsaW5rLT5zdGF0ZSAmPSB+REVWX0NPTkZJRzsNCisgICAgDQorICAgIGlm IChsaW5rLT5zdGF0ZSAmIERFVl9TVEFMRV9MSU5LKQ0KKwlhdm1hMWNzX2Rl dGFjaChsaW5rKTsNCisgICAgDQorfSAvKiBhdm1hMWNzX3JlbGVhc2UgKi8N CisNCisvKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisNCisgICAgVGhl IGNhcmQgc3RhdHVzIGV2ZW50IGhhbmRsZXIuICBNb3N0bHksIHRoaXMgc2No ZWR1bGVzIG90aGVyDQorICAgIHN0dWZmIHRvIHJ1biBhZnRlciBhbiBldmVu dCBpcyByZWNlaXZlZC4gIEEgQ0FSRF9SRU1PVkFMIGV2ZW50DQorICAgIGFs c28gc2V0cyBzb21lIGZsYWdzIHRvIGRpc2NvdXJhZ2UgdGhlIG5ldCBkcml2 ZXJzIGZyb20gdHJ5aW5nDQorICAgIHRvIHRhbGsgdG8gdGhlIGNhcmQgYW55 IG1vcmUuDQorDQorICAgIFdoZW4gYSBDQVJEX1JFTU9WQUwgZXZlbnQgaXMg cmVjZWl2ZWQsIHdlIGltbWVkaWF0ZWx5IHNldCBhIGZsYWcNCisgICAgdG8g YmxvY2sgZnV0dXJlIGFjY2Vzc2VzIHRvIHRoaXMgZGV2aWNlLiAgQWxsIHRo ZSBmdW5jdGlvbnMgdGhhdA0KKyAgICBhY3R1YWxseSBhY2Nlc3MgdGhlIGRl dmljZSBzaG91bGQgY2hlY2sgdGhpcyBmbGFnIHRvIG1ha2Ugc3VyZQ0KKyAg ICB0aGUgY2FyZCBpcyBzdGlsbCBwcmVzZW50Lg0KKyAgICANCis9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ki8NCisNCitzdGF0aWMgaW50IGF2bWExY3Nf ZXZlbnQoZXZlbnRfdCBldmVudCwgaW50IHByaW9yaXR5LA0KKwkJCSAgZXZl bnRfY2FsbGJhY2tfYXJnc190ICphcmdzKQ0KK3sNCisgICAgZGV2X2xpbmtf dCAqbGluayA9IGFyZ3MtPmNsaWVudF9kYXRhOw0KKw0KKyAgICBERUJVRygx LCAiYXZtYTFjc19ldmVudCgweCUwNngpXG4iLCBldmVudCk7DQorICAgIA0K KyAgICBzd2l0Y2ggKGV2ZW50KSB7DQorICAgIGNhc2UgQ1NfRVZFTlRfQ0FS RF9SRU1PVkFMOg0KKwlsaW5rLT5zdGF0ZSAmPSB+REVWX1BSRVNFTlQ7DQor CWlmIChsaW5rLT5zdGF0ZSAmIERFVl9DT05GSUcpIHsNCisJICAgIGxpbmst PnJlbGVhc2UuZXhwaXJlcyA9IChqaWZmaWVzKyhIWi8yMCkpOw0KKwkgICAg YWRkX3RpbWVyKCZsaW5rLT5yZWxlYXNlKTsNCisJfQ0KKwlicmVhazsNCisg ICAgY2FzZSBDU19FVkVOVF9DQVJEX0lOU0VSVElPTjoNCisJbGluay0+c3Rh dGUgfD0gREVWX1BSRVNFTlQgfCBERVZfQ09ORklHX1BFTkRJTkc7DQorCWF2 bWExY3NfY29uZmlnKGxpbmspOw0KKwlicmVhazsNCisgICAgY2FzZSBDU19F VkVOVF9QTV9TVVNQRU5EOg0KKwlsaW5rLT5zdGF0ZSB8PSBERVZfU1VTUEVO RDsNCisJLyogRmFsbCB0aHJvdWdoLi4uICovDQorICAgIGNhc2UgQ1NfRVZF TlRfUkVTRVRfUEhZU0lDQUw6DQorCWlmIChsaW5rLT5zdGF0ZSAmIERFVl9D T05GSUcpDQorCSAgICBDYXJkU2VydmljZXMoUmVsZWFzZUNvbmZpZ3VyYXRp b24sIGxpbmstPmhhbmRsZSk7DQorCWJyZWFrOw0KKyAgICBjYXNlIENTX0VW RU5UX1BNX1JFU1VNRToNCisJbGluay0+c3RhdGUgJj0gfkRFVl9TVVNQRU5E Ow0KKwkvKiBGYWxsIHRocm91Z2guLi4gKi8NCisgICAgY2FzZSBDU19FVkVO VF9DQVJEX1JFU0VUOg0KKwlpZiAobGluay0+c3RhdGUgJiBERVZfQ09ORklH KQ0KKwkgICAgQ2FyZFNlcnZpY2VzKFJlcXVlc3RDb25maWd1cmF0aW9uLCBs aW5rLT5oYW5kbGUsICZsaW5rLT5jb25mKTsNCisJYnJlYWs7DQorICAgIH0N CisgICAgcmV0dXJuIDA7DQorfSAvKiBhdm1hMWNzX2V2ZW50ICovDQorDQor Lyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PSovDQorDQoraW50IGluaXRfbW9k dWxlKHZvaWQpDQorew0KKyAgICBzZXJ2aW5mb190IHNlcnY7DQorICAgIERF QlVHKDAsICIlc1xuIiwgdmVyc2lvbik7DQorICAgIENhcmRTZXJ2aWNlcyhH ZXRDYXJkU2VydmljZXNJbmZvLCAmc2Vydik7DQorICAgIGlmIChzZXJ2LlJl dmlzaW9uICE9IENTX1JFTEVBU0VfQ09ERSkgew0KKwlwcmludGsoS0VSTl9O T1RJQ0UgImF2bWExX2NzOiBDYXJkIFNlcnZpY2VzIHJlbGVhc2UgIg0KKwkg ICAgICAgImRvZXMgbm90IG1hdGNoIVxuIik7DQorCXJldHVybiAtMTsNCisg ICAgfQ0KKyAgICByZWdpc3Rlcl9wY21jaWFfZHJpdmVyKCZkZXZfaW5mbywg JmF2bWExY3NfYXR0YWNoLCAmYXZtYTFjc19kZXRhY2gpOw0KKyAgICByZXR1 cm4gMDsNCit9DQorDQordm9pZCBjbGVhbnVwX21vZHVsZSh2b2lkKQ0KK3sN CisgICAgREVCVUcoMCwgImF2bWExX2NzOiB1bmxvYWRpbmdcbiIpOw0KKyAg ICB1bnJlZ2lzdGVyX3BjbWNpYV9kcml2ZXIoJmRldl9pbmZvKTsNCisgICAg d2hpbGUgKGRldl9saXN0ICE9IE5VTEwpIHsNCisJaWYgKGRldl9saXN0LT5z dGF0ZSAmIERFVl9DT05GSUcpDQorCSAgICBhdm1hMWNzX3JlbGVhc2UoKHVf bG9uZylkZXZfbGlzdCk7DQorCWF2bWExY3NfZGV0YWNoKGRldl9saXN0KTsN CisgICAgfQ0KK30NCg== --2003038337-851401618-992474442=:2297--