Linux Patch 2.4.2 for AVM A1 PCMCIA

Jochen Friedrich (jochen@scram.de)
Thu, 15 Mar 2001 22:11:14 +0100 (CET)


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.

---1463804317-1548386187-984246539=:2270
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
Content-ID: <Pine.NEB.4.33.0103152207182.17510@www2.scram.de>

Hello,

this patch includes the ISDN driver for AVM A1 PCMCIA from Carsten Paeth
into the linux kernel sources. Without the patch, it might be confusing
for a user to be able to select AVM A1 PCMCIA support for the kernel, but
it still doesn't work (because the PCMCIA part is missing).

Cheers,
Jochen

---1463804317-1548386187-984246539=:2270
Content-Type: TEXT/PLAIN; CHARSET=US-ASCII; NAME=avmdiff
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.21.0103101848590.2270@melmac.internal.nwe.de>
Content-Description:
Content-Disposition: ATTACHMENT; FILENAME=avmdiff

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
K01PRFVMRV9QQVJNKGlzZG5wcm90LCAiMS00Iik7DQorDQorLyo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PSovDQorDQorLyoNCisgICBUaGUgZXZlbnQoKSBm
dW5jdGlvbiBpcyB0aGlzIGRyaXZlcidzIENhcmQgU2VydmljZXMgZXZlbnQg
aGFuZGxlci4NCisgICBJdCB3aWxsIGJlIGNhbGxlZCBieSBDYXJkIFNlcnZp
Y2VzIHdoZW4gYW4gYXBwcm9wcmlhdGUgY2FyZCBzdGF0dXMNCisgICBldmVu
dCBpcyByZWNlaXZlZC4gIFRoZSBjb25maWcoKSBhbmQgcmVsZWFzZSgpIGVu
dHJ5IHBvaW50cyBhcmUNCisgICB1c2VkIHRvIGNvbmZpZ3VyZSBvciByZWxl
YXNlIGEgc29ja2V0LCBpbiByZXNwb25zZSB0byBjYXJkIGluc2VydGlvbg0K
KyAgIGFuZCBlamVjdGlvbiBldmVudHMuICBUaGV5IGFyZSBpbnZva2VkIGZy
b20gdGhlIHNrZWxldG9uIGV2ZW50DQorICAgaGFuZGxlci4NCisqLw0KKw0K
K3N0YXRpYyB2b2lkIGF2bWExY3NfY29uZmlnKGRldl9saW5rX3QgKmxpbmsp
Ow0KK3N0YXRpYyB2b2lkIGF2bWExY3NfcmVsZWFzZSh1X2xvbmcgYXJnKTsN
CitzdGF0aWMgaW50IGF2bWExY3NfZXZlbnQoZXZlbnRfdCBldmVudCwgaW50
IHByaW9yaXR5LA0KKwkJCSAgZXZlbnRfY2FsbGJhY2tfYXJnc190ICphcmdz
KTsNCisNCisvKg0KKyAgIFRoZSBhdHRhY2goKSBhbmQgZGV0YWNoKCkgZW50
cnkgcG9pbnRzIGFyZSB1c2VkIHRvIGNyZWF0ZSBhbmQgZGVzdHJveQ0KKyAg
ICJpbnN0YW5jZXMiIG9mIHRoZSBkcml2ZXIsIHdoZXJlIGVhY2ggaW5zdGFu
Y2UgcmVwcmVzZW50cyBldmVyeXRoaW5nDQorICAgbmVlZGVkIHRvIG1hbmFn
ZSBvbmUgYWN0dWFsIFBDTUNJQSBjYXJkLg0KKyovDQorDQorc3RhdGljIGRl
dl9saW5rX3QgKmF2bWExY3NfYXR0YWNoKHZvaWQpOw0KK3N0YXRpYyB2b2lk
IGF2bWExY3NfZGV0YWNoKGRldl9saW5rX3QgKik7DQorDQorLyoNCisgICBU
aGUgZGV2X2luZm8gdmFyaWFibGUgaXMgdGhlICJrZXkiIHRoYXQgaXMgdXNl
ZCB0byBtYXRjaCB1cCB0aGlzDQorICAgZGV2aWNlIGRyaXZlciB3aXRoIGFw
cHJvcHJpYXRlIGNhcmRzLCB0aHJvdWdoIHRoZSBjYXJkIGNvbmZpZ3VyYXRp
b24NCisgICBkYXRhYmFzZS4NCisqLw0KKw0KK3N0YXRpYyBkZXZfaW5mb190
IGRldl9pbmZvID0gImF2bWExX2NzIjsNCisNCisvKg0KKyAgIEEgbGlua2Vk
IGxpc3Qgb2YgImluc3RhbmNlcyIgb2YgdGhlIHNrZWxldG9uIGRldmljZS4g
IEVhY2ggYWN0dWFsDQorICAgUENNQ0lBIGNhcmQgY29ycmVzcG9uZHMgdG8g
b25lIGRldmljZSBpbnN0YW5jZSwgYW5kIGlzIGRlc2NyaWJlZA0KKyAgIGJ5
IG9uZSBkZXZfbGlua190IHN0cnVjdHVyZSAoZGVmaW5lZCBpbiBkcy5oKS4N
CisNCisgICBZb3UgbWF5IG5vdCB3YW50IHRvIHVzZSBhIGxpbmtlZCBsaXN0
IGZvciB0aGlzIC0tIGZvciBleGFtcGxlLCB0aGUNCisgICBtZW1vcnkgY2Fy
ZCBkcml2ZXIgdXNlcyBhbiBhcnJheSBvZiBkZXZfbGlua190IHBvaW50ZXJz
LCB3aGVyZSBtaW5vcg0KKyAgIGRldmljZSBudW1iZXJzIGFyZSB1c2VkIHRv
IGRlcml2ZSB0aGUgY29ycmVzcG9uZGluZyBhcnJheSBpbmRleC4NCisqLw0K
Kw0KK3N0YXRpYyBkZXZfbGlua190ICpkZXZfbGlzdCA9IE5VTEw7DQorDQor
LyoNCisgICBBIGRldl9saW5rX3Qgc3RydWN0dXJlIGhhcyBmaWVsZHMgZm9y
IG1vc3QgdGhpbmdzIHRoYXQgYXJlIG5lZWRlZA0KKyAgIHRvIGtlZXAgdHJh
Y2sgb2YgYSBzb2NrZXQsIGJ1dCB0aGVyZSB3aWxsIHVzdWFsbHkgYmUgc29t
ZSBkZXZpY2UNCisgICBzcGVjaWZpYyBpbmZvcm1hdGlvbiB0aGF0IGFsc28g
bmVlZHMgdG8gYmUga2VwdCB0cmFjayBvZi4gIFRoZQ0KKyAgICdwcml2JyBw
b2ludGVyIGluIGEgZGV2X2xpbmtfdCBzdHJ1Y3R1cmUgY2FuIGJlIHVzZWQg
dG8gcG9pbnQgdG8NCisgICBhIGRldmljZS1zcGVjaWZpYyBwcml2YXRlIGRh
dGEgc3RydWN0dXJlLCBsaWtlIHRoaXMuDQorDQorICAgQSBkcml2ZXIgbmVl
ZHMgdG8gcHJvdmlkZSBhIGRldl9ub2RlX3Qgc3RydWN0dXJlIGZvciBlYWNo
IGRldmljZQ0KKyAgIG9uIGEgY2FyZC4gIEluIHNvbWUgY2FzZXMsIHRoZXJl
IGlzIG9ubHkgb25lIGRldmljZSBwZXIgY2FyZCAoZm9yDQorICAgZXhhbXBs
ZSwgZXRoZXJuZXQgY2FyZHMsIG1vZGVtcykuICBJbiBvdGhlciBjYXNlcywg
dGhlcmUgbWF5IGJlDQorICAgbWFueSBhY3R1YWwgb3IgbG9naWNhbCBkZXZp
Y2VzIChTQ1NJIGFkYXB0ZXJzLCBtZW1vcnkgY2FyZHMgd2l0aA0KKyAgIG11
bHRpcGxlIHBhcnRpdGlvbnMpLiAgVGhlIGRldl9ub2RlX3Qgc3RydWN0dXJl
cyBuZWVkIHRvIGJlIGtlcHQNCisgICBpbiBhIGxpbmtlZCBsaXN0IHN0YXJ0
aW5nIGF0IHRoZSAnZGV2JyBmaWVsZCBvZiBhIGRldl9saW5rX3QNCisgICBz
dHJ1Y3R1cmUuICBXZSBhbGxvY2F0ZSB0aGVtIGluIHRoZSBjYXJkJ3MgcHJp
dmF0ZSBkYXRhIHN0cnVjdHVyZSwNCisgICBiZWNhdXNlIHRoZXkgZ2VuZXJh
bGx5IGNhbid0IGJlIGFsbG9jYXRlZCBkeW5hbWljYWxseS4NCisqLw0KKyAg
IA0KK3R5cGVkZWYgc3RydWN0IGxvY2FsX2luZm9fdCB7DQorICAgIGRldl9u
b2RlX3QJbm9kZTsNCit9IGxvY2FsX2luZm9fdDsNCisNCisvKj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ki8NCisNCitzdGF0aWMgdm9pZCBjc19lcnJvcihj
bGllbnRfaGFuZGxlX3QgaGFuZGxlLCBpbnQgZnVuYywgaW50IHJldCkNCit7
DQorICAgIGVycm9yX2luZm9fdCBlcnIgPSB7IGZ1bmMsIHJldCB9Ow0KKyAg
ICBDYXJkU2VydmljZXMoUmVwb3J0RXJyb3IsIGhhbmRsZSwgJmVycik7DQor
fQ0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKw0KKyAgICBh
dm1hMWNzX2F0dGFjaCgpIGNyZWF0ZXMgYW4gImluc3RhbmNlIiBvZiB0aGUg
ZHJpdmVyLCBhbGxvY2F0aW5nDQorICAgIGxvY2FsIGRhdGEgc3RydWN0dXJl
cyBmb3Igb25lIGRldmljZS4gIFRoZSBkZXZpY2UgaXMgcmVnaXN0ZXJlZA0K
KyAgICB3aXRoIENhcmQgU2VydmljZXMuDQorDQorICAgIFRoZSBkZXZfbGlu
ayBzdHJ1Y3R1cmUgaXMgaW5pdGlhbGl6ZWQsIGJ1dCB3ZSBkb24ndCBhY3R1
YWxseQ0KKyAgICBjb25maWd1cmUgdGhlIGNhcmQgYXQgdGhpcyBwb2ludCAt
LSB3ZSB3YWl0IHVudGlsIHdlIHJlY2VpdmUgYQ0KKyAgICBjYXJkIGluc2Vy
dGlvbiBldmVudC4NCisgICAgDQorPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PSovDQorDQorc3RhdGljIGRldl9saW5rX3QgKmF2bWExY3NfYXR0YWNoKHZv
aWQpDQorew0KKyAgICBjbGllbnRfcmVnX3QgY2xpZW50X3JlZzsNCisgICAg
ZGV2X2xpbmtfdCAqbGluazsNCisgICAgbG9jYWxfaW5mb190ICpsb2NhbDsN
CisgICAgaW50IHJldCwgaTsNCisgICAgDQorICAgIERFQlVHKDAsICJhdm1h
MWNzX2F0dGFjaCgpXG4iKTsNCisNCisgICAgLyogSW5pdGlhbGl6ZSB0aGUg
ZGV2X2xpbmtfdCBzdHJ1Y3R1cmUgKi8NCisgICAgbGluayA9IGttYWxsb2Mo
c2l6ZW9mKHN0cnVjdCBkZXZfbGlua190KSwgR0ZQX0tFUk5FTCk7DQorICAg
IG1lbXNldChsaW5rLCAwLCBzaXplb2Yoc3RydWN0IGRldl9saW5rX3QpKTsN
CisgICAgbGluay0+cmVsZWFzZS5mdW5jdGlvbiA9ICZhdm1hMWNzX3JlbGVh
c2U7DQorICAgIGxpbmstPnJlbGVhc2UuZGF0YSA9ICh1X2xvbmcpbGluazsN
CisNCisgICAgLyogVGhlIGlvIHN0cnVjdHVyZSBkZXNjcmliZXMgSU8gcG9y
dCBtYXBwaW5nICovDQorICAgIGxpbmstPmlvLk51bVBvcnRzMSA9IDE2Ow0K
KyAgICBsaW5rLT5pby5BdHRyaWJ1dGVzMSA9IElPX0RBVEFfUEFUSF9XSURU
SF84Ow0KKyAgICBsaW5rLT5pby5OdW1Qb3J0czIgPSAxNjsNCisgICAgbGlu
ay0+aW8uQXR0cmlidXRlczIgPSBJT19EQVRBX1BBVEhfV0lEVEhfMTY7DQor
ICAgIGxpbmstPmlvLklPQWRkckxpbmVzID0gNTsNCisNCisgICAgLyogSW50
ZXJydXB0IHNldHVwICovDQorICAgIGxpbmstPmlycS5BdHRyaWJ1dGVzID0g
SVJRX1RZUEVfRVhDTFVTSVZFOw0KKyAgICBsaW5rLT5pcnEuQXR0cmlidXRl
cyA9IElSUV9UWVBFX0RZTkFNSUNfU0hBUklOR3xJUlFfRklSU1RfU0hBUkVE
Ow0KKw0KKyAgICBsaW5rLT5pcnEuSVJRSW5mbzEgPSBJUlFfSU5GTzJfVkFM
SUR8SVJRX0xFVkVMX0lEOw0KKyAgICBpZiAoaXJxX2xpc3RbMF0gIT0gLTEp
IHsNCisJICAgIGZvciAoaSA9IDA7IGkgPCAxMCAmJiBpcnFfbGlzdFtpXSA+
IDA7IGkrKykNCisJICAgICAgIGxpbmstPmlycS5JUlFJbmZvMiB8PSAxIDw8
IGlycV9saXN0W2ldOw0KKyAgICB9IGVsc2Ugew0KKwkgICAgZm9yIChpID0g
MDsgaSA8IDEwICYmIGRlZmF1bHRfaXJxX2xpc3RbaV0gPiAwOyBpKyspDQor
CSAgICAgICBsaW5rLT5pcnEuSVJRSW5mbzIgfD0gMSA8PCBkZWZhdWx0X2ly
cV9saXN0W2ldOw0KKyAgICB9DQorICAgIA0KKyAgICAvKiBHZW5lcmFsIHNv
Y2tldCBjb25maWd1cmF0aW9uICovDQorICAgIGxpbmstPmNvbmYuQXR0cmli
dXRlcyA9IENPTkZfRU5BQkxFX0lSUTsNCisgICAgbGluay0+Y29uZi5WY2Mg
PSA1MDsNCisgICAgbGluay0+Y29uZi5JbnRUeXBlID0gSU5UX01FTU9SWV9B
TkRfSU87DQorICAgIGxpbmstPmNvbmYuQ29uZmlnSW5kZXggPSAxOw0KKyAg
ICBsaW5rLT5jb25mLlByZXNlbnQgPSBQUkVTRU5UX09QVElPTjsNCisNCisg
ICAgLyogQWxsb2NhdGUgc3BhY2UgZm9yIHByaXZhdGUgZGV2aWNlLXNwZWNp
ZmljIGRhdGEgKi8NCisgICAgbG9jYWwgPSBrbWFsbG9jKHNpemVvZihsb2Nh
bF9pbmZvX3QpLCBHRlBfS0VSTkVMKTsNCisgICAgbWVtc2V0KGxvY2FsLCAw
LCBzaXplb2YobG9jYWxfaW5mb190KSk7DQorICAgIGxpbmstPnByaXYgPSBs
b2NhbDsNCisgICAgDQorICAgIC8qIFJlZ2lzdGVyIHdpdGggQ2FyZCBTZXJ2
aWNlcyAqLw0KKyAgICBsaW5rLT5uZXh0ID0gZGV2X2xpc3Q7DQorICAgIGRl
dl9saXN0ID0gbGluazsNCisgICAgY2xpZW50X3JlZy5kZXZfaW5mbyA9ICZk
ZXZfaW5mbzsNCisgICAgY2xpZW50X3JlZy5BdHRyaWJ1dGVzID0gSU5GT19J
T19DTElFTlQgfCBJTkZPX0NBUkRfU0hBUkU7DQorICAgIGNsaWVudF9yZWcu
RXZlbnRNYXNrID0NCisJQ1NfRVZFTlRfQ0FSRF9JTlNFUlRJT04gfCBDU19F
VkVOVF9DQVJEX1JFTU9WQUwgfA0KKwlDU19FVkVOVF9SRVNFVF9QSFlTSUNB
TCB8IENTX0VWRU5UX0NBUkRfUkVTRVQgfA0KKwlDU19FVkVOVF9QTV9TVVNQ
RU5EIHwgQ1NfRVZFTlRfUE1fUkVTVU1FOw0KKyAgICBjbGllbnRfcmVnLmV2
ZW50X2hhbmRsZXIgPSAmYXZtYTFjc19ldmVudDsNCisgICAgY2xpZW50X3Jl
Zy5WZXJzaW9uID0gMHgwMjEwOw0KKyAgICBjbGllbnRfcmVnLmV2ZW50X2Nh
bGxiYWNrX2FyZ3MuY2xpZW50X2RhdGEgPSBsaW5rOw0KKyAgICByZXQgPSBD
YXJkU2VydmljZXMoUmVnaXN0ZXJDbGllbnQsICZsaW5rLT5oYW5kbGUsICZj
bGllbnRfcmVnKTsNCisgICAgaWYgKHJldCAhPSAwKSB7DQorCWNzX2Vycm9y
KGxpbmstPmhhbmRsZSwgUmVnaXN0ZXJDbGllbnQsIHJldCk7DQorCWF2bWEx
Y3NfZGV0YWNoKGxpbmspOw0KKwlyZXR1cm4gTlVMTDsNCisgICAgfQ0KKw0K
KyAgICByZXR1cm4gbGluazsNCit9IC8qIGF2bWExY3NfYXR0YWNoICovDQor
DQorLyo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorDQorICAgIFRoaXMg
ZGVsZXRlcyBhIGRyaXZlciAiaW5zdGFuY2UiLiAgVGhlIGRldmljZSBpcyBk
ZS1yZWdpc3RlcmVkDQorICAgIHdpdGggQ2FyZCBTZXJ2aWNlcy4gIElmIGl0
IGhhcyBiZWVuIHJlbGVhc2VkLCBhbGwgbG9jYWwgZGF0YQ0KKyAgICBzdHJ1
Y3R1cmVzIGFyZSBmcmVlZC4gIE90aGVyd2lzZSwgdGhlIHN0cnVjdHVyZXMg
d2lsbCBiZSBmcmVlZA0KKyAgICB3aGVuIHRoZSBkZXZpY2UgaXMgcmVsZWFz
ZWQuDQorDQorPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSovDQorDQorc3Rh
dGljIHZvaWQgYXZtYTFjc19kZXRhY2goZGV2X2xpbmtfdCAqbGluaykNCit7
DQorICAgIGRldl9saW5rX3QgKipsaW5rcDsNCisNCisgICAgREVCVUcoMCwg
ImF2bWExY3NfZGV0YWNoKDB4JXApXG4iLCBsaW5rKTsNCisgICAgDQorICAg
IC8qIExvY2F0ZSBkZXZpY2Ugc3RydWN0dXJlICovDQorICAgIGZvciAobGlu
a3AgPSAmZGV2X2xpc3Q7ICpsaW5rcDsgbGlua3AgPSAmKCpsaW5rcCktPm5l
eHQpDQorCWlmICgqbGlua3AgPT0gbGluaykgYnJlYWs7DQorICAgIGlmICgq
bGlua3AgPT0gTlVMTCkNCisJcmV0dXJuOw0KKw0KKyAgICAvKg0KKyAgICAg
ICBJZiB0aGUgZGV2aWNlIGlzIGN1cnJlbnRseSBjb25maWd1cmVkIGFuZCBh
Y3RpdmUsIHdlIHdvbid0DQorICAgICAgIGFjdHVhbGx5IGRlbGV0ZSBpdCB5
ZXQuICBJbnN0ZWFkLCBpdCBpcyBtYXJrZWQgc28gdGhhdCB3aGVuDQorICAg
ICAgIHRoZSByZWxlYXNlKCkgZnVuY3Rpb24gaXMgY2FsbGVkLCB0aGF0IHdp
bGwgdHJpZ2dlciBhIHByb3Blcg0KKyAgICAgICBkZXRhY2goKS4NCisgICAg
Ki8NCisgICAgaWYgKGxpbmstPnN0YXRlICYgREVWX0NPTkZJRykgew0KKyNp
ZmRlZiBQQ01DSUFfREVCVUcNCisJcHJpbnRrKEtFUk5fREVCVUcgImF2bWEx
X2NzOiBkZXRhY2ggcG9zdHBvbmVkLCAnJXMnICINCisJICAgICAgICJzdGls
bCBsb2NrZWRcbiIsIGxpbmstPmRldi0+ZGV2X25hbWUpOw0KKyNlbmRpZg0K
KwlsaW5rLT5zdGF0ZSB8PSBERVZfU1RBTEVfTElOSzsNCisJcmV0dXJuOw0K
KyAgICB9DQorDQorICAgIC8qIEJyZWFrIHRoZSBsaW5rIHdpdGggQ2FyZCBT
ZXJ2aWNlcyAqLw0KKyAgICBpZiAobGluay0+aGFuZGxlKQ0KKwlDYXJkU2Vy
dmljZXMoRGVyZWdpc3RlckNsaWVudCwgbGluay0+aGFuZGxlKTsNCisgICAg
DQorICAgIC8qIFVubGluayBkZXZpY2Ugc3RydWN0dXJlLCBmcmVlIHBpZWNl
cyAqLw0KKyAgICAqbGlua3AgPSBsaW5rLT5uZXh0Ow0KKyAgICBpZiAobGlu
ay0+cHJpdikgew0KKwlrZnJlZShsaW5rLT5wcml2KTsNCisgICAgfQ0KKyAg
ICBrZnJlZShsaW5rKTsNCisgICAgDQorfSAvKiBhdm1hMWNzX2RldGFjaCAq
Lw0KKw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKw0KKyAgICBh
dm1hMWNzX2NvbmZpZygpIGlzIHNjaGVkdWxlZCB0byBydW4gYWZ0ZXIgYSBD
QVJEX0lOU0VSVElPTiBldmVudA0KKyAgICBpcyByZWNlaXZlZCwgdG8gY29u
ZmlndXJlIHRoZSBQQ01DSUEgc29ja2V0LCBhbmQgdG8gbWFrZSB0aGUNCisg
ICAgZXRoZXJuZXQgZGV2aWNlIGF2YWlsYWJsZSB0byB0aGUgc3lzdGVtLg0K
KyAgICANCis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCisNCitzdGF0
aWMgaW50IGdldF90dXBsZShpbnQgZm4sIGNsaWVudF9oYW5kbGVfdCBoYW5k
bGUsIHR1cGxlX3QgKnR1cGxlLA0KKwkJICAgICBjaXNwYXJzZV90ICpwYXJz
ZSkNCit7DQorICAgIGludCBpOw0KKyAgICBpID0gQ2FyZFNlcnZpY2VzKGZu
LCBoYW5kbGUsIHR1cGxlKTsNCisgICAgaWYgKGkgIT0gQ1NfU1VDQ0VTUykg
cmV0dXJuIGk7DQorICAgIGkgPSBDYXJkU2VydmljZXMoR2V0VHVwbGVEYXRh
LCBoYW5kbGUsIHR1cGxlKTsNCisgICAgaWYgKGkgIT0gQ1NfU1VDQ0VTUykg
cmV0dXJuIGk7DQorICAgIHJldHVybiBDYXJkU2VydmljZXMoUGFyc2VUdXBs
ZSwgaGFuZGxlLCB0dXBsZSwgcGFyc2UpOw0KK30NCisNCisjZGVmaW5lIGZp
cnN0X3R1cGxlKGEsIGIsIGMpIGdldF90dXBsZShHZXRGaXJzdFR1cGxlLCBh
LCBiLCBjKQ0KKyNkZWZpbmUgbmV4dF90dXBsZShhLCBiLCBjKSBnZXRfdHVw
bGUoR2V0TmV4dFR1cGxlLCBhLCBiLCBjKQ0KKw0KK3N0YXRpYyB2b2lkIGF2
bWExY3NfY29uZmlnKGRldl9saW5rX3QgKmxpbmspDQorew0KKyAgICBjbGll
bnRfaGFuZGxlX3QgaGFuZGxlOw0KKyAgICB0dXBsZV90IHR1cGxlOw0KKyAg
ICBjaXNwYXJzZV90IHBhcnNlOw0KKyAgICBjaXN0cGxfY2Z0YWJsZV9lbnRy
eV90ICpjZiA9ICZwYXJzZS5jZnRhYmxlX2VudHJ5Ow0KKyAgICBsb2NhbF9p
bmZvX3QgKmRldjsNCisgICAgaW50IGk7DQorICAgIHVfY2hhciBidWZbNjRd
Ow0KKyAgICBjaGFyIGRldm5hbWVbMTI4XTsNCisgICAgaW50IGJ1c3kgPSAw
Ow0KKyAgICANCisgICAgaGFuZGxlID0gbGluay0+aGFuZGxlOw0KKyAgICBk
ZXYgPSBsaW5rLT5wcml2Ow0KKw0KKyAgICBERUJVRygwLCAiYXZtYTFjc19j
b25maWcoMHglcClcbiIsIGxpbmspOw0KKw0KKyAgICAvKg0KKyAgICAgICBU
aGlzIHJlYWRzIHRoZSBjYXJkJ3MgQ09ORklHIHR1cGxlIHRvIGZpbmQgaXRz
IGNvbmZpZ3VyYXRpb24NCisgICAgICAgcmVnaXN0ZXJzLg0KKyAgICAqLw0K
KyAgICBkbyB7DQorCXR1cGxlLkRlc2lyZWRUdXBsZSA9IENJU1RQTF9DT05G
SUc7DQorCWkgPSBDYXJkU2VydmljZXMoR2V0Rmlyc3RUdXBsZSwgaGFuZGxl
LCAmdHVwbGUpOw0KKwlpZiAoaSAhPSBDU19TVUNDRVNTKSBicmVhazsNCisJ
dHVwbGUuVHVwbGVEYXRhID0gYnVmOw0KKwl0dXBsZS5UdXBsZURhdGFNYXgg
PSA2NDsNCisJdHVwbGUuVHVwbGVPZmZzZXQgPSAwOw0KKwlpID0gQ2FyZFNl
cnZpY2VzKEdldFR1cGxlRGF0YSwgaGFuZGxlLCAmdHVwbGUpOw0KKwlpZiAo
aSAhPSBDU19TVUNDRVNTKSBicmVhazsNCisJaSA9IENhcmRTZXJ2aWNlcyhQ
YXJzZVR1cGxlLCBoYW5kbGUsICZ0dXBsZSwgJnBhcnNlKTsNCisJaWYgKGkg
IT0gQ1NfU1VDQ0VTUykgYnJlYWs7DQorCWxpbmstPmNvbmYuQ29uZmlnQmFz
ZSA9IHBhcnNlLmNvbmZpZy5iYXNlOw0KKyAgICB9IHdoaWxlICgwKTsNCisg
ICAgaWYgKGkgIT0gQ1NfU1VDQ0VTUykgew0KKwljc19lcnJvcihsaW5rLT5o
YW5kbGUsIFBhcnNlVHVwbGUsIGkpOw0KKwlsaW5rLT5zdGF0ZSAmPSB+REVW
X0NPTkZJR19QRU5ESU5HOw0KKwlyZXR1cm47DQorICAgIH0NCisgICAgDQor
ICAgIC8qIENvbmZpZ3VyZSBjYXJkICovDQorICAgIGxpbmstPnN0YXRlIHw9
IERFVl9DT05GSUc7DQorDQorICAgIGRvIHsNCisNCisJdHVwbGUuQXR0cmli
dXRlcyA9IDA7DQorCXR1cGxlLlR1cGxlRGF0YSA9IGJ1ZjsNCisJdHVwbGUu
VHVwbGVEYXRhTWF4ID0gMjU0Ow0KKwl0dXBsZS5UdXBsZU9mZnNldCA9IDA7
DQorCXR1cGxlLkRlc2lyZWRUdXBsZSA9IENJU1RQTF9WRVJTXzE7DQorDQor
CWRldm5hbWVbMF0gPSAwOw0KKwlpZiggIWZpcnN0X3R1cGxlKGhhbmRsZSwg
JnR1cGxlLCAmcGFyc2UpICYmIHBhcnNlLnZlcnNpb25fMS5ucyA+IDEgKSB7
DQorCSAgICBzdHJuY3B5KGRldm5hbWUscGFyc2UudmVyc2lvbl8xLnN0ciAr
IHBhcnNlLnZlcnNpb25fMS5vZnNbMV0sIA0KKwkJCXNpemVvZihkZXZuYW1l
KSk7DQorCX0NCisJLyoNCisgICAgICAgICAqIGZpbmQgSU8gcG9ydA0KKyAg
ICAgICAgICovDQorCXR1cGxlLlR1cGxlRGF0YSA9IChjaXNkYXRhX3QgKili
dWY7DQorCXR1cGxlLlR1cGxlT2Zmc2V0ID0gMDsgdHVwbGUuVHVwbGVEYXRh
TWF4ID0gMjU1Ow0KKwl0dXBsZS5BdHRyaWJ1dGVzID0gMDsNCisJdHVwbGUu
RGVzaXJlZFR1cGxlID0gQ0lTVFBMX0NGVEFCTEVfRU5UUlk7DQorCWkgPSBm
aXJzdF90dXBsZShoYW5kbGUsICZ0dXBsZSwgJnBhcnNlKTsNCisJd2hpbGUg
KGkgPT0gQ1NfU1VDQ0VTUykgew0KKwkgICAgaWYgKGNmLT5pby5ud2luID4g
MCkgew0KKwkJbGluay0+Y29uZi5Db25maWdJbmRleCA9IGNmLT5pbmRleDsN
CisJCWxpbmstPmlvLkJhc2VQb3J0MSA9IGNmLT5pby53aW5bMF0uYmFzZTsN
CisJCWxpbmstPmlvLk51bVBvcnRzMSA9IGNmLT5pby53aW5bMF0ubGVuOw0K
KwkJbGluay0+aW8uQmFzZVBvcnQyID0gMDsNCisJCWxpbmstPmlvLk51bVBv
cnRzMiA9IDA7DQorICAgICAgICAgICAgICAgIHByaW50ayhLRVJOX0lORk8g
ImF2bWExX2NzOiB0ZXN0aW5nIGkvbyAlI3gtJSN4XG4iLA0KKwkJCWxpbmst
PmlvLkJhc2VQb3J0MSwNCisJCSAgICAgICAgbGluay0+aW8uQmFzZVBvcnQx
K2xpbmstPmlvLk51bVBvcnRzMSk7DQorCQlpID0gQ2FyZFNlcnZpY2VzKFJl
cXVlc3RJTywgbGluay0+aGFuZGxlLCAmbGluay0+aW8pOw0KKwkJaWYgKGkg
PT0gQ1NfU1VDQ0VTUykgZ290byBmb3VuZF9wb3J0Ow0KKwkgICAgfQ0KKwkg
ICAgaSA9IG5leHRfdHVwbGUoaGFuZGxlLCAmdHVwbGUsICZwYXJzZSk7DQor
CX0NCitmb3VuZF9wb3J0Og0KKwlpZiAoaSAhPSBDU19TVUNDRVNTKSB7DQor
CSAgICBjc19lcnJvcihsaW5rLT5oYW5kbGUsIFJlcXVlc3RJTywgaSk7DQor
CSAgICBicmVhazsNCisJfQ0KKwkNCisJLyoNCisJICogYWxsb2NhdGUgYW4g
aW50ZXJydXB0IGxpbmUNCisJICovDQorCWkgPSBDYXJkU2VydmljZXMoUmVx
dWVzdElSUSwgbGluay0+aGFuZGxlLCAmbGluay0+aXJxKTsNCisJaWYgKGkg
IT0gQ1NfU1VDQ0VTUykgew0KKwkgICAgY3NfZXJyb3IobGluay0+aGFuZGxl
LCBSZXF1ZXN0SVJRLCBpKTsNCisJICAgIENhcmRTZXJ2aWNlcyhSZWxlYXNl
SU8sIGxpbmstPmhhbmRsZSwgJmxpbmstPmlvKTsNCisJICAgIGJyZWFrOw0K
Kwl9DQorCQ0KKwkvKg0KKyAgICAgICAgICogY29uZmlndXJlIHRoZSBQQ01D
SUEgc29ja2V0DQorCSAgKi8NCisJaSA9IENhcmRTZXJ2aWNlcyhSZXF1ZXN0
Q29uZmlndXJhdGlvbiwgbGluay0+aGFuZGxlLCAmbGluay0+Y29uZik7DQor
CWlmIChpICE9IENTX1NVQ0NFU1MpIHsNCisJICAgIGNzX2Vycm9yKGxpbmst
PmhhbmRsZSwgUmVxdWVzdENvbmZpZ3VyYXRpb24sIGkpOw0KKwkgICAgQ2Fy
ZFNlcnZpY2VzKFJlbGVhc2VJTywgbGluay0+aGFuZGxlLCAmbGluay0+aW8p
Ow0KKwkgICAgQ2FyZFNlcnZpY2VzKFJlbGVhc2VJUlEsIGxpbmstPmhhbmRs
ZSwgJmxpbmstPmlycSk7DQorCSAgICBicmVhazsNCisJfQ0KKw0KKyAgICB9
IHdoaWxlICgwKTsNCisNCisgICAgLyogQXQgdGhpcyBwb2ludCwgdGhlIGRl
dl9ub2RlX3Qgc3RydWN0dXJlKHMpIHNob3VsZCBiZQ0KKyAgICAgICBpbml0
aWFsaXplZCBhbmQgYXJyYW5nZWQgaW4gYSBsaW5rZWQgbGlzdCBhdCBsaW5r
LT5kZXYuICovDQorDQorICAgIHN0cmNweShkZXYtPm5vZGUuZGV2X25hbWUs
ICJBMSIpOw0KKyAgICBkZXYtPm5vZGUubWFqb3IgPSA0NTsNCisgICAgZGV2
LT5ub2RlLm1pbm9yID0gMDsNCisgICAgbGluay0+ZGV2ID0gJmRldi0+bm9k
ZTsNCisgICAgDQorICAgIGxpbmstPnN0YXRlICY9IH5ERVZfQ09ORklHX1BF
TkRJTkc7DQorICAgIC8qIElmIGFueSBzdGVwIGZhaWxlZCwgcmVsZWFzZSBh
bnkgcGFydGlhbGx5IGNvbmZpZ3VyZWQgc3RhdGUgKi8NCisgICAgaWYgKGkg
IT0gMCkgew0KKwlhdm1hMWNzX3JlbGVhc2UoKHVfbG9uZylsaW5rKTsNCisJ
cmV0dXJuOw0KKyAgICB9DQorDQorICAgIHByaW50ayhLRVJOX05PVElDRSAi
YXZtYTFfY3M6IGNoZWNraW5nIGF0IGkvbyAlI3gsIGlycSAlZFxuIiwNCisJ
CQkJbGluay0+aW8uQmFzZVBvcnQxLCBsaW5rLT5pcnEuQXNzaWduZWRJUlEp
Ow0KKw0KKyAgICBpZiAoYXZtX2ExX2luaXRfcGNtY2lhKCh2b2lkICopKGlu
dClsaW5rLT5pby5CYXNlUG9ydDEsDQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGluay0+aXJxLkFzc2lnbmVkSVJRLA0KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICZidXN5LCBpc2RucHJvdCkgIT0gMCkgew0KKyAgICAg
ICBwcmludGsoS0VSTl9FUlIgImF2bWExX2NzOiBmYWlsZWQgdG8gaW5pdGlh
bGl6ZSBBVk0gQTEgUENNQ0lBICVkIGF0IGkvbyAlI3hcbiIsIGksIGxpbmst
PmlvLkJhc2VQb3J0MSk7DQorICAgICAgIHJldHVybjsNCisgICAgfQ0KKw0K
KyAgICBpID0gMDsgLyogbm8gcmV0dXJuY29kZSBmb3IgY2FyZG5yIDotKCAq
Lw0KKw0KKyAgICBkZXYtPm5vZGUubWlub3IgPSBpOw0KKw0KK30gLyogYXZt
YTFjc19jb25maWcgKi8NCisNCisvKj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0NCisNCisgICAgQWZ0ZXIgYSBjYXJkIGlzIHJlbW92ZWQsIGF2bWExY3Nf
cmVsZWFzZSgpIHdpbGwgdW5yZWdpc3RlciB0aGUgbmV0DQorICAgIGRldmlj
ZSwgYW5kIHJlbGVhc2UgdGhlIFBDTUNJQSBjb25maWd1cmF0aW9uLiAgSWYg
dGhlIGRldmljZSBpcw0KKyAgICBzdGlsbCBvcGVuLCB0aGlzIHdpbGwgYmUg
cG9zdHBvbmVkIHVudGlsIGl0IGlzIGNsb3NlZC4NCisgICAgDQorPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSovDQorDQorc3RhdGljIHZvaWQgYXZtYTFj
c19yZWxlYXNlKHVfbG9uZyBhcmcpDQorew0KKyAgICBkZXZfbGlua190ICps
aW5rID0gKGRldl9saW5rX3QgKilhcmc7DQorICAgIGxvY2FsX2luZm9fdCAq
bG9jYWwgPSBsaW5rLT5wcml2Ow0KKw0KKyAgICBERUJVRygwLCAiYXZtYTFj
c19yZWxlYXNlKDB4JXApXG4iLCBsaW5rKTsNCisNCisgICAgLyoNCisgICAg
ICAgSWYgdGhlIGRldmljZSBpcyBjdXJyZW50bHkgaW4gdXNlLCB3ZSB3b24n
dCByZWxlYXNlIHVudGlsIGl0DQorICAgICAgIGlzIGFjdHVhbGx5IGNsb3Nl
ZC4NCisgICAgKi8NCisgICAgaWYgKGxpbmstPm9wZW4pIHsNCisJREVCVUco
MSwgImF2bWExX2NzOiByZWxlYXNlIHBvc3Rwb25lZCwgJyVzJyBzdGlsbCBv
cGVuXG4iLA0KKwkgICAgICBsaW5rLT5kZXYtPmRldl9uYW1lKTsNCisJbGlu
ay0+c3RhdGUgfD0gREVWX1NUQUxFX0NPTkZJRzsNCisJcmV0dXJuOw0KKyAg
ICB9DQorDQorICAgIC8qIG5vIHVucmVnaXN0ZXIgZnVuY3Rpb24gd2l0aCBo
aXNheCAqLw0KKyAgICBIaVNheF9jbG9zZWNhcmQobG9jYWwtPm5vZGUubWlu
b3IpOw0KKw0KKyAgICAvKiBVbmxpbmsgdGhlIGRldmljZSBjaGFpbiAqLw0K
KyAgICBsaW5rLT5kZXYgPSBOVUxMOw0KKyAgICANCisgICAgLyogRG9uJ3Qg
Ym90aGVyIGNoZWNraW5nIHRvIHNlZSBpZiB0aGVzZSBzdWNjZWVkIG9yIG5v
dCAqLw0KKyAgICBDYXJkU2VydmljZXMoUmVsZWFzZUNvbmZpZ3VyYXRpb24s
IGxpbmstPmhhbmRsZSk7DQorICAgIENhcmRTZXJ2aWNlcyhSZWxlYXNlSU8s
IGxpbmstPmhhbmRsZSwgJmxpbmstPmlvKTsNCisgICAgQ2FyZFNlcnZpY2Vz
KFJlbGVhc2VJUlEsIGxpbmstPmhhbmRsZSwgJmxpbmstPmlycSk7DQorICAg
IGxpbmstPnN0YXRlICY9IH5ERVZfQ09ORklHOw0KKyAgICANCisgICAgaWYg
KGxpbmstPnN0YXRlICYgREVWX1NUQUxFX0xJTkspDQorCWF2bWExY3NfZGV0
YWNoKGxpbmspOw0KKyAgICANCit9IC8qIGF2bWExY3NfcmVsZWFzZSAqLw0K
Kw0KKy8qPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKw0KKyAgICBUaGUg
Y2FyZCBzdGF0dXMgZXZlbnQgaGFuZGxlci4gIE1vc3RseSwgdGhpcyBzY2hl
ZHVsZXMgb3RoZXINCisgICAgc3R1ZmYgdG8gcnVuIGFmdGVyIGFuIGV2ZW50
IGlzIHJlY2VpdmVkLiAgQSBDQVJEX1JFTU9WQUwgZXZlbnQNCisgICAgYWxz
byBzZXRzIHNvbWUgZmxhZ3MgdG8gZGlzY291cmFnZSB0aGUgbmV0IGRyaXZl
cnMgZnJvbSB0cnlpbmcNCisgICAgdG8gdGFsayB0byB0aGUgY2FyZCBhbnkg
bW9yZS4NCisNCisgICAgV2hlbiBhIENBUkRfUkVNT1ZBTCBldmVudCBpcyBy
ZWNlaXZlZCwgd2UgaW1tZWRpYXRlbHkgc2V0IGEgZmxhZw0KKyAgICB0byBi
bG9jayBmdXR1cmUgYWNjZXNzZXMgdG8gdGhpcyBkZXZpY2UuICBBbGwgdGhl
IGZ1bmN0aW9ucyB0aGF0DQorICAgIGFjdHVhbGx5IGFjY2VzcyB0aGUgZGV2
aWNlIHNob3VsZCBjaGVjayB0aGlzIGZsYWcgdG8gbWFrZSBzdXJlDQorICAg
IHRoZSBjYXJkIGlzIHN0aWxsIHByZXNlbnQuDQorICAgIA0KKz09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0qLw0KKw0KK3N0YXRpYyBpbnQgYXZtYTFjc19l
dmVudChldmVudF90IGV2ZW50LCBpbnQgcHJpb3JpdHksDQorCQkJICBldmVu
dF9jYWxsYmFja19hcmdzX3QgKmFyZ3MpDQorew0KKyAgICBkZXZfbGlua190
ICpsaW5rID0gYXJncy0+Y2xpZW50X2RhdGE7DQorDQorICAgIERFQlVHKDEs
ICJhdm1hMWNzX2V2ZW50KDB4JTA2eClcbiIsIGV2ZW50KTsNCisgICAgDQor
ICAgIHN3aXRjaCAoZXZlbnQpIHsNCisgICAgY2FzZSBDU19FVkVOVF9DQVJE
X1JFTU9WQUw6DQorCWxpbmstPnN0YXRlICY9IH5ERVZfUFJFU0VOVDsNCisJ
aWYgKGxpbmstPnN0YXRlICYgREVWX0NPTkZJRykgew0KKwkgICAgbGluay0+
cmVsZWFzZS5leHBpcmVzID0gKGppZmZpZXMrKEhaLzIwKSk7DQorCSAgICBh
ZGRfdGltZXIoJmxpbmstPnJlbGVhc2UpOw0KKwl9DQorCWJyZWFrOw0KKyAg
ICBjYXNlIENTX0VWRU5UX0NBUkRfSU5TRVJUSU9OOg0KKwlsaW5rLT5zdGF0
ZSB8PSBERVZfUFJFU0VOVCB8IERFVl9DT05GSUdfUEVORElORzsNCisJYXZt
YTFjc19jb25maWcobGluayk7DQorCWJyZWFrOw0KKyAgICBjYXNlIENTX0VW
RU5UX1BNX1NVU1BFTkQ6DQorCWxpbmstPnN0YXRlIHw9IERFVl9TVVNQRU5E
Ow0KKwkvKiBGYWxsIHRocm91Z2guLi4gKi8NCisgICAgY2FzZSBDU19FVkVO
VF9SRVNFVF9QSFlTSUNBTDoNCisJaWYgKGxpbmstPnN0YXRlICYgREVWX0NP
TkZJRykNCisJICAgIENhcmRTZXJ2aWNlcyhSZWxlYXNlQ29uZmlndXJhdGlv
biwgbGluay0+aGFuZGxlKTsNCisJYnJlYWs7DQorICAgIGNhc2UgQ1NfRVZF
TlRfUE1fUkVTVU1FOg0KKwlsaW5rLT5zdGF0ZSAmPSB+REVWX1NVU1BFTkQ7
DQorCS8qIEZhbGwgdGhyb3VnaC4uLiAqLw0KKyAgICBjYXNlIENTX0VWRU5U
X0NBUkRfUkVTRVQ6DQorCWlmIChsaW5rLT5zdGF0ZSAmIERFVl9DT05GSUcp
DQorCSAgICBDYXJkU2VydmljZXMoUmVxdWVzdENvbmZpZ3VyYXRpb24sIGxp
bmstPmhhbmRsZSwgJmxpbmstPmNvbmYpOw0KKwlicmVhazsNCisgICAgfQ0K
KyAgICByZXR1cm4gMDsNCit9IC8qIGF2bWExY3NfZXZlbnQgKi8NCisNCisv
Kj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ki8NCisNCitpbnQgaW5pdF9tb2R1
bGUodm9pZCkNCit7DQorICAgIHNlcnZpbmZvX3Qgc2VydjsNCisgICAgREVC
VUcoMCwgIiVzXG4iLCB2ZXJzaW9uKTsNCisgICAgQ2FyZFNlcnZpY2VzKEdl
dENhcmRTZXJ2aWNlc0luZm8sICZzZXJ2KTsNCisgICAgaWYgKHNlcnYuUmV2
aXNpb24gIT0gQ1NfUkVMRUFTRV9DT0RFKSB7DQorCXByaW50ayhLRVJOX05P
VElDRSAiYXZtYTFfY3M6IENhcmQgU2VydmljZXMgcmVsZWFzZSAiDQorCSAg
ICAgICAiZG9lcyBub3QgbWF0Y2ghXG4iKTsNCisJcmV0dXJuIC0xOw0KKyAg
ICB9DQorICAgIHJlZ2lzdGVyX3BjbWNpYV9kcml2ZXIoJmRldl9pbmZvLCAm
YXZtYTFjc19hdHRhY2gsICZhdm1hMWNzX2RldGFjaCk7DQorICAgIHJldHVy
biAwOw0KK30NCisNCit2b2lkIGNsZWFudXBfbW9kdWxlKHZvaWQpDQorew0K
KyAgICBERUJVRygwLCAiYXZtYTFfY3M6IHVubG9hZGluZ1xuIik7DQorICAg
IHVucmVnaXN0ZXJfcGNtY2lhX2RyaXZlcigmZGV2X2luZm8pOw0KKyAgICB3
aGlsZSAoZGV2X2xpc3QgIT0gTlVMTCkgew0KKwlpZiAoZGV2X2xpc3QtPnN0
YXRlICYgREVWX0NPTkZJRykNCisJICAgIGF2bWExY3NfcmVsZWFzZSgodV9s
b25nKWRldl9saXN0KTsNCisJYXZtYTFjc19kZXRhY2goZGV2X2xpc3QpOw0K
KyAgICB9DQorfQ0K
---1463804317-1548386187-984246539=:2270--
-
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/