[patch 3/9]Four new i2c drivers and __init/__exit cleanup to i2c

Albert Cranford (ac9410@attbi.com)
Sun, 15 Sep 2002 18:37:42 -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-898942119-1032129462=:7637
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hello Linus,
New I2C drivers that have been adjusted after Russell King comments of August.
o i2c-algo-8xx.c
o i2c-pport.c
o i2c-adap-ibm_ocp.c
o i2c-pcf-epp.c
o Add new drivers to Config.in and Makefile.
o Add new drivers to i2c-core for initialization.
o Remove EXPORT_NO_SYMBOLS statement from i2c-dev, i2c-elektor and i2c-frodo.
o Cleanup init_module and cleanup_module adding __init and __exit to most drivers.
o Adjust i2c-elektor with cli/sti replacement.

-- 
ac9410@attbi.com

--0-898942119-1032129462=:7637 Content-Type: TEXT/PLAIN; charset=X-UNKNOWN; name=47-i2c-3c-patch Content-Transfer-Encoding: BASE64 Content-ID: <Pine.LNX.4.44.0209151837420.7637@home1> Content-Description: Content-Disposition: attachment; filename=47-i2c-3c-patch

LS0tIC9kZXYvbnVsbAkxOTk0LTA3LTE3IDE5OjQ2OjE4LjAwMDAwMDAwMCAt MDQwMA0KKysrIGxpbnV4LTIuNS4zNC9kcml2ZXJzL2kyYy9pMmMtYWRhcC1p Ym1fb2NwLmMJMjAwMi0wOC0wNyAyMjozODo1Ny4wMDAwMDAwMDAgLTA0MDAN CkBAIC0wLDAgKzEsMzk3IEBADQorLyoNCisgICAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQorICAgaTJjLWFkYXAtaWJtX29jcC5jIGkyYy1odyBh Y2Nlc3MgZm9yIHRoZSBJSUMgcGVyaXBoZXJhbCBvbiB0aGUgSUJNIFBQQyA0 MDUNCisgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorICANCisg ICBJYW4gRGFTaWx2YSwgTW9udGFWaXN0YSBTb2Z0d2FyZSwgSW5jLg0KKyAg IGlkYXNpbHZhQG12aXN0YS5jb20gb3Igc291cmNlQG12aXN0YS5jb20NCisN CisgICBDb3B5cmlnaHQgMjAwMCBNb250YVZpc3RhIFNvZnR3YXJlIEluYy4N CisNCisgICBDaGFuZ2VzIG1hZGUgdG8gc3VwcG9ydCB0aGUgSUlDIHBlcmlw aGVyYWwgb24gdGhlIElCTSBQUEMgNDA1IA0KKw0KKw0KKyAgIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisgICBUaGlzIGZpbGUgd2FzIGhp Z2hseSBsZXZlcmFnZWQgZnJvbSBpMmMtZWxla3Rvci5jLCB3aGljaCB3YXMg Y3JlYXRlZA0KKyAgIGJ5IFNpbW9uIEcuIFZvZ2wgYW5kIEhhbnMgQmVyZ2x1 bmQ6DQorDQorIA0KKyAgICAgQ29weXJpZ2h0IChDKSAxOTk1LTk3IFNpbW9u IEcuIFZvZ2wNCisgICAgICAgICAgICAgICAgICAgMTk5OC05OSBIYW5zIEJl cmdsdW5kDQorDQorICAgV2l0aCBzb21lIGNoYW5nZXMgZnJvbSBLefZzdGkg TeRsa2tpIDxrbWFsa2tpQGNjLmh1dC5maT4gYW5kIGV2ZW4NCisgICBGcm9k byBMb29pamFhcmQgPGZyb2RvbEBkZHMubmw+DQorDQorDQorICAgIFRoaXMg cHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5DQorICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5DQorICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yDQorICAgIChhdCB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQorDQorICAgIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLA0KKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KKyAgICBNRVJD SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlDQorICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl IGZvciBtb3JlIGRldGFpbHMuDQorDQorICAgIFlvdSBzaG91bGQgaGF2ZSBy ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlDQorICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdy aXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlDQorICAgIEZvdW5kYXRpb24sIElu Yy4sIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBLg0K KyAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisNCisgICBI aXN0b3J5OiAwMS8yMC8xMiAtIEFybWluDQorICAgCWFrdXN0ZXJAbXZpc3Rh LmNvbQ0KKyAgIAlwb3J0ZWQgdXAgdG8gMi40LjE2KwkNCisNCisgICBWZXJz aW9uIDAyLzAzLzI1IC0gQXJtaW4NCisgICAgICAgY29udmVydGVkIHRvIG9j cCBmb3JtYXQNCisgICAgICAgcmVtb3ZlZCBjb21tZW50ZWQgb3V0IG9yICNp ZiAwIGNvZGUNCisNCisgICBUT0RPOiBjb252ZXJ0IHRvIG9jcF9yZWdpc3Rl cg0KKyAgICAgICAgIGFkZCBQTSBob29rcw0KKw0KKyovDQorDQorDQorI2lu Y2x1ZGUgPGxpbnV4L2tlcm5lbC5oPg0KKyNpbmNsdWRlIDxsaW51eC9pb3Bv cnQuaD4NCisjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+DQorI2luY2x1ZGUg PGxpbnV4L2RlbGF5Lmg+DQorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4NCisj aW5jbHVkZSA8bGludXgvdmVyc2lvbi5oPg0KKyNpbmNsdWRlIDxsaW51eC9p bml0Lmg+DQorI2luY2x1ZGUgPGFzbS9pcnEuaD4NCisjaW5jbHVkZSA8YXNt L2lvLmg+DQorI2luY2x1ZGUgPGxpbnV4L2kyYy5oPg0KKyNpbmNsdWRlICJp MmMtYWxnby1pYm1fb2NwLmgiDQorI2luY2x1ZGUgPGxpbnV4L2kyYy1pZC5o Pg0KKyNpbmNsdWRlIDxhc20vb2NwLmg+DQorDQorI2lmZGVmIE1PRFVMRV9M SUNFTlNFDQorTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOw0KKyNlbmRpZg0KKw0K Ky8qDQorICogVGhpcyBuZXh0IHNlY3Rpb24gaXMgY29uZmlndXJhYmxlLCBh bmQgaXQgaXMgdXNlZCB0byBzZXQgdGhlIG51bWJlcg0KKyAqIG9mIGkyYyBj b250cm9sbGVycyBpbiB0aGUgc3lzdGVtLiAgVGhlIGRlZmF1bHQgbnVtYmVy IG9mIGluc3RhbmNlcyBpcyAxLA0KKyAqIGhvd2V2ZXIsIHRoaXMgc2hvdWxk IGJlIGNoYW5nZWQgdG8gcmVmbGVjdCB5b3VyIHN5c3RlbSdzIGNvbmZpZ3Vy YXRpb24uDQorICovIA0KKw0KKy8qDQorICogVGhlIFNUQjAzeHh4LCB3aXRo IGEgUFBDNDA1IGNvcmUsIGhhcyB0d28gaTJjIGNvbnRyb2xsZXJzLg0KKyAq Lw0KKy8vKHNpemVvZihJSUNfQUREUikvc2l6ZW9mKHN0cnVjdCBpaWNfcmVn cykpDQorZXh0ZXJuIGlpY190ICpJSUNfQUREUltdOw0KK3N0YXRpYyBzdHJ1 Y3QgaWljX2libSBpaWNfaWJtb2NwX2FkYXBzW0lJQ19OVU1TXVs1XTsNCisN CitzdGF0aWMgc3RydWN0IGkyY19hbGdvX2lpY19kYXRhICppaWNfaWJtb2Nw X2RhdGFbSUlDX05VTVNdOw0KK3N0YXRpYyBzdHJ1Y3QgaTJjX2FkYXB0ZXIg KmlpY19pYm1vY3Bfb3BzW0lJQ19OVU1TXTsNCisNCitzdGF0aWMgaW50IGky Y19kZWJ1Zz0wOw0KK3N0YXRpYyB3YWl0X3F1ZXVlX2hlYWRfdCBpaWNfd2Fp dFtJSUNfTlVNU107DQorc3RhdGljIGludCBpaWNfcGVuZGluZzsNCisNCisv KiAtLS0tLSBnbG9iYWwgZGVmaW5lcyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQkqLw0KKyNkZWZpbmUgREVCKHgp CWlmIChpMmNfZGVidWc+PTEpIHgNCisjZGVmaW5lIERFQjIoeCkgaWYgKGky Y19kZWJ1Zz49MikgeA0KKyNkZWZpbmUgREVCMyh4KSBpZiAoaTJjX2RlYnVn Pj0zKSB4DQorI2RlZmluZSBERUJFKHgpCXgJLyogZXJyb3IgbWVzc2FnZXMg CQkJCSovDQorDQorLyogLS0tLS0gbG9jYWwgZnVuY3Rpb25zIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0JKi8NCisN CisvLw0KKy8vIERlc2NyaXB0aW9uOiBXcml0ZSBhIGJ5dGUgdG8gSUlDIGhh cmR3YXJlDQorLy8NCitzdGF0aWMgdm9pZCBpaWNfaWJtb2NwX3NldGJ5dGUo dm9pZCAqZGF0YSwgaW50IGN0bCwgaW50IHZhbCkNCit7DQorICAgLy8gd3Jp dGViIHJlc29sdmVzIHRvIGEgd3JpdGUgdG8gdGhlIHNwZWNpZmllZCBtZW1v cnkgbG9jYXRpb24NCisgICAvLyBwbHVzIGEgY2FsbCB0byBlaWVpby4gIGVp ZWlvIGVuc3VyZXMgdGhhdCBhbGwgaW5zdHJ1Y3Rpb25zDQorICAgLy8gcHJl Y2VkaW5nIGl0IGFyZSBjb21wbGV0ZWQgYmVmb3JlIGFueSBmdXJ0aGVyIHN0 b3JlcyBhcmUNCisgICAvLyBjb21wbGV0ZWQuDQorICAgLy8gRGVsYXlzIGF0 IHRoaXMgbGV2ZWwgKHRvIHByb3RlY3Qgd3JpdGVzKSBhcmUgbm90IG5lZWRl ZCBoZXJlLg0KKyAgIHdyaXRlYih2YWwsIGN0bCk7DQorfQ0KKw0KKw0KKy8v DQorLy8gRGVzY3JpcHRpb246IFJlYWQgYSBieXRlIGZyb20gSUlDIGhhcmR3 YXJlDQorLy8NCitzdGF0aWMgaW50IGlpY19pYm1vY3BfZ2V0Ynl0ZSh2b2lk ICpkYXRhLCBpbnQgY3RsKQ0KK3sNCisgICBpbnQgdmFsOw0KKw0KKyAgIHZh bCA9IHJlYWRiKGN0bCk7DQorICAgcmV0dXJuICh2YWwpOw0KK30NCisNCisN CisvLw0KKy8vIERlc2NyaXB0aW9uOiBSZXR1cm4gb3VyIHNsYXZlIGFkZHJl c3MuICBUaGlzIGlzIHRoZSBhZGRyZXNzDQorLy8gcHV0IG9uIHRoZSBJMkMg YnVzIHdoZW4gYW5vdGhlciBtYXN0ZXIgb24gdGhlIGJ1cyB3YW50cyB0byBh ZGRyZXNzIHVzDQorLy8gYXMgYSBzbGF2ZQ0KKy8vDQorc3RhdGljIGludCBp aWNfaWJtb2NwX2dldG93bih2b2lkICpkYXRhKQ0KK3sNCisgICByZXR1cm4o KChzdHJ1Y3QgaWljX2libSAqKShkYXRhKSktPmlpY19vd24pOw0KK30NCisN CisNCisvLw0KKy8vIERlc2NyaXB0aW9uOiBSZXR1cm4gdGhlIGNsb2NrIHJh dGUNCisvLw0KK3N0YXRpYyBpbnQgaWljX2libW9jcF9nZXRjbG9jayh2b2lk ICpkYXRhKQ0KK3sNCisgICByZXR1cm4oKChzdHJ1Y3QgaWljX2libSAqKShk YXRhKSktPmlpY19jbG9jayk7DQorfQ0KKw0KKw0KKyNpZiAwDQorc3RhdGlj IHZvaWQgaWljX2libW9jcF9zbGVlcCh1bnNpZ25lZCBsb25nIHRpbWVvdXQp DQorew0KKyAgIHNjaGVkdWxlX3RpbWVvdXQoIHRpbWVvdXQgKiBIWik7DQor fQ0KKyNlbmRpZg0KKw0KKw0KKy8vDQorLy8gRGVzY3JpcHRpb246ICBQdXQg dGhpcyBwcm9jZXNzIHRvIHNsZWVwLiAgV2Ugd2lsbCB3YWtlIHVwIHdoZW4g dGhlDQorLy8gSUlDIGNvbnRyb2xsZXIgaW50ZXJydXB0cy4NCisvLw0KK3N0 YXRpYyB2b2lkIGlpY19pYm1vY3Bfd2FpdGZvcnBpbih2b2lkICpkYXRhKSB7 DQorDQorICAgaW50IHRpbWVvdXQgPSAyOw0KKyAgIHN0cnVjdCBpaWNfaWJt ICpwcml2X2RhdGEgPSBkYXRhOw0KKw0KKyAgIC8vDQorICAgLy8gSWYgaW50 ZXJydXB0cyBhcmUgZW5hYmxlZCAod2hpY2ggdGhleSBhcmUpLCB0aGVuIHB1 dCB0aGUgcHJvY2VzcyB0bw0KKyAgIC8vIHNsZWVwLiAgVGhpcyBwcm9jZXNz IHdpbGwgYmUgYXdha2VuZWQgYnkgdHdvIGV2ZW50cyAtLSBlaXRoZXIgdGhl DQorICAgLy8gdGhlIElJQyBwZXJpcGhlcmFsIGludGVycnVwdHMgb3IgdGhl IHRpbWVvdXQgZXhwaXJlcy4gDQorICAgLy8NCisgICBpZiAocHJpdl9kYXRh LT5paWNfaXJxID4gMCkgew0KKyAgICAgIGxvY2FsX2lycV9kaXNhYmxlKCk7 DQorICAgICAgaWYgKGlpY19wZW5kaW5nID09IDApIHsNCisgIAkgaW50ZXJy dXB0aWJsZV9zbGVlcF9vbl90aW1lb3V0KCYoaWljX3dhaXRbcHJpdl9kYXRh LT5pbmRleF0pLCB0aW1lb3V0KkhaICk7DQorICAgICAgfSBlbHNlDQorIAkg aWljX3BlbmRpbmcgPSAwOw0KKyAgICAgIGxvY2FsX2lycV9lbmFibGUoKTsN CisgICB9IGVsc2Ugew0KKyAgICAgIC8vDQorICAgICAgLy8gSWYgaW50ZXJy dXB0cyBhcmUgbm90IGVuYWJsZWQgdGhlbiBkZWxheSBmb3IgYSByZWFzb25h YmxlIGFtb3VudA0KKyAgICAgIC8vIG9mIHRpbWUgYW5kIHJldHVybi4gIFdl IGV4cGVjdCB0aGF0IGJ5IHRpbWUgd2UgcmV0dXJuIHRvIHRoZSBjYWxsaW5n DQorICAgICAgLy8gZnVuY3Rpb24gdGhhdCB0aGUgSUlDIGhhcyBmaW5pc2hl ZCBvdXIgcmVxdWVzdGVkIHRyYW5zYWN0aW9uIGFuZA0KKyAgICAgIC8vIHRo ZSBzdGF0dXMgYml0IHJlZmxlY3RzIHRoaXMuDQorICAgICAgLy8NCisgICAg ICAvLyB1ZGVsYXkgaXMgcHJvYmFibHkgbm90IHRoZSBiZXN0IGNob2ljZSBm b3IgdGhpcyBzaW5jZSBpdCBpcw0KKyAgICAgIC8vIHRoZSBlcXVpdmFsZW50 IG9mIGEgYnVzeSB3YWl0DQorICAgICAgLy8NCisgICAgICB1ZGVsYXkoMTAw KTsNCisgICB9DQorICAgLy9wcmludGsoImlpY19pYm1vY3Bfd2FpdGZvcnBp bjogZXhpdHRpbmdcbiIpOw0KK30NCisNCisNCisvLw0KKy8vIERlc2NyaXB0 aW9uOiBUaGUgcmVnaXN0ZXJlZCBpbnRlcnJ1cHQgaGFuZGxlcg0KKy8vDQor c3RhdGljIHZvaWQgaWljX2libW9jcF9oYW5kbGVyKGludCB0aGlzX2lycSwg dm9pZCAqZGV2X2lkLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykgDQorew0KKyAg IGludCByZXQ7DQorICAgc3RydWN0IGlpY19yZWdzICppaWM7DQorICAgc3Ry dWN0IGlpY19pYm0gKnByaXZfZGF0YSA9IGRldl9pZDsNCisgICBpaWMgPSAo c3RydWN0IGlpY19yZWdzICopIHByaXZfZGF0YS0+aWljX2Jhc2U7DQorICAg aWljX3BlbmRpbmcgPSAxOw0KKyAgIERFQjIocHJpbnRrKCJpaWNfaWJtb2Nw X2hhbmRsZXI6IGluIGludGVycnVwdCBoYW5kbGVyXG4iKSk7DQorICAgLy8g UmVhZCBzdGF0dXMgcmVnaXN0ZXINCisgICByZXQgPSByZWFkYigoaW50KSAm KGlpYy0+c3RzKSk7DQorICAgREVCMihwcmludGsoImlpY19pYm1vY3BfaGFu ZGxlcjogc3RhdHVzID0gJXhcbiIsIHJldCkpOw0KKyAgIC8vIENsZWFyIHN0 YXR1cyByZWdpc3Rlci4gIFNlZSBJQk0gUFBDIDQwNSByZWZlcmVuY2UgbWFu dWFsIGZvciBkZXRhaWxzDQorICAgd3JpdGViKDB4MGEsIChpbnQpICYoaWlj LT5zdHMpKTsNCisgICB3YWtlX3VwX2ludGVycnVwdGlibGUoJihpaWNfd2Fp dFtwcml2X2RhdGEtPmluZGV4XSkpOw0KK30NCisNCisNCisvLw0KKy8vIERl c2NyaXB0aW9uOiBUaGlzIGZ1bmN0aW9uIGlzIHZlcnkgaGFyZHdhcmUgZGVw ZW5kZW50LiAgRmlyc3QsIHdlIGxvY2sNCisvLyB0aGUgcmVnaW9uIG9mIG1l bW9yeSB3aGVyZSBvdXQgcmVnaXN0ZXJzIGV4aXN0LiAgTmV4dCwgd2UgcmVx dWVzdCBvdXINCisvLyBpbnRlcnJ1cHQgbGluZSBhbmQgcmVnaXN0ZXIgaXRz IGFzc29jaWF0ZWQgaGFuZGxlci4gIE91ciBJSUMgcGVyaXBoZXJhbA0KKy8v IHVzZXMgaW50ZXJydXB0IG51bWJlciAyLCBhcyBzcGVjaWZpZWQgYnkgdGhl IDQwNSByZWZlcmVuY2UgbWFudWFsLg0KKy8vDQorc3RhdGljIGludCBpaWNf aHdfcmVzcmNfaW5pdChpbnQgaW5zdGFuY2UpDQorew0KKw0KKyAgIERFQihw cmludGsoImlpY19od19yZXNyY19pbml0OiBQaHlzaWNhbCBCYXNlIGFkZHJl c3M6IDB4JXhcbiIsICh1MzIpIElJQ19BRERSW2luc3RhbmNlXSApKTsNCisg ICBpaWNfaWJtb2NwX2FkYXBzW2luc3RhbmNlXS0+aWljX2Jhc2UgPSAodTMy KWlvcmVtYXAoKHVuc2lnbmVkIGxvbmcpSUlDX0FERFJbaW5zdGFuY2VdLFBB R0VfU0laRSk7DQorDQorICAgREVCKHByaW50aygiaWljX2h3X3Jlc3JjX2lu aXQ6IGlvcmVtYXBwZWQgYmFzZSBhZGRyZXNzOiAweCV4XG4iLCBpaWNfaWJt b2NwX2FkYXBzW2luc3RhbmNlXS0+aWljX2Jhc2UpKTsNCisNCisgICBpZiAo aWljX2libW9jcF9hZGFwc1tpbnN0YW5jZV0tPmlpY19pcnEgPiAwKSB7DQor CQ0KKyAgICAgIGlmIChyZXF1ZXN0X2lycShpaWNfaWJtb2NwX2FkYXBzW2lu c3RhbmNlXS0+aWljX2lycSwgaWljX2libW9jcF9oYW5kbGVyLA0KKyAgICAg ICAwLCAiSUJNIE9DUCBJSUMiLCBpaWNfaWJtb2NwX2FkYXBzW2luc3RhbmNl XSkgPCAwKSB7DQorICAgICAgICAgcHJpbnRrKEtFUk5fRVJSICJpaWNfaHdf cmVzcmNfaW5pdDogUmVxdWVzdCBpcnElZCBmYWlsZWRcbiIsDQorICAgICAg ICAgIGlpY19pYm1vY3BfYWRhcHNbaW5zdGFuY2VdLT5paWNfaXJxKTsNCisJ IGlpY19pYm1vY3BfYWRhcHNbaW5zdGFuY2VdLT5paWNfaXJxID0gMDsNCisg ICAgICB9IGVsc2Ugew0KKyAgICAgICAgIERFQjMocHJpbnRrKCJpaWNfaHdf cmVzcmNfaW5pdDogRW5hYmxlZCBpbnRlcnJ1cHRcbiIpKTsNCisgICAgICB9 DQorICAgfQ0KKyAgIHJldHVybiAwOw0KK30NCisNCisNCisvLw0KKy8vIERl c2NyaXB0aW9uOiBSZWxlYXNlIGlycSBhbmQgbWVtb3J5DQorLy8NCitzdGF0 aWMgdm9pZCBpaWNfaWJtb2NwX3JlbGVhc2Uodm9pZCkNCit7DQorICAgaW50 IGk7DQorDQorICAgZm9yKGk9MDsgaTxJSUNfTlVNUzsgaSsrKSB7DQorICAg ICAgc3RydWN0IGlpY19pYm0gKnByaXZfZGF0YSA9IChzdHJ1Y3QgaWljX2li bSAqKWlpY19pYm1vY3BfZGF0YVtpXS0+ZGF0YTsNCisgICAgICBpZiAocHJp dl9kYXRhLT5paWNfaXJxID4gMCkgew0KKyAgICAgICAgIGRpc2FibGVfaXJx KHByaXZfZGF0YS0+aWljX2lycSk7DQorICAgICAgICAgZnJlZV9pcnEocHJp dl9kYXRhLT5paWNfaXJxLCAwKTsNCisgICAgICB9DQorICAgICAga2ZyZWUo aWljX2libW9jcF9kYXRhW2ldKTsNCisgICAgICBrZnJlZShpaWNfaWJtb2Nw X29wc1tpXSk7DQorICAgfQ0KK30NCisNCisNCisvLw0KKy8vIERlc2NyaXB0 aW9uOiBEb2VzIG5vdGhpbmcNCisvLw0KK3N0YXRpYyBpbnQgaWljX2libW9j cF9yZWcoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkNCit7DQorCXJldHVy biAwOw0KK30NCisNCisNCisvLw0KKy8vIERlc2NyaXB0aW9uOiBEb2VzIG5v dGhpbmcNCisvLw0KK3N0YXRpYyBpbnQgaWljX2libW9jcF91bnJlZyhzdHJ1 Y3QgaTJjX2NsaWVudCAqY2xpZW50KQ0KK3sNCisJcmV0dXJuIDA7DQorfQ0K Kw0KKw0KKy8vDQorLy8gRGVzY3JpcHRpb246IElmIHRoaXMgY29tcGlsZWQg YXMgYSBtb2R1bGUsIHRoZW4gaW5jcmVtZW50IHRoZSBjb3VudA0KKy8vDQor c3RhdGljIHZvaWQgaWljX2libW9jcF9pbmNfdXNlKHN0cnVjdCBpMmNfYWRh cHRlciAqYWRhcCkNCit7DQorI2lmZGVmIE1PRFVMRQ0KKwlNT0RfSU5DX1VT RV9DT1VOVDsNCisjZW5kaWYNCit9DQorDQorDQorLy8NCisvLyBEZXNjcmlw dGlvbjogSWYgdGhpcyBpcyBhIG1vZHVsZSwgdGhlbiBkZWNyZW1lbnQgdGhl IGNvdW50DQorLy8NCitzdGF0aWMgdm9pZCBpaWNfaWJtb2NwX2RlY191c2Uo c3RydWN0IGkyY19hZGFwdGVyICphZGFwKQ0KK3sNCisjaWZkZWYgTU9EVUxF DQorCU1PRF9ERUNfVVNFX0NPVU5UOw0KKyNlbmRpZg0KK30NCisNCisvLw0K Ky8vIERlc2NyaXB0aW9uOiBDYWxsZWQgd2hlbiB0aGUgbW9kdWxlIGlzIGxv YWRlZC4gIFRoaXMgZnVuY3Rpb24gc3RhcnRzIHRoZQ0KKy8vIGNhc2NhZGUg b2YgY2FsbHMgdXAgdGhyb3VnaCB0aGUgaGVpcmFyY2h5IG9mIGkyYyBtb2R1 bGVzIChpLmUuIHVwIHRvIHRoZQ0KKy8vICBhbGdvcml0aG0gbGF5ZXIgYW5k IGludG8gdG8gdGhlIGNvcmUgbGF5ZXIpDQorLy8NCitpbnQgX19pbml0IGlp Y19pYm1vY3BfaW5pdCh2b2lkKSANCit7DQorICAgaW50IGk7DQorDQorICAg cHJpbnRrKEtFUk5fSU5GTyAiaWljX2libW9jcF9pbml0OiBJQk0gb24tY2hp cCBpaWMgYWRhcHRlciBtb2R1bGVcbiIpOw0KKyANCisgICBmb3IoaT0wOyBp PElJQ19OVU1TOyBpKyspIHsNCisgICAgICBpaWNfaWJtb2NwX2RhdGFbaV0g PSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgaTJjX2FsZ29faWljX2RhdGEpLEdG UF9LRVJORUwpOw0KKyAgICAgIGlmKGlpY19pYm1vY3BfZGF0YVtpXSA9PSBO VUxMKSB7DQorICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQorICAgICAgfQ0K KyAgICAgIG1lbXNldChpaWNfaWJtb2NwX2RhdGFbaV0sIDAsIHNpemVvZihz dHJ1Y3QgaTJjX2FsZ29faWljX2RhdGEpKTsNCisgICAgICANCisgICAgICBz d2l0Y2ggKGkpIHsNCisJICAgICAgY2FzZSAwOg0KKwkgICAgICAgaWljX2li bW9jcF9hZGFwc1tpXS0+aWljX2lycSA9IElJQ19JUlEoMCk7DQorCSAgICAg IGJyZWFrOw0KKwkgICAgICBjYXNlIDE6DQorCSAgICAgICBpaWNfaWJtb2Nw X2FkYXBzW2ldLT5paWNfaXJxID0gSUlDX0lSUSgxKTsNCisJICAgICAgYnJl YWs7DQorICAgICAgfQ0KKyAgICAgIGlpY19pYm1vY3BfYWRhcHNbaV0tPmlp Y19jbG9jayA9IElJQ19DTE9DSzsNCisgICAgICBpaWNfaWJtb2NwX2FkYXBz W2ldLT5paWNfb3duID0gSUlDX09XTjsgDQorICAgICAgaWljX2libW9jcF9h ZGFwc1tpXS0+aW5kZXggPSBpOw0KKyANCisgICAgICBERUIocHJpbnRrKCJp cnEgJXhcbiIsIGlpY19pYm1vY3BfYWRhcHNbaV0tPmlpY19pcnEpKTsNCisg ICAgICBERUIocHJpbnRrKCJjbG9jayAleFxuIiwgaWljX2libW9jcF9hZGFw c1tpXS0+aWljX2Nsb2NrKSk7DQorICAgICAgREVCKHByaW50aygib3duICV4 XG4iLCBpaWNfaWJtb2NwX2FkYXBzW2ldLT5paWNfb3duKSk7DQorICAgICAg REVCKHByaW50aygiaW5kZXggJXhcbiIsIGlpY19pYm1vY3BfYWRhcHNbaV0t PmluZGV4KSk7DQorDQorDQorICAgICAgaWljX2libW9jcF9kYXRhW2ldLT5k YXRhID0gKHN0cnVjdCBpaWNfcmVncyAqKWlpY19pYm1vY3BfYWRhcHNbaV07 IA0KKyAgICAgIGlpY19pYm1vY3BfZGF0YVtpXS0+c2V0aWljID0gaWljX2li bW9jcF9zZXRieXRlOw0KKyAgICAgIGlpY19pYm1vY3BfZGF0YVtpXS0+Z2V0 aWljID0gaWljX2libW9jcF9nZXRieXRlOw0KKyAgICAgIGlpY19pYm1vY3Bf ZGF0YVtpXS0+Z2V0b3duID0gaWljX2libW9jcF9nZXRvd247DQorICAgICAg aWljX2libW9jcF9kYXRhW2ldLT5nZXRjbG9jayA9IGlpY19pYm1vY3BfZ2V0 Y2xvY2s7DQorICAgICAgaWljX2libW9jcF9kYXRhW2ldLT53YWl0Zm9ycGlu ID0gaWljX2libW9jcF93YWl0Zm9ycGluOw0KKyAgICAgIGlpY19pYm1vY3Bf ZGF0YVtpXS0+dWRlbGF5ID0gODA7DQorICAgICAgaWljX2libW9jcF9kYXRh W2ldLT5tZGVsYXkgPSA4MDsNCisgICAgICBpaWNfaWJtb2NwX2RhdGFbaV0t PnRpbWVvdXQgPSAxMDA7DQorICAgICAgDQorICAgICAgICAgICAgaWljX2li bW9jcF9vcHNbaV0gPSBrbWFsbG9jKHNpemVvZihzdHJ1Y3QgaTJjX2FkYXB0 ZXIpLCBHRlBfS0VSTkVMKTsNCisgICAgICBpZihpaWNfaWJtb2NwX29wc1tp XSA9PSBOVUxMKSB7DQorICAgICAgICAgcmV0dXJuIC1FTk9NRU07DQorICAg ICAgfQ0KKyAgICAgIG1lbXNldChpaWNfaWJtb2NwX29wc1tpXSwgMCwgc2l6 ZW9mKHN0cnVjdCBpMmNfYWRhcHRlcikpOw0KKyAgICAgIHN0cmNweShpaWNf aWJtb2NwX29wc1tpXS0+bmFtZSwgIklCTSBPQ1AgSUlDIGFkYXB0ZXIiKTsN CisgICAgICBpaWNfaWJtb2NwX29wc1tpXS0+aWQgPSBJMkNfSFdfT0NQOw0K KyAgICAgIGlpY19pYm1vY3Bfb3BzW2ldLT5hbGdvID0gTlVMTDsNCisgICAg ICBpaWNfaWJtb2NwX29wc1tpXS0+YWxnb19kYXRhID0gaWljX2libW9jcF9k YXRhW2ldOw0KKyAgICAgIGlpY19pYm1vY3Bfb3BzW2ldLT5pbmNfdXNlID0g aWljX2libW9jcF9pbmNfdXNlOw0KKyAgICAgIGlpY19pYm1vY3Bfb3BzW2ld LT5kZWNfdXNlID0gaWljX2libW9jcF9kZWNfdXNlOw0KKyAgICAgIGlpY19p Ym1vY3Bfb3BzW2ldLT5jbGllbnRfcmVnaXN0ZXIgPSBpaWNfaWJtb2NwX3Jl ZzsNCisgICAgICBpaWNfaWJtb2NwX29wc1tpXS0+Y2xpZW50X3VucmVnaXN0 ZXIgPSBpaWNfaWJtb2NwX3VucmVnOw0KKyAgICAgICANCisgICAgICANCisg ICAgICBpbml0X3dhaXRxdWV1ZV9oZWFkKCYoaWljX3dhaXRbaV0pKTsNCisg ICAgICBpZiAoaWljX2h3X3Jlc3JjX2luaXQoaSkgPT0gMCkgew0KKyAgICAg ICAgIGlmIChpMmNfaWljX2FkZF9idXMoaWljX2libW9jcF9vcHNbaV0pIDwg MCkNCisgICAgICAgICByZXR1cm4gLUVOT0RFVjsNCisgICAgICB9IGVsc2Ug ew0KKyAgICAgICAgIHJldHVybiAtRU5PREVWOw0KKyAgICAgIH0NCisgICAg ICBERUIocHJpbnRrKEtFUk5fSU5GTyAiaWljX2libW9jcF9pbml0OiBmb3Vu ZCBkZXZpY2UgYXQgJSN4LlxuXG4iLCBpaWNfaWJtb2NwX2FkYXBzW2ldLT5p aWNfYmFzZSkpOw0KKyAgIH0NCisgICByZXR1cm4gMDsNCit9DQorDQorDQor c3RhdGljIHZvaWQgaWljX2libW9jcF9leGl0KHZvaWQpDQorew0KKyAgIGlu dCBpOw0KKw0KKyAgIGZvcihpPTA7IGk8SUlDX05VTVM7IGkrKykgew0KKyAg ICAgIGkyY19paWNfZGVsX2J1cyhpaWNfaWJtb2NwX29wc1tpXSk7DQorICAg fQ0KKyAgIGlpY19pYm1vY3BfcmVsZWFzZSgpOw0KK30NCisNCisvLw0KKy8v IElmIG1vZHVsZXMgaXMgTk9UIGRlZmluZWQgd2hlbiB0aGlzIGZpbGUgaXMg Y29tcGlsZWQsIHRoZW4gdGhlIE1PRFVMRV8qDQorLy8gbWFjcm9zIHdpbGwg cmVzb2x2ZSB0byBub3RoaW5nDQorLy8NCitNT0RVTEVfQVVUSE9SKCJNb250 YVZpc3RhIFNvZnR3YXJlIDx3d3cubXZpc3RhLmNvbT4iKTsNCitNT0RVTEVf REVTQ1JJUFRJT04oIkkyQy1CdXMgYWRhcHRlciByb3V0aW5lcyBmb3IgUFBD IDQwNSBJSUMgYnVzIGFkYXB0ZXIiKTsNCitNT0RVTEVfUEFSTShiYXNlLCAi aSIpOw0KK01PRFVMRV9QQVJNKGlycSwgImkiKTsNCitNT0RVTEVfUEFSTShj bG9jaywgImkiKTsNCitNT0RVTEVfUEFSTShvd24sICJpIik7DQorTU9EVUxF X1BBUk0oaTJjX2RlYnVnLCJpIik7DQorDQorDQorbW9kdWxlX2luaXQoaWlj X2libW9jcF9pbml0KTsNCittb2R1bGVfZXhpdChpaWNfaWJtb2NwX2V4aXQp OyANCg== --0-898942119-1032129462=:7637-- - 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/