[PATCH] x86 setup code cleanup.

Dave Jones (dave@denial.force9.co.uk)
Thu, 30 Dec 1999 03:45:01 +0000 (GMT)


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.

--279710208-1564925956-946525501=:1225
Content-Type: TEXT/PLAIN; charset=US-ASCII

Hi all,
For review, here's a patch against arch/i386/kernel/setup.c from 2.3.35

o Added intel_model()
This makes identify_cpu() a more readable, and cuts out some
checks for X86_VENDOR_INTEL
o Improved Intel Celeron type identification
Generated code should now do one less compare.
[This code untested, Celeron owners, please check /proc/cpuinfo]
o Intel Pentium 3 PSN uses a combined 'if' rather than two
seperates.
o identify_cpu() now uses a switch rather than lots of if's.
Much more readable, and cleaner.
o get_cpuinfo() now just checks the vendor, no longer the model.
If a CPU doesn't support a feature, it won't get put into
/proc/cpuinfo anyhow.
o White space cleanup

Comments?

-- 
Dave..

--279710208-1564925956-946525501=:1225 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="setup.c.diff" Content-Transfer-Encoding: BASE64 Content-ID: <Pine.LNX.4.21.9912300345010.1225@nemesis.local> Content-Description: Content-Disposition: attachment; filename="setup.c.diff"

LS0tIHNldHVwLmMub3JpZwlXZWQgRGVjIDI5IDIyOjQ1OjIyIDE5OTkNCisr KyBzZXR1cC5jCVRodSBEZWMgMzAgMDE6NDA6NTEgMTk5OQ0KQEAgLTIwNCw3 ICsyMDQsNyBAQA0KICAqLw0KIAlvdXRiX3AoU0lPX0RFVl9TRUwsIFNJT19J TkRFWCk7DQogCW91dGJfcChTSU9fR1BfREVWLCBTSU9fREFUQSk7CS8qIFRh bGsgdG8gR1BJTyByZWdzLiAqLw0KLSAgICANCisNCiAJb3V0Yl9wKFNJT19E RVZfTVNCLCBTSU9fSU5ERVgpOw0KIAlvdXRiX3AoU0lPX0dQX01TQiwgU0lP X0RBVEEpOwkvKiBNU0Igb2YgR1BJTyBiYXNlIGFkZHJlc3MgKi8NCiANCkBA IC0yMTMsNyArMjEzLDcgQEANCiANCiAJb3V0Yl9wKFNJT19ERVZfRU5CLCBT SU9fSU5ERVgpOw0KIAlvdXRiX3AoMSwgU0lPX0RBVEEpOwkJLyogRW5hYmxl IEdQSU8gcmVnaXN0ZXJzLiAqLw0KLSAgICANCisgDQogLyoNCiAgKiBOb3cs IHdlIGhhdmUgdG8gbWFwIHRoZSBwb3dlciBtYW5hZ2VtZW50IHNlY3Rpb24g dG8gd3JpdGUNCiAgKiBhIGJpdCB3aGljaCBlbmFibGVzIGFjY2VzcyB0byB0 aGUgR1BJTyByZWdpc3RlcnMuDQpAQCAtMjI0LDE5ICsyMjQsMTkgQEANCiAN CiAJb3V0Yl9wKFNJT19ERVZfTVNCLCBTSU9fSU5ERVgpOw0KIAlvdXRiX3Ao U0lPX1BNX01TQiwgU0lPX0RBVEEpOwkvKiBNU0Igb2YgUE0gYmFzZSBhZGRy ZXNzICovDQotICAgIA0KKw0KIAlvdXRiX3AoU0lPX0RFVl9MU0IsIFNJT19J TkRFWCk7DQogCW91dGJfcChTSU9fUE1fTFNCLCBTSU9fREFUQSk7CS8qIExT QiBvZiBQTSBiYXNlIGFkZHJlc3MgKi8NCiANCiAJb3V0Yl9wKFNJT19ERVZf RU5CLCBTSU9fSU5ERVgpOw0KIAlvdXRiX3AoMSwgU0lPX0RBVEEpOwkJLyog RW5hYmxlIFBNIHJlZ2lzdGVycy4gKi8NCi0gICAgDQorDQogLyoNCiAgKiBO b3csIHdyaXRlIHRoZSBQTSByZWdpc3RlciB3aGljaCBlbmFibGVzIHRoZSBH UElPIHJlZ2lzdGVycy4NCiAgKi8NCiAJb3V0Yl9wKFNJT19QTV9GRVIyLCBT SU9fUE1fSU5ERVgpOw0KIAlvdXRiX3AoU0lPX1BNX0dQX0VOLCBTSU9fUE1f REFUQSk7DQotICAgIA0KKyANCiAvKg0KICAqIE5vdywgaW5pdGlhbGl6ZSB0 aGUgR1BJTyByZWdpc3RlcnMuDQogICogV2Ugd2FudCB0aGVtIGFsbCB0byBi ZSBpbnB1dHMgd2hpY2ggaXMgdGhlDQpAQCAtMzgxLDEzICszODEsMTMgQEAN CiANCiANCiB2b2lkIF9faW5pdCBhZGRfbWVtb3J5X3JlZ2lvbih1bnNpZ25l ZCBsb25nIHN0YXJ0LA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBsb25nIHNpemUsIGludCB0eXBlKQ0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGxvbmcgc2l6ZSwgaW50 IHR5cGUpDQogew0KIAlpbnQgeCA9IGU4MjAubnJfbWFwOw0KIA0KIAlpZiAo eCA9PSBFODIwTUFYKSB7DQotCSAgICBwcmludGsoIk9vb3BzISBUb28gbWFu eSBlbnRyaWVzIGluIHRoZSBtZW1vcnkgbWFwIVxuIik7DQotCSAgICByZXR1 cm47DQorCQlwcmludGsoIk9vb3BzISBUb28gbWFueSBlbnRyaWVzIGluIHRo ZSBtZW1vcnkgbWFwIVxuIik7DQorCQlyZXR1cm47DQogCX0NCiANCiAJZTgy MC5tYXBbeF0uYWRkciA9IHN0YXJ0Ow0KQEAgLTcxOCw5ICs3MTgsOSBAQA0K IAkJfQ0KIAkJZWxzZSB7DQogCQkJcHJpbnRrKCJpbml0cmQgZXh0ZW5kcyBi ZXlvbmQgZW5kIG9mIG1lbW9yeSAiDQotCQkJICAgICIoMHglMDhseCA+IDB4 JTA4bHgpXG5kaXNhYmxpbmcgaW5pdHJkXG4iLA0KLQkJCSAgICBJTklUUkRf U1RBUlQgKyBJTklUUkRfU0laRSwNCi0JCQkgICAgbWF4X2xvd19wZm4gPDwg UEFHRV9TSElGVCk7DQorCQkJCSIoMHglMDhseCA+IDB4JTA4bHgpXG5kaXNh YmxpbmcgaW5pdHJkXG4iLA0KKwkJCQlJTklUUkRfU1RBUlQgKyBJTklUUkRf U0laRSwNCisJCQkJbWF4X2xvd19wZm4gPDwgUEFHRV9TSElGVCk7DQogCQkJ aW5pdHJkX3N0YXJ0ID0gMDsNCiAJCX0NCiAJfQ0KQEAgLTg5MywxNiArODkz LDE2IEBADQogCWNsaSgpOw0KIAljY3IzID0gZ2V0Q3g4NihDWDg2X0NDUjMp Ow0KIAlzZXRDeDg2KENYODZfQ0NSMywgY2NyMyBeIDB4ODApOw0KLQlnZXRD eDg2KDB4YzApOyAgIC8qIGR1bW15IHRvIGNoYW5nZSBidXMgKi8NCisJZ2V0 Q3g4NigweGMwKTsJLyogZHVtbXkgdG8gY2hhbmdlIGJ1cyAqLw0KIA0KLQlp ZiAoZ2V0Q3g4NihDWDg2X0NDUjMpID09IGNjcjMpIHsgICAgICAgLyogbm8g REVWSUQgcmVncy4gKi8NCisJaWYgKGdldEN4ODYoQ1g4Nl9DQ1IzKSA9PSBj Y3IzKSB7CS8qIG5vIERFVklEIHJlZ3MuICovDQogCQljY3IyID0gZ2V0Q3g4 NihDWDg2X0NDUjIpOw0KIAkJc2V0Q3g4NihDWDg2X0NDUjIsIGNjcjIgXiAw eDA0KTsNCiAJCWdldEN4ODYoMHhjMCk7ICAvKiBkdW1teSAqLw0KIA0KIAkJ aWYgKGdldEN4ODYoQ1g4Nl9DQ1IyKSA9PSBjY3IyKSAvKiBvbGQgQ3g0ODZT TEMvRExDICovDQogCQkJKmRpcjAgPSAweGZkOw0KLQkJZWxzZSB7ICAgICAg ICAgICAgICAgICAgICAgICAgICAvKiBDeDQ4NlMgQSBzdGVwICovDQorCQll bHNlIHsJCQkJCQkJLyogQ3g0ODZTIEEgc3RlcCAqLw0KIAkJCXNldEN4ODYo Q1g4Nl9DQ1IyLCBjY3IyKTsNCiAJCQkqZGlyMCA9IDB4ZmU7DQogCQl9DQpA QCAtOTQ5LDggKzk0OSw4IEBADQogDQogCWRvX2N5cml4X2RldmlkKCZkaXIw LCAmZGlyMSk7DQogDQotCUN4ODZfZGlyMF9tc2IgPSBkaXIwX21zbiA9IGRp cjAgPj4gNDsgLyogaWRlbnRpZmllcyBDUFUgImZhbWlseSIgICAqLw0KLQlk aXIwX2xzbiA9IGRpcjAgJiAweGY7ICAgICAgICAgICAgICAgIC8qIG1vZGVs IG9yIGNsb2NrIG11bHRpcGxpZXIgKi8NCisJQ3g4Nl9kaXIwX21zYiA9IGRp cjBfbXNuID0gZGlyMCA+PiA0OyAvKiBpZGVudGlmaWVzIENQVSAiZmFtaWx5 IgkqLw0KKwlkaXIwX2xzbiA9IGRpcjAgJiAweGY7CQkJCS8qIG1vZGVsIG9y IGNsb2NrIG11bHRpcGxpZXIgKi8NCiANCiAJLyogY29tbW9uIGNhc2Ugc3Rl cCBudW1iZXIvcmV2IC0tIGV4Y2VwdGlvbnMgaGFuZGxlZCBiZWxvdyAqLw0K IAljLT54ODZfbW9kZWwgPSAoZGlyMSA+PiA0KSArIDE7DQpAQCAtOTg2LDcg Kzk4Niw3IEBADQogCQkJQ3g4Nl9jYlswXSA9ICdMJzsNCiAJCQlwID0gQ3g4 Nl9jYjsNCiAJCQkoYy0+eDg2X21vZGVsKSsrOw0KLQkJfSBlbHNlICAgICAg ICAgICAgIC8qIDY4NiAqLw0KKwkJfSBlbHNlCQkJCS8qIDY4NiAqLw0KIAkJ CXAgPSBDeDg2X2NiKzE7DQogCQkvKiBFbXVsYXRlIE1UUlJzIHVzaW5nIEN5 cml4J3MgQVJScy4gKi8NCiAJCWMtPng4Nl9jYXBhYmlsaXR5IHw9IFg4Nl9G RUFUVVJFX01UUlI7DQpAQCAtMTAxNCw4ICsxMDE0LDcgQEANCiAJCQlnZXRf bW9kZWxfbmFtZShjKTsgIC8qIGdldCBDUFUgbWFya2V0aW5nIG5hbWUgKi8N CiAJCQljLT54ODZfY2FwYWJpbGl0eSY9flg4Nl9GRUFUVVJFX1RTQzsNCiAJ CQlyZXR1cm47DQotCQl9DQotCQllbHNlIHsgIC8qIE1lZGlhR1ggKi8NCisJ CX0gZWxzZSB7ICAvKiBNZWRpYUdYICovDQogCQkJQ3g4Nl9jYlsyXSA9IChk aXIwX2xzbiAmIDEpID8gJzMnIDogJzQnOw0KIAkJCXAgPSBDeDg2X2NiKzI7 DQogCQkJYy0+eDg2X21vZGVsID0gKGRpcjEgJiAweDIwKSA/IDEgOiAyOw0K QEAgLTEwMjMsMTMgKzEwMjIsMTMgQEANCiAJCX0NCiAJCWJyZWFrOw0KIA0K LSAgICAgICAgY2FzZSA1OiAvKiA2eDg2TVgvTSBJSSAqLw0KLQkJaWYgKGRp cjEgPiA3KSBkaXIwX21zbisrOyAgLyogTSBJSSAqLw0KLQkJZWxzZSBjLT5j b21hX2J1ZyA9IDE7ICAgICAgLyogNng4Nk1YLCBpdCBoYXMgdGhlIGJ1Zy4g Ki8NCi0JCXRtcCA9ICghKGRpcjBfbHNuICYgNykgfHwgZGlyMF9sc24gJiAx KSA/IDIgOiAwOw0KKwljYXNlIDU6IC8qIDZ4ODZNWC9NIElJICovDQorCQlp ZiAoZGlyMSA+IDcpIGRpcjBfbXNuKys7CS8qIE0gSUkgKi8NCisJCWVsc2Ug Yy0+Y29tYV9idWcgPSAxOwkJLyogNng4Nk1YLCBpdCBoYXMgdGhlIGJ1Zy4g Ki8NCisJCQl0bXAgPSAoIShkaXIwX2xzbiAmIDcpIHx8IGRpcjBfbHNuICYg MSkgPyAyIDogMDsNCiAJCUN4ODZfY2JbdG1wXSA9IGN5cml4X21vZGVsX211 bHQyW2RpcjBfbHNuICYgN107DQogCQlwID0gQ3g4Nl9jYit0bXA7DQotICAg ICAgICAJaWYgKCgoZGlyMSAmIDB4MGYpID4gNCkgfHwgKChkaXIxICYgMHhm MCkgPT0gMHgyMCkpDQorCQlpZiAoKChkaXIxICYgMHgwZikgPiA0KSB8fCAo KGRpcjEgJiAweGYwKSA9PSAweDIwKSkNCiAJCQkoYy0+eDg2X21vZGVsKSsr Ow0KIAkJLyogRW11bGF0ZSBNVFJScyB1c2luZyBDeXJpeCdzIEFSUnMuICov DQogCQljLT54ODZfY2FwYWJpbGl0eSB8PSBYODZfRkVBVFVSRV9NVFJSOw0K QEAgLTExNzksNzggKzExNzgsNTMgQEANCiBzdGF0aWMgc3RydWN0IGNwdV9t b2RlbF9pbmZvIGNwdV9tb2RlbHNbXSBfX2luaXRkYXRhID0gew0KIAl7IFg4 Nl9WRU5ET1JfSU5URUwsCTQsDQogCSAgeyAiNDg2IERYLTI1LzMzIiwgIjQ4 NiBEWC01MCIsICI0ODYgU1giLCAiNDg2IERYLzIiLCAiNDg2IFNMIiwgDQot CSAgICAiNDg2IFNYLzIiLCBOVUxMLCAiNDg2IERYLzItV0IiLCAiNDg2IERY LzQiLCAiNDg2IERYLzQtV0IiLCBOVUxMLCANCi0JICAgIE5VTEwsIE5VTEws IE5VTEwsIE5VTEwsIE5VTEwgfX0sDQorCQkiNDg2IFNYLzIiLCBOVUxMLCAi NDg2IERYLzItV0IiLCAiNDg2IERYLzQiLCAiNDg2IERYLzQtV0IiLCBOVUxM LCANCisJCU5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwgfX0sDQogCXsg WDg2X1ZFTkRPUl9JTlRFTCwJNSwNCiAJICB7ICJQZW50aXVtIDYwLzY2IEEt c3RlcCIsICJQZW50aXVtIDYwLzY2IiwgIlBlbnRpdW0gNzUgLSAyMDAiLA0K LQkgICAgIk92ZXJEcml2ZSBQT0RQNVY4MyIsICJQZW50aXVtIE1NWCIsIE5V TEwsIE5VTEwsDQotCSAgICAiTW9iaWxlIFBlbnRpdW0gNzUgLSAyMDAiLCAi TW9iaWxlIFBlbnRpdW0gTU1YIiwgTlVMTCwgTlVMTCwgTlVMTCwNCi0JICAg IE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwgfX0sDQorCQkiT3ZlckRyaXZlIFBP RFA1VjgzIiwgIlBlbnRpdW0gTU1YIiwgTlVMTCwgTlVMTCwNCisJCSJNb2Jp bGUgUGVudGl1bSA3NSAtIDIwMCIsICJNb2JpbGUgUGVudGl1bSBNTVgiLCBO VUxMLCBOVUxMLCBOVUxMLA0KKwkJTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCB9 fSwNCiAJeyBYODZfVkVORE9SX0lOVEVMLAk2LA0KIAkgIHsgIlBlbnRpdW0g UHJvIEEtc3RlcCIsICJQZW50aXVtIFBybyIsIE5VTEwsICJQZW50aXVtIElJ IChLbGFtYXRoKSIsIA0KLQkgICAgTlVMTCwgIlBlbnRpdW0gSUkgKERlc2No dXRlcykiLCAiTW9iaWxlIFBlbnRpdW0gSUkiLCAiUGVudGl1bSBJSUkgKEth dG1haSkiLA0KLQkgICAgIlBlbnRpdW0gSUlJIChDb3BwZXJtaW5lKSIsIE5V TEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwgfX0sDQorCQlOVUxM LCAiUGVudGl1bSBJSSAoRGVzY2h1dGVzKSIsICJNb2JpbGUgUGVudGl1bSBJ SSIsICJQZW50aXVtIElJSSAoS2F0bWFpKSIsDQorCQkiUGVudGl1bSBJSUkg KENvcHBlcm1pbmUpIiwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwg TlVMTCB9fSwNCiAJeyBYODZfVkVORE9SX0FNRCwJNCwNCiAJICB7IE5VTEws IE5VTEwsIE5VTEwsICI0ODYgRFgvMiIsIE5VTEwsIE5VTEwsIE5VTEwsICI0 ODYgRFgvMi1XQiIsDQotCSAgICAiNDg2IERYLzQiLCAiNDg2IERYLzQtV0Ii LCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCAiQW01eDg2LVdUIiwNCi0JICAg ICJBbTV4ODYtV0IiIH19LA0KKwkJIjQ4NiBEWC80IiwgIjQ4NiBEWC80LVdC IiwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgIkFtNXg4Ni1XVCIsDQorCQki QW01eDg2LVdCIiB9fSwNCiAJeyBYODZfVkVORE9SX0FNRCwJNSwNCiAJICB7 ICJLNS9TU0E1IiwgIks1IiwNCi0JICAgICJLNSIsICJLNSIsIE5VTEwsIE5V TEwsDQotCSAgICAiSzYiLCAiSzYiLCAiSzYtMiIsDQotCSAgICAiSzYtMyIs IE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwgfX0sDQorCQki SzUiLCAiSzUiLCBOVUxMLCBOVUxMLA0KKwkJIks2IiwgIks2IiwgIks2LTIi LA0KKwkJIks2LTMiLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBO VUxMIH19LA0KIAl7IFg4Nl9WRU5ET1JfQU1ELAk2LA0KIAkgIHsgIkF0aGxv biIsICJBdGhsb24iLA0KLQkgICAgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwN Ci0JICAgIE5VTEwsIE5VTEwsIE5VTEwsDQotCSAgICBOVUxMLCBOVUxMLCBO VUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMIH19LA0KKwkJTlVMTCwgTlVM TCwgTlVMTCwgTlVMTCwNCisJCU5VTEwsIE5VTEwsIE5VTEwsDQorCQlOVUxM LCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMIH19LA0KIAl7 IFg4Nl9WRU5ET1JfVU1DLAk0LA0KIAkgIHsgTlVMTCwgIlU1RCIsICJVNVMi LCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLA0K LQkgICAgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCB9fSwN CisJCU5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwgfX0sDQog CXsgWDg2X1ZFTkRPUl9ORVhHRU4sCTUsDQogCSAgeyAiTng1ODYiLCBOVUxM LCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLA0K LQkgICAgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgTlVM TCB9fSwNCisJCU5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEws IE5VTEwgfX0sDQogfTsNCiANCi12b2lkIF9faW5pdCBpZGVudGlmeV9jcHUo c3RydWN0IGNwdWluZm9feDg2ICpjKQ0KKw0KK3N0YXRpYyB2b2lkIF9faW5p dCBpbnRlbF9tb2RlbChzdHJ1Y3QgY3B1aW5mb194ODYgKmMpDQogew0KIAlp bnQgaTsNCiAJY2hhciAqcCA9IE5VTEw7DQogDQotCWMtPmxvb3BzX3Blcl9z ZWMgPSBsb29wc19wZXJfc2VjOw0KLQljLT54ODZfY2FjaGVfc2l6ZSA9IC0x Ow0KLQ0KLQlnZXRfY3B1X3ZlbmRvcihjKTsNCi0NCi0JaWYgKGMtPng4Nl92 ZW5kb3IgPT0gWDg2X1ZFTkRPUl9VTktOT1dOICYmDQotCSAgICBjLT5jcHVp ZF9sZXZlbCA8IDApDQotCQlyZXR1cm47DQotDQotCWlmIChjLT54ODZfdmVu ZG9yID09IFg4Nl9WRU5ET1JfQ1lSSVgpIHsNCi0JCWN5cml4X21vZGVsKGMp Ow0KLQkJcmV0dXJuOw0KLQl9DQotDQotCWlmIChjLT54ODZfdmVuZG9yID09 IFg4Nl9WRU5ET1JfQU1EICYmIGFtZF9tb2RlbChjKSkNCi0JCXJldHVybjsN Ci0NCi0JaWYgKGMtPng4Nl92ZW5kb3IgPT0gWDg2X1ZFTkRPUl9DRU5UQVVS KSB7DQotCQljZW50YXVyX21vZGVsKGMpOw0KLQkJcmV0dXJuOw0KLQl9DQot CQkNCi0JaWYgKGMtPmNwdWlkX2xldmVsID4gMCAmJiBjLT54ODZfdmVuZG9y ID09IFg4Nl9WRU5ET1JfSU5URUwpDQotCXsNCi0JCWlmKGMtPng4Nl9jYXBh YmlsaXR5JigxPDwxOCkpDQotCQl7DQotCQkJLyogRGlzYWJsZSBwcm9jZXNz b3Igc2VyaWFsIG51bWJlciBvbiBJbnRlbCBQZW50aXVtIElJSSANCi0JCQkg ICBmcm9tIGNvZGUgYnkgUGhpbCBLYXJuICovDQotCQkJdW5zaWduZWQgbG9u ZyBsbyxoaTsNCi0JCQlyZG1zcigweDExOSxsbyxoaSk7DQotCQkJbG8gfD0g MHgyMDAwMDA7DQotCQkJd3Jtc3IoMHgxMTksbG8saGkpOw0KLQkJCXByaW50 ayhLRVJOX0lORk8gIlBlbnRpdW0tSUlJIHNlcmlhbCBudW1iZXIgZGlzYWJs ZWQuXG4iKTsNCi0JCX0NCisJaWYgKGMtPmNwdWlkX2xldmVsID4gMCAmJiBj LT54ODZfY2FwYWJpbGl0eSYoMTw8MTgpKSB7DQorCQkvKiBEaXNhYmxlIHBy b2Nlc3NvciBzZXJpYWwgbnVtYmVyIG9uIEludGVsIFBlbnRpdW0gSUlJIA0K KwkJICAgZnJvbSBjb2RlIGJ5IFBoaWwgS2FybiAqLw0KKwkJdW5zaWduZWQg bG9uZyBsbyxoaTsNCisJCXJkbXNyKDB4MTE5LGxvLGhpKTsNCisJCWxvIHw9 IDB4MjAwMDAwOw0KKwkJd3Jtc3IoMHgxMTksbG8saGkpOw0KKwkJcHJpbnRr KEtFUk5fSU5GTyAiUGVudGl1bS1JSUkgc2VyaWFsIG51bWJlciBkaXNhYmxl ZC5cbiIpOw0KIAl9DQogDQogCWlmIChjLT5jcHVpZF9sZXZlbCA+IDEpIHsN CkBAIC0xMjk2LDIxICsxMjcwLDIxIEBADQogDQogCWZvciAoaSA9IDA7IGkg PCBzaXplb2YoY3B1X21vZGVscykvc2l6ZW9mKHN0cnVjdCBjcHVfbW9kZWxf aW5mbyk7IGkrKykgew0KIAkJaWYgKGNwdV9tb2RlbHNbaV0udmVuZG9yID09 IGMtPng4Nl92ZW5kb3IgJiYNCi0JCSAgICBjcHVfbW9kZWxzW2ldLng4NiA9 PSBjLT54ODYpIHsNCisJCQljcHVfbW9kZWxzW2ldLng4NiA9PSBjLT54ODYp IHsNCiAJCQlpZiAoYy0+eDg2X21vZGVsIDw9IDE2KQ0KIAkJCQlwID0gY3B1 X21vZGVsc1tpXS5tb2RlbF9uYW1lc1tjLT54ODZfbW9kZWxdOw0KIA0KIAkJ CS8qIE5hbWVzIGZvciB0aGUgUGVudGl1bSBJSSBDZWxlcm9uIHByb2Nlc3Nv cnMgDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0ZWN0YWJsZSBv bmx5IGJ5IGFsc28gY2hlY2tpbmcgdGhlIGNhY2hlIHNpemUgKi8NCi0JCQlp ZiAoKGNwdV9tb2RlbHNbaV0udmVuZG9yID09IFg4Nl9WRU5ET1JfSU5URUwp DQotCQkJICAgICYmIChjcHVfbW9kZWxzW2ldLng4NiA9PSA2KSkNCi0JCQl7 DQotCQkJIAlpZihjLT54ODZfbW9kZWwgPT0gNSAmJiAgYy0+eDg2X2NhY2hl X3NpemUgPT0gMCkNCi0JCQkJCXAgPSAiQ2VsZXJvbiAoQ292aW5ndG9uKSI7 CQkJCQkJDQotCQkJCWVsc2UgaWYoYy0+eDg2X21vZGVsID09IDYgJiYgYy0+ eDg2X2NhY2hlX3NpemUgPT0gMTI4KQ0KLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAJCXAgPSAiQ2VsZXJvbiAoTWVuZG9jaW5vKSI7IA0KLSAJCQkg IAllbHNlIGlmKGMtPng4Nl9tb2RlbCA9PSA1ICYmIGMtPng4Nl9jYWNoZV9z aXplID09IDI1NikNCi0JCQkJCXAgPSAiQ2VsZXJvbiAoRGl4b24pIjsNCisJ CQkgICBkZXRlY3RhYmxlIG9ubHkgYnkgYWxzbyBjaGVja2luZyB0aGUgY2Fj aGUgc2l6ZSAqLw0KKwkJCWlmIChjcHVfbW9kZWxzW2ldLng4NiA9PSA2KSB7 DQorCQkJCWlmIChjLT54ODZfbW9kZWwgPT0gNSkgew0KKwkJCQkJaWYgKGMt Png4Nl9jYWNoZV9zaXplPT0wKQ0KKwkJCQkJCXAgPSAiQ2VsZXJvbiAoQ292 aW5ndG9uKSI7DQorCQkJCQlpZiAoYy0+eDg2X2NhY2hlX3NpemU9PTI1NikN CisJCQkJCQlwID0gIkNlbGVyb24gKERpeG9uKSI7DQorCQkJCX0NCisJCQkJ aWYgKGMtPng4Nl9tb2RlbCA9PSA2ICYmIGMtPng4Nl9jYWNoZV9zaXplID09 IDEyOCkNCisJCQkJCXAgPSAiQ2VsZXJvbiAoTWVuZG9jaW5vKSI7DQogCQkJ fQ0KIAkJfQ0KIAl9DQpAQCAtMTMyMyw2ICsxMjk3LDM4IEBADQogCXNwcmlu dGYoYy0+eDg2X21vZGVsX2lkLCAiJTAyeC8lMDJ4IiwgYy0+eDg2X3ZlbmRv ciwgYy0+eDg2X21vZGVsKTsNCiB9DQogDQorDQordm9pZCBfX2luaXQgaWRl bnRpZnlfY3B1KHN0cnVjdCBjcHVpbmZvX3g4NiAqYykNCit7DQorCWMtPmxv b3BzX3Blcl9zZWMgPSBsb29wc19wZXJfc2VjOw0KKwljLT54ODZfY2FjaGVf c2l6ZSA9IC0xOw0KKw0KKwlnZXRfY3B1X3ZlbmRvcihjKTsNCisNCisJc3dp dGNoIChjLT54ODZfdmVuZG9yKSB7DQorCQljYXNlIFg4Nl9WRU5ET1JfVU5L Tk9XTjoNCisJCQlicmVhazsNCisNCisJCWNhc2UgWDg2X1ZFTkRPUl9JTlRF TDoNCisJCQlpbnRlbF9tb2RlbChjKTsNCisJCQlicmVhazsNCisNCisJCWNh c2UgWDg2X1ZFTkRPUl9DWVJJWDoNCisJCQljeXJpeF9tb2RlbChjKTsNCisJ CQlicmVhazsNCisNCisJCWNhc2UgWDg2X1ZFTkRPUl9BTUQ6DQorCQkJYW1k X21vZGVsKGMpOw0KKwkJCWJyZWFrOw0KKw0KKwkJY2FzZSBYODZfVkVORE9S X0NFTlRBVVI6DQorCQkJY2VudGF1cl9tb2RlbChjKTsNCisJCQlicmVhazsN CisJfQ0KKwlyZXR1cm47DQorfQ0KKw0KKw0KIC8qDQogICoJUGVyZm9ybSBl YXJseSBib290IHVwIGNoZWNrcyBmb3IgYSB2YWxpZCBUU0MuIFNlZSBhcmNo L2kzODYva2VybmVsL3RpbWUuYw0KICAqLw0KQEAgLTEzMzIsOSArMTMzOCw3 IEBADQogCWdldF9jcHVfdmVuZG9yKCZib290X2NwdV9kYXRhKTsNCiAJDQog CWlmKGJvb3RfY3B1X2RhdGEueDg2X3ZlbmRvciAhPSBYODZfVkVORE9SX0NZ UklYKQ0KLQl7DQogCQlyZXR1cm47DQotCX0NCiAJY3lyaXhfbW9kZWwoJmJv b3RfY3B1X2RhdGEpOw0KIH0NCiAJDQpAQCAtMTM3NCwxMCArMTM3OCwxMCBA QA0KIAljaGFyICpwID0gYnVmZmVyOw0KIAlpbnQgc2VwX2J1ZzsNCiAJc3Rh dGljIGNoYXIgKng4Nl9jYXBfZmxhZ3NbXSA9IHsNCi0JICAgICAgICAiZnB1 IiwgInZtZSIsICJkZSIsICJwc2UiLCAidHNjIiwgIm1zciIsICJwYWUiLCAi bWNlIiwNCi0JICAgICAgICAiY3g4IiwgImFwaWMiLCAiMTAiLCAic2VwIiwg Im10cnIiLCAicGdlIiwgIm1jYSIsICJjbW92IiwNCi0JICAgICAgICAicGF0 IiwgIjE3IiwgInBzbiIsICIxOSIsICIyMCIsICIyMSIsICIyMiIsICJtbXgi LA0KLQkgICAgICAgICIyNCIsICJrbmkiLCAiMjYiLCAiMjciLCAiMjgiLCAi MjkiLCAiMzAiLCAiMzEiDQorCQkiZnB1IiwgInZtZSIsICJkZSIsICJwc2Ui LCAidHNjIiwgIm1zciIsICJwYWUiLCAibWNlIiwNCisJCSJjeDgiLCAiYXBp YyIsICIxMCIsICJzZXAiLCAibXRyciIsICJwZ2UiLCAibWNhIiwgImNtb3Yi LA0KKwkJInBhdCIsICIxNyIsICJwc24iLCAiMTkiLCAiMjAiLCAiMjEiLCAi MjIiLCAibW14IiwNCisJCSIyNCIsICJrbmkiLCAiMjYiLCAiMjciLCAiMjgi LCAiMjkiLCAiMzAiLCAiMzEiDQogCX07DQogCXN0cnVjdCBjcHVpbmZvX3g4 NiAqYyA9IGNwdV9kYXRhOw0KIAlpbnQgaSwgbjsNCkBAIC0xMzg4LDE1ICsx MzkyLDE1IEBADQogCQkJY29udGludWU7DQogI2VuZGlmDQogCQlwICs9IHNw cmludGYocCwicHJvY2Vzc29yXHQ6ICVkXG4iDQotCQkJICAgICAgICJ2ZW5k b3JfaWRcdDogJXNcbiINCi0JCQkgICAgICAgImNwdSBmYW1pbHlcdDogJWNc biINCi0JCQkgICAgICAgIm1vZGVsXHRcdDogJWRcbiINCi0JCQkgICAgICAg Im1vZGVsIG5hbWVcdDogJXNcbiIsDQotCQkJICAgICAgIG4sDQotCQkJICAg ICAgIGMtPng4Nl92ZW5kb3JfaWRbMF0gPyBjLT54ODZfdmVuZG9yX2lkIDog InVua25vd24iLA0KLQkJCSAgICAgICBjLT54ODYgKyAnMCcsDQotCQkJICAg ICAgIGMtPng4Nl9tb2RlbCwNCi0JCQkgICAgICAgYy0+eDg2X21vZGVsX2lk WzBdID8gYy0+eDg2X21vZGVsX2lkIDogInVua25vd24iKTsNCisJCQkidmVu ZG9yX2lkXHQ6ICVzXG4iDQorCQkJImNwdSBmYW1pbHlcdDogJWNcbiINCisJ CQkibW9kZWxcdFx0OiAlZFxuIg0KKwkJCSJtb2RlbCBuYW1lXHQ6ICVzXG4i LA0KKwkJCW4sDQorCQkJYy0+eDg2X3ZlbmRvcl9pZFswXSA/IGMtPng4Nl92 ZW5kb3JfaWQgOiAidW5rbm93biIsDQorCQkJYy0+eDg2ICsgJzAnLA0KKwkJ CWMtPng4Nl9tb2RlbCwNCisJCQljLT54ODZfbW9kZWxfaWRbMF0gPyBjLT54 ODZfbW9kZWxfaWQgOiAidW5rbm93biIpOw0KIA0KIAkJaWYgKGMtPng4Nl9t YXNrIHx8IGMtPmNwdWlkX2xldmVsID49IDApDQogCQkJcCArPSBzcHJpbnRm KHAsICJzdGVwcGluZ1x0OiAlZFxuIiwgYy0+eDg2X21hc2spOw0KQEAgLTE0 MTEsMzggKzE0MTUsMzUgQEANCiAJCS8qIENhY2hlIHNpemUgKi8NCiAJCWlm IChjLT54ODZfY2FjaGVfc2l6ZSA+PSAwKQ0KIAkJCXAgKz0gc3ByaW50Zihw LCAiY2FjaGUgc2l6ZVx0OiAlZCBLQlxuIiwgYy0+eDg2X2NhY2hlX3NpemUp Ow0KLQkJDQorDQogCQkvKiBNb2RpZnkgdGhlIGNhcGFiaWxpdGllcyBhY2Nv cmRpbmcgdG8gY2hpcCB0eXBlICovDQogCQlzd2l0Y2ggKGMtPng4Nl92ZW5k b3IpIHsNCiANCi0JCSAgICBjYXNlIFg4Nl9WRU5ET1JfQ1lSSVg6DQotCQkJ eDg2X2NhcF9mbGFnc1syNF0gPSAiY3htbXgiOw0KLQkJCWJyZWFrOw0KKwkJ CWNhc2UgWDg2X1ZFTkRPUl9DWVJJWDoNCisJCQkJeDg2X2NhcF9mbGFnc1sy NF0gPSAiY3htbXgiOw0KKwkJCQlicmVhazsNCiANCi0JCSAgICBjYXNlIFg4 Nl9WRU5ET1JfQU1EOg0KLQkJCWlmIChjLT54ODYgPT0gNSAmJiBjLT54ODZf bW9kZWwgPT0gNikNCisJCQljYXNlIFg4Nl9WRU5ET1JfQU1EOg0KIAkJCQl4 ODZfY2FwX2ZsYWdzWzEwXSA9ICJzZXAiOw0KLQkJCWlmIChjLT54ODYgPCA2 KQ0KIAkJCQl4ODZfY2FwX2ZsYWdzWzE2XSA9ICJmY21vdiI7DQotCQkJeDg2 X2NhcF9mbGFnc1syMl0gPSAibW14ZXh0IjsNCi0JCQl4ODZfY2FwX2ZsYWdz WzMwXSA9ICIzZG5vd2V4dCI7DQotCQkJeDg2X2NhcF9mbGFnc1szMV0gPSAi M2Rub3ciOw0KLQkJCWJyZWFrOw0KKwkJCQl4ODZfY2FwX2ZsYWdzWzIyXSA9 ICJtbXhleHQiOw0KKwkJCQl4ODZfY2FwX2ZsYWdzWzMwXSA9ICIzZG5vd2V4 dCI7DQorCQkJCXg4Nl9jYXBfZmxhZ3NbMzFdID0gIjNkbm93IjsNCisJCQkJ YnJlYWs7DQogDQotCQkgICAgY2FzZSBYODZfVkVORE9SX0lOVEVMOg0KLQkJ CXg4Nl9jYXBfZmxhZ3NbMTddID0gInBzZTM2IjsNCi0JCQl4ODZfY2FwX2Zs YWdzWzE4XSA9ICJwc24iOw0KLQkJCXg4Nl9jYXBfZmxhZ3NbMjRdID0gIm9z ZnhzciI7DQotCQkJYnJlYWs7DQorCQkJY2FzZSBYODZfVkVORE9SX0lOVEVM Og0KKwkJCQl4ODZfY2FwX2ZsYWdzWzE3XSA9ICJwc2UzNiI7DQorCQkJCXg4 Nl9jYXBfZmxhZ3NbMThdID0gInBzbiI7DQorCQkJCXg4Nl9jYXBfZmxhZ3Nb MjRdID0gIm9zZnhzciI7DQorCQkJCWJyZWFrOw0KIA0KLQkJICAgIGNhc2Ug WDg2X1ZFTkRPUl9DRU5UQVVSOg0KLQkJCWlmIChjLT54ODZfbW9kZWwgPj04 KQkvKiBPbmx5IFdpbmNoaXAyIGFuZCBhYm92ZSAqLw0KLQkJCSAgICB4ODZf Y2FwX2ZsYWdzWzMxXSA9ICIzZG5vdyI7DQotCQkJYnJlYWs7DQorCQkJY2Fz ZSBYODZfVkVORE9SX0NFTlRBVVI6DQorCQkJCXg4Nl9jYXBfZmxhZ3NbMzFd ID0gIjNkbm93IjsNCisJCQkJYnJlYWs7DQogDQotCQkgICAgZGVmYXVsdDoN Ci0JCQkvKiBVbmtub3duIENQVSBtYW51ZmFjdHVyZXIuIFRyYW5zbWV0YSA/ IDotKSAqLw0KLQkJCWJyZWFrOw0KKwkJCWRlZmF1bHQ6DQorCQkJCS8qIFVu a25vd24gQ1BVIG1hbnVmYWN0dXJlci4gVHJhbnNtZXRhID8gOi0pICovDQor CQkJCWJyZWFrOw0KIAkJfQ0KIA0KIAkJc2VwX2J1ZyA9IGMtPng4Nl92ZW5k b3IgPT0gWDg2X1ZFTkRPUl9JTlRFTCAmJg0KQEAgLTE0NTMsMzEgKzE0NTQs MzEgQEANCiAJCQkgIGMtPng4Nl9tYXNrIDwgMzsNCiAJDQogCQlwICs9IHNw cmludGYocCwgImZkaXZfYnVnXHQ6ICVzXG4iDQotCQkJICAgICAgICAiaGx0 X2J1Z1x0XHQ6ICVzXG4iDQotCQkJICAgICAgICAic2VwX2J1Z1x0XHQ6ICVz XG4iDQotCQkJICAgICAgICAiZjAwZl9idWdcdDogJXNcbiINCi0JCQkgICAg ICAgICJjb21hX2J1Z1x0OiAlc1xuIg0KLQkJCSAgICAgICAgImZwdVx0XHQ6 ICVzXG4iDQotCQkJICAgICAgICAiZnB1X2V4Y2VwdGlvblx0OiAlc1xuIg0K LQkJCSAgICAgICAgImNwdWlkIGxldmVsXHQ6ICVkXG4iDQotCQkJICAgICAg ICAid3BcdFx0OiAlc1xuIg0KLQkJCSAgICAgICAgImZsYWdzXHRcdDoiLA0K LQkJCSAgICAgYy0+ZmRpdl9idWcgPyAieWVzIiA6ICJubyIsDQotCQkJICAg ICBjLT5obHRfd29ya3Nfb2sgPyAibm8iIDogInllcyIsDQotCQkJICAgICBz ZXBfYnVnID8gInllcyIgOiAibm8iLA0KLQkJCSAgICAgYy0+ZjAwZl9idWcg PyAieWVzIiA6ICJubyIsDQotCQkJICAgICBjLT5jb21hX2J1ZyA/ICJ5ZXMi IDogIm5vIiwNCi0JCQkgICAgIGMtPmhhcmRfbWF0aCA/ICJ5ZXMiIDogIm5v IiwNCi0JCQkgICAgIChjLT5oYXJkX21hdGggJiYgaWdub3JlX2lycTEzKSA/ ICJ5ZXMiIDogIm5vIiwNCi0JCQkgICAgIGMtPmNwdWlkX2xldmVsLA0KLQkJ CSAgICAgYy0+d3Bfd29ya3Nfb2sgPyAieWVzIiA6ICJubyIpOw0KKwkJCSJo bHRfYnVnXHRcdDogJXNcbiINCisJCQkic2VwX2J1Z1x0XHQ6ICVzXG4iDQor CQkJImYwMGZfYnVnXHQ6ICVzXG4iDQorCQkJImNvbWFfYnVnXHQ6ICVzXG4i DQorCQkJImZwdVx0XHQ6ICVzXG4iDQorCQkJImZwdV9leGNlcHRpb25cdDog JXNcbiINCisJCQkiY3B1aWQgbGV2ZWxcdDogJWRcbiINCisJCQkid3BcdFx0 OiAlc1xuIg0KKwkJCSJmbGFnc1x0XHQ6IiwNCisJCQljLT5mZGl2X2J1ZyA/ ICJ5ZXMiIDogIm5vIiwNCisJCQljLT5obHRfd29ya3Nfb2sgPyAibm8iIDog InllcyIsDQorCQkJc2VwX2J1ZyA/ICJ5ZXMiIDogIm5vIiwNCisJCQljLT5m MDBmX2J1ZyA/ICJ5ZXMiIDogIm5vIiwNCisJCQljLT5jb21hX2J1ZyA/ICJ5 ZXMiIDogIm5vIiwNCisJCQljLT5oYXJkX21hdGggPyAieWVzIiA6ICJubyIs DQorCQkJKGMtPmhhcmRfbWF0aCAmJiBpZ25vcmVfaXJxMTMpID8gInllcyIg OiAibm8iLA0KKwkJCWMtPmNwdWlkX2xldmVsLA0KKwkJCWMtPndwX3dvcmtz X29rID8gInllcyIgOiAibm8iKTsNCiANCiAJCWZvciAoIGkgPSAwIDsgaSA8 IDMyIDsgaSsrICkNCiAJCQlpZiAoIGMtPng4Nl9jYXBhYmlsaXR5ICYgKDEg PDwgaSkgKQ0KIAkJCQlwICs9IHNwcmludGYocCwgIiAlcyIsIHg4Nl9jYXBf ZmxhZ3NbaV0pOw0KIAkJcCArPSBzcHJpbnRmKHAsICJcbmJvZ29taXBzXHQ6 ICVsdS4lMDJsdVxuXG4iLA0KLQkJCSAgICAgKGMtPmxvb3BzX3Blcl9zZWMr MjUwMCkvNTAwMDAwLA0KLQkJCSAgICAgKChjLT5sb29wc19wZXJfc2VjKzI1 MDApLzUwMDApICUgMTAwKTsNCisJCQkoYy0+bG9vcHNfcGVyX3NlYysyNTAw KS81MDAwMDAsDQorCQkJCSgoYy0+bG9vcHNfcGVyX3NlYysyNTAwKS81MDAw KSAlIDEwMCk7DQogCX0NCiAJcmV0dXJuIHAgLSBidWZmZXI7DQogfQ0K --279710208-1564925956-946525501=:1225--

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/