[patch 3/5] 2.4.20-pre5 i2c updates

Albert Cranford (ac9410@attbi.com)
Thu, 29 Aug 2002 01:36:58 -0400 (EDT)


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.

--0-320317900-1030599418=:16793
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hello Marcelo,
Attached are i2c patches that bring the kernel to the latest released and tested
version. Updates include:
o Support for SMBus 2.0 PEC Packet Error Checking
o New algorithm-i2c-algo-8xxx for MPC8XXX
o New algorithm-i2c-algo-ibm_ocp for IBM PPC 405
o New adapter-i2c-adap-ibm_ocp for IBM PPC 405
o New adapter-i2c-frodo for SA 1110 board
o New adapter-i2c-pcf-epp for PCF8584
o New adapter-i2c-pport for parallel port
o New adapter-i2c-rpx for embeded MPC8XX
o Updated documentation
Thanks,
Albert

-- 
ac9410@attbi.com

-- 
ac9410@attbi.com

--0-320317900-1030599418=:16793 Content-Type: TEXT/PLAIN; charset=X-UNKNOWN; name=47-i2c-3-patch Content-Transfer-Encoding: BASE64 Content-ID: <Pine.LNX.4.44.0208290136580.16793@home1> Content-Description: Content-Disposition: attachment; filename=47-i2c-3-patch

LS0tIGxpbnV4L2RyaXZlcnMvaTJjL2kyYy1hbGdvLWJpdC5jLm9yaWcJMjAw Mi0wNy0yMyAwMTo0Mzo1OC4wMDAwMDAwMDAgLTA0MDANCisrKyBsaW51eC9k cml2ZXJzL2kyYy9pMmMtYWxnby1iaXQuYwkyMDAyLTA3LTIzIDA4OjM3OjI2 LjAwMDAwMDAwMCAtMDQwMA0KQEAgLTIxLDcgKzIxLDcgQEANCiAvKiBXaXRo IHNvbWUgY2hhbmdlcyBmcm9tIEt59nN0aSBN5Gxra2kgPGttYWxra2lAY2Mu aHV0LmZpPiBhbmQgZXZlbg0KICAgIEZyb2RvIExvb2lqYWFyZCA8ZnJvZG9s QGRkcy5ubD4gKi8NCiANCi0vKiAkSWQ6IGkyYy1hbGdvLWJpdC5jLHYgMS4z MCAyMDAxLzA3LzI5IDAyOjQ0OjI1IG1kcyBFeHAgJCAqLw0KKy8qICRJZDog aTJjLWFsZ28tYml0LmMsdiAxLjM3IDIwMDIvMDcvMDggMDA6NDE6NDkgbWRz IEV4cCAkICovDQogDQogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPg0KICNp bmNsdWRlIDxsaW51eC9tb2R1bGUuaD4NCkBAIC0zMiw4ICszMiw2IEBADQog I2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+DQogI2luY2x1ZGUgPGxpbnV4L2lv cG9ydC5oPg0KICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPg0KLSNpbmNsdWRl IDxsaW51eC9zY2hlZC5oPg0KLQ0KICNpbmNsdWRlIDxsaW51eC9pMmMuaD4N CiAjaW5jbHVkZSA8bGludXgvaTJjLWFsZ28tYml0Lmg+DQogDQpAQCAtMTIz LDcgKzEyMSw3IEBADQogCQlpZiAoY3VycmVudC0+bmVlZF9yZXNjaGVkKQ0K IAkJCXNjaGVkdWxlKCk7DQogCX0NCi0JREVCU1RBVChwcmludGsoIm5lZWRl ZCAlbGQgamlmZmllc1xuIiwgamlmZmllcy1zdGFydCkpOw0KKwlERUJTVEFU KHByaW50ayhLRVJOX0RFQlVHICJuZWVkZWQgJWxkIGppZmZpZXNcbiIsIGpp ZmZpZXMtc3RhcnQpKTsNCiAjaWZkZWYgU0xPX0lPDQogCVNMT19JTw0KICNl bmRpZg0KQEAgLTE0NSw3ICsxNDMsNyBAQA0KIAkvKiBzY2wsIHNkYSBtYXkg bm90IGJlIGhpZ2ggKi8NCiAJREVCUFJPVE8ocHJpbnRrKCIgU3IgIikpOw0K IAlzZXRzZGEoYWRhcCwxKTsNCi0Jc2V0c2NsKGFkYXAsMSk7DQorCXNjbGhp KGFkYXApOw0KIAl1ZGVsYXkoYWRhcC0+dWRlbGF5KTsNCiAJDQogCXNkYWxv KGFkYXApOw0KQEAgLTE3OSwxMiArMTc3LDEyIEBADQogCXN0cnVjdCBpMmNf YWxnb19iaXRfZGF0YSAqYWRhcCA9IGkyY19hZGFwLT5hbGdvX2RhdGE7DQog DQogCS8qIGFzc2VydDogc2NsIGlzIGxvdyAqLw0KLQlERUIyKHByaW50aygi IGkyY19vdXRiOiUyLjJYXG4iLGMmMHhmZikpOw0KKwlERUIyKHByaW50ayhL RVJOX0RFQlVHICIgaTJjX291dGI6JTIuMlhcbiIsYyYweGZmKSk7DQogCWZv ciAoIGk9NyA7IGk+PTAgOyBpLS0gKSB7DQogCQlzYiA9IGMgJiAoIDEgPDwg aSApOw0KIAkJc2V0c2RhKGFkYXAsc2IpOw0KIAkJdWRlbGF5KGFkYXAtPnVk ZWxheSk7DQotCQlERUJQUk9UTyhwcmludGsoIiVkIixzYiE9MCkpOw0KKwkJ REVCUFJPVE8ocHJpbnRrKEtFUk5fREVCVUcgIiVkIixzYiE9MCkpOw0KIAkJ aWYgKHNjbGhpKGFkYXApPDApIHsgLyogdGltZWQgb3V0ICovDQogCQkJc2Rh aGkoYWRhcCk7IC8qIHdlIGRvbid0IHdhbnQgdG8gYmxvY2sgdGhlIG5ldCAq Lw0KIAkJCXJldHVybiAtRVRJTUVET1VUOw0KQEAgLTIwMSwxMCArMTk5LDEw IEBADQogCX07DQogCS8qIHJlYWQgYWNrOiBTREEgc2hvdWxkIGJlIHB1bGxl ZCBkb3duIGJ5IHNsYXZlICovDQogCWFjaz1nZXRzZGEoYWRhcCk7CS8qIGFj azogc2RhIGlzIHB1bGxlZCBsb3cgLT5zdWNjZXNzLgkgKi8NCi0JREVCMihw cmludGsoIiBpMmNfb3V0YjogZ2V0c2RhKCkgPSAgMHglMi4yeFxuIiwgfmFj ayApKTsNCisJREVCMihwcmludGsoS0VSTl9ERUJVRyAiIGkyY19vdXRiOiBn ZXRzZGEoKSA9ICAweCUyLjJ4XG4iLCB+YWNrICkpOw0KIA0KLQlERUJQUk9U TyggcHJpbnRrKCJbJTIuMnhdIixjJjB4ZmYpICk7DQotCURFQlBST1RPKGlm ICgwPT1hY2speyBwcmludGsoIiBBICIpO30gZWxzZSBwcmludGsoIiBOQSAi KSApOw0KKwlERUJQUk9UTyggcHJpbnRrKEtFUk5fREVCVUcgIlslMi4yeF0i LGMmMHhmZikgKTsNCisJREVCUFJPVE8oaWYgKDA9PWFjayl7IHByaW50ayhL RVJOX0RFQlVHICIgQSAiKTt9IGVsc2UgcHJpbnRrKEtFUk5fREVCVUcgIiBO QSAiKSApOw0KIAlzY2xsbyhhZGFwKTsNCiAJcmV0dXJuIDA9PWFjazsJCS8q IHJldHVybiAxIGlmIGRldmljZSBhY2tlZAkgKi8NCiAJLyogYXNzZXJ0OiBz Y2wgaXMgbG93IChzZGEgdW5kZWYpICovDQpAQCAtMjIwLDcgKzIxOCw3IEBA DQogCXN0cnVjdCBpMmNfYWxnb19iaXRfZGF0YSAqYWRhcCA9IGkyY19hZGFw LT5hbGdvX2RhdGE7DQogDQogCS8qIGFzc2VydDogc2NsIGlzIGxvdyAqLw0K LQlERUIyKHByaW50aygiaTJjX2luYi5cbiIpKTsNCisJREVCMihwcmludGso S0VSTl9ERUJVRyAiaTJjX2luYi5cbiIpKTsNCiANCiAJc2RhaGkoYWRhcCk7 DQogCWZvciAoaT0wO2k8ODtpKyspIHsNCkBAIC0yMzMsNyArMjMxLDcgQEAN CiAJCXNjbGxvKGFkYXApOw0KIAl9DQogCS8qIGFzc2VydDogc2NsIGlzIGxv dyAqLw0KLQlERUJQUk9UTyhwcmludGsoIiAlMi4yeCIsIGluZGF0YSAmIDB4 ZmYpKTsNCisJREVCUFJPVE8ocHJpbnRrKEtFUk5fREVCVUcgIiAlMi4yeCIs IGluZGF0YSAmIDB4ZmYpKTsNCiAJcmV0dXJuIChpbnQpIChpbmRhdGEgJiAw eGZmKTsNCiB9DQogDQpAQCAtMjQ1LDY5ICsyNDMsNjkgQEANCiAJaW50IHNj bCxzZGE7DQogCXNkYT1nZXRzZGEoYWRhcCk7DQogCWlmIChhZGFwLT5nZXRz Y2w9PU5VTEwpIHsNCi0JCXByaW50aygiaTJjLWFsZ28tYml0Lm86IFdhcm5p bmc6IEFkYXB0ZXIgY2FuJ3QgcmVhZCBmcm9tIGNsb2NrIGxpbmUgLSBza2lw cGluZyB0ZXN0LlxuIik7DQorCQlwcmludGsoS0VSTl9XQVJOSU5HICJpMmMt YWxnby1iaXQubzogV2FybmluZzogQWRhcHRlciBjYW4ndCByZWFkIGZyb20g Y2xvY2sgbGluZSAtIHNraXBwaW5nIHRlc3QuXG4iKTsNCiAJCXJldHVybiAw OwkJDQogCX0NCiAJc2NsPWdldHNjbChhZGFwKTsNCi0JcHJpbnRrKCJpMmMt YWxnby1iaXQubzogQWRhcHRlcjogJXMgc2NsOiAlZCAgc2RhOiAlZCAtLSB0 ZXN0aW5nLi4uXG4iLA0KKwlwcmludGsoS0VSTl9JTkZPICJpMmMtYWxnby1i aXQubzogQWRhcHRlcjogJXMgc2NsOiAlZCAgc2RhOiAlZCAtLSB0ZXN0aW5n Li4uXG4iLA0KIAkgICAgICAgbmFtZSxnZXRzY2woYWRhcCksZ2V0c2RhKGFk YXApKTsNCiAJaWYgKCFzY2wgfHwgIXNkYSApIHsNCi0JCXByaW50aygiaTJj LWFsZ28tYml0Lm86ICVzIHNlZW1zIHRvIGJlIGJ1c3kuXG4iLG5hbWUpOw0K KwkJcHJpbnRrKEtFUk5fSU5GTyAiIGkyYy1hbGdvLWJpdC5vOiAlcyBzZWVt cyB0byBiZSBidXN5LlxuIixuYW1lKTsNCiAJCWdvdG8gYmFpbG91dDsNCiAJ fQ0KIAlzZGFsbyhhZGFwKTsNCi0JcHJpbnRrKCJpMmMtYWxnby1iaXQubzox IHNjbDogJWQgIHNkYTogJWQgXG4iLGdldHNjbChhZGFwKSwNCisJcHJpbnRr KEtFUk5fREVCVUcgImkyYy1hbGdvLWJpdC5vOjEgc2NsOiAlZCAgc2RhOiAl ZCBcbiIsZ2V0c2NsKGFkYXApLA0KIAkgICAgICAgZ2V0c2RhKGFkYXApKTsN CiAJaWYgKCAwICE9IGdldHNkYShhZGFwKSApIHsNCi0JCXByaW50aygiaTJj LWFsZ28tYml0Lm86ICVzIFNEQSBzdHVjayBoaWdoIVxuIixuYW1lKTsNCisJ CXByaW50ayhLRVJOX1dBUk5JTkcgImkyYy1hbGdvLWJpdC5vOiAlcyBTREEg c3R1Y2sgaGlnaCFcbiIsbmFtZSk7DQogCQlzZGFoaShhZGFwKTsNCiAJCWdv dG8gYmFpbG91dDsNCiAJfQ0KIAlpZiAoIDAgPT0gZ2V0c2NsKGFkYXApICkg ew0KLQkJcHJpbnRrKCJpMmMtYWxnby1iaXQubzogJXMgU0NMIHVuZXhwZWN0 ZWQgbG93IHdoaWxlIHB1bGxpbmcgU0RBIGxvdyFcbiIsDQorCQlwcmludGso S0VSTl9XQVJOSU5HICJpMmMtYWxnby1iaXQubzogJXMgU0NMIHVuZXhwZWN0 ZWQgbG93IHdoaWxlIHB1bGxpbmcgU0RBIGxvdyFcbiIsDQogCQkJbmFtZSk7 DQogCQlnb3RvIGJhaWxvdXQ7DQogCX0JCQ0KIAlzZGFoaShhZGFwKTsNCi0J cHJpbnRrKCJpMmMtYWxnby1iaXQubzoyIHNjbDogJWQgIHNkYTogJWQgXG4i LGdldHNjbChhZGFwKSwNCisJcHJpbnRrKEtFUk5fREVCVUcgImkyYy1hbGdv LWJpdC5vOjIgc2NsOiAlZCAgc2RhOiAlZCBcbiIsZ2V0c2NsKGFkYXApLA0K IAkgICAgICAgZ2V0c2RhKGFkYXApKTsNCiAJaWYgKCAwID09IGdldHNkYShh ZGFwKSApIHsNCi0JCXByaW50aygiaTJjLWFsZ28tYml0Lm86ICVzIFNEQSBz dHVjayBsb3chXG4iLG5hbWUpOw0KKwkJcHJpbnRrKEtFUk5fV0FSTklORyAi aTJjLWFsZ28tYml0Lm86ICVzIFNEQSBzdHVjayBsb3chXG4iLG5hbWUpOw0K IAkJc2RhaGkoYWRhcCk7DQogCQlnb3RvIGJhaWxvdXQ7DQogCX0NCiAJaWYg KCAwID09IGdldHNjbChhZGFwKSApIHsNCi0JCXByaW50aygiaTJjLWFsZ28t Yml0Lm86ICVzIFNDTCB1bmV4cGVjdGVkIGxvdyB3aGlsZSBTREEgaGlnaCFc biIsDQorCQlwcmludGsoS0VSTl9XQVJOSU5HICJpMmMtYWxnby1iaXQubzog JXMgU0NMIHVuZXhwZWN0ZWQgbG93IHdoaWxlIFNEQSBoaWdoIVxuIiwNCiAJ CSAgICAgICBuYW1lKTsNCiAJZ290byBiYWlsb3V0Ow0KIAl9DQogCXNjbGxv KGFkYXApOw0KLQlwcmludGsoImkyYy1hbGdvLWJpdC5vOjMgc2NsOiAlZCAg c2RhOiAlZCBcbiIsZ2V0c2NsKGFkYXApLA0KKwlwcmludGsoS0VSTl9ERUJV RyAiaTJjLWFsZ28tYml0Lm86MyBzY2w6ICVkICBzZGE6ICVkIFxuIixnZXRz Y2woYWRhcCksDQogCSAgICAgICBnZXRzZGEoYWRhcCkpOw0KIAlpZiAoIDAg IT0gZ2V0c2NsKGFkYXApICkgew0KLQkJcHJpbnRrKCJpMmMtYWxnby1iaXQu bzogJXMgU0NMIHN0dWNrIGhpZ2ghXG4iLG5hbWUpOw0KKwkJcHJpbnRrKEtF Uk5fV0FSTklORyAiaTJjLWFsZ28tYml0Lm86ICVzIFNDTCBzdHVjayBoaWdo IVxuIixuYW1lKTsNCiAJCXNjbGhpKGFkYXApOw0KIAkJZ290byBiYWlsb3V0 Ow0KIAl9DQogCWlmICggMCA9PSBnZXRzZGEoYWRhcCkgKSB7DQotCQlwcmlu dGsoImkyYy1hbGdvLWJpdC5vOiAlcyBTREEgdW5leHBlY3RlZCBsb3cgd2hp bGUgcHVsbGluZyBTQ0wgbG93IVxuIiwNCisJCXByaW50ayhLRVJOX1dBUk5J TkcgImkyYy1hbGdvLWJpdC5vOiAlcyBTREEgdW5leHBlY3RlZCBsb3cgd2hp bGUgcHVsbGluZyBTQ0wgbG93IVxuIiwNCiAJCQluYW1lKTsNCiAJCWdvdG8g YmFpbG91dDsNCiAJfQ0KIAlzY2xoaShhZGFwKTsNCi0JcHJpbnRrKCJpMmMt YWxnby1iaXQubzo0IHNjbDogJWQgIHNkYTogJWQgXG4iLGdldHNjbChhZGFw KSwNCisJcHJpbnRrKEtFUk5fREVCVUcgImkyYy1hbGdvLWJpdC5vOjQgc2Ns OiAlZCAgc2RhOiAlZCBcbiIsZ2V0c2NsKGFkYXApLA0KIAkgICAgICAgZ2V0 c2RhKGFkYXApKTsNCiAJaWYgKCAwID09IGdldHNjbChhZGFwKSApIHsNCi0J CXByaW50aygiaTJjLWFsZ28tYml0Lm86ICVzIFNDTCBzdHVjayBsb3chXG4i LG5hbWUpOw0KKwkJcHJpbnRrKEtFUk5fV0FSTklORyAiaTJjLWFsZ28tYml0 Lm86ICVzIFNDTCBzdHVjayBsb3chXG4iLG5hbWUpOw0KIAkJc2NsaGkoYWRh cCk7DQogCQlnb3RvIGJhaWxvdXQ7DQogCX0NCiAJaWYgKCAwID09IGdldHNk YShhZGFwKSApIHsNCi0JCXByaW50aygiaTJjLWFsZ28tYml0Lm86ICVzIFNE QSB1bmV4cGVjdGVkIGxvdyB3aGlsZSBTQ0wgaGlnaCFcbiIsDQorCQlwcmlu dGsoS0VSTl9XQVJOSU5HICJpMmMtYWxnby1iaXQubzogJXMgU0RBIHVuZXhw ZWN0ZWQgbG93IHdoaWxlIFNDTCBoaWdoIVxuIiwNCiAJCQluYW1lKTsNCiAJ CWdvdG8gYmFpbG91dDsNCiAJfQ0KLQlwcmludGsoImkyYy1hbGdvLWJpdC5v OiAlcyBwYXNzZWQgdGVzdC5cbiIsbmFtZSk7DQorCXByaW50ayhLRVJOX0lO Rk8gImkyYy1hbGdvLWJpdC5vOiAlcyBwYXNzZWQgdGVzdC5cbiIsbmFtZSk7 DQogCXJldHVybiAwOw0KIGJhaWxvdXQ6DQogCXNkYWhpKGFkYXApOw0KQEAg LTM0MSw3ICszMzksNyBAQA0KIAkJaTJjX3N0YXJ0KGFkYXApOw0KIAkJdWRl bGF5KGFkYXAtPnVkZWxheSk7DQogCX0NCi0JREVCMihpZiAoaSkgcHJpbnRr KCJpMmMtYWxnby1iaXQubzogbmVlZGVkICVkIHJldHJpZXMgZm9yICVkXG4i LA0KKwlERUIyKGlmIChpKSBwcmludGsoS0VSTl9ERUJVRyAiaTJjLWFsZ28t Yml0Lm86IG5lZWRlZCAlZCByZXRyaWVzIGZvciAlZFxuIiwNCiAJICAgICAg ICAgICAgICAgICAgIGksYWRkcikpOw0KIAlyZXR1cm4gcmV0Ow0KIH0NCkBA IC0zNTYsNyArMzU0LDcgQEANCiANCiAJd2hpbGUgKGNvdW50ID4gMCkgew0K IAkJYyA9ICp0ZW1wOw0KLQkJREVCMihwcmludGsoImkyYy1hbGdvLWJpdC5v OiAlcyBpMmNfd3JpdGU6IHdyaXRpbmcgJTIuMlhcbiIsDQorCQlERUIyKHBy aW50ayhLRVJOX0RFQlVHICJpMmMtYWxnby1iaXQubzogJXMgaTJjX3dyaXRl OiB3cml0aW5nICUyLjJYXG4iLA0KIAkJCSAgICBpMmNfYWRhcC0+bmFtZSwg YyYweGZmKSk7DQogCQlyZXR2YWwgPSBpMmNfb3V0YihpMmNfYWRhcCxjKTsN CiAJCWlmIChyZXR2YWw+MCkgew0KQEAgLTM2NCw3ICszNjIsNyBAQA0KIAkJ CXRlbXArKzsNCiAJCQl3cmNvdW50Kys7DQogCQl9IGVsc2UgeyAvKiBhcmJp dHJhdGlvbiBvciBubyBhY2tub3dsZWRnZSAqLw0KLQkJCXByaW50aygiaTJj LWFsZ28tYml0Lm86ICVzIGkyY193cml0ZTogZXJyb3IgLSBiYWlsb3V0Llxu IiwNCisJCQlwcmludGsoS0VSTl9FUlIgImkyYy1hbGdvLWJpdC5vOiAlcyBp MmNfd3JpdGU6IGVycm9yIC0gYmFpbG91dC5cbiIsDQogCQkJICAgICAgIGky Y19hZGFwLT5uYW1lKTsNCiAJCQlpMmNfc3RvcChhZGFwKTsNCiAJCQlyZXR1 cm4gKHJldHZhbDwwKT8gcmV0dmFsIDogLUVGQVVMVDsNCkBAIC0zOTIsNyAr MzkwLDcgQEANCiAJCQkqdGVtcCA9IGludmFsOw0KIAkJCXJkY291bnQrKzsN CiAJCX0gZWxzZSB7ICAgLyogcmVhZCB0aW1lZCBvdXQgKi8NCi0JCQlwcmlu dGsoImkyYy1hbGdvLWJpdC5vOiBpMmNfcmVhZDogaTJjX2luYiB0aW1lZCBv dXQuXG4iKTsNCisJCQlwcmludGsoS0VSTl9FUlIgImkyYy1hbGdvLWJpdC5v OiBpMmNfcmVhZDogaTJjX2luYiB0aW1lZCBvdXQuXG4iKTsNCiAJCQlicmVh azsNCiAJCX0NCiANCkBAIC00MDUsNyArNDAzLDcgQEANCiAJCX0NCiAJCWlm IChzY2xoaShhZGFwKTwwKSB7CS8qIHRpbWVvdXQgKi8NCiAJCQlzZGFoaShh ZGFwKTsNCi0JCQlwcmludGsoImkyYy1hbGdvLWJpdC5vOiBpMmNfcmVhZDog VGltZW91dCBhdCBhY2tcbiIpOw0KKwkJCXByaW50ayhLRVJOX0VSUiAiaTJj LWFsZ28tYml0Lm86IGkyY19yZWFkOiBUaW1lb3V0IGF0IGFja1xuIik7DQog CQkJcmV0dXJuIC1FVElNRURPVVQ7DQogCQl9Ow0KIAkJc2NsbG8oYWRhcCk7 DQpAQCAtNDM1LDE4ICs0MzMsMTggQEANCiAJaWYgKCAoZmxhZ3MgJiBJMkNf TV9URU4pICApIHsgDQogCQkvKiBhIHRlbiBiaXQgYWRkcmVzcyAqLw0KIAkJ YWRkciA9IDB4ZjAgfCAoKCBtc2ctPmFkZHIgPj4gNykgJiAweDAzKTsNCi0J CURFQjIocHJpbnRrKCJhZGRyMDogJWRcbiIsYWRkcikpOw0KKwkJREVCMihw cmludGsoS0VSTl9ERUJVRyAiYWRkcjA6ICVkXG4iLGFkZHIpKTsNCiAJCS8q IHRyeSBleHRlbmRlZCBhZGRyZXNzIGNvZGUuLi4qLw0KIAkJcmV0ID0gdHJ5 X2FkZHJlc3MoaTJjX2FkYXAsIGFkZHIsIHJldHJpZXMpOw0KIAkJaWYgKHJl dCE9MSkgew0KLQkJCXByaW50aygiZGllZCBhdCBleHRlbmRlZCBhZGRyZXNz IGNvZGUuXG4iKTsNCisJCQlwcmludGsoS0VSTl9FUlIgImRpZWQgYXQgZXh0 ZW5kZWQgYWRkcmVzcyBjb2RlLlxuIik7DQogCQkJcmV0dXJuIC1FUkVNT1RF SU87DQogCQl9DQogCQkvKiB0aGUgcmVtYWluaW5nIDggYml0IGFkZHJlc3Mg Ki8NCiAJCXJldCA9IGkyY19vdXRiKGkyY19hZGFwLG1zZy0+YWRkciAmIDB4 N2YpOw0KIAkJaWYgKHJldCAhPSAxKSB7DQogCQkJLyogdGhlIGNoaXAgZGlk IG5vdCBhY2sgLyB4bWlzc2lvbiBlcnJvciBvY2N1cnJlZCAqLw0KLQkJCXBy aW50aygiZGllZCBhdCAybmQgYWRkcmVzcyBjb2RlLlxuIik7DQorCQkJcHJp bnRrKEtFUk5fRVJSICJkaWVkIGF0IDJuZCBhZGRyZXNzIGNvZGUuXG4iKTsN CiAJCQlyZXR1cm4gLUVSRU1PVEVJTzsNCiAJCX0NCiAJCWlmICggZmxhZ3Mg JiBJMkNfTV9SRCApIHsNCkBAIC00NTUsNyArNDUzLDcgQEANCiAJCQlhZGRy IHw9IDB4MDE7DQogCQkJcmV0ID0gdHJ5X2FkZHJlc3MoaTJjX2FkYXAsIGFk ZHIsIHJldHJpZXMpOw0KIAkJCWlmIChyZXQhPTEpIHsNCi0JCQkJcHJpbnRr KCJkaWVkIGF0IGV4dGVuZGVkIGFkZHJlc3MgY29kZS5cbiIpOw0KKwkJCQlw cmludGsoS0VSTl9FUlIgImRpZWQgYXQgZXh0ZW5kZWQgYWRkcmVzcyBjb2Rl LlxuIik7DQogCQkJCXJldHVybiAtRVJFTU9URUlPOw0KIAkJCX0NCiAJCX0N CkBAIC00OTAsNyArNDg4LDcgQEANCiAJCQl9DQogCQkJcmV0ID0gYml0X2Rv QWRkcmVzcyhpMmNfYWRhcCxwbXNnLGkyY19hZGFwLT5yZXRyaWVzKTsNCiAJ CQlpZiAocmV0ICE9IDApIHsNCi0JCQkJREVCMihwcmludGsoImkyYy1hbGdv LWJpdC5vOiBOQUsgZnJvbSBkZXZpY2UgYWRyICUjMnggbXNnICMlZFxuIg0K KwkJCQlERUIyKHByaW50ayhLRVJOX0RFQlVHICJpMmMtYWxnby1iaXQubzog TkFLIGZyb20gZGV2aWNlIGFkciAlIzJ4IG1zZyAjJWRcbiINCiAJCQkJICAg ICAgICxtc2dzW2ldLmFkZHIsaSkpOw0KIAkJCQlyZXR1cm4gKHJldDwwKSA/ IHJldCA6IC1FUkVNT1RFSU87DQogCQkJfQ0KQEAgLTQ5OCwxNCArNDk2LDE0 IEBADQogCQlpZiAocG1zZy0+ZmxhZ3MgJiBJMkNfTV9SRCApIHsNCiAJCQkv KiByZWFkIGJ5dGVzIGludG8gYnVmZmVyKi8NCiAJCQlyZXQgPSByZWFkYnl0 ZXMoaTJjX2FkYXAscG1zZy0+YnVmLHBtc2ctPmxlbik7DQotCQkJREVCMihw cmludGsoImkyYy1hbGdvLWJpdC5vOiByZWFkICVkIGJ5dGVzLlxuIixyZXQp KTsNCisJCQlERUIyKHByaW50ayhLRVJOX0RFQlVHICJpMmMtYWxnby1iaXQu bzogcmVhZCAlZCBieXRlcy5cbiIscmV0KSk7DQogCQkJaWYgKHJldCA8IHBt c2ctPmxlbiApIHsNCiAJCQkJcmV0dXJuIChyZXQ8MCk/IHJldCA6IC1FUkVN T1RFSU87DQogCQkJfQ0KIAkJfSBlbHNlIHsNCiAJCQkvKiB3cml0ZSBieXRl cyBmcm9tIGJ1ZmZlciAqLw0KIAkJCXJldCA9IHNlbmRieXRlcyhpMmNfYWRh cCxwbXNnLT5idWYscG1zZy0+bGVuKTsNCi0JCQlERUIyKHByaW50aygiaTJj LWFsZ28tYml0Lm86IHdyb3RlICVkIGJ5dGVzLlxuIixyZXQpKTsNCisJCQlE RUIyKHByaW50ayhLRVJOX0RFQlVHICJpMmMtYWxnby1iaXQubzogd3JvdGUg JWQgYnl0ZXMuXG4iLHJldCkpOw0KIAkJCWlmIChyZXQgPCBwbXNnLT5sZW4g KSB7DQogCQkJCXJldHVybiAocmV0PDApID8gcmV0IDogLUVSRU1PVEVJTzsN CiAJCQl9DQpAQCAtNTU1LDcgKzU1Myw3IEBADQogCQkJcmV0dXJuIC1FTk9E RVY7DQogCX0NCiANCi0JREVCMihwcmludGsoImkyYy1hbGdvLWJpdC5vOiBo dyByb3V0aW5lcyBmb3IgJXMgcmVnaXN0ZXJlZC5cbiIsDQorCURFQjIocHJp bnRrKEtFUk5fREVCVUcgImkyYy1hbGdvLWJpdC5vOiBodyByb3V0aW5lcyBm b3IgJXMgcmVnaXN0ZXJlZC5cbiIsDQogCSAgICAgICAgICAgIGFkYXAtPm5h bWUpKTsNCiANCiAJLyogcmVnaXN0ZXIgbmV3IGFkYXB0ZXIgdG8gaTJjIG1v ZHVsZS4uLiAqLw0KQEAgLTU5OSw3ICs1OTcsNyBAQA0KIAlpZiAoKHJlcyA9 IGkyY19kZWxfYWRhcHRlcihhZGFwKSkgPCAwKQ0KIAkJcmV0dXJuIHJlczsN CiANCi0JREVCMihwcmludGsoImkyYy1hbGdvLWJpdC5vOiBhZGFwdGVyIHVu cmVnaXN0ZXJlZDogJXNcbiIsYWRhcC0+bmFtZSkpOw0KKwlERUIyKHByaW50 ayhLRVJOX0RFQlVHICJpMmMtYWxnby1iaXQubzogYWRhcHRlciB1bnJlZ2lz dGVyZWQ6ICVzXG4iLGFkYXAtPm5hbWUpKTsNCiANCiAjaWZkZWYgTU9EVUxF DQogCU1PRF9ERUNfVVNFX0NPVU5UOw0KQEAgLTYwOSw3ICs2MDcsNyBAQA0K IA0KIGludCBfX2luaXQgaTJjX2FsZ29fYml0X2luaXQgKHZvaWQpDQogew0K LQlwcmludGsoImkyYy1hbGdvLWJpdC5vOiBpMmMgYml0IGFsZ29yaXRobSBt b2R1bGVcbiIpOw0KKwlwcmludGsoS0VSTl9JTkZPICJpMmMtYWxnby1iaXQu bzogaTJjIGJpdCBhbGdvcml0aG0gbW9kdWxlIHZlcnNpb24gJXMgKCVzKVxu IiwgSTJDX1ZFUlNJT04sIEkyQ19EQVRFKTsNCiAJcmV0dXJuIDA7DQogfQ0K IA0KLS0tIGxpbnV4L2RyaXZlcnMvaTJjL2kyYy1hbGdvLXBjZi5jLm9yaWcJ MjAwMS0xMC0xMSAxMTowNTo0Ny4wMDAwMDAwMDAgLTA0MDANCisrKyBsaW51 eC9kcml2ZXJzL2kyYy9pMmMtYWxnby1wY2YuYwkyMDAyLTA3LTIzIDA4OjU0 OjMxLjAwMDAwMDAwMCAtMDQwMA0KQEAgLTM2LDggKzM2LDYgQEANCiAjaW5j bHVkZSA8YXNtL3VhY2Nlc3MuaD4NCiAjaW5jbHVkZSA8bGludXgvaW9wb3J0 Lmg+DQogI2luY2x1ZGUgPGxpbnV4L2Vycm5vLmg+DQotI2luY2x1ZGUgPGxp bnV4L3NjaGVkLmg+DQotDQogI2luY2x1ZGUgPGxpbnV4L2kyYy5oPg0KICNp bmNsdWRlIDxsaW51eC9pMmMtYWxnby1wY2YuaD4NCiAjaW5jbHVkZSAiaTJj LXBjZjg1ODQuaCINCkBAIC05OSw3ICs5Nyw3IEBADQogCX0NCiAjZW5kaWYN CiAJaWYgKHRpbWVvdXQgPD0gMCkgew0KLQkJcHJpbnRrKCJUaW1lb3V0IHdh aXRpbmcgZm9yIEJ1cyBCdXN5XG4iKTsNCisJCXByaW50ayhLRVJOX0VSUiAi VGltZW91dCB3YWl0aW5nIGZvciBCdXMgQnVzeVxuIik7DQogCX0NCiAJDQog CXJldHVybiAodGltZW91dDw9MCk7DQpAQCAtMTQ0LDE1ICsxNDIsMTQgQEAN CiB7DQogCXVuc2lnbmVkIGNoYXIgdGVtcDsNCiANCi0JREVCMyhwcmludGso ImkyYy1hbGdvLXBjZi5vOiBQQ0Ygc3RhdGUgMHglMDJ4XG4iLCBnZXRfcGNm KGFkYXAsIDEpKSk7DQorCURFQjMocHJpbnRrKEtFUk5fREVCVUcgImkyYy1h bGdvLXBjZi5vOiBQQ0Ygc3RhdGUgMHglMDJ4XG4iLCBnZXRfcGNmKGFkYXAs IDEpKSk7DQogDQogCS8qIFMxPTB4ODA6IFMwIHNlbGVjdGVkLCBzZXJpYWwg aW50ZXJmYWNlIG9mZiAqLw0KIAlzZXRfcGNmKGFkYXAsIDEsIEkyQ19QQ0Zf UElOKTsNCiAJLyogY2hlY2sgdG8gc2VlIFMxIG5vdyB1c2VkIGFzIFIvVyBj dHJsIC0NCiAJICAgUENGODU4NCBkb2VzIHRoYXQgd2hlbiBFU08gaXMgemVy byAqLw0KLQkvKiBQQ0YgYWxzbyByZXNldHMgUElOIGJpdCAqLw0KLQlpZiAo KHRlbXAgPSBnZXRfcGNmKGFkYXAsIDEpKSAhPSAoMCkpIHsNCi0JCURFQjIo cHJpbnRrKCJpMmMtYWxnby1wY2YubzogUENGIGRldGVjdGlvbiBmYWlsZWQg LS0gY2FuJ3Qgc2VsZWN0IFMwICgweCUwMngpLlxuIiwgdGVtcCkpOw0KKwlp ZiAoKCh0ZW1wID0gZ2V0X3BjZihhZGFwLCAxKSkgJiAweDdmKSAhPSAoMCkp IHsNCisJCURFQjIocHJpbnRrKEtFUk5fRVJSICJpMmMtYWxnby1wY2Yubzog UENGIGRldGVjdGlvbiBmYWlsZWQgLS0gY2FuJ3Qgc2VsZWN0IFMwICgweCUw MngpLlxuIiwgdGVtcCkpOw0KIAkJcmV0dXJuIC1FTlhJTzsgLyogZGVmaW5l dGx5IG5vdCBQQ0Y4NTg0ICovDQogCX0NCiANCkBAIC0xNjAsMTUgKzE1Nywx NSBAQA0KIAlpMmNfb3V0YihhZGFwLCBnZXRfb3duKGFkYXApKTsNCiAJLyog Y2hlY2sgaXQncyByZWFseSB3cml0ZW4gKi8NCiAJaWYgKCh0ZW1wID0gaTJj X2luYihhZGFwKSkgIT0gZ2V0X293bihhZGFwKSkgew0KLQkJREVCMihwcmlu dGsoImkyYy1hbGdvLXBjZi5vOiBQQ0YgZGV0ZWN0aW9uIGZhaWxlZCAtLSBj YW4ndCBzZXQgUzAgKDB4JTAyeCkuXG4iLCB0ZW1wKSk7DQorCQlERUIyKHBy aW50ayhLRVJOX0VSUiAiaTJjLWFsZ28tcGNmLm86IFBDRiBkZXRlY3Rpb24g ZmFpbGVkIC0tIGNhbid0IHNldCBTMCAoMHglMDJ4KS5cbiIsIHRlbXApKTsN CiAJCXJldHVybiAtRU5YSU87DQogCX0NCiANCiAJLyogUzE9MHhBMCwgbmV4 dCBieXRlIGluIFMyCQkJCQkqLw0KIAlzZXRfcGNmKGFkYXAsIDEsIEkyQ19Q Q0ZfUElOIHwgSTJDX1BDRl9FUzEpOw0KIAkvKiBjaGVjayB0byBzZWUgUzIg bm93IHNlbGVjdGVkICovDQotCWlmICgodGVtcCA9IGdldF9wY2YoYWRhcCwg MSkpICE9IEkyQ19QQ0ZfRVMxKSB7DQotCQlERUIyKHByaW50aygiaTJjLWFs Z28tcGNmLm86IFBDRiBkZXRlY3Rpb24gZmFpbGVkIC0tIGNhbid0IHNlbGVj dCBTMiAoMHglMDJ4KS5cbiIsIHRlbXApKTsNCisJaWYgKCgodGVtcCA9IGdl dF9wY2YoYWRhcCwgMSkpICYgMHg3ZikgIT0gSTJDX1BDRl9FUzEpIHsNCisJ CURFQjIocHJpbnRrKEtFUk5fRVJSICJpMmMtYWxnby1wY2YubzogUENGIGRl dGVjdGlvbiBmYWlsZWQgLS0gY2FuJ3Qgc2VsZWN0IFMyICgweCUwMngpLlxu IiwgdGVtcCkpOw0KIAkJcmV0dXJuIC1FTlhJTzsNCiAJfQ0KIA0KQEAgLTE3 Niw3ICsxNzMsNyBAQA0KIAlpMmNfb3V0YihhZGFwLCBnZXRfY2xvY2soYWRh cCkpOw0KIAkvKiBjaGVjayBpdCdzIHJlYWx5IHdyaXRlbiwgdGhlIG9ubHkg NSBsb3dlc3QgYml0cyBkb2VzIG1hdHRlciAqLw0KIAlpZiAoKCh0ZW1wID0g aTJjX2luYihhZGFwKSkgJiAweDFmKSAhPSBnZXRfY2xvY2soYWRhcCkpIHsN Ci0JCURFQjIocHJpbnRrKCJpMmMtYWxnby1wY2YubzogUENGIGRldGVjdGlv biBmYWlsZWQgLS0gY2FuJ3Qgc2V0IFMyICgweCUwMngpLlxuIiwgdGVtcCkp Ow0KKwkJREVCMihwcmludGsoS0VSTl9FUlIgImkyYy1hbGdvLXBjZi5vOiBQ Q0YgZGV0ZWN0aW9uIGZhaWxlZCAtLSBjYW4ndCBzZXQgUzIgKDB4JTAyeCku XG4iLCB0ZW1wKSk7DQogCQlyZXR1cm4gLUVOWElPOw0KIAl9DQogDQpAQCAt MTg1LDExICsxODIsMTEgQEANCiANCiAJLyogY2hlY2sgdG8gc2VlIFBDRiBp cyByZWFseSBpZGxlZCBhbmQgd2UgY2FuIGFjY2VzcyBzdGF0dXMgcmVnaXN0 ZXIgKi8NCiAJaWYgKCh0ZW1wID0gZ2V0X3BjZihhZGFwLCAxKSkgIT0gKEky Q19QQ0ZfUElOIHwgSTJDX1BDRl9CQikpIHsNCi0JCURFQjIocHJpbnRrKCJp MmMtYWxnby1wY2YubzogUENGIGRldGVjdGlvbiBmYWlsZWQgLS0gY2FuJ3Qg c2VsZWN0IFMxYCAoMHglMDJ4KS5cbiIsIHRlbXApKTsNCisJCURFQjIocHJp bnRrKEtFUk5fRVJSICJpMmMtYWxnby1wY2YubzogUENGIGRldGVjdGlvbiBm YWlsZWQgLS0gY2FuJ3Qgc2VsZWN0IFMxYCAoMHglMDJ4KS5cbiIsIHRlbXAp KTsNCiAJCXJldHVybiAtRU5YSU87DQogCX0NCiAJDQotCXByaW50aygiaTJj LWFsZ28tcGNmLm86IGRldGV0ZWQgYW5kIGluaXRpYWxpemVkIFBDRjg1ODQu XG4iKTsNCisJcHJpbnRrKEtFUk5fREVCVUcgImkyYy1hbGdvLXBjZi5vOiBk ZXRldGVkIGFuZCBpbml0aWFsaXplZCBQQ0Y4NTg0LlxuIik7DQogDQogCXJl dHVybiAwOw0KIH0NCkBAIC0yMTUsNyArMjEyLDcgQEANCiAJCWkyY19zdG9w KGFkYXApOw0KIAkJdWRlbGF5KGFkYXAtPnVkZWxheSk7DQogCX0NCi0JREVC MihpZiAoaSkgcHJpbnRrKCJpMmMtYWxnby1wY2YubzogbmVlZGVkICVkIHJl dHJpZXMgZm9yICVkXG4iLGksDQorCURFQjIoaWYgKGkpIHByaW50ayhLRVJO X0RFQlVHICJpMmMtYWxnby1wY2YubzogbmVlZGVkICVkIHJldHJpZXMgZm9y ICVkXG4iLGksDQogCSAgICAgICAgICAgICAgICAgICBhZGRyKSk7DQogCXJl dHVybiByZXQ7DQogfQ0KQEAgLTIyOCwyMCArMjI1LDIwIEBADQogCWludCB3 cmNvdW50LCBzdGF0dXMsIHRpbWVvdXQ7DQogICAgIA0KIAlmb3IgKHdyY291 bnQ9MDsgd3Jjb3VudDxjb3VudDsgKyt3cmNvdW50KSB7DQotCQlERUIyKHBy aW50aygiaTJjLWFsZ28tcGNmLm86ICVzIGkyY193cml0ZTogd3JpdGluZyAl Mi4yWFxuIiwNCisJCURFQjIocHJpbnRrKEtFUk5fREVCVUcgImkyYy1hbGdv LXBjZi5vOiAlcyBpMmNfd3JpdGU6IHdyaXRpbmcgJTIuMlhcbiIsDQogCQkg ICAgICBpMmNfYWRhcC0+bmFtZSwgYnVmW3dyY291bnRdJjB4ZmYpKTsNCiAJ CWkyY19vdXRiKGFkYXAsIGJ1Zlt3cmNvdW50XSk7DQogCQl0aW1lb3V0ID0g d2FpdF9mb3JfcGluKGFkYXAsICZzdGF0dXMpOw0KIAkJaWYgKHRpbWVvdXQp IHsNCiAJCQlpMmNfc3RvcChhZGFwKTsNCi0JCQlwcmludGsoImkyYy1hbGdv LXBjZi5vOiAlcyBpMmNfd3JpdGU6ICINCisJCQlwcmludGsoS0VSTl9FUlIg ImkyYy1hbGdvLXBjZi5vOiAlcyBpMmNfd3JpdGU6ICINCiAJCQkgICAgICAg ImVycm9yIC0gdGltZW91dC5cbiIsIGkyY19hZGFwLT5uYW1lKTsNCiAJCQly ZXR1cm4gLUVSRU1PVEVJTzsgLyogZ290IGEgYmV0dGVyIG9uZSA/PyAqLw0K IAkJfQ0KICNpZm5kZWYgU1RVQl9JMkMNCiAJCWlmIChzdGF0dXMgJiBJMkNf UENGX0xSQikgew0KIAkJCWkyY19zdG9wKGFkYXApOw0KLQkJCXByaW50aygi aTJjLWFsZ28tcGNmLm86ICVzIGkyY193cml0ZTogIg0KKwkJCXByaW50ayhL RVJOX0VSUiAiaTJjLWFsZ28tcGNmLm86ICVzIGkyY193cml0ZTogIg0KIAkJ CSAgICAgICAiZXJyb3IgLSBubyBhY2suXG4iLCBpMmNfYWRhcC0+bmFtZSk7 DQogCQkJcmV0dXJuIC1FUkVNT1RFSU87IC8qIGdvdCBhIGJldHRlciBvbmUg Pz8gKi8NCiAJCX0NCkBAIC0yNjksMTQgKzI2NiwxNCBAQA0KIA0KIAkJaWYg KHdhaXRfZm9yX3BpbihhZGFwLCAmc3RhdHVzKSkgew0KIAkJCWkyY19zdG9w KGFkYXApOw0KLQkJCXByaW50aygiaTJjLWFsZ28tcGNmLm86IHBjZl9yZWFk Ynl0ZXMgdGltZWQgb3V0LlxuIik7DQorCQkJcHJpbnRrKEtFUk5fRVJSICJp MmMtYWxnby1wY2YubzogcGNmX3JlYWRieXRlcyB0aW1lZCBvdXQuXG4iKTsN CiAJCQlyZXR1cm4gKC0xKTsNCiAJCX0NCiANCiAjaWZuZGVmIFNUVUJfSTJD DQogCQlpZiAoKHN0YXR1cyAmIEkyQ19QQ0ZfTFJCKSAmJiAoaSAhPSBjb3Vu dCkpIHsNCiAJCQlpMmNfc3RvcChhZGFwKTsNCi0JCQlwcmludGsoImkyYy1h bGdvLXBjZi5vOiBpMmNfcmVhZDogaTJjX2luYiwgTm8gYWNrLlxuIik7DQor CQkJcHJpbnRrKEtFUk5fRVJSICJpMmMtYWxnby1wY2YubzogaTJjX3JlYWQ6 IGkyY19pbmIsIE5vIGFjay5cbiIpOw0KIAkJCXJldHVybiAoLTEpOw0KIAkJ fQ0KICNlbmRpZg0KQEAgLTMxMiwxOCArMzA5LDE4IEBADQogCWlmICggKGZs YWdzICYgSTJDX01fVEVOKSAgKSB7IA0KIAkJLyogYSB0ZW4gYml0IGFkZHJl c3MgKi8NCiAJCWFkZHIgPSAweGYwIHwgKCggbXNnLT5hZGRyID4+IDcpICYg MHgwMyk7DQotCQlERUIyKHByaW50aygiYWRkcjA6ICVkXG4iLGFkZHIpKTsN CisJCURFQjIocHJpbnRrKEtFUk5fREVCVUcgImFkZHIwOiAlZFxuIixhZGRy KSk7DQogCQkvKiB0cnkgZXh0ZW5kZWQgYWRkcmVzcyBjb2RlLi4uKi8NCiAJ CXJldCA9IHRyeV9hZGRyZXNzKGFkYXAsIGFkZHIsIHJldHJpZXMpOw0KIAkJ aWYgKHJldCE9MSkgew0KLQkJCXByaW50aygiZGllZCBhdCBleHRlbmRlZCBh ZGRyZXNzIGNvZGUuXG4iKTsNCisJCQlwcmludGsoS0VSTl9FUlIgImRpZWQg YXQgZXh0ZW5kZWQgYWRkcmVzcyBjb2RlLlxuIik7DQogCQkJcmV0dXJuIC1F UkVNT1RFSU87DQogCQl9DQogCQkvKiB0aGUgcmVtYWluaW5nIDggYml0IGFk ZHJlc3MgKi8NCiAJCWkyY19vdXRiKGFkYXAsbXNnLT5hZGRyICYgMHg3Zik7 DQogLyogU3RhdHVzIGNoZWNrIGNvbWVzIGhlcmUgKi8NCiAJCWlmIChyZXQg IT0gMSkgew0KLQkJCXByaW50aygiZGllZCBhdCAybmQgYWRkcmVzcyBjb2Rl LlxuIik7DQorCQkJcHJpbnRrKEtFUk5fRVJSICJkaWVkIGF0IDJuZCBhZGRy ZXNzIGNvZGUuXG4iKTsNCiAJCQlyZXR1cm4gLUVSRU1PVEVJTzsNCiAJCX0N CiAJCWlmICggZmxhZ3MgJiBJMkNfTV9SRCApIHsNCkBAIC0zMzIsNyArMzI5 LDcgQEANCiAJCQlhZGRyIHw9IDB4MDE7DQogCQkJcmV0ID0gdHJ5X2FkZHJl c3MoYWRhcCwgYWRkciwgcmV0cmllcyk7DQogCQkJaWYgKHJldCE9MSkgew0K LQkJCQlwcmludGsoImRpZWQgYXQgZXh0ZW5kZWQgYWRkcmVzcyBjb2RlLlxu Iik7DQorCQkJCXByaW50ayhLRVJOX0VSUiAiZGllZCBhdCBleHRlbmRlZCBh ZGRyZXNzIGNvZGUuXG4iKTsNCiAJCQkJcmV0dXJuIC1FUkVNT1RFSU87DQog CQkJfQ0KIAkJfQ0KQEAgLTM2MCw3ICszNTcsNyBAQA0KIAkvKiBDaGVjayBm b3IgYnVzIGJ1c3kgKi8NCiAJdGltZW91dCA9IHdhaXRfZm9yX2JiKGFkYXAp Ow0KIAlpZiAodGltZW91dCkgew0KLQkJREVCMihwcmludGsoImkyYy1hbGdv LXBjZi5vOiAiDQorCQlERUIyKHByaW50ayhLRVJOX0VSUiAiaTJjLWFsZ28t cGNmLm86ICINCiAJCSAgICAgICAgICAgICJUaW1lb3V0IHdhaXRpbmcgZm9y IEJCIGluIHBjZl94ZmVyXG4iKTspDQogCQlyZXR1cm4gLUVJTzsNCiAJfQ0K QEAgLTM2OCw3ICszNjUsNyBAQA0KIAlmb3IgKGkgPSAwO3JldCA+PSAwICYm IGkgPCBudW07IGkrKykgew0KIAkJcG1zZyA9ICZtc2dzW2ldOw0KIA0KLQkJ REVCMihwcmludGsoImkyYy1hbGdvLXBjZi5vOiBEb2luZyAlcyAlZCBieXRl cyB0byAweCUwMnggLSAlZCBvZiAlZCBtZXNzYWdlc1xuIiwNCisJCURFQjIo cHJpbnRrKEtFUk5fREVCVUcgImkyYy1hbGdvLXBjZi5vOiBEb2luZyAlcyAl ZCBieXRlcyB0byAweCUwMnggLSAlZCBvZiAlZCBtZXNzYWdlc1xuIiwNCiAJ CSAgICAgcG1zZy0+ZmxhZ3MgJiBJMkNfTV9SRCA/ICJyZWFkIiA6ICJ3cml0 ZSIsDQogICAgICAgICAgICAgICAgICAgICAgcG1zZy0+bGVuLCBwbXNnLT5h ZGRyLCBpICsgMSwgbnVtKTspDQogICAgIA0KQEAgLTM4Myw3ICszODAsNyBA QA0KIAkJdGltZW91dCA9IHdhaXRfZm9yX3BpbihhZGFwLCAmc3RhdHVzKTsN CiAJCWlmICh0aW1lb3V0KSB7DQogCQkJaTJjX3N0b3AoYWRhcCk7DQotCQkJ REVCMihwcmludGsoImkyYy1hbGdvLXBjZi5vOiBUaW1lb3V0IHdhaXRpbmcg Ig0KKwkJCURFQjIocHJpbnRrKEtFUk5fRVJSICJpMmMtYWxnby1wY2Yubzog VGltZW91dCB3YWl0aW5nICINCiAJCQkJICAgICJmb3IgUElOKDEpIGluIHBj Zl94ZmVyXG4iKTspDQogCQkJcmV0dXJuICgtRVJFTU9URUlPKTsNCiAJCX0N CkBAIC0zOTIsMTIgKzM4OSwxMiBAQA0KIAkJLyogQ2hlY2sgTFJCIChsYXN0 IHJjdmQgYml0IC0gc2xhdmUgYWNrKSAqLw0KIAkJaWYgKHN0YXR1cyAmIEky Q19QQ0ZfTFJCKSB7DQogCQkJaTJjX3N0b3AoYWRhcCk7DQotCQkJREVCMihw cmludGsoImkyYy1hbGdvLXBjZi5vOiBObyBMUkIoMSkgaW4gcGNmX3hmZXJc biIpOykNCisJCQlERUIyKHByaW50ayhLRVJOX0VSUiAiaTJjLWFsZ28tcGNm Lm86IE5vIExSQigxKSBpbiBwY2ZfeGZlclxuIik7KQ0KIAkJCXJldHVybiAo LUVSRU1PVEVJTyk7DQogCQl9DQogI2VuZGlmDQogICAgIA0KLQkJREVCMyhw cmludGsoImkyYy1hbGdvLXBjZi5vOiBNc2cgJWQsIGFkZHI9MHgleCwgZmxh Z3M9MHgleCwgbGVuPSVkXG4iLA0KKwkJREVCMyhwcmludGsoS0VSTl9ERUJV RyAiaTJjLWFsZ28tcGNmLm86IE1zZyAlZCwgYWRkcj0weCV4LCBmbGFncz0w eCV4LCBsZW49JWRcbiIsDQogCQkJICAgIGksIG1zZ3NbaV0uYWRkciwgbXNn c1tpXS5mbGFncywgbXNnc1tpXS5sZW4pOykNCiAgICAgDQogCQkvKiBSZWFk ICovDQpAQCAtNDA3LDIwICs0MDQsMjAgQEANCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpICsgMSA9PSBudW0pKTsN CiAgICAgICAgIA0KIAkJCWlmIChyZXQgIT0gcG1zZy0+bGVuKSB7DQotCQkJ CURFQjIocHJpbnRrKCJpMmMtYWxnby1wY2YubzogZmFpbDogIg0KKwkJCQlE RUIyKHByaW50ayhLRVJOX0RFQlVHICJpMmMtYWxnby1wY2YubzogZmFpbDog Ig0KIAkJCQkJICAgICJvbmx5IHJlYWQgJWQgYnl0ZXMuXG4iLHJldCkpOw0K IAkJCX0gZWxzZSB7DQotCQkJCURFQjIocHJpbnRrKCJpMmMtYWxnby1wY2Yu bzogcmVhZCAlZCBieXRlcy5cbiIscmV0KSk7DQorCQkJCURFQjIocHJpbnRr KEtFUk5fREVCVUcgImkyYy1hbGdvLXBjZi5vOiByZWFkICVkIGJ5dGVzLlxu IixyZXQpKTsNCiAJCQl9DQogCQl9IGVsc2UgeyAvKiBXcml0ZSAqLw0KIAkJ CXJldCA9IHBjZl9zZW5kYnl0ZXMoaTJjX2FkYXAsIHBtc2ctPmJ1ZiwgcG1z Zy0+bGVuLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGkgKyAxID09IG51bSkpOw0KICAgICAgICAgDQogCQkJaWYg KHJldCAhPSBwbXNnLT5sZW4pIHsNCi0JCQkJREVCMihwcmludGsoImkyYy1h bGdvLXBjZi5vOiBmYWlsOiAiDQorCQkJCURFQjIocHJpbnRrKEtFUk5fREVC VUcgImkyYy1hbGdvLXBjZi5vOiBmYWlsOiAiDQogCQkJCQkgICAgIm9ubHkg d3JvdGUgJWQgYnl0ZXMuXG4iLHJldCkpOw0KIAkJCX0gZWxzZSB7DQotCQkJ CURFQjIocHJpbnRrKCJpMmMtYWxnby1wY2Yubzogd3JvdGUgJWQgYnl0ZXMu XG4iLHJldCkpOw0KKwkJCQlERUIyKHByaW50ayhLRVJOX0RFQlVHICJpMmMt YWxnby1wY2Yubzogd3JvdGUgJWQgYnl0ZXMuXG4iLHJldCkpOw0KIAkJCX0N CiAJCX0NCiAJfQ0KQEAgLTQ2MSw3ICs0NTgsNyBAQA0KIAlpbnQgaSwgc3Rh dHVzOw0KIAlzdHJ1Y3QgaTJjX2FsZ29fcGNmX2RhdGEgKnBjZl9hZGFwID0g YWRhcC0+YWxnb19kYXRhOw0KIA0KLQlERUIyKHByaW50aygiaTJjLWFsZ28t cGNmLm86IGh3IHJvdXRpbmVzIGZvciAlcyByZWdpc3RlcmVkLlxuIiwNCisJ REVCMihwcmludGsoS0VSTl9ERUJVRyAiaTJjLWFsZ28tcGNmLm86IGh3IHJv dXRpbmVzIGZvciAlcyByZWdpc3RlcmVkLlxuIiwNCiAJICAgICAgICAgICAg YWRhcC0+bmFtZSkpOw0KIA0KIAkvKiByZWdpc3RlciBuZXcgYWRhcHRlciB0 byBpMmMgbW9kdWxlLi4uICovDQpAQCAtNTE0LDcgKzUxMSw3IEBADQogCWlu dCByZXM7DQogCWlmICgocmVzID0gaTJjX2RlbF9hZGFwdGVyKGFkYXApKSA8 IDApDQogCQlyZXR1cm4gcmVzOw0KLQlERUIyKHByaW50aygiaTJjLWFsZ28t cGNmLm86IGFkYXB0ZXIgdW5yZWdpc3RlcmVkOiAlc1xuIixhZGFwLT5uYW1l KSk7DQorCURFQjIocHJpbnRrKEtFUk5fREVCVUcgImkyYy1hbGdvLXBjZi5v OiBhZGFwdGVyIHVucmVnaXN0ZXJlZDogJXNcbiIsYWRhcC0+bmFtZSkpOw0K IA0KICNpZmRlZiBNT0RVTEUNCiAJTU9EX0RFQ19VU0VfQ09VTlQ7DQpAQCAt NTI0LDcgKzUyMSw3IEBADQogDQogaW50IF9faW5pdCBpMmNfYWxnb19wY2Zf aW5pdCAodm9pZCkNCiB7DQotCXByaW50aygiaTJjLWFsZ28tcGNmLm86IGky YyBwY2Y4NTg0IGFsZ29yaXRobSBtb2R1bGVcbiIpOw0KKwlwcmludGsoS0VS Tl9JTkZPICJpMmMtYWxnby1wY2YubzogaTJjIHBjZjg1ODQgYWxnb3JpdGht IG1vZHVsZSB2ZXJzaW9uICVzICglcylcbiIsIEkyQ19WRVJTSU9OLCBJMkNf REFURSk7DQogCXJldHVybiAwOw0KIH0NCiANCi0tLSBsaW51eC9kcml2ZXJz L2kyYy9pMmMtZWx2LmMub3JpZwkyMDAxLTEwLTExIDExOjA1OjQ3LjAwMDAw MDAwMCAtMDQwMA0KKysrIGxpbnV4L2RyaXZlcnMvaTJjL2kyYy1lbHYuYwky MDAyLTA3LTIzIDA5OjA3OjAwLjAwMDAwMDAwMCAtMDQwMA0KQEAgLTIxLDcg KzIxLDcgQEANCiAvKiBXaXRoIHNvbWUgY2hhbmdlcyBmcm9tIEt59nN0aSBN 5Gxra2kgPGttYWxra2lAY2MuaHV0LmZpPiBhbmQgZXZlbg0KICAgIEZyb2Rv IExvb2lqYWFyZCA8ZnJvZG9sQGRkcy5ubD4gKi8NCiANCi0vKiAkSWQ6IGky Yy1lbHYuYyx2IDEuMTcgMjAwMS8wNy8yOSAwMjo0NDoyNSBtZHMgRXhwICQg Ki8NCisvKiAkSWQ6IGkyYy1lbHYuYyx2IDEuMjEgMjAwMS8xMS8xOSAxODo0 NTowMiBtZHMgRXhwICQgKi8NCiANCiAjaW5jbHVkZSA8bGludXgva2VybmVs Lmg+DQogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPg0KQEAgLTI5LDkgKzI5 LDcgQEANCiAjaW5jbHVkZSA8bGludXgvc2xhYi5oPg0KICNpbmNsdWRlIDxs aW51eC92ZXJzaW9uLmg+DQogI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4NCi0N CiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4NCi0NCiAjaW5jbHVkZSA8bGlu dXgvaW9wb3J0Lmg+DQogI2luY2x1ZGUgPGFzbS9pby5oPg0KICNpbmNsdWRl IDxsaW51eC9lcnJuby5oPg0KQEAgLTk1LDE0ICs5MywxNCBAQA0KIAl9IGVs c2Ugew0KIAkJCQkJCS8qIHRlc3QgZm9yIEVMViBhZGFwLiAJKi8NCiAJCWlm IChpbmIoYmFzZSsxKSAmIDB4ODApIHsJLyogQlVTWSBzaG91bGQgYmUgaGln aAkqLw0KLQkJCURFQklOSVQocHJpbnRrKCJpMmMtZWx2Lm86IEJ1c3kgd2Fz IGxvdy5cbiIpKTsNCisJCQlERUJJTklUKHByaW50ayhLRVJOX0RFQlVHICJp MmMtZWx2Lm86IEJ1c3kgd2FzIGxvdy5cbiIpKTsNCiAJCQlyZXR1cm4gLUVO T0RFVjsNCiAJCX0gZWxzZSB7DQogCQkJb3V0YigweDBjLGJhc2UrMik7CS8q IFNMQ1QgYXVmIGxvdwkJKi8NCiAJCQl1ZGVsYXkoNDAwKTsNCiAJCQlpZiAo ICEoaW5iKGJhc2UrMSkgJiYgMHgxMCkgKSB7DQogCQkJCW91dGIoMHgwNCxi YXNlKzIpOw0KLQkJCQlERUJJTklUKHByaW50aygiaTJjLWVsdi5vOiBTZWxl Y3Qgd2FzIGhpZ2guXG4iKSk7DQorCQkJCURFQklOSVQocHJpbnRrKEtFUk5f REVCVUcgImkyYy1lbHYubzogU2VsZWN0IHdhcyBoaWdoLlxuIikpOw0KIAkJ CQlyZXR1cm4gLUVOT0RFVjsNCiAJCQl9DQogCQl9DQpAQCAtMTcwLDcgKzE2 OCw3IEBADQogDQogaW50IF9faW5pdCBpMmNfYml0ZWx2X2luaXQodm9pZCkN CiB7DQotCXByaW50aygiaTJjLWVsdi5vOiBpMmMgRUxWIHBhcmFsbGVsIHBv cnQgYWRhcHRlciBtb2R1bGVcbiIpOw0KKwlwcmludGsoS0VSTl9JTkZPICJp MmMtZWx2Lm86IGkyYyBFTFYgcGFyYWxsZWwgcG9ydCBhZGFwdGVyIG1vZHVs ZSB2ZXJzaW9uICVzICglcylcbiIsIEkyQ19WRVJTSU9OLCBJMkNfREFURSk7 DQogCWlmIChiYXNlPT0wKSB7DQogCQkvKiBwcm9iZSBzb21lIHZhbHVlcyAq Lw0KIAkJYmFzZT1ERUZBVUxUX0JBU0U7DQpAQCAtMTkwLDcgKzE4OCw3IEBA DQogCQkJcmV0dXJuIC1FTk9ERVY7DQogCQl9DQogCX0NCi0JcHJpbnRrKCJp MmMtZWx2Lm86IGZvdW5kIGRldmljZSBhdCAlI3guXG4iLGJhc2UpOw0KKwlw cmludGsoS0VSTl9ERUJVRyAiaTJjLWVsdi5vOiBmb3VuZCBkZXZpY2UgYXQg JSN4LlxuIixiYXNlKTsNCiAJcmV0dXJuIDA7DQogfQ0KIA0KLS0tIGxpbnV4 L2RyaXZlcnMvaTJjL2kyYy1wY2Y4NTg0Lmgub3JpZwkyMDAxLTAyLTA5IDE0 OjQwOjAyLjAwMDAwMDAwMCAtMDUwMA0KKysrIGxpbnV4L2RyaXZlcnMvaTJj L2kyYy1wY2Y4NTg0LmgJMjAwMi0wNy0yMyAwMTo0NTo0Ni4wMDAwMDAwMDAg LTA0MDANCkBAIC0yMSw3ICsyMSw3IEBADQogDQogLyogV2l0aCBzb21lIGNo YW5nZXMgZnJvbSBGcm9kbyBMb29pamFhcmQgPGZyb2RvbEBkZHMubmw+ICov DQogDQotLyogJElkOiBpMmMtcGNmODU4NC5oLHYgMS4zIDIwMDAvMDEvMTgg MjM6NTQ6MDcgZnJvZG8gRXhwICQgKi8NCisvKiAkSWQ6IGkyYy1wY2Y4NTg0 LmgsdiAxLjQgMjAwMS8xMC8wMiAwMDowNzozNyBtZHMgRXhwICQgKi8NCiAN CiAjaWZuZGVmIEkyQ19QQ0Y4NTg0X0gNCiAjZGVmaW5lIEkyQ19QQ0Y4NTg0 X0ggMQ0KLS0tIGxpbnV4L2RyaXZlcnMvaTJjL2kyYy1waGlsaXBzLXBhci5j Lm9yaWcJMjAwMS0wOS0zMCAxNToyNjowNS4wMDAwMDAwMDAgLTA0MDANCisr KyBsaW51eC9kcml2ZXJzL2kyYy9pMmMtcGhpbGlwcy1wYXIuYwkyMDAyLTA3 LTIzIDA5OjExOjE5LjAwMDAwMDAwMCAtMDQwMA0KQEAgLTIxLDcgKzIxLDcg QEANCiAvKiBXaXRoIHNvbWUgY2hhbmdlcyBmcm9tIEt59nN0aSBN5Gxra2kg PGttYWxra2lAY2MuaHV0LmZpPiBhbmQgZXZlbg0KICAgIEZyb2RvIExvb2lq YWFyZCA8ZnJvZG9sQGRkcy5ubD4gKi8NCiANCi0vKiAkSWQ6IGkyYy1waGls aXBzLXBhci5jLHYgMS4xOCAyMDAwLzA3LzA2IDE5OjIxOjQ5IGZyb2RvIEV4 cCAkICovDQorLyogJElkOiBpMmMtcGhpbGlwcy1wYXIuYyx2IDEuMjMgMjAw Mi8wMi8wNiAwODo1MDo1OCBzaW1vbiBFeHAgJCAqLw0KIA0KICNpbmNsdWRl IDxsaW51eC9rZXJuZWwuaD4NCiAjaW5jbHVkZSA8bGludXgvaW9wb3J0Lmg+ DQpAQCAtMjksNyArMjksNiBAQA0KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+ DQogI2luY2x1ZGUgPGxpbnV4L3N0ZGRlZi5oPg0KICNpbmNsdWRlIDxsaW51 eC9wYXJwb3J0Lmg+DQotDQogI2luY2x1ZGUgPGxpbnV4L2kyYy5oPg0KICNp bmNsdWRlIDxsaW51eC9pMmMtYWxnby1iaXQuaD4NCiANCkBAIC0xOTAsMTgg KzE4OSwxOCBAQA0KIAlzdHJ1Y3QgaTJjX3BhciAqYWRhcHRlciA9IGttYWxs b2Moc2l6ZW9mKHN0cnVjdCBpMmNfcGFyKSwNCiAJCQkJCSAgR0ZQX0tFUk5F TCk7DQogCWlmICghYWRhcHRlcikgew0KLQkJcHJpbnRrKCJpMmMtcGhpbGlw cy1wYXI6IFVuYWJsZSB0byBtYWxsb2MuXG4iKTsNCisJCXByaW50ayhLRVJO X0VSUiAiaTJjLXBoaWxpcHMtcGFyOiBVbmFibGUgdG8gbWFsbG9jLlxuIik7 DQogCQlyZXR1cm47DQogCX0NCiANCi0JcHJpbnRrKCJpMmMtcGhpbGlwcy1w YXIubzogYXR0YWNoaW5nIHRvICVzXG4iLCBwb3J0LT5uYW1lKTsNCisJcHJp bnRrKEtFUk5fREVCVUcgImkyYy1waGlsaXBzLXBhci5vOiBhdHRhY2hpbmcg dG8gJXNcbiIsIHBvcnQtPm5hbWUpOw0KIA0KIAlhZGFwdGVyLT5wZGV2ID0g cGFycG9ydF9yZWdpc3Rlcl9kZXZpY2UocG9ydCwgImkyYy1waGlsaXBzLXBh ciIsDQogCQkJCQkJTlVMTCwgTlVMTCwgTlVMTCwgDQogCQkJCQkJUEFSUE9S VF9GTEFHX0VYQ0wsDQogCQkJCQkJTlVMTCk7DQogCWlmICghYWRhcHRlci0+ cGRldikgew0KLQkJcHJpbnRrKCJpMmMtcGhpbGlwcy1wYXI6IFVuYWJsZSB0 byByZWdpc3RlciB3aXRoIHBhcnBvcnQuXG4iKTsNCisJCXByaW50ayhLRVJO X0VSUiAiaTJjLXBoaWxpcHMtcGFyOiBVbmFibGUgdG8gcmVnaXN0ZXIgd2l0 aCBwYXJwb3J0LlxuIik7DQogCQlyZXR1cm47DQogCX0NCiANCkBAIC0yMTAs MTUgKzIwOSwxOCBAQA0KIAlhZGFwdGVyLT5iaXRfbHBfZGF0YSA9IHR5cGUg PyBiaXRfbHBfZGF0YTIgOiBiaXRfbHBfZGF0YTsNCiAJYWRhcHRlci0+Yml0 X2xwX2RhdGEuZGF0YSA9IHBvcnQ7DQogDQorCWlmIChwYXJwb3J0X2NsYWlt X29yX2Jsb2NrKGFkYXB0ZXItPnBkZXYpIDwgMCApIHsNCisJCXByaW50ayhL RVJOX0VSUiAiaTJjLXBoaWxpcHMtcGFyOiBDb3VsZCBub3QgY2xhaW0gcGFy YWxsZWwgcG9ydC5cbiIpOw0KKwkJcmV0dXJuOw0KKwl9DQogCS8qIHJlc2V0 IGhhcmR3YXJlIHRvIHNhbmUgc3RhdGUgKi8NCi0JcGFycG9ydF9jbGFpbV9v cl9ibG9jayhhZGFwdGVyLT5wZGV2KTsNCiAJYml0X2xwX3NldHNkYShwb3J0 LCAxKTsNCiAJYml0X2xwX3NldHNjbChwb3J0LCAxKTsNCiAJcGFycG9ydF9y ZWxlYXNlKGFkYXB0ZXItPnBkZXYpOw0KIA0KIAlpZiAoaTJjX2JpdF9hZGRf YnVzKCZhZGFwdGVyLT5hZGFwdGVyKSA8IDApDQogCXsNCi0JCXByaW50aygi aTJjLXBoaWxpcHMtcGFyOiBVbmFibGUgdG8gcmVnaXN0ZXIgd2l0aCBJMkMu XG4iKTsNCisJCXByaW50ayhLRVJOX0VSUiAiaTJjLXBoaWxpcHMtcGFyOiBV bmFibGUgdG8gcmVnaXN0ZXIgd2l0aCBJMkMuXG4iKTsNCiAJCXBhcnBvcnRf dW5yZWdpc3Rlcl9kZXZpY2UoYWRhcHRlci0+cGRldik7DQogCQlrZnJlZShh ZGFwdGVyKTsNCiAJCXJldHVybjsJCS8qIE5vIGdvb2QgKi8NCkBAIC0yNTAs NDEgKzI1MiwyMyBAQA0KIH0NCiANCiANCi0jaWYgTElOVVhfVkVSU0lPTl9D T0RFID49IEtFUk5FTF9WRVJTSU9OKDIsMyw0KQ0KIHN0YXRpYyBzdHJ1Y3Qg cGFycG9ydF9kcml2ZXIgaTJjX2RyaXZlciA9IHsNCiAJImkyYy1waGlsaXBz LXBhciIsDQogCWkyY19wYXJwb3J0X2F0dGFjaCwNCiAJaTJjX3BhcnBvcnRf ZGV0YWNoLA0KIAlOVUxMDQogfTsNCi0jZW5kaWYNCiANCiBpbnQgX19pbml0 IGkyY19iaXRscF9pbml0KHZvaWQpDQogew0KLSNpZiBMSU5VWF9WRVJTSU9O X0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDMsNCkNCi0Jc3RydWN0IHBhcnBv cnQgKnBvcnQ7DQotI2VuZGlmDQotCXByaW50aygiaTJjLXBoaWxpcHMtcGFy Lm86IGkyYyBQaGlsaXBzIHBhcmFsbGVsIHBvcnQgYWRhcHRlciBtb2R1bGVc biIpOw0KLQ0KLSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZF UlNJT04oMiwzLDQpDQorCXByaW50ayhLRVJOX0lORk8gImkyYy1waGlsaXBz LXBhci5vOiBpMmMgUGhpbGlwcyBwYXJhbGxlbCBwb3J0IGFkYXB0ZXIgbW9k dWxlIHZlcnNpb24gJXMgKCVzKVxuIiwgSTJDX1ZFUlNJT04sIEkyQ19EQVRF KTsNCiAJcGFycG9ydF9yZWdpc3Rlcl9kcml2ZXIoJmkyY19kcml2ZXIpOw0K LSNlbHNlDQotCWZvciAocG9ydCA9IHBhcnBvcnRfZW51bWVyYXRlKCk7IHBv cnQ7IHBvcnQ9cG9ydC0+bmV4dCkNCi0JCWkyY19wYXJwb3J0X2F0dGFjaChw b3J0KTsNCi0jZW5kaWYNCi0JDQogCXJldHVybiAwOw0KIH0NCiANCiB2b2lk IF9fZXhpdCBpMmNfYml0bHBfZXhpdCh2b2lkKQ0KIHsNCi0jaWYgTElOVVhf VkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsMyw0KQ0KIAlwYXJw b3J0X3VucmVnaXN0ZXJfZHJpdmVyKCZpMmNfZHJpdmVyKTsNCi0jZWxzZQ0K LQlzdHJ1Y3QgcGFycG9ydCAqcG9ydDsNCi0JZm9yIChwb3J0ID0gcGFycG9y dF9lbnVtZXJhdGUoKTsgcG9ydDsgcG9ydD1wb3J0LT5uZXh0KQ0KLQkJaTJj X3BhcnBvcnRfZGV0YWNoKHBvcnQpOw0KLSNlbmRpZg0KIH0NCiANCiBFWFBP UlRfTk9fU1lNQk9MUzsNCi0tLSBsaW51eC9kcml2ZXJzL2kyYy9pMmMtdmVs bGVtYW4uYy5vcmlnCTIwMDEtMTAtMTEgMTE6MDU6NDcuMDAwMDAwMDAwIC0w NDAwDQorKysgbGludXgvZHJpdmVycy9pMmMvaTJjLXZlbGxlbWFuLmMJMjAw Mi0wNy0yMyAwOToxODowNS4wMDAwMDAwMDAgLTA0MDANCkBAIC0yNyw3ICsy Nyw2IEBADQogI2luY2x1ZGUgPGxpbnV4L3N0cmluZy5oPiAgLyogZm9yIDIu MCBrZXJuZWxzIHRvIGdldCBOVUxMICAgKi8NCiAjaW5jbHVkZSA8YXNtL2Vy cm5vLmg+ICAgICAvKiBmb3IgMi4wIGtlcm5lbHMgdG8gZ2V0IEVOT0RFViAq Lw0KICNpbmNsdWRlIDxhc20vaW8uaD4NCi0NCiAjaW5jbHVkZSA8bGludXgv aTJjLmg+DQogI2luY2x1ZGUgPGxpbnV4L2kyYy1hbGdvLWJpdC5oPg0KIA0K QEAgLTkxLDcgKzkwLDcgQEANCiBzdGF0aWMgaW50IGJpdF92ZWxsZV9pbml0 KHZvaWQpDQogew0KIAlpZiAoY2hlY2tfcmVnaW9uKGJhc2UsKGJhc2UgPT0g MHgzYmMpPyAzIDogOCkgPCAwICkgew0KLQkJREVCRShwcmludGsoImkyYy12 ZWxsZW1hbi5vOiBQb3J0ICUjeCBhbHJlYWR5IGluIHVzZS5cbiIsDQorCQlE RUJFKHByaW50ayhLRVJOX0RFQlVHICJpMmMtdmVsbGVtYW4ubzogUG9ydCAl I3ggYWxyZWFkeSBpbiB1c2UuXG4iLA0KIAkJICAgICBiYXNlKSk7DQogCQly ZXR1cm4gLUVOT0RFVjsNCiAJfSBlbHNlIHsNCkBAIC0xNjAsNyArMTU5LDcg QEANCiANCiBpbnQgX19pbml0ICBpMmNfYml0dmVsbGVfaW5pdCh2b2lkKQ0K IHsNCi0JcHJpbnRrKCJpMmMtdmVsbGVtYW4ubzogaTJjIFZlbGxlbWFuIEs4 MDAwIGFkYXB0ZXIgbW9kdWxlXG4iKTsNCisJcHJpbnRrKEtFUk5fSU5GTyAi aTJjLXZlbGxlbWFuLm86IGkyYyBWZWxsZW1hbiBLODAwMCBhZGFwdGVyIG1v ZHVsZSB2ZXJzaW9uICVzICglcylcbiIsIEkyQ19WRVJTSU9OLCBJMkNfREFU RSk7DQogCWlmIChiYXNlPT0wKSB7DQogCQkvKiBwcm9iZSBzb21lIHZhbHVl cyAqLw0KIAkJYmFzZT1ERUZBVUxUX0JBU0U7DQpAQCAtMTgwLDcgKzE3OSw3 IEBADQogCQkJcmV0dXJuIC1FTk9ERVY7DQogCQl9DQogCX0NCi0JcHJpbnRr KCJpMmMtdmVsbGVtYW4ubzogZm91bmQgZGV2aWNlIGF0ICUjeC5cbiIsYmFz ZSk7DQorCXByaW50ayhLRVJOX0RFQlVHICJpMmMtdmVsbGVtYW4ubzogZm91 bmQgZGV2aWNlIGF0ICUjeC5cbiIsYmFzZSk7DQogCXJldHVybiAwOw0KIH0N CiANCg== --0-320317900-1030599418=:16793-- - 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/