[PATCH] __initfunc & __initdata for 2.1.89 and 2.1.90p1

Matthias Hanisch (matze@camline.com)
Thu, 12 Mar 1998 16:42:00 +0100 (MET)


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.

---559023410-5627-889717320=:2374
Content-Type: TEXT/PLAIN; charset=US-ASCII

Many people have stated that defining strings outside the function with
"static char[] __initdata" obfuscates the code more than it is a win. And
I agree that this should be fixed in the compiler.

So I have split the yeaterday's patch into two parts:

- the first one contains just the "clean" __initfunc and __initdata
attributes that should really make it into the mainstream kernel

- the second one is optional (and should be applied after the first) and
contains the ugly hacks with initialization "strings"

I have removed most of the __initfunc attributes in scsi.c because they
were needed by hostadapter modules (thanks to Andreas Jaeger).

These patches apply to .89 and to .90p1 (with some offset warnings).

Please have a look at the first patch at least.

Have fun,
Matze

--
Matthias Hanisch    gesch.: matze@camline.com    priv.: matze@pingu.franken.de
                            +49 8137 935-219            +49 8441 82387

"Modell 10 - Software from Experts for Experts"

---559023410-5627-889717320=:2374 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-initfunc-v2 Content-Transfer-Encoding: BASE64 Content-ID: <Pine.SCO.3.96.980312164200.2374E@cam8.camline.com> Content-Description:

ZGlmZiAtcnUgLS1uZXctZmlsZSBsaW51eC0yLjEuODktdmFuaWxsYS9hcmNo L2kzODYva2VybmVsL3NldHVwLmMgbGludXgvYXJjaC9pMzg2L2tlcm5lbC9z ZXR1cC5jDQotLS0gbGludXgtMi4xLjg5LXZhbmlsbGEvYXJjaC9pMzg2L2tl cm5lbC9zZXR1cC5jCVdlZCBNYXIgIDQgMDY6MDE6MjkgMTk5OA0KKysrIGxp bnV4L2FyY2gvaTM4Ni9rZXJuZWwvc2V0dXAuYwlXZWQgTWFyICA0IDA2OjI2 OjU4IDE5OTgNCkBAIC0xMDcsNyArMTA3LDcgQEANCiAjZGVmaW5lIFJBTURJ U0tfUFJPTVBUX0ZMQUcJCTB4ODAwMA0KICNkZWZpbmUgUkFNRElTS19MT0FE X0ZMQUcJCTB4NDAwMAkNCiANCi1zdGF0aWMgY2hhciBjb21tYW5kX2xpbmVb Q09NTUFORF9MSU5FX1NJWkVdID0geyAwLCB9Ow0KK3N0YXRpYyBjaGFyIGNv bW1hbmRfbGluZVtDT01NQU5EX0xJTkVfU0laRV0gX19pbml0ZGF0YSA9IHsg MCwgfTsNCiAgICAgICAgY2hhciBzYXZlZF9jb21tYW5kX2xpbmVbQ09NTUFO RF9MSU5FX1NJWkVdOw0KIA0KIF9faW5pdGZ1bmModm9pZCBzZXR1cF9hcmNo KGNoYXIgKipjbWRsaW5lX3AsDQpkaWZmIC1ydSAtLW5ldy1maWxlIGxpbnV4 LTIuMS44OS12YW5pbGxhL2FyY2gvaTM4Ni9rZXJuZWwvdGltZS5jIGxpbnV4 L2FyY2gvaTM4Ni9rZXJuZWwvdGltZS5jDQotLS0gbGludXgtMi4xLjg5LXZh bmlsbGEvYXJjaC9pMzg2L2tlcm5lbC90aW1lLmMJVGh1IEphbiAyOSAwMTow MToxMyAxOTk4DQorKysgbGludXgvYXJjaC9pMzg2L2tlcm5lbC90aW1lLmMJ V2VkIE1hciAgNCAwNjoyNjo1OCAxOTk4DQpAQCAtNDc3LDcgKzQ3NywxMiBA QA0KIH0NCiANCiAvKiBub3Qgc3RhdGljOiBuZWVkZWQgYnkgQVBNICovDQor LyogYnV0IGlmIEFQTSBpcyBub3QgZGVmaW5lZCB0aGlzIGlzIGp1c3QgY2Fs bGVkIG9uY2UgYXQgaW5pdCEgKi8NCisjaWZkZWYgQ09ORklHX0FQTQ0KIHVu c2lnbmVkIGxvbmcgZ2V0X2Ntb3NfdGltZSh2b2lkKQ0KKyNlbHNlDQorX19p bml0ZnVuYyh1bnNpZ25lZCBsb25nIGdldF9jbW9zX3RpbWUodm9pZCkpDQor I2VuZGlmDQogew0KIAl1bnNpZ25lZCBpbnQgeWVhciwgbW9uLCBkYXksIGhv dXIsIG1pbiwgc2VjOw0KIAlpbnQgaTsNCmRpZmYgLXJ1IC0tbmV3LWZpbGUg bGludXgtMi4xLjg5LXZhbmlsbGEvZHJpdmVycy9jaGFyL2NvbnNvbGUuYyBs aW51eC9kcml2ZXJzL2NoYXIvY29uc29sZS5jDQotLS0gbGludXgtMi4xLjg5 LXZhbmlsbGEvZHJpdmVycy9jaGFyL2NvbnNvbGUuYwlGcmkgRmViIDIwIDA0 OjU1OjI2IDE5OTgNCisrKyBsaW51eC9kcml2ZXJzL2NoYXIvY29uc29sZS5j CVdlZCBNYXIgIDQgMDY6MjY6NTggMTk5OA0KQEAgLTQzMCw3ICs0MzAsNyBA QA0KIHN0YXRpYyB1bnNpZ25lZCBjaGFyIGhhcmRzY3JvbGxfZW5hYmxlZDsN CiBzdGF0aWMgdW5zaWduZWQgY2hhciBoYXJkc2Nyb2xsX2Rpc2FibGVkX2J5 X2luaXQgPSAwOw0KIA0KLXZvaWQgbm9fc2Nyb2xsKGNoYXIgKnN0ciwgaW50 ICppbnRzKQ0KK19faW5pdGZ1bmModm9pZCBub19zY3JvbGwoY2hhciAqc3Ry LCBpbnQgKmludHMpKQ0KIHsNCiAgIC8qDQogICAgKiBEaXNhYmxpbmcgc2Ny b2xsYmFjayBpcyByZXF1aXJlZCBmb3IgdGhlIEJyYWlsbGV4IGliODAtcGll em8NCmRpZmYgLXJ1IC0tbmV3LWZpbGUgbGludXgtMi4xLjg5LXZhbmlsbGEv ZHJpdmVycy9jaGFyL3R0eV9pby5jIGxpbnV4L2RyaXZlcnMvY2hhci90dHlf aW8uYw0KLS0tIGxpbnV4LTIuMS44OS12YW5pbGxhL2RyaXZlcnMvY2hhci90 dHlfaW8uYwlXZWQgTWFyICA0IDA2OjAxOjM5IDE5OTgNCisrKyBsaW51eC9k cml2ZXJzL2NoYXIvdHR5X2lvLmMJV2VkIE1hciAgNCAwNjoyNjo1OCAxOTk4 DQpAQCAtMTkzMCw3ICsxOTMwLDcgQEANCiAgKiBKdXN0IGRvIHNvbWUgZWFy bHkgaW5pdGlhbGl6YXRpb25zLCBhbmQgZG8gdGhlIGNvbXBsZXggc2V0dXAN CiAgKiBsYXRlci4NCiAgKi8NCi1sb25nIGNvbnNvbGVfaW5pdChsb25nIGtt ZW1fc3RhcnQsIGxvbmcga21lbV9lbmQpDQorX19pbml0ZnVuYyhsb25nIGNv bnNvbGVfaW5pdChsb25nIGttZW1fc3RhcnQsIGxvbmcga21lbV9lbmQpKQ0K IHsNCiAJLyogU2V0dXAgdGhlIGRlZmF1bHQgVFRZIGxpbmUgZGlzY2lwbGlu ZS4gKi8NCiAJbWVtc2V0KGxkaXNjcywgMCwgc2l6ZW9mKGxkaXNjcykpOw0K ZGlmZiAtcnUgLS1uZXctZmlsZSBsaW51eC0yLjEuODktdmFuaWxsYS9kcml2 ZXJzL3Njc2kvYWhhMTU0Mi5jIGxpbnV4L2RyaXZlcnMvc2NzaS9haGExNTQy LmMNCi0tLSBsaW51eC0yLjEuODktdmFuaWxsYS9kcml2ZXJzL3Njc2kvYWhh MTU0Mi5jCVRodSBKYW4gMjIgMDY6Mjc6MDkgMTk5OA0KKysrIGxpbnV4L2Ry aXZlcnMvc2NzaS9haGExNTQyLmMJV2VkIE1hciAgNCAwNjoyNjo1OSAxOTk4 DQpAQCAtMjgsNiArMjgsNyBAQA0KICNpbmNsdWRlIDxsaW51eC9kZWxheS5o Pg0KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPg0KICNpbmNsdWRlIDxsaW51 eC9wcm9jX2ZzLmg+DQorI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4NCiAjaW5j bHVkZSA8YXNtL2RtYS5oPg0KICNpbmNsdWRlIDxhc20vc3lzdGVtLmg+DQog I2luY2x1ZGUgPGFzbS9pby5oPg0KQEAgLTg3MSw3ICs4NzIsNyBAQA0KIH0N CiANCiAvKiBjYWxsZWQgZnJvbSBpbml0L21haW4uYyAqLw0KLXZvaWQgYWhh MTU0Ml9zZXR1cCggY2hhciAqc3RyLCBpbnQgKmludHMpDQorX19pbml0ZnVu Yyh2b2lkIGFoYTE1NDJfc2V0dXAoIGNoYXIgKnN0ciwgaW50ICppbnRzKSkN CiB7DQogICAgIGNvbnN0IGNoYXIgKmFoYXVzYWdlID0gImFoYTE1NDI6IHVz YWdlOiBhaGExNTQyPTxQT1JUQkFTRT5bLDxCVVNPTj4sPEJVU09GRj5bLDxE TUFTUEVFRD5dXVxuIjsNCiAgICAgc3RhdGljIGludCBzZXR1cF9pZHggPSAw Ow0KZGlmZiAtcnUgLS1uZXctZmlsZSBsaW51eC0yLjEuODktdmFuaWxsYS9k cml2ZXJzL3Njc2kvc2NzaS5jIGxpbnV4L2RyaXZlcnMvc2NzaS9zY3NpLmMN Ci0tLSBsaW51eC0yLjEuODktdmFuaWxsYS9kcml2ZXJzL3Njc2kvc2NzaS5j CVdlZCBNYXIgIDQgMDY6MDE6NDUgMTk5OA0KKysrIGxpbnV4L2RyaXZlcnMv c2NzaS9zY3NpLmMJV2VkIE1hciAgNCAwNjoyNjo1OSAxOTk4DQpAQCAtMzk2 LDcgKzM5Nyw3IEBADQogCXVwKFNDcG50LT5yZXF1ZXN0LnNlbSk7DQogfQ0K IA0KLXZvaWQgc2NzaV9sb2dnaW5nX3NldHVwKGNoYXIgKnN0ciwgaW50ICpp bnRzKSANCitfX2luaXRmdW5jKHZvaWQgc2NzaV9sb2dnaW5nX3NldHVwKGNo YXIgKnN0ciwgaW50ICppbnRzKSkNCiB7DQogICAgIGlmIChpbnRzWzBdICE9 IDEpIHsNCiAJcHJpbnRrKCJzY3NpX2xvZ2dpbmdfc2V0dXAgOiB1c2FnZSBz Y3NpX2xvZ2dpbmdfbGV2ZWw9biAiDQpAQCAtNDEyLDcgKzQxMyw3IEBADQog c3RhdGljIGludCBtYXhfc2NzaV9sdW5zID0gMTsNCiAjZW5kaWYNCiANCi12 b2lkIHNjc2lfbHVuc19zZXR1cChjaGFyICpzdHIsIGludCAqaW50cykgDQor X19pbml0ZnVuYyh2b2lkIHNjc2lfbHVuc19zZXR1cChjaGFyICpzdHIsIGlu dCAqaW50cykpDQogew0KICAgICBpZiAoaW50c1swXSAhPSAxKQ0KIAlwcmlu dGsoInNjc2lfbHVuc19zZXR1cCA6IHVzYWdlIG1heF9zY3NpX2x1bnM9biAo biBzaG91bGQgYmUgYmV0d2VlbiAxIGFuZCA4KVxuIik7DQpkaWZmIC1ydSAt LW5ldy1maWxlIGxpbnV4LTIuMS44OS12YW5pbGxhL2ZzL2J1ZmZlci5jIGxp bnV4L2ZzL2J1ZmZlci5jDQotLS0gbGludXgtMi4xLjg5LXZhbmlsbGEvZnMv YnVmZmVyLmMJV2VkIE1hciAgNCAwNjowMTo1MSAxOTk4DQorKysgbGludXgv ZnMvYnVmZmVyLmMJV2VkIE1hciAgNCAwNjoyNjo1OSAxOTk4DQpAQCAtMzgs NiArMzgsNyBAQA0KICNpbmNsdWRlIDxsaW51eC9ibGtkZXYuaD4NCiAjaW5j bHVkZSA8bGludXgvc3lzcnEuaD4NCiAjaW5jbHVkZSA8bGludXgvZmlsZS5o Pg0KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+DQogDQogI2luY2x1ZGUgPGFz bS9zeXN0ZW0uaD4NCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4NCkBAIC0x NzAzLDcgKzE3MDQsNyBAQA0KICAqIFVzZSBnZnAoKSBmb3IgdGhlIGhhc2gg dGFibGUgdG8gZGVjcmVhc2UgVExCIG1pc3NlcywgdXNlDQogICogU0xBQiBj YWNoZSBmb3IgYnVmZmVyIGhlYWRzLg0KICAqLw0KLXZvaWQgYnVmZmVyX2lu aXQodm9pZCkNCitfX2luaXRmdW5jKHZvaWQgYnVmZmVyX2luaXQodm9pZCkp DQogew0KIAloYXNoX3RhYmxlID0gKHN0cnVjdCBidWZmZXJfaGVhZCAqKikN CiAJCV9fZ2V0X2ZyZWVfcGFnZXMoR0ZQX0FUT01JQywgSEFTSF9QQUdFU19P UkRFUik7DQpkaWZmIC1ydSAtLW5ldy1maWxlIGxpbnV4LTIuMS44OS12YW5p bGxhL2ZzL2ZpbGVfdGFibGUuYyBsaW51eC9mcy9maWxlX3RhYmxlLmMNCi0t LSBsaW51eC0yLjEuODktdmFuaWxsYS9mcy9maWxlX3RhYmxlLmMJU3VuIE9j dCAxMiAxOToxMDo0MCAxOTk3DQorKysgbGludXgvZnMvZmlsZV90YWJsZS5j CVdlZCBNYXIgIDQgMDY6MjY6NTkgMTk5OA0KQEAgLTEzLDYgKzEzLDcgQEAN CiAjaW5jbHVkZSA8bGludXgvc3RyaW5nLmg+DQogI2luY2x1ZGUgPGxpbnV4 L21tLmg+DQogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4NCisjaW5jbHVkZSA8 bGludXgvaW5pdC5oPg0KIA0KIC8qIFNMQUIgY2FjaGUgZm9yIGZpbHAncy4g Ki8NCiBzdGF0aWMga21lbV9jYWNoZV90ICpmaWxwX2NhY2hlOw0KQEAgLTQ1 LDggKzQ2LDcgQEANCiAJZmlsZS0+Zl9wcHJldiA9ICZpbnVzZV9maWxwczsN CiB9DQogDQotLyogTi5CLiBUaGlzIHNob3VsZCBiZSBhbiBfX2luaXRmdW5j IC4uLiAqLw0KLXZvaWQgZmlsZV90YWJsZV9pbml0KHZvaWQpDQorX19pbml0 ZnVuYyh2b2lkIGZpbGVfdGFibGVfaW5pdCh2b2lkKSkNCiB7DQogCWZpbHBf Y2FjaGUgPSBrbWVtX2NhY2hlX2NyZWF0ZSgiZmlscCIsIHNpemVvZihzdHJ1 Y3QgZmlsZSksDQogCQkJCSAgICAgICAwLA0KZGlmZiAtcnUgLS1uZXctZmls ZSBsaW51eC0yLjEuODktdmFuaWxsYS9mcy9pbm9kZS5jIGxpbnV4L2ZzL2lu b2RlLmMNCi0tLSBsaW51eC0yLjEuODktdmFuaWxsYS9mcy9pbm9kZS5jCVdl ZCBNYXIgIDQgMDY6MDE6NTMgMTk5OA0KKysrIGxpbnV4L2ZzL2lub2RlLmMJ V2VkIE1hciAgNCAwNjoyNjo1OSAxOTk4DQpAQCAtOCw2ICs4LDcgQEANCiAj aW5jbHVkZSA8bGludXgvc3RyaW5nLmg+DQogI2luY2x1ZGUgPGxpbnV4L21t Lmg+DQogI2luY2x1ZGUgPGxpbnV4L2RjYWNoZS5oPg0KKyNpbmNsdWRlIDxs aW51eC9pbml0Lmg+DQogDQogLyoNCiAgKiBOZXcgaW5vZGUuYyBpbXBsZW1l bnRhdGlvbi4NCkBAIC03MzMsNyArNzM0LDcgQEANCiAvKg0KICAqIEluaXRp YWxpemUgdGhlIGhhc2ggdGFibGVzDQogICovDQotdm9pZCBpbm9kZV9pbml0 KHZvaWQpDQorX19pbml0ZnVuYyh2b2lkIGlub2RlX2luaXQodm9pZCkpDQog ew0KIAlpbnQgaTsNCiAJc3RydWN0IGxpc3RfaGVhZCAqaGVhZCA9IGlub2Rl X2hhc2h0YWJsZTsNCmRpZmYgLXJ1IC0tbmV3LWZpbGUgbGludXgtMi4xLjg5 LXZhbmlsbGEvZnMvcHJvYy9iYXNlLmMgbGludXgvZnMvcHJvYy9iYXNlLmMN Ci0tLSBsaW51eC0yLjEuODktdmFuaWxsYS9mcy9wcm9jL2Jhc2UuYwlUaHUg SmFuIDIyIDA2OjI5OjU5IDE5OTgNCisrKyBsaW51eC9mcy9wcm9jL2Jhc2Uu YwlXZWQgTWFyICA0IDA2OjI3OjAwIDE5OTgNCkBAIC0xMyw2ICsxMyw3IEBA DQogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+DQogI2luY2x1ZGUgPGxpbnV4 L3Byb2NfZnMuaD4NCiAjaW5jbHVkZSA8bGludXgvc3RhdC5oPg0KKyNpbmNs dWRlIDxsaW51eC9pbml0Lmg+DQogDQogc3RhdGljIHN0cnVjdCBmaWxlX29w ZXJhdGlvbnMgcHJvY19iYXNlX29wZXJhdGlvbnMgPSB7DQogCU5VTEwsCQkJ LyogbHNlZWsgLSBkZWZhdWx0ICovDQpAQCAtMTY3LDcgKzE2OCw3IEBADQog fTsNCiAjZW5kaWYNCiANCi12b2lkIHByb2NfYmFzZV9pbml0KHZvaWQpDQor X19pbml0ZnVuYyh2b2lkIHByb2NfYmFzZV9pbml0KHZvaWQpKQ0KIHsNCiAj aWYgQ09ORklHX0FQMTAwMA0KIAlwcm9jX3JlZ2lzdGVyKCZwcm9jX3BpZCwg JnByb2NfcGlkX3JpbmdidWYpOw0KZGlmZiAtcnUgLS1uZXctZmlsZSBsaW51 eC0yLjEuODktdmFuaWxsYS9mcy9wcm9jL3Jvb3QuYyBsaW51eC9mcy9wcm9j L3Jvb3QuYw0KLS0tIGxpbnV4LTIuMS44OS12YW5pbGxhL2ZzL3Byb2Mvcm9v dC5jCUZyaSBGZWIgMjAgMDQ6NTQ6NTMgMTk5OA0KKysrIGxpbnV4L2ZzL3By b2Mvcm9vdC5jCVdlZCBNYXIgIDQgMDY6Mjc6MDAgMTk5OA0KQEAgLTEzLDYg KzEzLDcgQEANCiAjaW5jbHVkZSA8bGludXgvcHJvY19mcy5oPg0KICNpbmNs dWRlIDxsaW51eC9zdGF0Lmg+DQogI2luY2x1ZGUgPGxpbnV4L2NvbmZpZy5o Pg0KKyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+DQogI2luY2x1ZGUgPGFzbS9i aXRvcHMuaD4NCiAjaWZkZWYgQ09ORklHX0tFUk5FTEQNCiAjaW5jbHVkZSA8 bGludXgva2VybmVsZC5oPg0KQEAgLTYzMiw3ICs2MzMsNyBAQA0KIH07DQog I2VuZGlmDQogDQotdm9pZCBwcm9jX3Jvb3RfaW5pdCh2b2lkKQ0KK19faW5p dGZ1bmModm9pZCBwcm9jX3Jvb3RfaW5pdCh2b2lkKSkNCiB7DQogCXByb2Nf YmFzZV9pbml0KCk7DQogCXByb2NfcmVnaXN0ZXIoJnByb2Nfcm9vdCwgJnBy b2Nfcm9vdF9sb2FkYXZnKTsNCmRpZmYgLXJ1IC0tbmV3LWZpbGUgbGludXgt Mi4xLjg5LXZhbmlsbGEva2VybmVsL21vZHVsZS5jIGxpbnV4L2tlcm5lbC9t b2R1bGUuYw0KLS0tIGxpbnV4LTIuMS44OS12YW5pbGxhL2tlcm5lbC9tb2R1 bGUuYwlXZWQgTWFyICA0IDA2OjAyOjA3IDE5OTgNCisrKyBsaW51eC9rZXJu ZWwvbW9kdWxlLmMJV2VkIE1hciAgNCAwNjoyNzowMCAxOTk4DQpAQCAtMTAs NiArMTAsNyBAQA0KICNpbmNsdWRlIDxsaW51eC9zbXAuaD4NCiAjaW5jbHVk ZSA8bGludXgvc21wX2xvY2suaD4NCiAjaW5jbHVkZSA8YXNtL3BndGFibGUu aD4NCisjaW5jbHVkZSA8bGludXgvaW5pdC5oPg0KIA0KIC8qDQogICogT3Jp Z2luYWxseSBieSBBbm9ueW1vdXMgKGFzIGZhciBhcyBJIGtub3cuLi4pDQpA QCAtNjEsNyArNjIsNyBAQA0KICAqIENhbGxlZCBhdCBib290IHRpbWUNCiAg Ki8NCiANCi12b2lkIGluaXRfbW9kdWxlcyh2b2lkKQ0KK19faW5pdGZ1bmMo dm9pZCBpbml0X21vZHVsZXModm9pZCkpDQogew0KIAlrZXJuZWxfbW9kdWxl Lm5zeW1zID0gX19zdG9wX19fa3N5bXRhYiAtIF9fc3RhcnRfX19rc3ltdGFi Ow0KIA0KZGlmZiAtcnUgLS1uZXctZmlsZSBsaW51eC0yLjEuODktdmFuaWxs YS9rZXJuZWwvc2lnbmFsLmMgbGludXgva2VybmVsL3NpZ25hbC5jDQotLS0g bGludXgtMi4xLjg5LXZhbmlsbGEva2VybmVsL3NpZ25hbC5jCVdlZCBNYXIg IDQgMDY6MDI6MDggMTk5OA0KKysrIGxpbnV4L2tlcm5lbC9zaWduYWwuYwlX ZWQgTWFyICA0IDA2OjI3OjAwIDE5OTgNCkBAIC0xOCw2ICsxOCw3IEBADQog I2luY2x1ZGUgPGxpbnV4L3NtcC5oPg0KICNpbmNsdWRlIDxsaW51eC9zbXBf bG9jay5oPg0KICNpbmNsdWRlIDxsaW51eC9zbGFiLmg+DQorI2luY2x1ZGUg PGxpbnV4L2luaXQuaD4NCiANCiAjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4N CiANCkBAIC0zNSw4ICszNiw3IEBADQogDQogc3RhdGljIGttZW1fY2FjaGVf dCAqc2lnbmFsX3F1ZXVlX2NhY2hlcDsNCiANCi12b2lkDQotc2lnbmFsc19p bml0KHZvaWQpDQorX19pbml0ZnVuYyh2b2lkIHNpZ25hbHNfaW5pdCh2b2lk KSkNCiB7DQogCXNpZ25hbF9xdWV1ZV9jYWNoZXAgPQ0KIAkJa21lbV9jYWNo ZV9jcmVhdGUoInNpZ25hbF9xdWV1ZSIsDQpkaWZmIC1ydSAtLW5ldy1maWxl IGxpbnV4LTIuMS44OS12YW5pbGxhL21tL3Ztc2Nhbi5jIGxpbnV4L21tL3Zt c2Nhbi5jDQotLS0gbGludXgtMi4xLjg5LXZhbmlsbGEvbW0vdm1zY2FuLmMJ V2VkIE1hciAgNCAwNjowMjoxMCAxOTk4DQorKysgbGludXgvbW0vdm1zY2Fu LmMJV2VkIE1hciAgNCAwNjoyNzowMCAxOTk4DQpAQCAtMjIsNiArMjIsNyBA QA0KICNpbmNsdWRlIDxsaW51eC9zbXBfbG9jay5oPg0KICNpbmNsdWRlIDxs aW51eC9zbGFiLmg+DQogI2luY2x1ZGUgPGxpbnV4L2RjYWNoZS5oPg0KKyNp bmNsdWRlIDxsaW51eC9pbml0Lmg+DQogDQogI2luY2x1ZGUgPGFzbS9iaXRv cHMuaD4NCiAjaW5jbHVkZSA8YXNtL3BndGFibGUuaD4NCkBAIC00OTgsNyAr NDk5LDcgQEANCiAgKiBtYXkgYmUgcHJpbnRlZCBpbiB0aGUgbWlkZGxlIG9m IGFub3RoZXIgZHJpdmVyJ3MgaW5pdCANCiAgKiBtZXNzYWdlKS4gIEl0IGxv b2tzIHZlcnkgYmFkIHdoZW4gdGhhdCBoYXBwZW5zLg0KICAqLw0KLXZvaWQg a3N3YXBkX3NldHVwKHZvaWQpDQorX19pbml0ZnVuYyh2b2lkIGtzd2FwZF9z ZXR1cCh2b2lkKSkNCiB7DQogICAgICAgIGludCBpOw0KICAgICAgICBjaGFy ICpyZXZpc2lvbj0iJFJldmlzaW9uOiAxLjUgJCIsICpzLCAqZTsNCmRpZmYg LXJ1IC0tbmV3LWZpbGUgbGludXgtMi4xLjg5LXZhbmlsbGEvbmV0L2NvcmUv c29jay5jIGxpbnV4L25ldC9jb3JlL3NvY2suYw0KLS0tIGxpbnV4LTIuMS44 OS12YW5pbGxhL25ldC9jb3JlL3NvY2suYwlXZWQgTWFyICA0IDA2OjAyOjEx IDE5OTgNCisrKyBsaW51eC9uZXQvY29yZS9zb2NrLmMJV2VkIE1hciAgNCAw NjoyNzowMSAxOTk4DQpAQCAtMTA1LDYgKzEwNSw3IEBADQogI2luY2x1ZGUg PGxpbnV4L3NsYWIuaD4NCiAjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+ DQogI2luY2x1ZGUgPGxpbnV4L3BvbGwuaD4NCisjaW5jbHVkZSA8bGludXgv aW5pdC5oPg0KIA0KICNpbmNsdWRlIDxhc20vdWFjY2Vzcy5oPg0KICNpbmNs dWRlIDxhc20vc3lzdGVtLmg+DQpAQCAtNDkyLDcgKzQ5Myw3IEBADQogCWtt ZW1fY2FjaGVfZnJlZShza19jYWNoZXAsIHNrKTsNCiB9DQogDQotdm9pZCBz a19pbml0KHZvaWQpDQorX19pbml0ZnVuYyh2b2lkIHNrX2luaXQodm9pZCkp DQogew0KIAlza19jYWNoZXAgPSBrbWVtX2NhY2hlX2NyZWF0ZSgic29jayIs IHNpemVvZihzdHJ1Y3Qgc29jayksIDAsDQogCQkJCSAgICAgIFNMQUJfSFdD QUNIRV9BTElHTiwgMCwgMCk7DQo= ---559023410-5627-889717320=:2374 Content-Type: TEXT/PLAIN; charset=US-ASCII; name=patch-initstrings-v1 Content-Transfer-Encoding: BASE64 Content-ID: <Pine.SCO.3.96.980312164200.2374F@cam8.camline.com> Content-Description:

ZGlmZiAtcnUgLS1uZXctZmlsZSBsaW51eC0yLjEuODktaW5pdGZ1bmMvYXJj aC9pMzg2L21tL2luaXQuYyBsaW51eC9hcmNoL2kzODYvbW0vaW5pdC5jDQot LS0gbGludXgtMi4xLjg5LWluaXRmdW5jL2FyY2gvaTM4Ni9tbS9pbml0LmMJ VGh1IEphbiAyMiAwNjoyODo1NSAxOTk4DQorKysgbGludXgvYXJjaC9pMzg2 L21tL2luaXQuYwlXZWQgTWFyICA0IDA3OjAzOjIzIDE5OTgNCkBAIC0yNjUs MTIgKzI2NSwxOSBAQA0KICAqIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIHRlc3Qg YXJlIGhlcmUgdG8gd29yay1hcm91bmQgc29tZSBuYXN0eSBDUFUgYnVncy4N CiAgKi8NCiANCitzdGF0aWMgY2hhciB3cG1zZ1tdIF9faW5pdGRhdGEgPQ0K KwkiQ2hlY2tpbmcgaWYgdGhpcyBwcm9jZXNzb3IgaG9ub3VycyB0aGUgV1Ag Yml0IGV2ZW4gaW4gc3VwZXJ2aXNvciBtb2RlLi4uICI7DQorI2lmbmRlZiBD T05GSUdfTTM4Ng0KK3N0YXRpYyBjaGFyIGJyb2tlbndwbXNnW10gX19pbml0 ZGF0YSA9IA0KKwkiVGhpcyBrZXJuZWwgZG9lc24ndCBzdXBwb3J0IENQVSdz IHdpdGggYnJva2VuIFdQLiBSZWNvbXBpbGUgaXQgZm9yIGEgMzg2ISI7DQor I2VuZGlmDQorDQogX19pbml0ZnVuYyh2b2lkIHRlc3Rfd3BfYml0KHZvaWQp KQ0KIHsNCiAJdW5zaWduZWQgY2hhciB0bXBfcmVnOw0KIAl1bnNpZ25lZCBs b25nIG9sZCA9IHBnMFswXTsNCiANCi0JcHJpbnRrKCJDaGVja2luZyBpZiB0 aGlzIHByb2Nlc3NvciBob25vdXJzIHRoZSBXUCBiaXQgZXZlbiBpbiBzdXBl cnZpc29yIG1vZGUuLi4gIik7DQorCXByaW50ayh3cG1zZyk7DQogCXBnMFsw XSA9IHB0ZV92YWwobWtfcHRlKFBBR0VfT0ZGU0VULCBQQUdFX1JFQURPTkxZ KSk7DQogCWxvY2FsX2ZsdXNoX3RsYigpOw0KIAljdXJyZW50LT5tbS0+bW1h cC0+dm1fc3RhcnQgKz0gUEFHRV9TSVpFOw0KQEAgLTI5MCwxMiArMjk3LDE1 IEBADQogCQlib290X2NwdV9kYXRhLndwX3dvcmtzX29rID0gMDsNCiAJCXBy aW50aygiTm8uXG4iKTsNCiAjaWZuZGVmIENPTkZJR19NMzg2DQotCQlwYW5p YygiVGhpcyBrZXJuZWwgZG9lc24ndCBzdXBwb3J0IENQVSdzIHdpdGggYnJv a2VuIFdQLiBSZWNvbXBpbGUgaXQgZm9yIGEgMzg2ISIpOw0KKwkJcGFuaWMo YnJva2Vud3Btc2cpOw0KICNlbmRpZg0KIAl9IGVsc2UNCiAJCXByaW50aygi LlxuIik7DQogfQ0KIA0KK3N0YXRpYyBjaGFyIG1lbW1zZ1tdIF9faW5pdGRh dGEgPQ0KKwkiTWVtb3J5OiAlbHVrLyVsdWsgYXZhaWxhYmxlICglZGsga2Vy bmVsIGNvZGUsICVkayByZXNlcnZlZCwgJWRrIGRhdGEsICVkayBpbml0KVxu IjsNCisNCiBfX2luaXRmdW5jKHZvaWQgbWVtX2luaXQodW5zaWduZWQgbG9u ZyBzdGFydF9tZW0sIHVuc2lnbmVkIGxvbmcgZW5kX21lbSkpDQogew0KIAl1 bnNpZ25lZCBsb25nIHN0YXJ0X2xvd19tZW0gPSBQQUdFX1NJWkU7DQpAQCAt MzY3LDcgKzM3Nyw3IEBADQogI2VuZGlmDQogCQkJZnJlZV9wYWdlKHRtcCk7 DQogCX0NCi0JcHJpbnRrKCJNZW1vcnk6ICVsdWsvJWx1ayBhdmFpbGFibGUg KCVkayBrZXJuZWwgY29kZSwgJWRrIHJlc2VydmVkLCAlZGsgZGF0YSwgJWRr IGluaXQpXG4iLA0KKwlwcmludGsobWVtbXNnLA0KIAkJKHVuc2lnbmVkIGxv bmcpIG5yX2ZyZWVfcGFnZXMgPDwgKFBBR0VfU0hJRlQtMTApLA0KIAkJbWF4 X21hcG5yIDw8IChQQUdFX1NISUZULTEwKSwNCiAJCWNvZGVwYWdlcyA8PCAo UEFHRV9TSElGVC0xMCksDQpkaWZmIC1ydSAtLW5ldy1maWxlIGxpbnV4LTIu MS44OS1pbml0ZnVuYy9kcml2ZXJzL3Njc2kvYWhhMTU0Mi5jIGxpbnV4L2Ry aXZlcnMvc2NzaS9haGExNTQyLmMNCi0tLSBsaW51eC0yLjEuODktaW5pdGZ1 bmMvZHJpdmVycy9zY3NpL2FoYTE1NDIuYwlXZWQgTWFyICA0IDA2OjI2OjU5 IDE5OTgNCisrKyBsaW51eC9kcml2ZXJzL3Njc2kvYWhhMTU0Mi5jCVdlZCBN YXIgIDQgMDc6MDM6MjQgMTk5OA0KQEAgLTg3MiwyNSArODcyLDM1IEBADQog fQ0KIA0KIC8qIGNhbGxlZCBmcm9tIGluaXQvbWFpbi5jICovDQorc3RhdGlj IGNoYXIgYWhhdXNhZ2VbXSBfX2luaXRkYXRhID0NCisJImFoYTE1NDI6IHVz YWdlOiBhaGExNTQyPTxQT1JUQkFTRT5bLDxCVVNPTj4sPEJVU09GRj5bLDxE TUFTUEVFRD5dXVxuIjsNCitzdGF0aWMgY2hhciB0b29tYW55bXNnW10gX19p bml0ZGF0YSA9DQorCSJhaGExNTQyOiBhaGExNTQyX3NldHVwIGNhbGxlZCB0 b28gbWFueSB0aW1lcyEgQmFkIExJTE8gcGFyYW1zID9cbiI7DQorc3RhdGlj IGNoYXIgd3JvbmdwYXJtc2dbXSBfX2luaXRkYXRhID0NCisJImFoYTE1NDI6 IFdyb25nIHBhcmFtZXRlcnMgbWF5IGNhdXNlIHN5c3RlbSBtYWxmdW5jdGlv bi4uIFdlIHRyeSBhbnl3YXkuLlxuIjsNCitzdGF0aWMgY2hhciBkbWFzcGVl ZG1zZ1tdIF9faW5pdGRhdGEgPQ0KKwkiYWhhMTU0MjogVmFsaWQgdmFsdWVz IGZvciBETUFTUEVFRCBhcmUgNS04LCAxMCBNQi9zLiAgVXNpbmcganVtcGVy IGRlZmF1bHRzLlxuIjsNCitzdGF0aWMgY2hhciBlbnRyeWxpbmVtc2dbXSBf X2luaXRkYXRhID0NCisJIiAgIEVudHJ5bGluZSAxOiAlc1xuICAgRW50cnls aW5lIDI6ICVzXG4gICBUaGlzIGxpbmU6ICAgJXNcbiI7DQorc3RhdGljIGNo YXIgYWhhMTU0Mm1zZ1tdIF9faW5pdGRhdGEgPQ0KKwkiYWhhMTU0MjogJXNc biI7DQorDQogX19pbml0ZnVuYyh2b2lkIGFoYTE1NDJfc2V0dXAoIGNoYXIg KnN0ciwgaW50ICppbnRzKSkNCiB7DQotICAgIGNvbnN0IGNoYXIgKmFoYXVz YWdlID0gImFoYTE1NDI6IHVzYWdlOiBhaGExNTQyPTxQT1JUQkFTRT5bLDxC VVNPTj4sPEJVU09GRj5bLDxETUFTUEVFRD5dXVxuIjsNCiAgICAgc3RhdGlj IGludCBzZXR1cF9pZHggPSAwOw0KICAgICBpbnQgc2V0dXBfcG9ydGJhc2U7 DQogDQogICAgIGlmKHNldHVwX2lkeCA+PSBNQVhCT0FSRFMpDQogICAgICAg ew0KLQlwcmludGsoImFoYTE1NDI6IGFoYTE1NDJfc2V0dXAgY2FsbGVkIHRv byBtYW55IHRpbWVzISBCYWQgTElMTyBwYXJhbXMgP1xuIik7DQotCXByaW50 aygiICAgRW50cnlsaW5lIDE6ICVzXG4iLHNldHVwX3N0clswXSk7DQotCXBy aW50aygiICAgRW50cnlsaW5lIDI6ICVzXG4iLHNldHVwX3N0clsxXSk7DQot CXByaW50aygiICAgVGhpcyBsaW5lOiAgICVzXG4iLHN0cik7DQorCXByaW50 ayh0b29tYW55bXNnKTsNCisJcHJpbnRrKGVudHJ5bGluZW1zZywgc2V0dXBf c3RyWzBdLCBzZXR1cF9zdHJbMV0sIHN0cik7DQogCXJldHVybjsNCiAgICAg ICB9DQogICAgIGlmIChpbnRzWzBdIDwgMSB8fCBpbnRzWzBdID4gNCkNCiAg ICAgICB7DQotCXByaW50aygiYWhhMTU0MjogJXNcbiIsIHN0ciApOw0KKwlw cmludGsoYWhhMTU0Mm1zZywgc3RyICk7DQogCXByaW50ayhhaGF1c2FnZSk7 DQotCXByaW50aygiYWhhMTU0MjogV3JvbmcgcGFyYW1ldGVycyBtYXkgY2F1 c2Ugc3lzdGVtIG1hbGZ1bmN0aW9uLi4gV2UgdHJ5IGFueXdheS4uXG4iKTsN CisJcHJpbnRrKHdyb25ncGFybXNnKTsNCiAgICAgICB9DQogDQogICAgIHNl dHVwX2NhbGxlZFtzZXR1cF9pZHhdPWludHNbMF07DQpAQCAtOTE4LDkgKzky OCw5IEBADQogCSAgICBhdGJ0ID0gMHgwMzsNCiAJICAgIGJyZWFrOw0KIAlk ZWZhdWx0Og0KLQkgICAgcHJpbnRrKCJhaGExNTQyOiAlc1xuIiwgc3RyICk7 DQorCSAgICBwcmludGsoYWhhMTU0Mm1zZywgc3RyICk7DQogCSAgICBwcmlu dGsoYWhhdXNhZ2UpOw0KLQkgICAgcHJpbnRrKCJhaGExNTQyOiBWYWxpZCB2 YWx1ZXMgZm9yIERNQVNQRUVEIGFyZSA1LTgsIDEwIE1CL3MuICBVc2luZyBq dW1wZXIgZGVmYXVsdHMuXG4iKTsNCisJICAgIHByaW50ayhkbWFzcGVlZG1z Zyk7DQogCSAgICBicmVhazsNCiAgICAgICB9DQogICAgICAgc2V0dXBfZG1h c3BlZWRbc2V0dXBfaWR4XSAgPSBhdGJ0Ow0KZGlmZiAtcnUgLS1uZXctZmls ZSBsaW51eC0yLjEuODktaW5pdGZ1bmMvZHJpdmVycy9zY3NpL3Njc2kuYyBs aW51eC9kcml2ZXJzL3Njc2kvc2NzaS5jDQotLS0gbGludXgtMi4xLjg5LWlu aXRmdW5jL2RyaXZlcnMvc2NzaS9zY3NpLmMJV2VkIE1hciAgNCAwNjoyNjo1 OSAxOTk4DQorKysgbGludXgvZHJpdmVycy9zY3NpL3Njc2kuYwlXZWQgTWFy ICA0IDA3OjAzOjI0IDE5OTgNCkBAIC0zOTcsMTEgKzM5NywxMyBAQA0KIAl1 cChTQ3BudC0+cmVxdWVzdC5zZW0pOw0KIH0NCiANCitzdGF0aWMgY2hhciBs b2dnaW5nbXNnW10gX19pbml0ZGF0YSA9DQorCSJzY3NpX2xvZ2dpbmdfc2V0 dXAgOiB1c2FnZSBzY3NpX2xvZ2dpbmdfbGV2ZWw9biAobiBzaG91bGQgYmUg MCBvciBub24temVybylcbiI7DQorDQogX19pbml0ZnVuYyh2b2lkIHNjc2lf bG9nZ2luZ19zZXR1cChjaGFyICpzdHIsIGludCAqaW50cykpDQogew0KICAg ICBpZiAoaW50c1swXSAhPSAxKSB7DQotCXByaW50aygic2NzaV9sb2dnaW5n X3NldHVwIDogdXNhZ2Ugc2NzaV9sb2dnaW5nX2xldmVsPW4gIg0KLSAgICAg ICAgICAgICAgICIobiBzaG91bGQgYmUgMCBvciBub24temVybylcbiIpOw0K KwlwcmludGsobG9nZ2luZ21zZyk7DQogICAgIH0gZWxzZSB7DQogCXNjc2lf bG9nZ2luZ19sZXZlbCA9IChpbnRzWzFdKT8gfjAgOiAwOw0KICAgICB9DQpA QCAtNDEzLDEwICs0MTUsMTMgQEANCiBzdGF0aWMgaW50IG1heF9zY3NpX2x1 bnMgPSAxOw0KICNlbmRpZg0KIA0KK3N0YXRpYyBjaGFyIGx1bnNtc2dbXSBf X2luaXRkYXRhID0NCisJInNjc2lfbHVuc19zZXR1cCA6IHVzYWdlIG1heF9z Y3NpX2x1bnM9biAobiBzaG91bGQgYmUgYmV0d2VlbiAxIGFuZCA4KVxuIjsN CisNCiBfX2luaXRmdW5jKHZvaWQgc2NzaV9sdW5zX3NldHVwKGNoYXIgKnN0 ciwgaW50ICppbnRzKSkNCiB7DQogICAgIGlmIChpbnRzWzBdICE9IDEpDQot CXByaW50aygic2NzaV9sdW5zX3NldHVwIDogdXNhZ2UgbWF4X3Njc2lfbHVu cz1uIChuIHNob3VsZCBiZSBiZXR3ZWVuIDEgYW5kIDgpXG4iKTsNCisJcHJp bnRrKGx1bnNtc2cpOw0KICAgICBlbHNlDQogCW1heF9zY3NpX2x1bnMgPSBp bnRzWzFdOw0KIH0NCmRpZmYgLXJ1IC0tbmV3LWZpbGUgbGludXgtMi4xLjg5 LWluaXRmdW5jL2ZzL2J1ZmZlci5jIGxpbnV4L2ZzL2J1ZmZlci5jDQotLS0g bGludXgtMi4xLjg5LWluaXRmdW5jL2ZzL2J1ZmZlci5jCVdlZCBNYXIgIDQg MDY6MjY6NTkgMTk5OA0KKysrIGxpbnV4L2ZzL2J1ZmZlci5jCVdlZCBNYXIg IDQgMDc6MDM6MjUgMTk5OA0KQEAgLTE2OTksNiArMTY5OSwxMSBAQA0KIA0K IC8qID09PT09PT09PT09PT09PT09PT09PSBJbml0ID09PT09PT09PT09PT09 PT09PT09PT09ICovDQogDQorc3RhdGljIGNoYXIgaGFzaHBhbmljbXNnW10g X19pbml0ZGF0YSA9DQorCSJGYWlsZWQgdG8gYWxsb2NhdGUgYnVmZmVyIGhh c2ggdGFibGVcbiI7DQorc3RhdGljIGNoYXIgYmhwYW5pY21zZ1tdIF9faW5p dGRhdGEgPQ0KKwkiQ2Fubm90IGNyZWF0ZSBidWZmZXIgaGVhZCBTTEFCIGNh Y2hlXG4iOw0KKw0KIC8qDQogICogYWxsb2NhdGUgdGhlIGhhc2ggdGFibGUg YW5kIGluaXQgdGhlIGZyZWUgbGlzdA0KICAqIFVzZSBnZnAoKSBmb3IgdGhl IGhhc2ggdGFibGUgdG8gZGVjcmVhc2UgVExCIG1pc3NlcywgdXNlDQpAQCAt MTcwOSw3ICsxNzE0LDcgQEANCiAJaGFzaF90YWJsZSA9IChzdHJ1Y3QgYnVm ZmVyX2hlYWQgKiopDQogCQlfX2dldF9mcmVlX3BhZ2VzKEdGUF9BVE9NSUMs IEhBU0hfUEFHRVNfT1JERVIpOw0KIAlpZiAoIWhhc2hfdGFibGUpDQotCQlw YW5pYygiRmFpbGVkIHRvIGFsbG9jYXRlIGJ1ZmZlciBoYXNoIHRhYmxlXG4i KTsNCisJCXBhbmljKGhhc2hwYW5pY21zZyk7DQogCW1lbXNldChoYXNoX3Rh YmxlLDAsTlJfSEFTSCpzaXplb2Yoc3RydWN0IGJ1ZmZlcl9oZWFkICopKTsN CiANCiAJYmhfY2FjaGVwID0ga21lbV9jYWNoZV9jcmVhdGUoImJ1ZmZlcl9o ZWFkIiwNCkBAIC0xNzE3LDcgKzE3MjIsNyBAQA0KIAkJCQkgICAgICAwLA0K IAkJCQkgICAgICBTTEFCX0hXQ0FDSEVfQUxJR04sIE5VTEwsIE5VTEwpOw0K IAlpZighYmhfY2FjaGVwKQ0KLQkJcGFuaWMoIkNhbm5vdCBjcmVhdGUgYnVm ZmVyIGhlYWQgU0xBQiBjYWNoZVxuIik7DQorCQlwYW5pYyhiaHBhbmljbXNn KTsNCiAJLyoNCiAJICogQWxsb2NhdGUgdGhlIHJlc2VydmVkIGJ1ZmZlciBo ZWFkcy4NCiAJICovDQpkaWZmIC1ydSAtLW5ldy1maWxlIGxpbnV4LTIuMS44 OS1pbml0ZnVuYy9mcy9maWxlX3RhYmxlLmMgbGludXgvZnMvZmlsZV90YWJs ZS5jDQotLS0gbGludXgtMi4xLjg5LWluaXRmdW5jL2ZzL2ZpbGVfdGFibGUu YwlXZWQgTWFyICA0IDA2OjI2OjU5IDE5OTgNCisrKyBsaW51eC9mcy9maWxl X3RhYmxlLmMJV2VkIE1hciAgNCAwNzowMzoyNSAxOTk4DQpAQCAtNDYsMTMg KzQ2LDE2IEBADQogCWZpbGUtPmZfcHByZXYgPSAmaW51c2VfZmlscHM7DQog fQ0KIA0KK3N0YXRpYyBjaGFyIGZpbHBwYW5pY21zZ1tdIF9faW5pdGRhdGEg PQ0KKwkiVkZTOiBDYW5ub3QgYWxsb2MgZmlscCBTTEFCIGNhY2hlLiI7DQor DQogX19pbml0ZnVuYyh2b2lkIGZpbGVfdGFibGVfaW5pdCh2b2lkKSkNCiB7 DQogCWZpbHBfY2FjaGUgPSBrbWVtX2NhY2hlX2NyZWF0ZSgiZmlscCIsIHNp emVvZihzdHJ1Y3QgZmlsZSksDQogCQkJCSAgICAgICAwLA0KIAkJCQkgICAg ICAgU0xBQl9IV0NBQ0hFX0FMSUdOLCBOVUxMLCBOVUxMKTsNCiAJaWYoIWZp bHBfY2FjaGUpDQotCQlwYW5pYygiVkZTOiBDYW5ub3QgYWxsb2MgZmlscCBT TEFCIGNhY2hlLiIpOw0KKwkJcGFuaWMoZmlscHBhbmljbXNnKTsNCiAJLyoN CiAJICogV2UgY291bGQgYWxsb2NhdGUgdGhlIHJlc2VydmVkIGZpbGVzIGhl cmUsIGJ1dCByZWFsbHkNCiAJICogc2hvdWxkbid0IG5lZWQgdG86IHRoZSBu b3JtYWwgYm9vdCBwcm9jZXNzIHdpbGwgY3JlYXRlDQpkaWZmIC1ydSAtLW5l dy1maWxlIGxpbnV4LTIuMS44OS1pbml0ZnVuYy9pbml0L21haW4uYyBsaW51 eC9pbml0L21haW4uYw0KLS0tIGxpbnV4LTIuMS44OS1pbml0ZnVuYy9pbml0 L21haW4uYwlGcmkgRmViIDIwIDA0OjU1OjU0IDE5OTgNCisrKyBsaW51eC9p bml0L21haW4uYwlXZWQgTWFyICA0IDA3OjAzOjI1IDE5OTgNCkBAIC04MTks NiArODE5LDkgQEANCiAgICBiZXR0ZXIgdGhhbiAxJSAqLw0KICNkZWZpbmUg TFBTX1BSRUMgOA0KIA0KK3N0YXRpYyBjaGFyIGNhbGlibXNnW10gX19pbml0 ZGF0YSA9ICJDYWxpYnJhdGluZyBkZWxheSBsb29wLi4uICI7DQorc3RhdGlj IGNoYXIgYm9nb21pcHNtc2dbXSBfX2luaXRkYXRhID0gIiVsdS4lMDJsdSBC b2dvTUlQU1xuIjsNCisNCiBfX2luaXRmdW5jKHZvaWQgY2FsaWJyYXRlX2Rl bGF5KHZvaWQpKQ0KIHsNCiAJdW5zaWduZWQgbG9uZyB0aWNrcywgbG9vcGJp dDsNCkBAIC04MjYsNyArODI5LDcgQEANCiANCiAJbG9vcHNfcGVyX3NlYyA9 ICgxPDwxMik7DQogDQotCXByaW50aygiQ2FsaWJyYXRpbmcgZGVsYXkgbG9v cC4uLiAiKTsNCisJcHJpbnRrKGNhbGlibXNnKTsNCiAJd2hpbGUgKGxvb3Bz X3Blcl9zZWMgPDw9IDEpIHsNCiAJCS8qIHdhaXQgZm9yICJzdGFydCBvZiIg Y2xvY2sgdGljayAqLw0KIAkJdGlja3MgPSBqaWZmaWVzOw0KQEAgLTg1Nyw3 ICs4NjAsNyBAQA0KIC8qIGZpbmFsbHksIGFkanVzdCBsb29wcyBwZXIgc2Vj b25kIGluIHRlcm1zIG9mIHNlY29uZHMgaW5zdGVhZCBvZiBjbG9ja3MgKi8J DQogCWxvb3BzX3Blcl9zZWMgKj0gSFo7DQogLyogUm91bmQgdGhlIHZhbHVl IGFuZCBwcmludCBpdCAqLwkNCi0JcHJpbnRrKCIlbHUuJTAybHUgQm9nb01J UFNcbiIsDQorCXByaW50ayhib2dvbWlwc21zZywNCiAJCShsb29wc19wZXJf c2VjKzI1MDApLzUwMDAwMCwNCiAJCSgobG9vcHNfcGVyX3NlYysyNTAwKS81 MDAwKSAlIDEwMCk7DQogfQ0KQEAgLTk4MCw3ICs5ODMsMTAgQEANCiAvKg0K ICAqCUFjdGl2YXRlIHRoZSBmaXJzdCBwcm9jZXNzb3IuDQogICovDQotIA0K Kw0KK3N0YXRpYyBjaGFyIHVuaWZpeG1zZ1tdIF9faW5pdGRhdGEgPQ0KKwki UE9TSVggY29uZm9ybWFuY2UgdGVzdGluZyBieSBVTklGSVhcbiI7IA0KKw0K IF9faW5pdGZ1bmMoYXNtbGlua2FnZSB2b2lkIHN0YXJ0X2tlcm5lbCh2b2lk KSkNCiB7DQogCWNoYXIgKiBjb21tYW5kX2xpbmU7DQpAQCAtMTA2Nyw3ICsx MDczLDcgQEANCiAJZHF1b3RfaW5pdCgpOw0KIAljaGVja19idWdzKCk7DQog DQotCXByaW50aygiUE9TSVggY29uZm9ybWFuY2UgdGVzdGluZyBieSBVTklG SVhcbiIpOw0KKwlwcmludGsodW5pZml4bXNnKTsNCiAjaWZkZWYgX19TTVBf Xw0KIAlzbXBfaW5pdCgpOw0KICNlbmRpZg0KZGlmZiAtcnUgLS1uZXctZmls ZSBsaW51eC0yLjEuODktaW5pdGZ1bmMva2VybmVsL2ZvcmsuYyBsaW51eC9r ZXJuZWwvZm9yay5jDQotLS0gbGludXgtMi4xLjg5LWluaXRmdW5jL2tlcm5l bC9mb3JrLmMJV2VkIE1hciAgNCAwNjowMjowNyAxOTk4DQorKysgbGludXgv a2VybmVsL2ZvcmsuYwlXZWQgTWFyICA0IDA3OjAzOjI1IDE5OTgNCkBAIC0x MjMsNiArMTIzLDkgQEANCiAJcmV0dXJuIDA7DQogfQ0KIA0KK3N0YXRpYyBj aGFyIHVpZHBhbmljbXNnW10gX19pbml0ZGF0YSA9DQorCSJDYW5ub3QgY3Jl YXRlIHVpZCB0YXNrY291bnQgU0xBQiBjYWNoZVxuIjsNCisNCiBfX2luaXRm dW5jKHZvaWQgdWlkY2FjaGVfaW5pdCh2b2lkKSkNCiB7DQogCWludCBpOw0K QEAgLTEzMSw3ICsxMzQsNyBAQA0KIAkJCQkgICAgICAgMCwNCiAJCQkJICAg ICAgIFNMQUJfSFdDQUNIRV9BTElHTiwgTlVMTCwgTlVMTCk7DQogCWlmKCF1 aWRfY2FjaGVwKQ0KLQkJcGFuaWMoIkNhbm5vdCBjcmVhdGUgdWlkIHRhc2tj b3VudCBTTEFCIGNhY2hlXG4iKTsNCisJCXBhbmljKHVpZHBhbmljbXNnKTsN CiANCiAJZm9yKGkgPSAwOyBpIDwgVUlESEFTSF9TWjsgaSsrKQ0KIAkJdWlk aGFzaFtpXSA9IDA7DQpAQCAtNTY4LDYgKzU3MSw4IEBADQogCW1lbXNldChm LCAwLCBzaXplb2YoKmYpKTsNCiB9DQogDQorc3RhdGljIGNoYXIgZmlsZXNw YW5pY21zZ1tdIF9faW5pdGRhdGEgPSAiQ2Fubm90IGNyZWF0ZSBmaWxlcyBj YWNoZSI7DQorDQogX19pbml0ZnVuYyh2b2lkIGZpbGVzY2FjaGVfaW5pdCh2 b2lkKSkNCiB7DQogCWZpbGVzX2NhY2hlcCA9IGttZW1fY2FjaGVfY3JlYXRl KCJmaWxlc19jYWNoZSIsIA0KQEAgLTU3Niw1ICs1ODEsNSBAQA0KIAkJCQkJ IFNMQUJfSFdDQUNIRV9BTElHTiwNCiAJCQkJCSBmaWxlc19jdG9yLCBOVUxM KTsNCiAJaWYgKCFmaWxlc19jYWNoZXApIA0KLQkJcGFuaWMoIkNhbm5vdCBj cmVhdGUgZmlsZXMgY2FjaGUiKTsgDQorCQlwYW5pYyhmaWxlc3BhbmljbXNn KTsgDQogfQ0KZGlmZiAtcnUgLS1uZXctZmlsZSBsaW51eC0yLjEuODktaW5p dGZ1bmMvbW0vbW1hcC5jIGxpbnV4L21tL21tYXAuYw0KLS0tIGxpbnV4LTIu MS44OS1pbml0ZnVuYy9tbS9tbWFwLmMJV2VkIE1hciAgNCAwNjowMjowOSAx OTk4DQorKysgbGludXgvbW0vbW1hcC5jCVdlZCBNYXIgIDQgMDc6MDM6MjYg MTk5OA0KQEAgLTcwNCw2ICs3MDQsMTEgQEANCiAJdXAoJm1tLT5tbWFwX3Nl bSk7DQogfQ0KIA0KK3N0YXRpYyBjaGFyIHZtcGFuaWNtc2dbXSBfX2luaXRk YXRhID0NCisJInZtYV9pbml0OiBDYW5ub3QgYWxsb2Mgdm1fYXJlYV9zdHJ1 Y3QgY2FjaGUuIjsNCitzdGF0aWMgY2hhciBtbXBhbmljbXNnW10gX19pbml0 ZGF0YSA9DQorCSJ2bWFfaW5pdDogQ2Fubm90IGFsbG9jIG1tX3N0cnVjdCBj YWNoZS4iOw0KKw0KIF9faW5pdGZ1bmModm9pZCB2bWFfaW5pdCh2b2lkKSkN CiB7DQogCXZtX2FyZWFfY2FjaGVwID0ga21lbV9jYWNoZV9jcmVhdGUoInZt X2FyZWFfc3RydWN0IiwNCkBAIC03MTEsMTIgKzcxNiwxMiBAQA0KIAkJCQkJ ICAgMCwgU0xBQl9IV0NBQ0hFX0FMSUdOLA0KIAkJCQkJICAgTlVMTCwgTlVM TCk7DQogCWlmKCF2bV9hcmVhX2NhY2hlcCkNCi0JCXBhbmljKCJ2bWFfaW5p dDogQ2Fubm90IGFsbG9jIHZtX2FyZWFfc3RydWN0IGNhY2hlLiIpOw0KKwkJ cGFuaWModm1wYW5pY21zZyk7DQogDQogCW1tX2NhY2hlcCA9IGttZW1fY2Fj aGVfY3JlYXRlKCJtbV9zdHJ1Y3QiLA0KIAkJCQkgICAgICBzaXplb2Yoc3Ry dWN0IG1tX3N0cnVjdCksDQogCQkJCSAgICAgIDAsIFNMQUJfSFdDQUNIRV9B TElHTiwNCiAJCQkJICAgICAgTlVMTCwgTlVMTCk7DQogCWlmKCFtbV9jYWNo ZXApDQotCQlwYW5pYygidm1hX2luaXQ6IENhbm5vdCBhbGxvYyBtbV9zdHJ1 Y3QgY2FjaGUuIik7DQorCQlwYW5pYyhtbXBhbmljbXNnKTsNCiB9DQpkaWZm IC1ydSAtLW5ldy1maWxlIGxpbnV4LTIuMS44OS1pbml0ZnVuYy9tbS92bXNj YW4uYyBsaW51eC9tbS92bXNjYW4uYw0KLS0tIGxpbnV4LTIuMS44OS1pbml0 ZnVuYy9tbS92bXNjYW4uYwlXZWQgTWFyICA0IDA2OjI3OjAwIDE5OTgNCisr KyBsaW51eC9tbS92bXNjYW4uYwlXZWQgTWFyICA0IDA3OjE1OjQyIDE5OTgN CkBAIC00OTksNiArNDk5LDkgQEANCiAgKiBtYXkgYmUgcHJpbnRlZCBpbiB0 aGUgbWlkZGxlIG9mIGFub3RoZXIgZHJpdmVyJ3MgaW5pdCANCiAgKiBtZXNz YWdlKS4gIEl0IGxvb2tzIHZlcnkgYmFkIHdoZW4gdGhhdCBoYXBwZW5zLg0K ICAqLw0KKw0KK3N0YXRpYyBjaGFyIGtzd2FwZF9tc2dbXSBfX2luaXRkYXRh ID0gIlN0YXJ0aW5nIGtzd2FwZCB2JS4qc1xuIjsNCisNCiBfX2luaXRmdW5j KHZvaWQga3N3YXBkX3NldHVwKHZvaWQpKQ0KIHsNCiAgICAgICAgaW50IGk7 DQpAQCAtNTA5LDcgKzUxMiw3IEBADQogICAgICAgICAgICAgICAgcysrLCBp ID0gZSAtIHM7DQogICAgICAgIGVsc2UNCiAgICAgICAgICAgICAgICBzID0g cmV2aXNpb24sIGkgPSAtMTsNCi0gICAgICAgcHJpbnRrICgiU3RhcnRpbmcg a3N3YXBkIHYlLipzXG4iLCBpLCBzKTsNCisgICAgICAgcHJpbnRrIChrc3dh cGRfbXNnLCBpLCBzKTsNCiB9DQogDQogI2RlZmluZSBNQVhfU1dBUF9GQUlM IDMNCmRpZmYgLXJ1IC0tbmV3LWZpbGUgbGludXgtMi4xLjg5LWluaXRmdW5j L25ldC9pcHY0L2FmX2luZXQuYyBsaW51eC9uZXQvaXB2NC9hZl9pbmV0LmMN Ci0tLSBsaW51eC0yLjEuODktaW5pdGZ1bmMvbmV0L2lwdjQvYWZfaW5ldC5j CVdlZCBNYXIgIDQgMDY6MDI6MTIgMTk5OA0KKysrIGxpbnV4L25ldC9pcHY0 L2FmX2luZXQuYwlXZWQgTWFyICA0IDA3OjAzOjI2IDE5OTgNCkBAIC0xMDUw LDEzICsxMDUwLDE2IEBADQogLyoNCiAgKglDYWxsZWQgYnkgc29ja2V0LmMg b24ga2VybmVsIHN0YXJ0dXAuICANCiAgKi8NCisNCitzdGF0aWMgY2hhciBz d2FubXNnW10gX19pbml0ZGF0YSA9DQorICAgICAgICAiU3dhbnNlYSBVbml2 ZXJzaXR5IENvbXB1dGVyIFNvY2lldHkgVENQL0lQIGZvciBORVQzLjAzN1xu IjsNCiAgDQogX19pbml0ZnVuYyh2b2lkIGluZXRfcHJvdG9faW5pdChzdHJ1 Y3QgbmV0X3Byb3RvICpwcm8pKQ0KIHsNCiAJc3RydWN0IHNrX2J1ZmYgKmR1 bW15X3NrYjsNCiAJc3RydWN0IGluZXRfcHJvdG9jb2wgKnA7DQogDQotCXBy aW50ayhLRVJOX0lORk8gIlN3YW5zZWEgVW5pdmVyc2l0eSBDb21wdXRlciBT b2NpZXR5IFRDUC9JUCBmb3IgTkVUMy4wMzdcbiIpOw0KKwlwcmludGsoS0VS Tl9JTkZPICIlcyIsIHN3YW5tc2cpOw0KIA0KIAlpZiAoc2l6ZW9mKHN0cnVj dCBpbmV0X3NrYl9wYXJtKSA+IHNpemVvZihkdW1teV9za2ItPmNiKSkNCiAJ ew0KZGlmZiAtcnUgLS1uZXctZmlsZSBsaW51eC0yLjEuODktaW5pdGZ1bmMv bmV0L2lwdjQvaWNtcC5jIGxpbnV4L25ldC9pcHY0L2ljbXAuYw0KLS0tIGxp bnV4LTIuMS44OS1pbml0ZnVuYy9uZXQvaXB2NC9pY21wLmMJV2VkIE1hciAg NCAwNjowMjoxMyAxOTk4DQorKysgbGludXgvbmV0L2lwdjQvaWNtcC5jCVdl ZCBNYXIgIDQgMDc6MDM6MjYgMTk5OA0KQEAgLTEwNzQsNiArMTA3NCw5IEBA DQogIHsgJmljbXBfc3RhdGlzdGljcy5JY21wT3V0QWRkck1hc2tSZXBzLCAm aWNtcF9zdGF0aXN0aWNzLkljbXBJbkFkZHJNYXNrUmVwcywgaWNtcF9hZGRy ZXNzX3JlcGx5LCAwLCB9DQogfTsNCiANCitzdGF0aWMgY2hhciBpY21wcGFu aWNtc2dbXSBfX2luaXRkYXRhID0NCisgICAgICAgICJGYWlsZWQgdG8gY3Jl YXRlIHRoZSBJQ01QIGNvbnRyb2wgc29ja2V0LlxuIjsNCisNCiBfX2luaXRm dW5jKHZvaWQgaWNtcF9pbml0KHN0cnVjdCBuZXRfcHJvdG9fZmFtaWx5ICpv cHMpKQ0KIHsNCiAJaW50IGVycjsNCkBAIC0xMDg4LDcgKzEwOTEsNyBAQA0K IAlpY21wX3NvY2tldC0+dHlwZT1TT0NLX1JBVzsNCiANCiAJaWYgKChlcnI9 b3BzLT5jcmVhdGUoaWNtcF9zb2NrZXQsIElQUFJPVE9fSUNNUCkpPDApDQot CQlwYW5pYygiRmFpbGVkIHRvIGNyZWF0ZSB0aGUgSUNNUCBjb250cm9sIHNv Y2tldC5cbiIpOw0KKwkJcGFuaWMoaWNtcHBhbmljbXNnKTsNCiAJaWNtcF9z b2NrZXQtPnNrLT5hbGxvY2F0aW9uPUdGUF9BVE9NSUM7DQogCWljbXBfc29j a2V0LT5zay0+bnVtID0gMjU2OwkJLyogRG9uJ3QgcmVjZWl2ZSBhbnkgZGF0 YSAqLw0KIAlpY21wX3NvY2tldC0+c2stPmlwX3R0bCA9IE1BWFRUTDsNCmRp ZmYgLXJ1IC0tbmV3LWZpbGUgbGludXgtMi4xLjg5LWluaXRmdW5jL25ldC9z b2NrZXQuYyBsaW51eC9uZXQvc29ja2V0LmMNCi0tLSBsaW51eC0yLjEuODkt aW5pdGZ1bmMvbmV0L3NvY2tldC5jCVdlZCBNYXIgIDQgMDY6MDI6MjEgMTk5 OA0KKysrIGxpbnV4L25ldC9zb2NrZXQuYwlXZWQgTWFyICA0IDA3OjAzOjI3 IDE5OTgNCkBAIC0xNDQ2LDExICsxNDQ2LDE0IEBADQogZXh0ZXJuIHZvaWQg d2Fucm91dGVyX2luaXQodm9pZCk7DQogI2VuZGlmDQogDQorc3RhdGljIGNo YXIgc3dhbm1zZ1tdIF9faW5pdGRhdGEgPQ0KKwkiU3dhbnNlYSBVbml2ZXJz aXR5IENvbXB1dGVyIFNvY2lldHkgTkVUMy4wMzkgZm9yIExpbnV4IDIuMVxu IjsNCisNCiBfX2luaXRmdW5jKHZvaWQgc29ja19pbml0KHZvaWQpKQ0KIHsN CiAJaW50IGk7DQogDQotCXByaW50ayhLRVJOX0lORk8gIlN3YW5zZWEgVW5p dmVyc2l0eSBDb21wdXRlciBTb2NpZXR5IE5FVDMuMDM5IGZvciBMaW51eCAy LjFcbiIpOw0KKwlwcmludGsoS0VSTl9JTkZPICIlcyIsIHN3YW5tc2cpOw0K IA0KIAkvKg0KIAkgKglJbml0aWFsaXplIGFsbCBhZGRyZXNzIChwcm90b2Nv bCkgZmFtaWxpZXMuIA0K ---559023410-5627-889717320=:2374--

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu