From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott James Remnant Date: Thu, 09 Feb 2006 22:43:44 +0000 Subject: [PATCH] The Ubuntu Collection: Winter/Spring 2006 Message-Id: <1139525024.17150.22.camel@localhost.localdomain> MIME-Version: 1 Content-Type: multipart/mixed; boundary="=-ZX8YgJYK2awSagAmzU23" List-Id: To: linux-hotplug@vger.kernel.org --=-ZX8YgJYK2awSagAmzU23 Content-Type: multipart/mixed; boundary="=-mRORNAirnGZN8+voxZW4" --=-mRORNAirnGZN8+voxZW4 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Further patches added to udev since the last drop to the list; note that we've frozen at 079 for the time being as we're planning on releasing with 2.6.15 so wanted a version "well tested" with that; as such these patches are aimed at that, though should apply to later. New patches: 70-ifrename-wait-on-eexist.patch This is an improvement to the rename_net_if() function to allow interface names to be swapped if probed at the same time. Should the ioctl return the EEXIST error, the interface is instead renamed to something temporary (__name) and then goes into a loop trying to rename to the desired interface. The theory is that another udev process will do the opposite, and both renames will succeed. 80-extras-iftab_helper.patch Adds an iftab_helper program that parses a tiny subset of the ifrename-style /etc/iftab file and outputs the name the interface should have. As an improvement, if the kernel-assigned name would be taken by an interface in this file and the selectors don't match, the interface is renamed out of the kernel namespace (_name) so it doesn't clash later. We use the above patches for the following rule: SUBSYSTEM=3D=3D"net", ACTION=3D=3D"add", \ PROGRAM=3D"iftab_helper %k $sysfs{address}", \ NAME=3D"$result" Scott --=20 Scott James Remnant scott@ubuntu.com --=-mRORNAirnGZN8+voxZW4 Content-Description: Content-Disposition: inline; filename=70-ifrename-wait-on-eexist.patch Content-Type: text/x-patch; charset=UTF-8 Content-Transfer-Encoding: base64 ZGlmZiAtcnVOcCB1ZGV2LTA3OX4vdWRldl9hZGQuYyB1ZGV2LTA3OS91ZGV2X2FkZC5jDQotLS0g dWRldi0wNzl+L3VkZXZfYWRkLmMJMjAwNS0xMi0yMiAyMzo1MTozMC4wMDAwMDAwMDAgKzAwMDAN CisrKyB1ZGV2LTA3OS91ZGV2X2FkZC5jCTIwMDYtMDItMDkgMjI6MjU6NTkuNDk4MDI5NzY4ICsw MDAwDQpAQCAtMzIsNiArMzIsNyBAQA0KICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+DQogI2luY2x1 ZGUgPHN5cy9pb2N0bC5oPg0KICNpbmNsdWRlIDxsaW51eC9zb2NraW9zLmg+DQorI2luY2x1ZGUg PGVycm5vLmg+DQogDQogI2luY2x1ZGUgImxpYnN5c2ZzL3N5c2ZzL2xpYnN5c2ZzLmgiDQogI2lu Y2x1ZGUgInVkZXZfbGliY193cmFwcGVyLmgiDQpAQCAtMjYyLDEwICsyNjMsMzAgQEAgc3RhdGlj IGludCByZW5hbWVfbmV0X2lmKHN0cnVjdCB1ZGV2aWNlIA0KIAlzdHJsY3B5KGlmci5pZnJfbmV3 bmFtZSwgdWRldi0+bmFtZSwgSUZOQU1TSVopOw0KIA0KIAlyZXR2YWwgPSBpb2N0bChzaywgU0lP Q1NJRk5BTUUsICZpZnIpOw0KLQlpZiAocmV0dmFsICE9IDApDQorCWlmICgocmV0dmFsICE9IDAp ICYmIChlcnJubyA9PSBFRVhJU1QpKSB7DQorCQkvKiBSZW5hbWUgdG8gc29tZXRoaW5nIHRlbXBv cmFyeSB0aGVuIGtlZXAgdHJ5aW5nIHVudGlsDQorCQkgKiB0aGUgbmFtZSB3ZSB3YW50IHN0b3Bz IGJlaW5nIGhvZ2dlZC4gKi8NCisJCXN0cmxjcHkoaWZyLmlmcl9uZXduYW1lLCAiX18iLCBJRk5B TVNJWik7DQorCQlzdHJsY2F0KGlmci5pZnJfbmV3bmFtZSwgdWRldi0+bmFtZSwgSUZOQU1TSVop Ow0KKw0KKwkJcmV0dmFsID0gaW9jdGwoc2ssIFNJT0NTSUZOQU1FLCAmaWZyKTsNCisJCWlmIChy ZXR2YWwgIT0gMCkNCisJCQllcnIoImVycm9yIGNoYW5naW5nIG5ldCBpbnRlcmZhY2UgbmFtZTog JXMiLCBzdHJlcnJvcihlcnJubykpOw0KKw0KKwkJc3RybGNweShpZnIuaWZyX25ld25hbWUsIHVk ZXYtPm5hbWUsIElGTkFNU0laKTsNCisJCXdoaWxlICgocmV0dmFsID0gaW9jdGwoc2ssIFNJT0NT SUZOQU1FLCAmaWZyKSkgIT0gMCkgew0KKwkJCWlmIChlcnJubyAhPSBFRVhJU1QpIHsNCisJCQkJ ZXJyKCJlcnJvciBjaGFuZ2luZyBuZXQgaW50ZXJmYWNlIG5hbWU6ICVzIiwgc3RyZXJyb3IoZXJy bm8pKTsNCisJCQkJYnJlYWs7DQorCQkJfQ0KKw0KKwkJCXVzbGVlcCgxMDAwMCk7DQorCQl9DQor CX0gZWxzZSBpZiAocmV0dmFsICE9IDApIHsNCiAJCWVycigiZXJyb3IgY2hhbmdpbmcgbmV0IGlu dGVyZmFjZSBuYW1lOiAlcyIsIHN0cmVycm9yKGVycm5vKSk7DQotCWNsb3NlKHNrKTsNCisJfQ0K IA0KKwljbG9zZShzayk7DQogCXJldHVybiByZXR2YWw7DQogfQ0KIA0K --=-mRORNAirnGZN8+voxZW4 Content-Description: Content-Disposition: inline; filename=80-extras-iftab_helper.patch Content-Type: text/x-patch; charset=UTF-8 Content-Transfer-Encoding: base64 ZGlmZiAtcnVOcCB1ZGV2LTA3OX4vZXh0cmFzL2lmdGFiL01ha2VmaWxlIHVkZXYtMDc5L2V4dHJh cy9pZnRhYi9NYWtlZmlsZQ0KLS0tIHVkZXYtMDc5fi9leHRyYXMvaWZ0YWIvTWFrZWZpbGUJMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDANCisrKyB1ZGV2LTA3OS9leHRyYXMvaWZ0 YWIvTWFrZWZpbGUJMjAwNi0wMi0wOSAyMTo0MToxMi4xMTU1NjIyNDAgKzAwMDANCkBAIC0wLDAg KzEsNjggQEANCisjIENvcHlyaWdodCDCqSAyMDA2IENhbm9uaWNhbCBMdGQuDQorIyBBdXRob3I6 IFNjb3R0IEphbWVzIFJlbW5hbnQgPHNjb3R0QHVidW50dS5jb20+DQorIw0KKyMgUmVsZWFzZWQg dW5kZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB2ZXJzaW9uIDIuDQorDQorUFJP RyA9IGlmdGFiX2hlbHBlcg0KK09CSiA9DQorSEVBREVSUyA9DQorR0VOX0hFQURFUlMgPQ0KK01B Tl9QQUdFUyA9DQorDQorcHJlZml4ID0NCitldGNkaXIgPQkke3ByZWZpeH0vZXRjDQorc2JpbmRp ciA9CSR7cHJlZml4fS9zYmluDQordXNyYmluZGlyID0JJHtwcmVmaXh9L3Vzci9iaW4NCit1c3Jz YmluZGlyID0JJHtwcmVmaXh9L3Vzci9zYmluDQorbGlidWRldmRpciA9CSR7cHJlZml4fS9saWIv dWRldg0KK21hbmRpciA9CSR7cHJlZml4fS91c3Ivc2hhcmUvbWFuDQorY29uZmlnZGlyID0JJHtl dGNkaXJ9L3VkZXYvDQorDQorSU5TVEFMTCA9IC91c3IvYmluL2luc3RhbGwgLWMNCitJTlNUQUxM X1BST0dSQU0gPSAke0lOU1RBTEx9DQorSU5TVEFMTF9EQVRBICA9ICR7SU5TVEFMTH0gLW0gNjQ0 DQorSU5TVEFMTF9TQ1JJUFQgPSAke0lOU1RBTExfUFJPR1JBTX0NCisNCithbGw6ICQoUFJPRykg JChNQU5fUEFHRVMpDQorLlBIT05ZOiBhbGwNCisuREVGQVVMVDogYWxsDQorDQorJS5vOiAlLmMg JChHRU5fSEVBREVSUykNCisJJChRVUlFVCkgJChDQykgLWMgJChDRkxBR1MpICQ8IC1vICRADQor DQorJChQUk9HKTogJTogJChIRUFERVJTKSAlLm8gJChPQkpTKQ0KKwkkKFFVSUVUKSAkKExEKSAk KExERkxBR1MpICRALm8gJChPQkpTKSAtbyAkQCAkKExJQlVERVYpICQoTElCU1lTRlMpICQoTElC X09CSlMpDQoraWZuZXEgKCQoc3RyaXAgJChTVFJJUENNRCkpLCkNCisJJChRVUlFVCkgJChTVFJJ UENNRCkgJEANCitlbmRpZg0KKw0KKyMgbWFuIHBhZ2VzDQorJS44OiAlLnhtbA0KKwl4bWx0byBt YW4gJD8NCisuUFJFQ0lPVVM6ICUuOA0KKw0KK2NsZWFuOg0KKwlybSAtZiAkKFBST0cpICQoT0JK UykgJChHRU5fSEVBREVSUykNCisuUEhPTlk6IGNsZWFuDQorDQoraW5zdGFsbC1iaW46IGFsbA0K KwkkKElOU1RBTExfUFJPR1JBTSkgLUQgJChQUk9HKSAkKERFU1RESVIpJChsaWJ1ZGV2ZGlyKS8k KFBST0cpDQorLlBIT05ZOiBpbnN0YWxsLWJpbg0KKw0KK3VuaW5zdGFsbC1iaW46DQorCS0gcm0g JChERVNURElSKSQobGlidWRldmRpcikvJChQUk9HKQ0KKy5QSE9OWTogdW5pbnN0YWxsLWJpbg0K Kw0KK2luc3RhbGwtbWFuOg0KKwkkKElOU1RBTExfREFUQSkgLUQgJChQUk9HKS44ICQoREVTVERJ UikkKG1hbmRpcikvbWFuOC8kKFBST0cpLjgNCisJJChJTlNUQUxMX0RBVEEpIC1EIGlmdGFiLjUg JChERVNURElSKSQobWFuZGlyKS9tYW41L2lmdGFiLjUNCisuUEhPTlk6IHVuaW5zdGFsbC1tYW4N CisNCit1bmluc3RhbGwtbWFuOg0KKwktcm0gLWYgJChERVNURElSKSQobWFuZGlyKS9tYW44LyQo UFJPRykuOA0KKwktcm0gLWYgJChERVNURElSKSQobWFuZGlyKS9tYW41L2lmdGFiLjUNCisuUEhP Tlk6IHVuaW5zdGFsbC1tYW4NCisNCitpbnN0YWxsLWNvbmZpZzoNCisJQGVjaG8gIm5vIGNvbmZp ZyBmaWxlIHRvIGluc3RhbGwiDQorLlBIT05ZOiBpbnN0YWxsLWNvbmZpZw0KZGlmZiAtcnVOcCB1 ZGV2LTA3OX4vZXh0cmFzL2lmdGFiL2lmdGFiLjUgdWRldi0wNzkvZXh0cmFzL2lmdGFiL2lmdGFi LjUNCi0tLSB1ZGV2LTA3OX4vZXh0cmFzL2lmdGFiL2lmdGFiLjUJMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDANCisrKyB1ZGV2LTA3OS9leHRyYXMvaWZ0YWIvaWZ0YWIuNQkyMDA2 LTAyLTA5IDIxOjQxOjQzLjU3NTc3OTU2MCArMDAwMA0KQEAgLTAsMCArMSw3NCBAQA0KKy5USCBJ RlRBQiA1ICJGZWJydWFyeSAyMDA2IiAiIiAiTGludXggQWRtaW5pc3RyYXRvcidzIE1hbnVhbCIN CisuU0ggTkFNRQ0KK2lmdGFiIFwtIGFzc2lnbiBjb25zaXN0ZW50IG5hbWVzIHRvIG5ldHdvcmsg aW50ZXJmYWNlcw0KKy5TSCBERVNDUklQVElPTg0KK1RoZSBmaWxlDQorLkIgL2V0Yy9pZnRhYg0K K2NvbnRhaW5zIGRlc2NyaXB0aXZlIGluZm9ybWF0aW9uIGFib3V0IHRoZSB2YXJpb3VzIG5ldHdv cmsgaW50ZXJmYWNlcyBhbmQNCitpcyB1c2VkIGJ5DQorLkJSIHVkZXYgKDgpDQorYW5kIGl0cw0K Ky5CUiBpZnRhYl9oZWxwZXIgKDgpDQordG8gYXNzaWduIGNvbnNpc3RlbnQgbmFtZXMgdG8gbmV0 d29yayBpbnRlcmZhY2VzLg0KKw0KKy5CIC9ldGMvaWZ0YWINCitkZWZpbmVzIGEgc2V0IG9mIFxm SW1hcHBpbmdzXGZSLiAgRWFjaCBtYXBwaW5nIGNvbnRhaW5zIGFuIGludGVyZmFjZSBuYW1lDQor YW5kIGEgc2V0IG9mIHNlbGVjdG9ycyB3aGljaCBpZGVudGlmeSB0aGUgcGh5c2ljYWwgbmV0d29y ayBkZXZpY2UgdGhhdA0KK3Nob3VsZCBiZSBhc3NpZ25lZCB0aGF0IG5hbWUuDQorDQorSWYgYSBu ZXR3b3JrIGRldmljZSBtYXRjaGVzIGFsbCBzZWxlY3RvcnMgb2YgYSBtYXBwaW5nLCBcZkJ1ZGV2 XGZSIHdpbGwNCityZW5hbWUgdGhlIGludGVyZmFjZSB0byB0aGUgbmFtZSBnaXZlbiBieSB0aGUg bWFwcGluZy4NCisNCitJZiBhIG5ldHdvcmsgZGV2aWNlIFxmSWRvZXMgbm90XGZSIG1hdGNoIGFs bCBvZiB0aGUgc2VsZWN0b3JzLA0KK2J1dCBoYXMgdGhlIHNhbWUgbmFtZSBhcyB0aGUgbWFwcGlu ZywgXGZCdWRldlxmUiBpbnN0ZWFkIHdpbGwgcmVuYW1lIHRoZQ0KK2ludGVyZmFjZSBzbyB0aGF0 IGl0IGRvZXMgbm90IGhhdmUgdGhlIG5hbWUgZ2l2ZW4gYnkgdGhlIGtlcm5lbC4NCisuXCINCisu U0ggQ09NUEFUSUJJTElUWQ0KK1BsZWFzZSBub3RlIHRoYXQgdGhpcyBmaWxlIGZvcm1hdCBpcyBh IHN1YnNldCBvZiB0aGF0IHN1cHBvcnRlZCBieSB0aGUNCisuQlIgaWZyZW5hbWUgKDgpDQordG9v bCB5b3UgbWF5IGZpbmQgaW4gb3RoZXIgZGlzdHJpYnV0aW9ucywgYW5kIGRvZXMgbm90ICh5ZXQp IHN1cHBvcnQgdGhlDQorZnVsbCByYW5nZSBvZiBzZWxlY3RvcnMgYW5kIGZlYXR1cmVzLg0KKy5c Ig0KKy5TSCBNQVBQSU5HUw0KK0VhY2ggbWFwcGluZyBpcyBkZXNjcmliZWQgb24gYSBzZXBhcmF0 ZSBsaW5lLCB3aGljaCBtYXkgYmUgYnJva2VuIGFjcm9zcw0KK211bHRpcGxlIGxpbmVzIGJ5IHRl cm1pbmF0aW5nIHRoZSBmaXJzdCBsaW5lIHdpdGggYSBiYWNrc2xhc2guICBBIG1hcHBpbmcNCitz dGFydHMgd2l0aCBhbiBcZklpbnRlcmZhY2UgbmFtZVxmUiBhbmQgY29udGFpbnMgYSBzZXQgb2Yg XGZJc2VsZWN0b3JcZlINCituYW1lIGFuZCB2YWx1ZSBwYWlyczsgYWxsIHNlcGFyYXRlZCBieSBz cGFjZSBvciB0YWJzLg0KKw0KK1RoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBzZWxlY3RvcnMgb2Yg YSBtYXBwaW5nIGlzIGEgXGZJbG9naWNhbCBhbmRcZlIuDQorQSBtYXBwaW5nIG9ubHkgbWF0Y2hl cyBhIG5ldHdvcmsgZGVpdmNlIGlmIGFsbCBvZiB0aGUgc2VsZWN0b3JzIGZvciBpdA0KK21hdGNo Lg0KKw0KK1doZW4gbXVsdGlwbGUgbWF0Y2hpbmcgc2VsZWN0b3JzIGFyZSBwcmVzZW50LCB0aGUg bGFzdCBpbiB0aGUgZmlsZSBpcyB1c2VkLg0KKy5cIg0KKy5TSCBTRUxFQ1RPUlMNCitFYWNoIHNl bGVjdG9yIGlzIGNvbXBvc2VkIG9mIGEgc2VsZWN0b3IgbmFtZSBhbmQgc2VsZWN0b3IgdmFsdWUN CitzZXBhcmF0ZWQgYnkgc3BhY2VzIG9yIHRhYnMuICBTZWxlY3RvcnMgc3BlY2lmeSBhIHN0YXRp YyBhdHRyaWJ1dGUgb2YgYQ0KK25ldHdvcmsgZGV2aWNlLCB0aGUgZ29hbCBiZWluZyB0byB1bmlx dWVseSBpZGVudGlmeSBlYWNoIHBpZWNlIG9mIGhhcmR3YXJlLg0KKw0KK0N1cnJlbnRseSBvbmx5 IHRoZSBcZkJtYWNcZlIgc2VsZWN0b3IgaXMgc3VwcG9ydGVkLCBvdGhlciBzZWxlY3RvcnMgc3Vw cG9ydGVkDQorYnkgdGhlDQorLkJSIGlmcmVuYW1lICg4KQ0KK3Rvb2wgd2lsbCBiZSBzdXBwb3J0 ZWQgYXMgYW5kIHdoZW4gcmVxdWlyZWQuDQorDQorLlRQDQorLkJJIG1hYyBtYWMtYWRkcmVzcw0K K01hdGNoZXMgdGhlIE1BQyBhZGRyZXNzIG9mIHRoZSBkZXZpY2Ugd2hpY2ggY2FuIGJlIG9idGFp bmVkIGJ5IHVzaW5nDQorLkJSIGlmY29uZmlnICg4KQ0KK29yDQorLkJSIGlwICg4KS4NCisuXCIN CisuU0ggRVhBTVBMRQ0KKyMgVGhpcyBpcyBhIGNvbW1lbnQNCisuYnINCitldGgwCW1hYyAwMDox Mjo3OTo1OTo4RDozOA0KKy5icg0KK2V0aDEJbWFjIDAwOjBCOkNEOjVDOjlFOjJBDQorLlNIIFNF RSBBTFNPDQorLkJSIHVkZXYgKDgpDQorLkJSIGlmdGFiX2hlbHBlciAoOCkNCisuQlIgaWZjb25m aWcgKDgpDQorLkJSIGlwICg4KQ0KKy5CUiBpZnJlbmFtZSAoOCkNCisuU0ggQVVUSE9SUw0KK1Nj b3R0IEphbWVzIFJlbW5hbnQgPHNjb3R0QHVidW50dS5jb20+DQpkaWZmIC1ydU5wIHVkZXYtMDc5 fi9leHRyYXMvaWZ0YWIvaWZ0YWJfaGVscGVyLjggdWRldi0wNzkvZXh0cmFzL2lmdGFiL2lmdGFi X2hlbHBlci44DQotLS0gdWRldi0wNzl+L2V4dHJhcy9pZnRhYi9pZnRhYl9oZWxwZXIuOAkxOTcw LTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMA0KKysrIHVkZXYtMDc5L2V4dHJhcy9pZnRh Yi9pZnRhYl9oZWxwZXIuOAkyMDA2LTAyLTA5IDIxOjQ5OjQ4LjUwMjA1OTU2MCArMDAwMA0KQEAg LTAsMCArMSwzMyBAQA0KKy5USCBJRlRBQl9IRUxQRVIgOCAiRmVicnVhcnkgMjAwNiIgIiIgIkxp bnV4IEFkbWluaXN0cmF0b3IncyBNYW51YWwiDQorLlNIIE5BTUUNCitpZnRhYl9oZWxwZXIgXC0g dWRldiBjYWxsb3V0IHRvIHBhcnNlIC9ldGMvaWZ0YWIgYW5kIG5hbWUgbmV0d29yayBkZXZpY2Vz DQorLlNIIFNZTk9QU0lTDQorLkJJIGlmdGFiX2hlbHBlcg0KK1xmSWRldmljZW5hbWVcZlAgXGZJ YWRkcmVzc1xmUA0KKy5TSCBERVNDUklQVElPTg0KKy5CIGlmdGFiX2hlbHBlcg0KK2lzIG5vcm1h bGx5IGNhbGxlZCBmcm9tIGEgdWRldiBydWxlIHRvIHByb3ZpZGUgdGhlIG5hbWUgZm9yIGEgZGV0 ZWN0ZWQNCituZXR3b3JrIGRldmljZS4gIFVkZXYgY2FuIHVzZSB0aGlzIGluZm9ybWF0aW9uIHRv IHJlbmFtZSBkZXZpY2VzIGFuZCB0aHVzDQorcHJvdmlkZSBjb25zaXN0ZW50IG5hbWVzIGZvciBu ZXR3b3JrIGRldmljZXMuDQorLlNIIFVTQUdFDQorLkIgaWZ0YWJfaGVscGVyDQorbG9va3MgdXAg dGhlIGFkZHJlc3Mgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kLWxpbmUgaW4gdGhlIFxmSS9ldGMv aWZ0YWJcZlINCitmaWxlIGFuZCByZXR1cm5zIHRoZSBuYW1lIGFzc2lnbmVkIHRvIGl0IGluIHRo YXQgZmlsZS4gIElmIGl0IGlzIG5vdCBwcmVzZW50DQoraXQgY2hlY2tzIHdoZXRoZXIgdGhlIGtl cm5lbC1hc3NpZ25lZCBuYW1lIGlzIGFzc2lnbmVkIHRvIGEgZGlmZmVyZW50IGRldmljZQ0KK2lu IHRoYXQgZmlsZSBhbmQgaWYgc28gcmV0dXJucyBhIG5ldyBuYW1lIGZvciB0aGUgZGV2aWNlLg0K Kw0KKy5CIGlmdGFiX2hlbHBlcg0KK2lzIG5vdCByZXNwb25zaWJsZSBmb3IgcGVyZm9ybWluZyB0 aGUgYWN0dWFsIHJlbmFtaW5nLCB0aGF0IGlzIGluc3RlYWQNCitlcGVyZm9ybWVkIGJ5IHVkZXYg dXNpbmcgYSBOQU1FIHJ1bGUuICBUaGlzIHJlcGxhY2VzIHRoZSBmdW5jdGlvbmFsaXR5DQorcHJl dmlvdXNseSBvZmZlcmVkIGJ5DQorLkJSIGlmcmVuYW1lICg4KQ0KK3Rob3VnaCBub3RlIHRoYXQN CisuQiBpZnRhYl9oZWxwZXINCitkb2VzIG5vdCBzdXBwb3J0IGFzIHdpZGUgYSByYW5nZSBvZiBz ZWxlY3RvcnMgZm9yIGRldmljZXMgYW5kIGZpbGVzIG1heQ0KK25lZWQgdG8gYmUgc2ltcGxpZmll ZC4NCisuU0ggU0VFIEFMU08NCisuQlIgaWZ0YWIgKDUpDQorLkJSIGlmcmVuYW1lICg4KQ0KKy5C UiB1ZGV2ICg4KQ0KKy5TSCBBVVRIT1JTDQorU2NvdHQgSmFtZXMgUmVtbmFudCA8c2NvdHRAdWJ1 bnR1LmNvbT4NCmRpZmYgLXJ1TnAgdWRldi0wNzl+L2V4dHJhcy9pZnRhYi9pZnRhYl9oZWxwZXIu YyB1ZGV2LTA3OS9leHRyYXMvaWZ0YWIvaWZ0YWJfaGVscGVyLmMNCi0tLSB1ZGV2LTA3OX4vZXh0 cmFzL2lmdGFiL2lmdGFiX2hlbHBlci5jCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwDQorKysgdWRldi0wNzkvZXh0cmFzL2lmdGFiL2lmdGFiX2hlbHBlci5jCTIwMDYtMDItMDkg MjE6NDk6MDkuOTk1OTEzMzg0ICswMDAwDQpAQCAtMCwwICsxLDIwNSBAQA0KKy8qDQorICogaWZ0 YWJfaGVscGVyIC0gcGFyc2VzIC9ldGMvaWZ0YWIgYW5kIG91dHB1dHMgbmV0d29yayBkZXZpY2Ug bmFtZQ0KKyAqDQorICogQ29weXJpZ2h0IMKpIDIwMDYgQ2Fub25pY2FsIEx0ZC4NCisgKiBBdXRo b3I6IFNjb3R0IEphbWVzIFJlbW5hbnQgPHNjb3R0QHVidW50dS5jb20+DQorICoNCisgKglUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y IG1vZGlmeSBpdA0KKyAqCXVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZQ0KKyAqCUZyZWUgU29mdHdhcmUgRm91bmRhdGlv biB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UuDQorICoNCisgKglUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0DQorICoJV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0K KyAqCU1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUgR05VDQorICoJR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz Lg0KKyAqDQorICoJWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYWxvbmcNCisgKgl3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90 LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLA0KKyAqCTUxIEZy YW5rbGluIFN0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSBVU0ENCisgKg0K KyAqLw0KKw0KKyNpbmNsdWRlIDxzdGRpby5oPg0KKyNpbmNsdWRlIDxzdGRsaWIuaD4NCisjaW5j bHVkZSA8c3RyaW5nLmg+DQorI2luY2x1ZGUgPGN0eXBlLmg+DQorI2luY2x1ZGUgPGVycm5vLmg+ DQorDQorI2luY2x1ZGUgIi4uLy4uL2xvZ2dpbmcuaCINCisjaW5jbHVkZSAiLi4vLi4vdWRldl91 dGlscy5oIg0KKw0KKyNkZWZpbmUgSUZUQUIgIi9ldGMvaWZ0YWIiDQorDQorI2lmZGVmIFVTRV9M T0cNCit2b2lkIGxvZ19tZXNzYWdlKGludCBwcmlvcml0eSwgY29uc3QgY2hhciAqZm9ybWF0LCAu Li4pDQorew0KKwl2YV9saXN0IGFyZ3M7DQorCXN0YXRpYyBpbnQgdWRldl9sb2cgPSAtMTsNCisN CisJaWYgKHVkZXZfbG9nID09IC0xKSB7DQorCQljb25zdCBjaGFyICp2YWx1ZTsNCisNCisJCXZh bHVlID0gZ2V0ZW52KCJVREVWX0xPRyIpOw0KKwkJaWYgKHZhbHVlKQ0KKwkJCXVkZXZfbG9nID0g bG9nX3ByaW9yaXR5KHZhbHVlKTsNCisJCWVsc2UNCisJCQl1ZGV2X2xvZyA9IExPR19FUlI7DQor CX0NCisNCisJaWYgKHByaW9yaXR5ID4gdWRldl9sb2cpDQorCQlyZXR1cm47DQorDQorCXZhX3N0 YXJ0KGFyZ3MsIGZvcm1hdCk7DQorCXZwcmludGYoZm9ybWF0LCBhcmdzKTsNCisJaWYgKGZvcm1h dFtzdHJsZW4oZm9ybWF0KS0xXSAhPSAnXG4nKQ0KKwkJcHJpbnRmKCJcbiIpOw0KKwl2c3lzbG9n KHByaW9yaXR5LCBmb3JtYXQsIGFyZ3MpOw0KKwl2YV9lbmQoYXJncyk7DQorfQ0KKyNlbmRpZg0K Kw0KK2NoYXIgKm5leHRfdG9rZW4oY2hhciAqKmxpbmVwb3MpDQorew0KKwljaGFyICp0b2tlbiA9 ICpsaW5lcG9zOw0KKw0KKwkvKiByZWFkIHVwIHRvIHdoaXRlc3BhY2UgKi8NCisJd2hpbGUgKCoq bGluZXBvcyAmJiAhaXNzcGFjZSgqKmxpbmVwb3MpKQ0KKwkJKCpsaW5lcG9zKSsrOw0KKw0KKwkv KiBzcGxpdCB0aGUgc3RyaW5nIGFuZCBza2lwIG92ZXIgd2hpdGVzcGFjZSAqLw0KKwlpZiAoKips aW5lcG9zKSB7DQorCQkqKCgqbGluZXBvcykrKykgPSAnXDAnOw0KKwkJd2hpbGUgKGlzc3BhY2Uo KipsaW5lcG9zKSkNCisJCQkoKmxpbmVwb3MpKys7DQorCX0NCisNCisJcmV0dXJuIHRva2VuOw0K K30NCisNCitjb25zdCBjaGFyICp3aGF0c19teV9uYW1lKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0 IGNoYXIgKmFkZHJlc3MpDQorew0KKwlzdGF0aWMgY2hhciBpZnRhYl9uYW1lW05BTUVfU0laRV0g PSAiIjsNCisJY2hhciAqYnVmOw0KKwlzaXplX3QgYnVmc2l6ZSwgY3VyLCBsaW5lbm87DQorDQor CWlmIChmaWxlX21hcChJRlRBQiwgJmJ1ZiwgJmJ1ZnNpemUpKSB7DQorCQlpZiAoZXJybm8gIT0g RU5PRU5UKQ0KKwkJCWVycigiJXM6IHVuYWJsZSB0byBvcGVuOiAlcyIsIElGVEFCLCBzdHJlcnJv cihlcnJubykpOw0KKwkJcmV0dXJuIE5VTEw7DQorCX0NCisNCisJY3VyID0gMDsNCisJbGluZW5v ID0gMDsNCisJd2hpbGUgKGN1ciA8IGJ1ZnNpemUpIHsNCisJCWNoYXIgbGluZVtMSU5FX1NJWkVd LCAqYnVmbGluZSwgKmxpbmVwb3M7DQorCQljaGFyICppZm5hbWU7DQorCQlzaXplX3QgY291bnQ7 DQorCQlpbnQgbWF0Y2ggPSAxOw0KKw0KKwkJY291bnQgPSBidWZfZ2V0X2xpbmUoYnVmLCBidWZz aXplLCBjdXIpOw0KKwkJYnVmbGluZSA9ICZidWZbY3VyXTsNCisJCWN1ciArPSBjb3VudCsxOw0K KwkJbGluZW5vKys7DQorDQorCQlpZiAoY291bnQgPj0gc2l6ZW9mKGxpbmUpKSB7DQorCQkJZXJy KCIlczolZDogbGluZSB0b28gbG9uZyIsIElGVEFCLCBsaW5lbm8pOw0KKwkJCWNvbnRpbnVlOw0K KwkJfQ0KKw0KKwkJLyogZWF0IGluaXRpYWwgd2hpdGVzcGFjZSAqLw0KKwkJd2hpbGUgKChjb3Vu dCA+IDApICYmIGlzc3BhY2UoYnVmbGluZVswXSkpIHsNCisJCQlidWZsaW5lKys7DQorCQkJY291 bnQtLTsNCisJCX0NCisJCWlmICghY291bnQpDQorCQkJY29udGludWU7DQorDQorCQkvKiBjb21t ZW50PyAqLw0KKwkJaWYgKGJ1ZmxpbmVbMF0gPT0gJyMnKQ0KKwkJCWNvbnRpbnVlOw0KKw0KKwkJ LyogY29weSBpbnRvIGJ1ZmZlciAqLw0KKwkJbWVtY3B5KGxpbmUsIGJ1ZmxpbmUsIGNvdW50KTsN CisJCWxpbmVbY291bnRdID0gJ1wwJzsNCisJCWxpbmVwb3MgPSBsaW5lOw0KKw0KKwkJLyogdXAg dG8gdGhlIGZpcnN0IHdoaXRlc3BhY2UgaXMgdGhlIGludGVyZmFjZSBuYW1lICovDQorCQlpZm5h bWUgPSBuZXh0X3Rva2VuKCZsaW5lcG9zKTsNCisJCWlmICghKmxpbmVwb3MpIHsNCisJCQllcnIo IiVzOiVkOiBubyBzZWxlY3RvcnMgZm9yICVzIiwgSUZUQUIsIGxpbmVubywgaWZuYW1lKTsNCisJ CQljb250aW51ZTsNCisJCX0NCisNCisJCXdoaWxlICgqbGluZXBvcykgew0KKwkJCWNoYXIgKnNl bGVjdG9yLCAqdmFsdWU7DQorDQorCQkJLyogcmVhZCBzZWxlY3RvciBuYW1lIGFuZCB2YWx1ZSAq Lw0KKwkJCXNlbGVjdG9yID0gbmV4dF90b2tlbigmbGluZXBvcyk7DQorCQkJaWYgKCEqbGluZXBv cykgew0KKwkJCQllcnIoIiVzOiVkOiBubyB2YWx1ZSBhZnRlciAlcyBzZWxlY3RvciBmb3IgJXMi LCBJRlRBQiwgbGluZW5vLCBzZWxlY3RvciwgaWZuYW1lKTsNCisJCQkJYnJlYWs7DQorCQkJfQ0K KwkJCXZhbHVlID0gbmV4dF90b2tlbigmbGluZXBvcyk7DQorDQorCQkJaWYgKCFzdHJjYXNlY21w KHNlbGVjdG9yLCAibWFjIikpIHsNCisJCQkJaWYgKHN0cmNhc2VjbXAodmFsdWUsIGFkZHJlc3Mp KQ0KKwkJCQkJbWF0Y2ggPSAwOw0KKw0KKwkJCX0gZWxzZSB7DQorCQkJCWVycigiJXM6JWQ6IHVu a25vd24gb3IgdW5zdXBwb3J0ZWQgJXMgc2VsZWN0b3IgZm9yICVzIiwgSUZUQUIsIGxpbmVubywg c2VsZWN0b3IsIGlmbmFtZSk7DQorCQkJfQ0KKwkJfQ0KKw0KKwkJaWYgKG1hdGNoKSB7DQorCQkJ LyogTWF0Y2hlZCBkZXRhaWxzOiB1c2UgYXNzaWduZWQgbmFtZSAqLw0KKwkJCXN0cm5jcHkoaWZ0 YWJfbmFtZSwgaWZuYW1lLCBzaXplb2YoaWZ0YWJfbmFtZSkpOw0KKwkJCWlmdGFiX25hbWVbc2l6 ZW9mKGlmdGFiX25hbWUpLTFdID0gJ1wwJzsNCisJCX0gZWxzZSBpZiAoIXN0cmNhc2VjbXAoaWZu YW1lLCBuYW1lKSkgew0KKwkJCS8qIE5hbWUgYWxyZWFkeSB1c2VkOiBpbnZlbnQgbmV3IG5hbWUg Ki8NCisJCQlzbnByaW50ZihpZnRhYl9uYW1lLCBzaXplb2YoaWZ0YWJfbmFtZSksICJfJXMiLCBu YW1lKTsNCisJCX0NCisJfQ0KKw0KKwlmaWxlX3VubWFwKGJ1ZiwgYnVmc2l6ZSk7DQorCXJldHVy biBpZnRhYl9uYW1lOw0KK30NCisNCisNCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltd KQ0KK3sNCisJY29uc3QgY2hhciAqbmFtZSA9IE5VTEwsICphZGRyZXNzID0gTlVMTCwgKmlmdGFi X25hbWU7DQorCWludCByZXQgPSAwOw0KKwlpbnQgaTsNCisNCisJbG9nZ2luZ19pbml0KCJpZnRh Yl9oZWxwZXIiKTsNCisNCisJZm9yIChpID0gMTsgaSA8IGFyZ2M7IGkrKykgew0KKwkJaWYgKCFu YW1lKSB7DQorCQkJbmFtZSA9IGFyZ3ZbaV07DQorCQl9IGVsc2UgaWYgKCFhZGRyZXNzKSB7DQor CQkJYWRkcmVzcyA9IGFyZ3ZbaV07DQorCQl9DQorCX0NCisNCisJaWYgKCFuYW1lKSB7DQorCQll cnIoIm5vIGRldmljZSBuYW1lIHNwZWNpZmllZCIpOw0KKwkJcmV0ID0gMTsNCisJCWdvdG8gZXhp dDsNCisJfQ0KKw0KKwlpZiAoIWFkZHJlc3MpIHsNCisJCWVycigibm8gbWFjIGFkZHJlc3Mgc3Bl Y2lmaWVkIik7DQorCQlyZXQgPSAxOw0KKwkJZ290byBleGl0Ow0KKwl9DQorDQorCWlmdGFiX25h bWUgPSB3aGF0c19teV9uYW1lKG5hbWUsIGFkZHJlc3MpOw0KKwlpZiAoISppZnRhYl9uYW1lKQ0K KwkJaWZ0YWJfbmFtZSA9IG5hbWU7DQorDQorCXByaW50ZigiJXNcbiIsIGlmdGFiX25hbWUpOw0K Kw0KK2V4aXQ6DQorCWxvZ2dpbmdfY2xvc2UoKTsNCisJcmV0dXJuIHJldDsNCit9DQo= --=-mRORNAirnGZN8+voxZW4-- --=-ZX8YgJYK2awSagAmzU23 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.1 (GNU/Linux) iD8DBQBD68WgSnQiFMl4yK4RAm55AKCYKHtavXMo7pPEaokZnr6YEz9ImwCdEflm N0bLsJJ1/4wPMnGQEk4542w= =MqIk -----END PGP SIGNATURE----- --=-ZX8YgJYK2awSagAmzU23-- ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642 _______________________________________________ Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net Linux-hotplug-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel