Re: APM poweroff under Linux 2.4.7 / 2.4.2 RH 7.1

Riley Williams (rhw@MemAlpha.CX)
Thu, 9 Aug 2001 08:34:51 +0100 (BST)


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.

---842912328-2092114493-997342491=:10432
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hi Stephen.

>> I have an Athlon on an ASUS A7V133.

>> This machine powers off perfectly using a stock RedHat 7.1
>> kernel (2.4.2). However, it refuses to power off with 2.4.7,
>> with all APM options set correctly (including power off in real
>> mode).

>> Now for the funny part: copying the 2.4.2 apm.c to the 2.4.7 and
>> recompiling yielded a working poweroff. So *something* has been
>> broken between 2.4.2 and 2.4.7 with APM poweroff. :-)

> So, is this a pristine 2.4.2? Or is it a RH patched one? I have
> just looked at the differences in arch/i386/kernel/apm.c between
> 2.4.2 and 2.4.7. The only differences are in comments and to
> allow one more kernel command line option. i.e. there is nothing
> that should make APM behave differently.

> Could you send me a diff between the two versions of apm.c, please?

I have to admit that your comments made me wonder exactly what patches
RedHat have applied to the kernel and, as I have the 7.1 CD's to hand,
I put the 7.1 source CD in my drive and installed the relevant source
RPM therefrom. There are 227 patches listed therein, which is way too
many IMHO, and some of them clearly need to be considered for the
generic kernel.

Of the many patches theein, the enclosed TWO are the only ones that
touch apm.c so they are the patches you may need to consider. I'd
certainly be interested in your comments thereon.

Best wishes from Riley.

---842912328-2092114493-997342491=:10432
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="linux-2.4.2-sysreq-registration-0.16.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.33.0108090834510.10432@infradead.org>
Content-Description: SysRQ Registration patch
Content-Disposition: attachment; filename="linux-2.4.2-sysreq-registration-0.16.patch"

ZGlmZiAtdSAtciAtLW5ldy1maWxlIGxpbnV4L0RvY3VtZW50YXRpb24vc3lz
cnEudHh0IGJyeWNlL0RvY3VtZW50YXRpb24vc3lzcnEudHh0DQotLS0gbGlu
dXgvRG9jdW1lbnRhdGlvbi9zeXNycS50eHQJRnJpIE1hciAzMCAxODo0MTox
NyAyMDAxDQorKysgYnJ5Y2UvRG9jdW1lbnRhdGlvbi9zeXNycS50eHQJRnJp
IE1hciAzMCAxOTowMzoxNCAyMDAxDQpAQCAtMTI2LDE0ICsxMjYsNTUgQEAN
CiBib290IHNjcmlwdC4gT2gsIGFuZCBieSB0aGUgd2F5LCB5b3UgZXhpdCAn
c2hvd2tleScgYnkgbm90IHR5cGluZyBhbnl0aGluZw0KIGZvciB0ZW4gc2Vj
b25kcy4NCiANCisqICBJIHdhbnQgdG8gYWRkIFN5c1JRIGtleSBldmVudHMg
dG8gYSBtb2R1bGUsIGhvdyBkb2VzIGl0IHdvcms/DQorfn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fg0KK0luIG9yZGVyIHRvIHJlZ2lzdGVyIGEgYmFzaWMgZnVuY3Rp
b24gd2l0aCB0aGUgdGFibGUsIHlvdSBtdXN0IGZpcnN0IGluY2x1ZGUNCit0
aGUgaGVhZGVyICdpbmNsdWRlL2xpbnV4L3N5c3JxLmgnLCB0aGlzIHdpbGwg
ZGVmaW5lIGV2ZXJ5dGhpbmcgZWxzZSB5b3UgbmVlZC4NCitOZXh0LCB5b3Ug
bXVzdCBjcmVhdGUgYSBzeXNycV9rZXlfb3Agc3RydWN0LCBhbmQgcG9wdWxh
dGUgaXQgd2l0aCBBKSB0aGUga2V5DQoraGFuZGxlciBmdW5jdGlvbiB5b3Ug
d2lsbCB1c2UsIEIpIGEgaGVscF9tc2cgc3RyaW5nLCB0aGF0IHdpbGwgcHJp
bnQgd2hlbiBTeXNSUQ0KK3ByaW50cyBoZWxwLCBhbmQgQykgYW4gYWN0aW9u
X21zZyBzdHJpbmcsIHRoYXQgd2lsbCBwcmludCByaWdodCBiZWZvcmUgeW91
cg0KK2hhbmRsZXIgaXMgY2FsbGVkLiBZb3VyIGhhbmRsZXIgbXVzdCBjb25m
b3JtIHRvIHRoZSBwcm90b3lwZSBpbiAnc3lzcnEuaCcuDQorDQorQWZ0ZXIg
dGhlIHN5c3JxX2tleV9vcCBpcyBjcmVhdGVkLCB5b3UgY2FuIGNhbGwgdGhl
IG1hY3JvIA0KK1JFR0lTVEVSX1NZU1JRX0tFWShpbnQga2V5LCBzdHJ1Y3Qg
c3lzcnFfa2V5X29wICpvcF9wKSB0aGF0IGlzIGRlZmluZWQgaW4NCitzeXNy
cS5oLCB0aGlzIHdpbGwgcmVnaXN0ZXIgdGhlIG9wZXJhdGlvbiBwb2ludGVk
IHRvIGJ5ICdvcF9wJyBhdCB0YWJsZQ0KK2tleSAna2V5JywgaWYgdGhhdCBz
bG90IGluIHRoZSB0YWJsZSBpcyBibGFuay4gQXQgbW9kdWxlIHVubG9hZCB0
aW1lLCB5b3UgbXVzdA0KK2NhbGwgdGhlIG1hY3JvIFVOUkVHSVNURVJfU1lT
UlFfS0VZKGludCBrZXksIHN0cnVjdCBzeXNycV9rZXlfb3AgKm9wX3ApLCB3
aGljaA0KK3dpbGwgcmVtb3ZlIHRoZSBrZXkgb3AgcG9pbnRlZCB0byBieSAn
b3BfcCcgZnJvbSB0aGUga2V5ICdrZXknLCBpZiBhbmQgb25seSBpZg0KK2l0
IGlzIGN1cnJlbnRseSByZWdpc3RlcmVkIGluIHRoYXQgc2xvdC4gVGhpcyBp
cyBpbiBjYXNlIHRoZSBzbG90IGhhcyBiZWVuDQorb3ZlcndyaXR0ZW4gc2lu
Y2UgeW91IHJlZ2lzdGVyZWQgaXQuDQorDQorVGhlIE1hZ2ljIFN5c1JRIHN5
c3RlbSB3b3JrcyBieSByZWdpc3RlcmluZyBrZXkgb3BlcmF0aW9ucyBhZ2Fp
bnN0IGEga2V5IG9wDQorbG9va3VwIHRhYmxlLCB3aGljaCBpcyBkZWZpbmVk
IGluICdkcml2ZXJzL2NoYXIvc3lzcnEuYycuIFRoaXMga2V5IHRhYmxlIGhh
cw0KK2EgbnVtYmVyIG9mIG9wZXJhdGlvbnMgcmVnaXN0ZXJlZCBpbnRvIGl0
IGF0IGNvbXBpbGUgdGltZSwgYnV0IGlzIG11dGFibGUsDQorYW5kIDQgZnVu
Y3Rpb25zIGFyZSBleHBvcnRlZCBmb3IgaW50ZXJmYWNlIHRvIGl0OiBfX3N5
c3JxX2xvY2tfdGFibGUsDQorX19zeXNycV91bmxvY2tfdGFibGUsIF9fc3lz
cnFfZ2V0X2tleV9vcCwgYW5kIF9fc3lzcnFfcHV0X2tleV9vcC4gVGhlDQor
ZnVuY3Rpb25zIF9fc3lzcnFfc3dhcF9rZXlfb3BzIGFuZCBfX3N5c3JxX3N3
YXBfa2V5X29wc19ub2xvY2sgYXJlIGRlZmluZWQNCitpbiB0aGUgaGVhZGVy
IGl0c2VsZiwgYW5kIHRoZSBSRUdJU1RFUiBhbmQgVU5SRUdJU1RFUiBtYWNy
b3MgYXJlIGJ1aWx0IGZyb21pDQordGhlc2UuIE1vcmUgY29tcGxleCAoYW5k
IGRhbmdlcm91cyEpIG1hbmlwdWxhdGlvbnMgb2YgdGhlIHRhYmxlIGFyZSBw
b3NzaWJsZQ0KK3VzaW5nIHRoZXNlIGZ1bmN0aW9ucywgYnV0IHlvdSBtdXN0
IGJlIGNhcmVmdWwgdG8gYWx3YXlzIGxvY2sgdGhlIHRhYmxlIGJlZm9yZQ0K
K3lvdSByZWFkIG9yIHdyaXRlIGZyb20gaXQsIGFuZCB0byB1bmxvY2sgaXQg
YWdhaW4gd2hlbiB5b3UgYXJlIGRvbmUuIChBbmQgb2YNCitjb3Vyc2UsIHRv
IG5ldmVyIGV2ZXIgbGVhdmUgYW4gaW52YWxpZCBwb2ludGVyIGluIHRoZSB0
YWJsZSkuIE51bGwgcG9pbnRlcnMgaW4NCit0aGUgdGFibGUgYXJlIGFsd2F5
cyBzYWZlIDopDQorDQorSWYgZm9yIHNvbWUgcmVhc29uIHlvdSBmZWVsIHRo
ZSBuZWVkIHRvIGNhbGwgdGhlIGhhbmRsZV9zeXNycSBmdW5jdGlvbiBmcm9t
DQord2l0aGluIGEgZnVuY3Rpb24gY2FsbGVkIGJ5IGhhbmRsZV9zeXNycSwg
eW91IG11c3QgYmUgYXdhcmUgdGhhdCB5b3UgYXJlIGluDQorYSBsb2NrICh5
b3UgYXJlIGFsc28gaW4gYW4gaW50ZXJ1cHQgaGFuZGxlciwgd2hpY2ggbWVh
bnMgZG9uJ3Qgc2xlZXAhKSwgc28NCit5b3UgbXVzdCBjYWxsIF9faGFuZGxl
X3N5c3JxX25vbG9jayBpbnN0ZWFkLg0KKw0KICogIEkgaGF2ZSBtb3JlIHF1
ZXN0aW9ucywgd2hvIGNhbiBJIGFzaz8NCiB+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQogWW91IG1heSBmZWVsIGZyZWUgdG8g
c2VuZCBlbWFpbCB0byBteXJkcmFhbEBkZWF0aHNkb29yLmNvbSwgYW5kIEkg
d2lsbA0KIHJlc3BvbmQgYXMgc29vbiBhcyBwb3NzaWJsZS4NCiAgLU15cmRy
YWFsDQogDQorQW5kIEknbGwgYW5zd2VyIGFueSBxdWVzdGlvbnMgYWJvdXQg
dGhlIHJlZ2lzdHJhdGlvbiBzeXN0ZW0geW91IGdvdCwgYWxzbw0KK3Jlc3Bv
bmRpbmcgYXMgc29vbiBhcyBwb3NzaWJsZS4NCisgLUNydXRjaGVyDQorDQog
KiAgQ3JlZGl0cw0KIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fn4NCiBXcml0dGVuIGJ5IE15ZHJhYWwgPG15cmRyYWFsQGRlYXRo
c2Rvb3IuY29tPg0KIFVwZGF0ZWQgYnkgQWRhbSBTdWxtaWNraSA8YWRhbUBj
ZmFyLnVtZC5lZHU+DQogVXBkYXRlZCBieSBKZXJlbXkgTS4gRG9sYW4gPGpt
ZEB0dXJib2dlZWsub3JnPiAyMDAxLzAxLzI4IDEwOjE1OjU5DQorQWRkZWQg
dG8gYnkgQ3J1dGNoZXIgRHVubmF2YW50IDxjcnV0Y2hlckByZWRoYXQuY29t
Pg0KZGlmZiAtdSAtciAtLW5ldy1maWxlIGxpbnV4L2FyY2gvaTM4Ni9rZXJu
ZWwvYXBtLmMgYnJ5Y2UvYXJjaC9pMzg2L2tlcm5lbC9hcG0uYw0KLS0tIGxp
bnV4L2FyY2gvaTM4Ni9rZXJuZWwvYXBtLmMJRnJpIE1hciAzMCAxODo0MToy
MCAyMDAxDQorKysgYnJ5Y2UvYXJjaC9pMzg2L2tlcm5lbC9hcG0uYwlGcmkg
TWFyIDMwIDE4OjU5OjQ4IDIwMDENCkBAIC0xNjYsNiArMTY2LDExIEBADQog
ICoNCiAgKiBbVGhpcyBkb2N1bWVudCBpcyBhdmFpbGFibGUgZnJvbSBNaWNy
b3NvZnQgYXQ6DQogICogICAgaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL2h3
ZGV2L2J1c2Jpb3MvYW1wXzEyLmh0bV0NCisgKg0KKyAqIChjKSAyMDAwIENy
dXRjaGVyIER1bm5hdmFudCA8Y3J1dGNoZXJAcmVkaGF0LmNvbT4NCisgKiBj
aGFuZ2VkIHRvIHVzZSB0aGUgc3lzcnEtcmVnaXN0ZXIgaGFjayBmb3IgcmVn
aXN0ZXJpbmcNCisgKiB0aGUgcG93ZXIgb2ZmIGZ1bmN0aW9uIGNhbGxlZCBi
eSBtYWdpYyBzeXNycQ0KKyAqIGJhc2VkIHVwb24gZGlzY3VzaW9ucyBpbiBp
cmM6Ly9pcmMub3BlbnByb2plY3RzLm5ldC8ja2VybmVsbmV3Ymllcw0KICAq
Lw0KIA0KICNpbmNsdWRlIDxsaW51eC9jb25maWcuaD4NCkBAIC0xOTEsMTIg
KzE5NiwxMSBAQA0KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPg0KICNpbmNs
dWRlIDxhc20vZGVzYy5oPg0KIA0KKyNpbmNsdWRlIDxsaW51eC9zeXNycS5o
Pg0KKw0KIGV4dGVybiB1bnNpZ25lZCBsb25nIGdldF9jbW9zX3RpbWUodm9p
ZCk7DQogZXh0ZXJuIHZvaWQgbWFjaGluZV9yZWFsX3Jlc3RhcnQodW5zaWdu
ZWQgY2hhciAqLCBpbnQpOw0KIA0KLSNpZmRlZiBDT05GSUdfTUFHSUNfU1lT
UlENCi1leHRlcm4gdm9pZCAoKnN5c3JxX3Bvd2VyX29mZikodm9pZCk7DQot
I2VuZGlmDQogI2lmIGRlZmluZWQoQ09ORklHX0FQTV9ESVNQTEFZX0JMQU5L
KSAmJiBkZWZpbmVkKENPTkZJR19WVCkNCiBleHRlcm4gaW50ICgqY29uc29s
ZV9ibGFua19ob29rKShpbnQpOw0KICNlbmRpZg0KQEAgLTY3Myw2ICs2Nzcs
MjMgQEANCiAjZW5kaWYNCiB9DQogDQorI2lmZGVmIENPTkZJR19NQUdJQ19T
WVNSUQ0KKy8qDQorICogTWFnaWMgc3lzcnEga2V5IGFuZCBoYW5kbGVyIGZv
ciB0aGUgcG93ZXIgb2ZmIGZ1bmN0aW9uDQorICovDQorDQordm9pZCBoYW5k
bGVfcG93ZXJvZmYgKGludCBrZXksIHN0cnVjdCBwdF9yZWdzICpwdF9yZWdz
LA0KKwkJICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGtiZF9zdHJ1
Y3QgKmtiZCwgc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSkgew0KKwkgICAgICAg
IGFwbV9wb3dlcl9vZmYoKTsNCit9DQorc3RydWN0IHN5c3JxX2tleV9vcCBz
eXNycV9wb3dlcm9mZl9vcCA9IHsNCisJaGFuZGxlcjogICAgICAgIGhhbmRs
ZV9wb3dlcm9mZiwNCisJaGVscF9tc2c6ICAgICAgICJPZmYiLA0KKwlhY3Rp
b25fbXNnOiAgICAgIlBvd2VyIE9mZlxuIg0KK307DQorI2VuZGlmDQorDQor
DQogI2lmZGVmIENPTkZJR19BUE1fRE9fRU5BQkxFDQogc3RhdGljIGludCBh
cG1fZW5hYmxlX3Bvd2VyX21hbmFnZW1lbnQoaW50IGVuYWJsZSkNCiB7DQpA
QCAtMTUyOCw3ICsxNTQ5LDcgQEANCiAJaWYgKHBvd2VyX29mZikNCiAJCXBt
X3Bvd2VyX29mZiA9IGFwbV9wb3dlcl9vZmY7DQogI2lmZGVmIENPTkZJR19N
QUdJQ19TWVNSUQ0KLQlzeXNycV9wb3dlcl9vZmYgPSBhcG1fcG93ZXJfb2Zm
Ow0KKwlSRUdJU1RFUl9TWVNSUV9LRVkoJ28nLCZzeXNycV9wb3dlcm9mZl9v
cCk7DQogI2VuZGlmDQogCWlmIChzbXBfbnVtX2NwdXMgPT0gMSkgew0KICNp
ZiBkZWZpbmVkKENPTkZJR19BUE1fRElTUExBWV9CTEFOSykgJiYgZGVmaW5l
ZChDT05GSUdfVlQpDQpAQCAtMTcyNyw3ICsxNzQ4LDcgQEANCiAJbWlzY19k
ZXJlZ2lzdGVyKCZhcG1fZGV2aWNlKTsNCiAJcmVtb3ZlX3Byb2NfZW50cnko
ImFwbSIsIE5VTEwpOw0KICNpZmRlZiBDT05GSUdfTUFHSUNfU1lTUlENCi0J
c3lzcnFfcG93ZXJfb2ZmID0gTlVMTDsNCisJVU5SRUdJU1RFUl9TWVNSUV9L
RVkoJ28nLCZzeXNycV9wb3dlcm9mZl9vcCk7DQogI2VuZGlmDQogCWlmIChw
b3dlcl9vZmYpDQogCQlwbV9wb3dlcl9vZmYgPSBOVUxMOw0KZGlmZiAtdSAt
ciAtLW5ldy1maWxlIGxpbnV4L2RyaXZlcnMvY2hhci9zeXNycS5jIGJyeWNl
L2RyaXZlcnMvY2hhci9zeXNycS5jDQotLS0gbGludXgvZHJpdmVycy9jaGFy
L3N5c3JxLmMJRnJpIEZlYiAgOSAxNDozMDoyMiAyMDAxDQorKysgYnJ5Y2Uv
ZHJpdmVycy9jaGFyL3N5c3JxLmMJRnJpIE1hciAzMCAxODo1OTo0OCAyMDAx
DQpAQCAtNiw2ICs2LDEwIEBADQogICoNCiAgKgkoYykgMTk5NyBNYXJ0aW4g
TWFyZXMgPG1qQGF0cmV5Lmthcmxpbi5tZmYuY3VuaS5jej4NCiAgKgliYXNl
ZCBvbiBpZGVhcyBieSBQYXZlbCBNYWNoZWsgPHBhdmVsQGF0cmV5Lmthcmxp
bi5tZmYuY3VuaS5jej4NCisgKg0KKyAqCShjKSAyMDAwIENydXRjaGVyIER1
bm5hdmFudCA8Y3J1dGNoZXJAcmVkaGF0LmNvbT4NCisgKglvdmVyaGF1bGVk
IHRvIHVzZSBrZXkgcmVnaXN0cmF0aW9uDQorICoJYmFzZWQgdXBvbiBkaXNj
dXNpb25zIGluIGlyYzovL2lyYy5vcGVucHJvamVjdHMubmV0LyNrZXJuZWxu
ZXdiaWVzDQogICovDQogDQogI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPg0K
QEAgLTI0LDYgKzI4LDggQEANCiAjaW5jbHVkZSA8bGludXgvc21wX2xvY2su
aD4NCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+DQogDQorI2luY2x1ZGUg
PGxpbnV4L3NwaW5sb2NrLmg+DQorDQogI2luY2x1ZGUgPGFzbS9wdHJhY2Uu
aD4NCiANCiBleHRlcm4gdm9pZCB3YWtldXBfYmRmbHVzaChpbnQpOw0KQEAg
LTMzLDEzMyArMzksNzEgQEANCiAvKiBXaGV0aGVyIHdlIHJlYWN0IG9uIHN5
c3JxIGtleXMgb3IganVzdCBpZ25vcmUgdGhlbSAqLw0KIGludCBzeXNycV9l
bmFibGVkID0gMTsNCiANCi0vKiBNYWNoaW5lIHNwZWNpZmljIHBvd2VyIG9m
ZiBmdW5jdGlvbiAqLw0KLXZvaWQgKCpzeXNycV9wb3dlcl9vZmYpKHZvaWQp
Ow0KLQ0KLUVYUE9SVF9TWU1CT0woc3lzcnFfcG93ZXJfb2ZmKTsNCi0NCi0v
KiBTZW5kIGEgc2lnbmFsIHRvIGFsbCB1c2VyIHByb2Nlc3NlcyAqLw0KKy8q
IExvZ2xldmVsIHN5c3JxIGhhbmRsZXIgKi8NCitzdGF0aWMgdm9pZCBzeXNy
cV9oYW5kbGVfbG9nbGV2ZWwoaW50IGtleSwgc3RydWN0IHB0X3JlZ3MgKnB0
X3JlZ3MsDQorCQlzdHJ1Y3Qga2JkX3N0cnVjdCAqa2JkLCBzdHJ1Y3QgdHR5
X3N0cnVjdCAqdHR5KSB7DQorCWludCBpOw0KKwlpID0ga2V5IC0gJzAnOw0K
Kwljb25zb2xlX2xvZ2xldmVsID0gNzsNCisJcHJpbnRrKCIlZFxuIiwgaSk7
DQorCWNvbnNvbGVfbG9nbGV2ZWwgPSBpOw0KK30JDQorc3RhdGljIHN0cnVj
dCBzeXNycV9rZXlfb3Agc3lzcnFfbG9nbGV2ZWxfb3AgPSB7DQorCWhhbmRs
ZXI6CXN5c3JxX2hhbmRsZV9sb2dsZXZlbCwNCisJaGVscF9tc2c6CSJsb2ds
ZXZlbDAtOCIsDQorCWFjdGlvbl9tc2c6CSJMb2dsZXZlbCBzZXQgdG8gIiwN
Cit9Ow0KIA0KLXN0YXRpYyB2b2lkIHNlbmRfc2lnX2FsbChpbnQgc2lnLCBp
bnQgZXZlbl9pbml0KQ0KLXsNCi0Jc3RydWN0IHRhc2tfc3RydWN0ICpwOw0K
IA0KLQlmb3JfZWFjaF90YXNrKHApIHsNCi0JCWlmIChwLT5tbSkgewkJCQkg
ICAgLyogTm90IHN3YXBwZXIgbm9yIGtlcm5lbCB0aHJlYWQgKi8NCi0JCQlp
ZiAocC0+cGlkID09IDEgJiYgZXZlbl9pbml0KQkgICAgLyogVWdseSBoYWNr
IHRvIGtpbGwgaW5pdCAqLw0KLQkJCQlwLT5waWQgPSAweDgwMDA7DQotCQkJ
Zm9yY2Vfc2lnKHNpZywgcCk7DQotCQl9DQotCX0NCisvKiBTQUsgc3lzcnEg
aGFuZGxlciAqLw0KKyNpZmRlZiBDT05GSUdfVlQNCitzdGF0aWMgdm9pZCBz
eXNycV9oYW5kbGVfU0FLKGludCBrZXksIHN0cnVjdCBwdF9yZWdzICpwdF9y
ZWdzLA0KKwkJc3RydWN0IGtiZF9zdHJ1Y3QgKmtiZCwgc3RydWN0IHR0eV9z
dHJ1Y3QgKnR0eSkgew0KKwlpZiAodHR5KQ0KKwkJZG9fU0FLKHR0eSk7DQor
CXJlc2V0X3ZjKGZnX2NvbnNvbGUpOw0KIH0NCitzdGF0aWMgc3RydWN0IHN5
c3JxX2tleV9vcCBzeXNycV9TQUtfb3AgPSB7DQorCWhhbmRsZXI6CXN5c3Jx
X2hhbmRsZV9TQUssDQorCWhlbHBfbXNnOgkic2FLIiwNCisJYWN0aW9uX21z
ZzoJIlNBS1xuIiwNCit9Ow0KKyNlbmRpZg0KIA0KLS8qDQotICogVGhpcyBm
dW5jdGlvbiBpcyBjYWxsZWQgYnkgdGhlIGtleWJvYXJkIGhhbmRsZXIgd2hl
biBTeXNScSBpcyBwcmVzc2VkDQotICogYW5kIGFueSBvdGhlciBrZXljb2Rl
IGFycml2ZXMuDQotICovDQogDQotdm9pZCBoYW5kbGVfc3lzcnEoaW50IGtl
eSwgc3RydWN0IHB0X3JlZ3MgKnB0X3JlZ3MsDQotCQkgIHN0cnVjdCBrYmRf
c3RydWN0ICprYmQsIHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpDQotew0KLQlp
bnQgb3JpZ19sb2dfbGV2ZWwgPSBjb25zb2xlX2xvZ2xldmVsOw0KKy8qIHVu
cmF3IHN5c3JxIGhhbmRsZXIgKi8NCitzdGF0aWMgdm9pZCBzeXNycV9oYW5k
bGVfdW5yYXcoaW50IGtleSwgc3RydWN0IHB0X3JlZ3MgKnB0X3JlZ3MsDQor
CQlzdHJ1Y3Qga2JkX3N0cnVjdCAqa2JkLCBzdHJ1Y3QgdHR5X3N0cnVjdCAq
dHR5KSB7DQorCWlmIChrYmQpDQorCQlrYmQtPmtiZG1vZGUgPSBWQ19YTEFU
RTsNCit9DQorc3RhdGljIHN0cnVjdCBzeXNycV9rZXlfb3Agc3lzcnFfdW5y
YXdfb3AgPSB7DQorCWhhbmRsZXI6CXN5c3JxX2hhbmRsZV91bnJhdywNCisJ
aGVscF9tc2c6CSJ1blJhdyIsDQorCWFjdGlvbl9tc2c6CSJLZXlib2FyZCBt
b2RlIHNldCB0byBYTEFURVxuIiwNCit9Ow0KIA0KLQlpZiAoIXN5c3JxX2Vu
YWJsZWQpDQotCQlyZXR1cm47DQogDQotCWlmICgha2V5KQ0KLQkJcmV0dXJu
Ow0KKy8qIHJlYm9vdCBzeXNycSBoYW5kbGVyICovDQorc3RhdGljIHZvaWQg
c3lzcnFfaGFuZGxlX3JlYm9vdChpbnQga2V5LCBzdHJ1Y3QgcHRfcmVncyAq
cHRfcmVncywNCisJCXN0cnVjdCBrYmRfc3RydWN0ICprYmQsIHN0cnVjdCB0
dHlfc3RydWN0ICp0dHkpIHsNCisJbWFjaGluZV9yZXN0YXJ0KE5VTEwpOw0K
K30NCitzdGF0aWMgc3RydWN0IHN5c3JxX2tleV9vcCBzeXNycV9yZWJvb3Rf
b3AgPSB7DQorCWhhbmRsZXI6CXN5c3JxX2hhbmRsZV9yZWJvb3QsDQorCWhl
bHBfbXNnOgkicmVCb290IiwNCisJYWN0aW9uX21zZzoJIlJlc2V0dGluZ1xu
IiwNCit9Ow0KIA0KLQljb25zb2xlX2xvZ2xldmVsID0gNzsNCi0JcHJpbnRr
KEtFUk5fSU5GTyAiU3lzUnE6ICIpOw0KLQlzd2l0Y2ggKGtleSkgew0KLQlj
YXNlICdyJzoJCQkJCSAgICAvKiBSIC0tIFJlc2V0IHJhdyBtb2RlICovDQot
CQlpZiAoa2JkKSB7DQotCQkJa2JkLT5rYmRtb2RlID0gVkNfWExBVEU7DQot
CQkJcHJpbnRrKCJLZXlib2FyZCBtb2RlIHNldCB0byBYTEFURVxuIik7DQot
CQl9DQotCQlicmVhazsNCi0jaWZkZWYgQ09ORklHX1ZUDQotCWNhc2UgJ2sn
OgkJCQkJICAgIC8qIEsgLS0gU0FLICovDQotCQlwcmludGsoIlNBS1xuIik7
DQotCQlpZiAodHR5KQ0KLQkJCWRvX1NBSyh0dHkpOw0KLQkJcmVzZXRfdmMo
ZmdfY29uc29sZSk7DQotCQlicmVhazsNCi0jZW5kaWYNCi0JY2FzZSAnYic6
CQkJCQkgICAgLyogQiAtLSBib290IGltbWVkaWF0ZWx5ICovDQotCQlwcmlu
dGsoIlJlc2V0dGluZ1xuIik7DQotCQltYWNoaW5lX3Jlc3RhcnQoTlVMTCk7
DQotCQlicmVhazsNCi0JY2FzZSAnbyc6CQkJCQkgICAgLyogTyAtLSBwb3dl
ciBvZmYgKi8NCi0JCWlmIChzeXNycV9wb3dlcl9vZmYpIHsNCi0JCQlwcmlu
dGsoIlBvd2VyIG9mZlxuIik7DQotCQkJc3lzcnFfcG93ZXJfb2ZmKCk7DQot
CQl9DQotCQlicmVhazsNCi0JY2FzZSAncyc6CQkJCQkgICAgLyogUyAtLSBl
bWVyZ2VuY3kgc3luYyAqLw0KLQkJcHJpbnRrKCJFbWVyZ2VuY3kgU3luY1xu
Iik7DQotCQllbWVyZ2VuY3lfc3luY19zY2hlZHVsZWQgPSBFTUVSR19TWU5D
Ow0KLQkJd2FrZXVwX2JkZmx1c2goMCk7DQotCQlicmVhazsNCi0JY2FzZSAn
dSc6CQkJCQkgICAgLyogVSAtLSBlbWVyZ2VuY3kgcmVtb3VudCBSL08gKi8N
Ci0JCXByaW50aygiRW1lcmdlbmN5IFJlbW91bnQgUi9PXG4iKTsNCi0JCWVt
ZXJnZW5jeV9zeW5jX3NjaGVkdWxlZCA9IEVNRVJHX1JFTU9VTlQ7DQotCQl3
YWtldXBfYmRmbHVzaCgwKTsNCi0JCWJyZWFrOw0KLQljYXNlICdwJzoJCQkJ
CSAgICAvKiBQIC0tIHNob3cgUEMgKi8NCi0JCXByaW50aygiU2hvdyBSZWdz
XG4iKTsNCi0JCWlmIChwdF9yZWdzKQ0KLQkJCXNob3dfcmVncyhwdF9yZWdz
KTsNCi0JCWJyZWFrOw0KLQljYXNlICd0JzoJCQkJCSAgICAvKiBUIC0tIHNo
b3cgdGFzayBpbmZvICovDQotCQlwcmludGsoIlNob3cgU3RhdGVcbiIpOw0K
LQkJc2hvd19zdGF0ZSgpOw0KLQkJYnJlYWs7DQotCWNhc2UgJ20nOgkJCQkJ
ICAgIC8qIE0gLS0gc2hvdyBtZW1vcnkgaW5mbyAqLw0KLQkJcHJpbnRrKCJT
aG93IE1lbW9yeVxuIik7DQotCQlzaG93X21lbSgpOw0KLQkJYnJlYWs7DQot
CWNhc2UgJzAnIC4uLiAnOSc6CQkJCSAgICAvKiAwLTkgLS0gc2V0IGNvbnNv
bGUgbG9nZ2luZyBsZXZlbCAqLw0KLQkJb3JpZ19sb2dfbGV2ZWwgPSBrZXkg
LSAnMCc7DQotCQlwcmludGsoIkxvZyBsZXZlbCBzZXQgdG8gJWRcbiIsIG9y
aWdfbG9nX2xldmVsKTsNCi0JCWJyZWFrOw0KLQljYXNlICdlJzoJCQkJCSAg
ICAvKiBFIC0tIHRlcm1pbmF0ZSBhbGwgdXNlciBwcm9jZXNzZXMgKi8NCi0J
CXByaW50aygiVGVybWluYXRlIEFsbCBUYXNrc1xuIik7DQotCQlzZW5kX3Np
Z19hbGwoU0lHVEVSTSwgMCk7DQotCQlvcmlnX2xvZ19sZXZlbCA9IDg7CQkJ
ICAgIC8qIFdlIHByb2JhYmx5IGhhdmUga2lsbGVkIHN5c2xvZ2QgKi8NCi0J
CWJyZWFrOw0KLQljYXNlICdpJzoJCQkJCSAgICAvKiBJIC0tIGtpbGwgYWxs
IHVzZXIgcHJvY2Vzc2VzICovDQotCQlwcmludGsoIktpbGwgQWxsIFRhc2tz
XG4iKTsNCi0JCXNlbmRfc2lnX2FsbChTSUdLSUxMLCAwKTsNCi0JCW9yaWdf
bG9nX2xldmVsID0gODsNCi0JCWJyZWFrOw0KLQljYXNlICdsJzoJCQkJCSAg
ICAvKiBMIC0tIGtpbGwgYWxsIHByb2Nlc3NlcyBpbmNsdWRpbmcgaW5pdCAq
Lw0KLQkJcHJpbnRrKCJLaWxsIEFMTCBUYXNrcyAoZXZlbiBpbml0KVxuIik7
DQotCQlzZW5kX3NpZ19hbGwoU0lHS0lMTCwgMSk7DQotCQlvcmlnX2xvZ19s
ZXZlbCA9IDg7DQotCQlicmVhazsNCi0JZGVmYXVsdDoJCQkJCSAgICAvKiBV
bmtub3duOiBoZWxwICovDQotCQlpZiAoa2JkKQ0KLQkJCXByaW50aygidW5S
YXcgIik7DQotI2lmZGVmIENPTkZJR19WVA0KLQkJaWYgKHR0eSkNCi0JCQlw
cmludGsoInNhSyAiKTsNCi0jZW5kaWYNCi0JCXByaW50aygiQm9vdCAiKTsN
Ci0JCWlmIChzeXNycV9wb3dlcl9vZmYpDQotCQkJcHJpbnRrKCJPZmYgIik7
DQotCQlwcmludGsoIlN5bmMgVW5tb3VudCBzaG93UGMgc2hvd1Rhc2tzIHNo
b3dNZW0gbG9nbGV2ZWwwLTggdEVybSBrSWxsIGtpbGxhbExcbiIpOw0KLQkJ
LyogRG9uJ3QgdXNlICdBJyBhcyBpdCdzIGhhbmRsZWQgc3BlY2lhbGx5IG9u
IHRoZSBTcGFyYyAqLw0KLQl9DQogDQotCWNvbnNvbGVfbG9nbGV2ZWwgPSBv
cmlnX2xvZ19sZXZlbDsNCi19DQogDQotLyogQXV4IHJvdXRpbmVzIGZvciB0
aGUgc3luY2VyICovDQorLyogU1lOQyBTWVNSUSBIQU5ETEVSUyBCTE9DSyAq
Lw0KIA0KLXN0YXRpYyBpbnQgaXNfbG9jYWxfZGlzayhrZGV2X3QgZGV2KQkg
ICAgLyogR3Vlc3MgaWYgdGhlIGRldmljZSBpcyBhIGxvY2FsIGhhcmQgZHJp
dmUgKi8NCi17DQotCXVuc2lnbmVkIGludCBtYWpvciA9IE1BSk9SKGRldik7
DQorLyogZG9fZW1lcmdlbmN5X3N5bmMgaGVscGVyIGZ1bmN0aW9uICovDQor
LyogR3Vlc3NlcyBpZiB0aGUgZGV2aWNlIGlzIGEgbG9jYWwgaGFyZCBkcml2
ZSAqLw0KK3N0YXRpYyBpbnQgaXNfbG9jYWxfZGlzayhrZGV2X3QgZGV2KSB7
DQorCXVuc2lnbmVkIGludCBtYWpvcjsNCisJbWFqb3IgPSBNQUpPUihkZXYp
Ow0KIA0KIAlzd2l0Y2ggKG1ham9yKSB7DQogCWNhc2UgSURFMF9NQUpPUjoN
CkBAIC0xODAsMTMgKzEyNCwxNyBAQA0KIAl9DQogfQ0KIA0KKy8qIGRvX2Vt
ZXJnZW5jeV9zeW5jIGhlbHBlciBmdW5jdGlvbiAqLw0KIHN0YXRpYyB2b2lk
IGdvX3N5bmMoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgaW50IHJlbW91bnRf
ZmxhZykNCiB7DQorCWludCBvcmlnX2xvZ2xldmVsOw0KKwlvcmlnX2xvZ2xl
dmVsID0gY29uc29sZV9sb2dsZXZlbDsNCisJY29uc29sZV9sb2dsZXZlbCA9
IDc7DQogCXByaW50ayhLRVJOX0lORk8gIiVzaW5nIGRldmljZSAlcyAuLi4g
IiwNCiAJICAgICAgIHJlbW91bnRfZmxhZyA/ICJSZW1vdW50IiA6ICJTeW5j
IiwNCiAJICAgICAgIGtkZXZuYW1lKHNiLT5zX2RldikpOw0KIA0KLQlpZiAo
cmVtb3VudF9mbGFnKSB7CQkJCSAgICAvKiBSZW1vdW50IFIvTyAqLw0KKwlp
ZiAocmVtb3VudF9mbGFnKSB7IC8qIFJlbW91bnQgUi9PICovDQogCQlpbnQg
cmV0LCBmbGFnczsNCiAJCXN0cnVjdCBsaXN0X2hlYWQgKnA7DQogDQpAQCAt
MjE2LDEyICsxNjQsMTIgQEANCiAJCQl9DQogCQl9IGVsc2UNCiAJCQlwcmlu
dGsoIm5vdGhpbmcgdG8gZG9cbiIpOw0KLQl9IGVsc2Ugew0KLQkJZnN5bmNf
ZGV2KHNiLT5zX2Rldik7CQkJICAgIC8qIFN5bmMgb25seSAqLw0KKwl9IGVs
c2UgeyAvKiBTeW5jIG9ubHkgKi8NCisJCWZzeW5jX2RldihzYi0+c19kZXYp
Ow0KIAkJcHJpbnRrKCJPS1xuIik7DQogCX0NCisJY29uc29sZV9sb2dsZXZl
bCA9IG9yaWdfbG9nbGV2ZWw7DQogfQ0KLQ0KIC8qDQogICogRW1lcmdlbmN5
IFN5bmMgb3IgVW5tb3VudC4gV2UgY2Fubm90IGRvIGl0IGRpcmVjdGx5LCBz
byB3ZSBzZXQgYSBzcGVjaWFsDQogICogZmxhZyBhbmQgd2FrZSB1cCB0aGUg
YmRmbHVzaCBrZXJuZWwgdGhyZWFkIHdoaWNoIGltbWVkaWF0ZWx5IGNhbGxz
IHRoaXMgZnVuY3Rpb24uDQpAQCAtMjMxLDEwICsxNzksMTAgQEANCiANCiBp
bnQgZW1lcmdlbmN5X3N5bmNfc2NoZWR1bGVkOw0KIA0KLXZvaWQgZG9fZW1l
cmdlbmN5X3N5bmModm9pZCkNCi17DQordm9pZCBkb19lbWVyZ2VuY3lfc3lu
Yyh2b2lkKSB7DQogCXN0cnVjdCBzdXBlcl9ibG9jayAqc2I7DQogCWludCBy
ZW1vdW50X2ZsYWc7DQorCWludCBvcmlnX2xvZ2xldmVsOw0KIA0KIAlsb2Nr
X2tlcm5lbCgpOw0KIAlyZW1vdW50X2ZsYWcgPSAoZW1lcmdlbmN5X3N5bmNf
c2NoZWR1bGVkID09IEVNRVJHX1JFTU9VTlQpOw0KQEAgLTI1Myw1ICsyMDEs
MjcwIEBADQogCQkJZ29fc3luYyhzYiwgcmVtb3VudF9mbGFnKTsNCiANCiAJ
dW5sb2NrX2tlcm5lbCgpOw0KKw0KKwlvcmlnX2xvZ2xldmVsID0gY29uc29s
ZV9sb2dsZXZlbDsNCisJY29uc29sZV9sb2dsZXZlbCA9IDc7DQogCXByaW50
ayhLRVJOX0lORk8gIkRvbmUuXG4iKTsNCisJY29uc29sZV9sb2dsZXZlbCA9
IG9yaWdfbG9nbGV2ZWw7DQorfQ0KKw0KK3N0YXRpYyB2b2lkIHN5c3JxX2hh
bmRsZV9zeW5jKGludCBrZXksIHN0cnVjdCBwdF9yZWdzICpwdF9yZWdzLA0K
KwkJc3RydWN0IGtiZF9zdHJ1Y3QgKmtiZCwgc3RydWN0IHR0eV9zdHJ1Y3Qg
KnR0eSkgew0KKwllbWVyZ2VuY3lfc3luY19zY2hlZHVsZWQgPSBFTUVSR19T
WU5DOw0KKwl3YWtldXBfYmRmbHVzaCgwKTsNCiB9DQorc3RhdGljIHN0cnVj
dCBzeXNycV9rZXlfb3Agc3lzcnFfc3luY19vcCA9IHsNCisJaGFuZGxlcjoJ
c3lzcnFfaGFuZGxlX3N5bmMsDQorCWhlbHBfbXNnOgkiU3luYyIsDQorCWFj
dGlvbl9tc2c6CSJFbWVyZ2VuY3kgU3luY1xuIiwNCit9Ow0KKw0KK3N0YXRp
YyB2b2lkIHN5c3JxX2hhbmRsZV9tb3VudHJvKGludCBrZXksIHN0cnVjdCBw
dF9yZWdzICpwdF9yZWdzLA0KKwkJc3RydWN0IGtiZF9zdHJ1Y3QgKmtiZCwg
c3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSkgew0KKwllbWVyZ2VuY3lfc3luY19z
Y2hlZHVsZWQgPSBFTUVSR19SRU1PVU5UOw0KKwl3YWtldXBfYmRmbHVzaCgw
KTsNCit9DQorc3RhdGljIHN0cnVjdCBzeXNycV9rZXlfb3Agc3lzcnFfbW91
bnRyb19vcCA9IHsNCisJaGFuZGxlcjoJc3lzcnFfaGFuZGxlX21vdW50cm8s
DQorCWhlbHBfbXNnOgkiVW5tb3VudCIsDQorCWFjdGlvbl9tc2c6CSJFbWVy
Z2VuY3kgUmVtb3VudCBSLzBcbiIsDQorfTsNCisNCisvKiBFTkQgU1lOQyBT
WVNSUSBIQU5ETEVSUyBCTE9DSyAqLw0KKw0KKw0KKy8qIFNIT1cgU1lTUlEg
SEFORExFUlMgQkxPQ0sgKi8NCisNCitzdGF0aWMgdm9pZCBzeXNycV9oYW5k
bGVfc2hvd3JlZ3MoaW50IGtleSwgc3RydWN0IHB0X3JlZ3MgKnB0X3JlZ3Ms
DQorCQlzdHJ1Y3Qga2JkX3N0cnVjdCAqa2JkLCBzdHJ1Y3QgdHR5X3N0cnVj
dCAqdHR5KSB7DQorCWlmIChwdF9yZWdzKQ0KKwkJc2hvd19yZWdzKHB0X3Jl
Z3MpOw0KK30NCitzdGF0aWMgc3RydWN0IHN5c3JxX2tleV9vcCBzeXNycV9z
aG93cmVnc19vcCA9IHsNCisJaGFuZGxlcjoJc3lzcnFfaGFuZGxlX3Nob3dy
ZWdzLA0KKwloZWxwX21zZzoJInNob3dQYyIsDQorCWFjdGlvbl9tc2c6CSJT
aG93IFJlZ3NcbiIsDQorfTsNCisNCisNCitzdGF0aWMgdm9pZCBzeXNycV9o
YW5kbGVfc2hvd3N0YXRlKGludCBrZXksIHN0cnVjdCBwdF9yZWdzICpwdF9y
ZWdzLA0KKwkJc3RydWN0IGtiZF9zdHJ1Y3QgKmtiZCwgc3RydWN0IHR0eV9z
dHJ1Y3QgKnR0eSkgew0KKwlzaG93X3N0YXRlKCk7DQorfQ0KK3N0YXRpYyBz
dHJ1Y3Qgc3lzcnFfa2V5X29wIHN5c3JxX3Nob3dzdGF0ZV9vcCA9IHsNCisJ
aGFuZGxlcjoJc3lzcnFfaGFuZGxlX3Nob3dzdGF0ZSwNCisJaGVscF9tc2c6
CSJzaG93VGFza3MiLA0KKwlhY3Rpb25fbXNnOgkiU2hvdyBTdGF0ZVxuIiwN
Cit9Ow0KKw0KKw0KK3N0YXRpYyB2b2lkIHN5c3JxX2hhbmRsZV9zaG93bWVt
KGludCBrZXksIHN0cnVjdCBwdF9yZWdzICpwdF9yZWdzLA0KKwkJc3RydWN0
IGtiZF9zdHJ1Y3QgKmtiZCwgc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSkgew0K
KwlzaG93X21lbSgpOw0KK30NCitzdGF0aWMgc3RydWN0IHN5c3JxX2tleV9v
cCBzeXNycV9zaG93bWVtX29wID0gew0KKwloYW5kbGVyOglzeXNycV9oYW5k
bGVfc2hvd21lbSwNCisJaGVscF9tc2c6CSJzaG93TWVtIiwNCisJYWN0aW9u
X21zZzoJIlNob3cgTWVtb3J5XG4iLA0KK307DQorDQorLyogU0hPVyBTWVNS
USBIQU5ETEVSUyBCTE9DSyAqLw0KKw0KKw0KKy8qIFNJR05BTCBTWVNSUSBI
QU5ETEVSUyBCTE9DSyAqLw0KKw0KKy8qIHNpZ25hbCBzeXNycSBoZWxwZXIg
ZnVuY3Rpb24NCisgKiBTZW5kcyBhIHNpZ25hbCB0byBhbGwgdXNlciBwcm9j
ZXNzZXMgKi8NCitzdGF0aWMgdm9pZCBzZW5kX3NpZ19hbGwoaW50IHNpZywg
aW50IGV2ZW5faW5pdCkNCit7DQorCXN0cnVjdCB0YXNrX3N0cnVjdCAqcDsN
CisNCisJZm9yX2VhY2hfdGFzayhwKSB7DQorCQlpZiAocC0+bW0pIHsgLyog
Tm90IHN3YXBwZXIgbm9yIGtlcm5lbCB0aHJlYWQgKi8NCisJCQlpZiAocC0+
cGlkID09IDEgJiYgZXZlbl9pbml0KQ0KKwkJCQkvKiBVZ2x5IGhhY2sgdG8g
a2lsbCBpbml0ICovDQorCQkJCXAtPnBpZCA9IDB4ODAwMDsNCisJCQlmb3Jj
ZV9zaWcoc2lnLCBwKTsNCisJCX0NCisJfQ0KK30NCisNCitzdGF0aWMgdm9p
ZCBzeXNycV9oYW5kbGVfdGVybShpbnQga2V5LCBzdHJ1Y3QgcHRfcmVncyAq
cHRfcmVncywNCisJCXN0cnVjdCBrYmRfc3RydWN0ICprYmQsIHN0cnVjdCB0
dHlfc3RydWN0ICp0dHkpIHsNCisJc2VuZF9zaWdfYWxsKFNJR1RFUk0sIDAp
Ow0KKwljb25zb2xlX2xvZ2xldmVsID0gODsNCit9DQorc3RhdGljIHN0cnVj
dCBzeXNycV9rZXlfb3Agc3lzcnFfdGVybV9vcCA9IHsNCisJaGFuZGxlcjoJ
c3lzcnFfaGFuZGxlX3Rlcm0sDQorCWhlbHBfbXNnOgkidEVybSIsDQorCWFj
dGlvbl9tc2c6CSJUZXJtaW5hdGUgQWxsIFRhc2tzXG4iLA0KK307DQorDQor
c3RhdGljIHZvaWQgc3lzcnFfaGFuZGxlX2tpbGwoaW50IGtleSwgc3RydWN0
IHB0X3JlZ3MgKnB0X3JlZ3MsDQorCQlzdHJ1Y3Qga2JkX3N0cnVjdCAqa2Jk
LCBzdHJ1Y3QgdHR5X3N0cnVjdCAqdHR5KSB7DQorCXNlbmRfc2lnX2FsbChT
SUdLSUxMLCAwKTsNCisJY29uc29sZV9sb2dsZXZlbCA9IDg7DQorfQ0KK3N0
YXRpYyBzdHJ1Y3Qgc3lzcnFfa2V5X29wIHN5c3JxX2tpbGxfb3AgPSB7DQor
CWhhbmRsZXI6CXN5c3JxX2hhbmRsZV9raWxsLA0KKwloZWxwX21zZzoJImtJ
bGwiLA0KKwlhY3Rpb25fbXNnOgkiS2lsbCBBbGwgVGFza3NcbiIsDQorfTsN
CisNCitzdGF0aWMgdm9pZCBzeXNycV9oYW5kbGVfa2lsbGFsbChpbnQga2V5
LCBzdHJ1Y3QgcHRfcmVncyAqcHRfcmVncywNCisJCXN0cnVjdCBrYmRfc3Ry
dWN0ICprYmQsIHN0cnVjdCB0dHlfc3RydWN0ICp0dHkpIHsNCisJc2VuZF9z
aWdfYWxsKFNJR0tJTEwsIDEpOw0KKwljb25zb2xlX2xvZ2xldmVsID0gODsN
Cit9DQorc3RhdGljIHN0cnVjdCBzeXNycV9rZXlfb3Agc3lzcnFfa2lsbGFs
bF9vcCA9IHsNCisJaGFuZGxlcjoJc3lzcnFfaGFuZGxlX2tpbGxhbGwsDQor
CWhlbHBfbXNnOgkia2lsbGFsTCIsDQorCWFjdGlvbl9tc2c6CSJLaWxsIEFs
bCBUYXNrcyAoZXZlbiBpbml0KVxuIiwNCit9Ow0KKw0KKy8qIEVORCBTSUdO
QUwgU1lTUlEgSEFORExFUlMgQkxPQ0sgKi8NCisNCisNCisvKiBLZXkgT3Bl
cmF0aW9ucyB0YWJsZSBhbmQgbG9jayAqLw0KK3NwaW5sb2NrX3Qgc3lzcnFf
a2V5X3RhYmxlX2xvY2sgPSBTUElOX0xPQ0tfVU5MT0NLRUQ7DQorI2RlZmlu
ZSBTWVNSUV9LRVlfVEFCTEVfTEVOR1RIIDM2DQorc3RhdGljIHN0cnVjdCBz
eXNycV9rZXlfb3AgKnN5c3JxX2tleV90YWJsZVtTWVNSUV9LRVlfVEFCTEVf
TEVOR1RIXSA9IHsNCisvKiAwICovCSZzeXNycV9sb2dsZXZlbF9vcCwNCisv
KiAxICovCSZzeXNycV9sb2dsZXZlbF9vcCwNCisvKiAyICovCSZzeXNycV9s
b2dsZXZlbF9vcCwNCisvKiAzICovCSZzeXNycV9sb2dsZXZlbF9vcCwNCisv
KiA0ICovCSZzeXNycV9sb2dsZXZlbF9vcCwNCisvKiA1ICovCSZzeXNycV9s
b2dsZXZlbF9vcCwNCisvKiA2ICovCSZzeXNycV9sb2dsZXZlbF9vcCwNCisv
KiA3ICovCSZzeXNycV9sb2dsZXZlbF9vcCwNCisvKiA4ICovCSZzeXNycV9s
b2dsZXZlbF9vcCwNCisvKiA5ICovCSZzeXNycV9sb2dsZXZlbF9vcCwNCisv
KiBhICovCU5VTEwsIC8qIERvbid0IHVzZSBmb3Igc3lzdGVtIHByb3ZpZGVk
IHN5c3JxcywNCisJCSBpdCBpcyBoYW5kbGVkIHNwZWNpYWxseSBvbiB0aGUg
c3BhcmsNCisJCSBhbmQgd2lsbCBuZXZlciBhcml2ZSAqLw0KKy8qIGIgKi8J
JnN5c3JxX3JlYm9vdF9vcCwNCisvKiBjICovCU5VTEwsDQorLyogZCAqLwlO
VUxMLA0KKy8qIGUgKi8JJnN5c3JxX3Rlcm1fb3AsDQorLyogZiAqLwlOVUxM
LA0KKy8qIGcgKi8JTlVMTCwNCisvKiBoICovCU5VTEwsDQorLyogaSAqLwkm
c3lzcnFfa2lsbF9vcCwNCisvKiBqICovCU5VTEwsDQorI2lmZGVmIENPTkZJ
R19WVA0KKy8qIGsgKi8JJnN5c3JxX1NBS19vcCwNCisjZWxzZQ0KKy8qIGsg
Ki8JTlVMTCwNCisjZW5kaWYNCisvKiBsICovCSZzeXNycV9raWxsYWxsX29w
LA0KKy8qIG0gKi8JJnN5c3JxX3Nob3dtZW1fb3AsDQorLyogbiAqLwlOVUxM
LA0KKy8qIG8gKi8JTlVMTCwgLyogVGhpcyB3aWxsIG9mdGVuIGJlIHJlZ2lz
dGVyZWQNCisJCSBhcyAnT2ZmJyBhdCBpbml0IHRpbWUgKi8NCisvKiBwICov
CSZzeXNycV9zaG93cmVnc19vcCwNCisvKiBxICovCU5VTEwsDQorLyogciAq
Lwkmc3lzcnFfdW5yYXdfb3AsDQorLyogcyAqLwkmc3lzcnFfc3luY19vcCwN
CisvKiB0ICovCSZzeXNycV9zaG93c3RhdGVfb3AsDQorLyogdSAqLwkmc3lz
cnFfbW91bnRyb19vcCwNCisvKiB2ICovCU5VTEwsDQorLyogdyAqLwlOVUxM
LA0KKy8qIHggKi8JTlVMTCwNCisvKiB3ICovCU5VTEwsDQorLyogeiAqLwlO
VUxMDQorfTsNCisNCisvKiBrZXkyaW5kZXggY2FsY3VsYXRpb24sIC0xIG9u
IGludmFsaWQgaW5kZXggKi8NCitzdGF0aWMgX19pbmxpbmVfXyBpbnQgc3lz
cnFfa2V5X3RhYmxlX2tleTJpbmRleChpbnQga2V5KSB7DQorCWludCByZXR2
YWw7DQorCWlmICgoa2V5ID49ICcwJykgJiAoa2V5IDw9ICc5JykpIHsNCisJ
CXJldHZhbCA9IGtleSAtICcwJzsNCisJfSBlbHNlIGlmICgoa2V5ID49ICdh
JykgJiAoa2V5IDw9ICd6JykpIHsNCisJCXJldHZhbCA9IGtleSArIDEwIC0g
J2EnOw0KKwl9IGVsc2Ugew0KKwkJcmV0dmFsID0gLTE7DQorCX0NCisJcmV0
dXJuIHJldHZhbDsNCit9DQorDQorLyoNCisgKiB0YWJsZSBsb2NrIGFuZCB1
bmxvY2tpbmcgZnVuY3Rpb25zLCBleHBvc2VkIHRvIG1vZHVsZXMNCisgKi8N
CisNCit2b2lkIF9fc3lzcnFfbG9ja190YWJsZSAodm9pZCkgeyBzcGluX2xv
Y2soJnN5c3JxX2tleV90YWJsZV9sb2NrKTsgfQ0KKw0KK3ZvaWQgX19zeXNy
cV91bmxvY2tfdGFibGUgKHZvaWQpIHsgc3Bpbl91bmxvY2soJnN5c3JxX2tl
eV90YWJsZV9sb2NrKTsgfQ0KKw0KKy8qDQorICogZ2V0IGFuZCBwdXQgZnVu
Y3Rpb25zIGZvciB0aGUgdGFibGUsIGV4cG9zZWQgdG8gbW9kdWxlcy4NCisg
Ki8NCisNCitzdHJ1Y3Qgc3lzcnFfa2V5X29wICpfX3N5c3JxX2dldF9rZXlf
b3AgKGludCBrZXkpIHsNCisgICAgICAgIHN0cnVjdCBzeXNycV9rZXlfb3Ag
Km9wX3A7DQorICAgICAgICBpbnQgaTsNCisJDQorCWkgPSBzeXNycV9rZXlf
dGFibGVfa2V5MmluZGV4KGtleSk7DQorICAgICAgICBvcF9wID0gKGkgPT0g
LTEpID8gTlVMTCA6IHN5c3JxX2tleV90YWJsZVtpXTsNCisgICAgICAgIHJl
dHVybiBvcF9wOw0KK30NCisNCit2b2lkIF9fc3lzcnFfcHV0X2tleV9vcCAo
aW50IGtleSwgc3RydWN0IHN5c3JxX2tleV9vcCAqb3BfcCkgew0KKyAgICAg
ICAgaW50IGk7DQorDQorCWkgPSBzeXNycV9rZXlfdGFibGVfa2V5MmluZGV4
KGtleSk7DQorICAgICAgICBpZiAoaSAhPSAtMSkNCisgICAgICAgICAgICAg
ICAgc3lzcnFfa2V5X3RhYmxlW2ldID0gb3BfcDsNCit9DQorDQorLyoNCisg
KiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSB0aGUga2V5Ym9hcmQgaGFu
ZGxlciB3aGVuIFN5c1JxIGlzIHByZXNzZWQNCisgKiBhbmQgYW55IG90aGVy
IGtleWNvZGUgYXJyaXZlcy4NCisgKi8NCisNCit2b2lkIGhhbmRsZV9zeXNy
cShpbnQga2V5LCBzdHJ1Y3QgcHRfcmVncyAqcHRfcmVncywNCisJCSAgc3Ry
dWN0IGtiZF9zdHJ1Y3QgKmtiZCwgc3RydWN0IHR0eV9zdHJ1Y3QgKnR0eSkg
ew0KKwlpZiAoIXN5c3JxX2VuYWJsZWQpDQorCQlyZXR1cm47DQorDQorCV9f
c3lzcnFfbG9ja190YWJsZSgpOw0KKwlfX2hhbmRsZV9zeXNycV9ub2xvY2so
a2V5LCBwdF9yZWdzLCBrYmQsIHR0eSk7DQorCV9fc3lzcnFfdW5sb2NrX3Rh
YmxlKCk7DQorfQ0KKw0KKy8qDQorICogVGhpcyBpcyB0aGUgbm9uLWxvY2tp
bmcgdmVyc2lvbiBvZiBoYW5kbGVfc3lzcnENCisgKiBJdCBtdXN0L2NhbiBv
bmx5IGJlIGNhbGxlZCBieSBzeXNycSBrZXkgaGFuZGxlcnMsDQorICogYXMg
dGhleSBhcmUgaW5zaWRlIG9mIHRoZSBsb2NrDQorICovDQorDQordm9pZCBf
X2hhbmRsZV9zeXNycV9ub2xvY2soaW50IGtleSwgc3RydWN0IHB0X3JlZ3Mg
KnB0X3JlZ3MsDQorCQkgIHN0cnVjdCBrYmRfc3RydWN0ICprYmQsIHN0cnVj
dCB0dHlfc3RydWN0ICp0dHkpIHsNCisJc3RydWN0IHN5c3JxX2tleV9vcCAq
b3BfcDsNCisJaW50IG9yaWdfbG9nX2xldmVsOw0KKwlpbnQgaSwgajsNCisJ
DQorCWlmICghc3lzcnFfZW5hYmxlZCkNCisJCXJldHVybjsNCisNCisJb3Jp
Z19sb2dfbGV2ZWwgPSBjb25zb2xlX2xvZ2xldmVsOw0KKwljb25zb2xlX2xv
Z2xldmVsID0gNzsNCisJcHJpbnRrKEtFUk5fSU5GTyAiU3lzUnEgOiAiKTsN
CisNCisgICAgICAgIG9wX3AgPSBfX3N5c3JxX2dldF9rZXlfb3Aoa2V5KTsN
CisgICAgICAgIGlmIChvcF9wKSB7DQorICAgICAgICAgICAgICAgIHByaW50
ayAoIiVzIiwgb3BfcC0+YWN0aW9uX21zZyk7DQorICAgICAgICAgICAgICAg
IG9wX3AtPmhhbmRsZXIoa2V5LCBwdF9yZWdzLCBrYmQsIHR0eSk7DQorCX0g
ZWxzZSB7DQorCQlwcmludGsoIkhFTFAgOiAiKTsNCisJCS8qIE9ubHkgcHJp
bnQgdGhlIGhlbHAgbXNnIG9uY2UgcGVyIGhhbmRsZXIgKi8NCisJCWZvciAo
aT0wOyBpPFNZU1JRX0tFWV9UQUJMRV9MRU5HVEg7IGkrKykgDQorCQlpZiAo
c3lzcnFfa2V5X3RhYmxlW2ldKSB7DQorCQkJZm9yIChqPTA7IHN5c3JxX2tl
eV90YWJsZVtpXSAhPSBzeXNycV9rZXlfdGFibGVbal07IGorKyk7DQorCQkJ
aWYgKGogPT0gaSkNCisJCQkJcHJpbnRrICgiJXMgIiwgc3lzcnFfa2V5X3Rh
YmxlW2ldLT5oZWxwX21zZyk7DQorCQl9DQorCQlwcmludGsgKCJcbiIpOw0K
Kwl9DQorCWNvbnNvbGVfbG9nbGV2ZWwgPSBvcmlnX2xvZ19sZXZlbDsNCit9
DQorDQpkaWZmIC11IC1yIC0tbmV3LWZpbGUgbGludXgvaW5jbHVkZS9saW51
eC9zeXNycS5oIGJyeWNlL2luY2x1ZGUvbGludXgvc3lzcnEuaA0KLS0tIGxp
bnV4L2luY2x1ZGUvbGludXgvc3lzcnEuaAlGcmkgTWFyIDMwIDE4OjU2OjIx
IDIwMDENCisrKyBicnljZS9pbmNsdWRlL2xpbnV4L3N5c3JxLmgJRnJpIE1h
ciAzMCAxODo1OTo0OCAyMDAxDQpAQCAtNSw2ICs1LDEwIEBADQogICoJTGlu
dXggTWFnaWMgU3lzdGVtIFJlcXVlc3QgS2V5IEhhY2tzDQogICoNCiAgKgko
YykgMTk5NyBNYXJ0aW4gTWFyZXMgPG1qQGF0cmV5Lmthcmxpbi5tZmYuY3Vu
aS5jej4NCisgKg0KKyAqCShjKSAyMDAwIENydXRjaGVyIER1bm5hdmFudCA8
Y3J1dGNoZXJAcmVkaGF0LmNvbT4NCisgKglvdmVyaGF1bGVkIHRvIHVzZSBr
ZXkgcmVnaXN0cmF0aW9uDQorICoJYmFzZWQgdXBvbiBkaXNjdXNpb25zIGlu
IGlyYzovL2lyYy5vcGVucHJvamVjdHMubmV0LyNrZXJuZWxuZXdiaWVzDQog
ICovDQogDQogI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5oPg0KQEAgLTEzLDEy
ICsxNyw2NCBAQA0KIHN0cnVjdCBrYmRfc3RydWN0Ow0KIHN0cnVjdCB0dHlf
c3RydWN0Ow0KIA0KK3N0cnVjdCBzeXNycV9rZXlfb3Agew0KKwl2b2lkICgq
aGFuZGxlcikoaW50LCBzdHJ1Y3QgcHRfcmVncyAqLA0KKwkJCXN0cnVjdCBr
YmRfc3RydWN0ICosIHN0cnVjdCB0dHlfc3RydWN0ICopOw0KKwljaGFyICpo
ZWxwX21zZzsNCisJY2hhciAqYWN0aW9uX21zZzsNCit9Ow0KKw0KIC8qIEdl
bmVyaWMgU3lzUnEgaW50ZXJmYWNlIC0tIHlvdSBtYXkgY2FsbCBpdCBmcm9t
IGFueSBkZXZpY2UgZHJpdmVyLCBzdXBwbHlpbmcNCiAgKiBBU0NJSSBjb2Rl
IG9mIHRoZSBrZXksIHBvaW50ZXIgdG8gcmVnaXN0ZXJzIGFuZCBrYmQvdHR5
IHN0cnVjdHMgKGlmIHRoZXkNCiAgKiBhcmUgYXZhaWxhYmxlIC0tIGVsc2Ug
TlVMTCdzKS4NCiAgKi8NCiANCi12b2lkIGhhbmRsZV9zeXNycShpbnQsIHN0
cnVjdCBwdF9yZWdzICosIHN0cnVjdCBrYmRfc3RydWN0ICosIHN0cnVjdCB0
dHlfc3RydWN0ICopOw0KK3ZvaWQgaGFuZGxlX3N5c3JxKGludCwgc3RydWN0
IHB0X3JlZ3MgKiwNCisJCXN0cnVjdCBrYmRfc3RydWN0ICosIHN0cnVjdCB0
dHlfc3RydWN0ICopOw0KKw0KKw0KKy8qIA0KKyAqIE5vbmxvY2tpbmcgdmVy
c2lvbiBvZiBoYW5kbGUgc3lzcnEsIHVzZWQgYnkgc3lzcnEgaGFuZGxlcnMg
dGhhdCBuZWVkIHRvDQorICogY2FsbCBzeXNycSBoYW5kbGVycw0KKyAqLw0K
Kw0KK3ZvaWQgX19oYW5kbGVfc3lzcnFfbm9sb2NrKGludCwgc3RydWN0IHB0
X3JlZ3MgKiwNCisgICAgICAgICAgICAgICAgc3RydWN0IGtiZF9zdHJ1Y3Qg
Kiwgc3RydWN0IHR0eV9zdHJ1Y3QgKik7DQorDQorLyoNCisgKiBTeXNycSBy
ZWdpc3RyYXRpb24gbWFuaXB1bGF0aW9uIGZ1bmN0aW9ucw0KKyAqLw0KKw0K
K3ZvaWQgX19zeXNycV9sb2NrX3RhYmxlICh2b2lkKTsNCit2b2lkIF9fc3lz
cnFfdW5sb2NrX3RhYmxlICh2b2lkKTsNCitzdHJ1Y3Qgc3lzcnFfa2V5X29w
ICpfX3N5c3JxX2dldF9rZXlfb3AgKGludCBrZXkpOw0KK3ZvaWQgX19zeXNy
cV9wdXRfa2V5X29wIChpbnQga2V5LCBzdHJ1Y3Qgc3lzcnFfa2V5X29wICpv
cF9wKTsNCisNCitleHRlcm4gX19pbmxpbmVfXyBpbnQNCitfX3N5c3JxX3N3
YXBfa2V5X29wc19ub2xvY2soaW50IGtleSwgc3RydWN0IHN5c3JxX2tleV9v
cCAqaW5zZXJ0X29wX3AsDQorCQkJCXN0cnVjdCBzeXNycV9rZXlfb3AgKnJl
bW92ZV9vcF9wKSB7DQorCWludCByZXR2YWw7DQorCWlmIChfX3N5c3JxX2dl
dF9rZXlfb3Aoa2V5KSA9PSByZW1vdmVfb3BfcCkgew0KKwkJX19zeXNycV9w
dXRfa2V5X29wKGtleSwgaW5zZXJ0X29wX3ApOw0KKwkJcmV0dmFsID0gMDsN
CisJfSBlbHNlIHsNCisgICAgICAgICAgICAgICAgcmV0dmFsID0gLTE7DQor
CX0NCisJcmV0dXJuIHJldHZhbDsNCit9DQorDQorZXh0ZXJuIF9faW5saW5l
X18gaW50DQorX19zeXNycV9zd2FwX2tleV9vcHMoaW50IGtleSwgc3RydWN0
IHN5c3JxX2tleV9vcCAqaW5zZXJ0X29wX3AsDQorCQkJCXN0cnVjdCBzeXNy
cV9rZXlfb3AgKnJlbW92ZV9vcF9wKSB7DQorCWludCByZXR2YWw7DQorCV9f
c3lzcnFfbG9ja190YWJsZSgpOw0KKwlyZXR2YWwgPSBfX3N5c3JxX3N3YXBf
a2V5X29wc19ub2xvY2soa2V5LCBpbnNlcnRfb3BfcCwgcmVtb3ZlX29wX3Ap
Ow0KKwlfX3N5c3JxX3VubG9ja190YWJsZSgpOw0KKwlyZXR1cm4gcmV0dmFs
Ow0KK30NCisJDQorI2RlZmluZSBSRUdJU1RFUl9TWVNSUV9LRVkoS0VZLCBP
UF9QKSBfX3N5c3JxX3N3YXBfa2V5X29wcyhLRVksIE9QX1AsIE5VTEwpDQor
I2RlZmluZSBVTlJFR0lTVEVSX1NZU1JRX0tFWShLRVksIE9QX1ApIF9fc3lz
cnFfc3dhcF9rZXlfb3BzKEtFWSwgTlVMTCwgT1BfUCkNCiANCiAvKiBEZWZl
cnJlZCBhY3Rpb25zICovDQogDQpkaWZmIC11IC1yIC0tbmV3LWZpbGUgbGlu
dXgva2VybmVsL2tzeW1zLmMgYnJ5Y2Uva2VybmVsL2tzeW1zLmMNCi0tLSBs
aW51eC9rZXJuZWwva3N5bXMuYwlGcmkgTWFyIDMwIDE4OjQxOjI0IDIwMDEN
CisrKyBicnljZS9rZXJuZWwva3N5bXMuYwlGcmkgTWFyIDMwIDE5OjA0OjI0
IDIwMDENCkBAIC03LDYgKzcsMTAgQEANCiAgKiAtIEV4dGVybmFsIHN5bWJv
bCB0YWJsZSBzdXBwb3J0IGFkZGVkIChEZWNlbWJlciAxOTk0KQ0KICAqIC0g
VmVyc2lvbnMgb24gc3ltYm9scyBhZGRlZCAoRGVjZW1iZXIgMTk5NCkNCiAg
KiAgIGJ5IEJqb3JuIEVrd2FsbCA8Ymowcm5AYmxveC5zZT4NCisgKg0KKyAq
ICAgQWRkZWQgc3lzcnEgaW50ZXJmYWNlIGZvciBkeW5hbWljIHN5c3JxICgy
MDAwKQ0KKyAqICAgQ3J1dGNoZXIgRHVubmF2YW50IDxjcnV0Y2hlckByZWRo
YXQuY29tPg0KKyAqICAgICANCiAgKi8NCiANCiAjZGVmaW5lIF9fS0VSTkVM
X1NZU0NBTExTX18NCkBAIC00Nyw2ICs1MSw3IEBADQogI2luY2x1ZGUgPGxp
bnV4L2JybG9jay5oPg0KICNpbmNsdWRlIDxsaW51eC9mcy5oPg0KICNpbmNs
dWRlIDxsaW51eC90dHkuaD4NCisjaW5jbHVkZSA8bGludXgvc3lzcnEuaD4N
CiAjaW5jbHVkZSA8YXNtL2NoZWNrc3VtLmg+DQogI2luY2x1ZGUgPGxpbnV4
L3VuaXN0ZC5oPg0KIA0KQEAgLTU1OSwzICs1NjQsMTIgQEANCiANCiBFWFBP
UlRfU1lNQk9MKHRhc2tsaXN0X2xvY2spOw0KIEVYUE9SVF9TWU1CT0wocGlk
aGFzaCk7DQorDQorLyogZHluYW1pYyBzeXNycSByZWdpc3RyYXRpb24gKi8N
CitFWFBPUlRfU1lNQk9MKGhhbmRsZV9zeXNycSk7DQorRVhQT1JUX1NZTUJP
TChfX2hhbmRsZV9zeXNycV9ub2xvY2spOw0KK0VYUE9SVF9TWU1CT0woX19z
eXNycV9sb2NrX3RhYmxlKTsNCitFWFBPUlRfU1lNQk9MKF9fc3lzcnFfdW5s
b2NrX3RhYmxlKTsNCitFWFBPUlRfU1lNQk9MKF9fc3lzcnFfZ2V0X2tleV9v
cCk7DQorRVhQT1JUX1NZTUJPTChfX3N5c3JxX3B1dF9rZXlfb3ApOw0KKw0K

---842912328-2092114493-997342491=:10432
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="linux-2.4.1-realmodepoweroff.patch"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.4.33.0108090834511.10432@infradead.org>
Content-Description: Real mode poweroff patch
Content-Disposition: attachment; filename="linux-2.4.1-realmodepoweroff.patch"

LS0tIGxpbnV4L2FyY2gvaTM4Ni9rZXJuZWwvYXBtLmMub3JnCVR1ZSBGZWIg
MTMgMTM6NTA6NDggMjAwMQ0KKysrIGxpbnV4L2FyY2gvaTM4Ni9rZXJuZWwv
YXBtLmMJVHVlIEZlYiAxMyAxMzo1MzoxMyAyMDAxDQpAQCAtMzQzLDYgKzM0
Myw3IEBADQogI2Vsc2UNCiBzdGF0aWMgaW50CQkJcG93ZXJfb2ZmID0gMTsN
CiAjZW5kaWYNCitzdGF0aWMgaW50CQkJcmVhbG1vZGVfcG93ZXJfb2ZmID0g
MDsNCiBzdGF0aWMgaW50CQkJZXhpdF9rYXBtZDsNCiBzdGF0aWMgaW50CQkJ
a2FwbWRfcnVubmluZzsNCiANCkBAIC02NjMsNyArNjY0LDEwIEBADQogCX0N
CiAjZW5kaWYNCiAjaWZkZWYgQ09ORklHX0FQTV9SRUFMX01PREVfUE9XRVJf
T0ZGDQotCW1hY2hpbmVfcmVhbF9yZXN0YXJ0KHBvX2Jpb3NfY2FsbCwgc2l6
ZW9mKHBvX2Jpb3NfY2FsbCkpOw0KKwlpZiAocmVhbG1vZGVfcG93ZXJfb2Zm
KQ0KKwkJbWFjaGluZV9yZWFsX3Jlc3RhcnQocG9fYmlvc19jYWxsLCBzaXpl
b2YocG9fYmlvc19jYWxsKSk7DQorCWVsc2UNCisJCSh2b2lkKSBhcG1fc2V0
X3Bvd2VyX3N0YXRlKEFQTV9TVEFURV9PRkYpOw0KICNlbHNlDQogCSh2b2lk
KSBhcG1fc2V0X3Bvd2VyX3N0YXRlKEFQTV9TVEFURV9PRkYpOw0KICNlbmRp
Zg0KQEAgLTE1NDgsNiArMTU1Miw4IEBADQogCXdoaWxlICgoc3RyICE9IE5V
TEwpICYmICgqc3RyICE9ICdcMCcpKSB7DQogCQlpZiAoc3RybmNtcChzdHIs
ICJvZmYiLCAzKSA9PSAwKQ0KIAkJCWFwbV9kaXNhYmxlZCA9IDE7DQorCQlp
ZiAoc3RybmNtcChzdHIsICJyZWFsbW9kZSIsIDgpID09IDApDQorCQkJcmVh
bG1vZGVfcG93ZXJfb2ZmID0gMTsNCiAJCWlmIChzdHJuY21wKHN0ciwgIm9u
IiwgMikgPT0gMCkNCiAJCQlhcG1fZGlzYWJsZWQgPSAwOw0KIAkJaW52ZXJ0
ID0gKHN0cm5jbXAoc3RyLCAibm8tIiwgMykgPT0gMCk7DQo=
---842912328-2092114493-997342491=:10432--
-
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/