Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Mon, 1 Oct 2001 11:34:29 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Mon, 1 Oct 2001 11:34:21 -0400 Received: from medusa.sparta.lu.se ([194.47.250.193]:22330 "EHLO medusa.sparta.lu.se") by vger.kernel.org with ESMTP id ; Mon, 1 Oct 2001 11:34:13 -0400 Date: Mon, 1 Oct 2001 16:21:01 +0200 (MET DST) From: Bjorn Wesen To: Linus Torvalds , Alan Cox cc: linux-kernel@vger.kernel.org Subject: [PATCH] mkcramfs gets an option to use meta-information Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="801292794-382094757-1001946061=:14246" Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org 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. --801292794-382094757-1001946061=:14246 Content-Type: TEXT/PLAIN; charset=US-ASCII [there is no maintainer listed for cramfs but the copyright says Transmeta, so therefore I send it to you, Alan and the list] The enclosed patch makes it possible to, by metafiles, control what permissions and ownership the created files will get in the resulting file system image. Previously the only way to achieve this was to create the filesystem as root (so the original files already had the right permissions and ownership). It is also possible to specify subdirectories and files to be excluded or included, and to specify files to be generated as device-files. This functionality is very useful for building root-images for embedded Linux etc, and nobody wants to develop as root so it's necessary as well.. The same metafile-format can be used in conjunction with JFFS1 and 2, but those patches are handled separately. In the meantime, this patch also encloses Documentation/filesystems/metafiles.txt as documentation and RFC. The metafile itself for an embedded system can be generated automatically by build-scripts which wrap the "install" command, for example. If no metafile is specified, the behaviour is exactly as before. Another option needed for cross-development using mkcramfs is also added, to override the default page-size used for the image (for example, in our systems we need a target page-size of 8192, but mkcramfs.c normally is hardcoded to 4096). Default is as before 4096. /Bjorn --801292794-382094757-1001946061=:14246 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="cramfs-metafiles.patch" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: LS0tIHRtcC9saW51eC9zY3JpcHRzL2NyYW1mcy9ta2NyYW1mcy5jCVR1ZSBK dWwgMjQgMTQ6NDI6NTggMjAwMQ0KKysrIGxpbnV4L3NjcmlwdHMvY3JhbWZz L21rY3JhbWZzLmMJRnJpIFNlcCAgNyAxNjoyMzo1MCAyMDAxDQpAQCAtMjks NiArMjksOCBAQA0KICNpbmNsdWRlIDxlcnJuby5oPg0KICNpbmNsdWRlIDxz dHJpbmcuaD4NCiAjaW5jbHVkZSA8YXNzZXJ0Lmg+DQorI2luY2x1ZGUgPGN0 eXBlLmg+DQorI2luY2x1ZGUgPGxpbWl0cy5oPg0KICNpbmNsdWRlIDxnZXRv cHQuaD4NCiAjaW5jbHVkZSA8bGludXgvY3JhbWZzX2ZzLmg+DQogI2luY2x1 ZGUgPHpsaWIuaD4NCkBAIC0zNiw2ICszOCw3IEBADQogI2RlZmluZSBQQURf U0laRSA1MTIJCS8qIG9ubHkgMCBhbmQgNTEyIHN1cHBvcnRlZCBieSBrZXJu ZWwgKi8NCiANCiBzdGF0aWMgY29uc3QgY2hhciAqcHJvZ25hbWUgPSAibWtj cmFtZnMiOw0KK3N0YXRpYyBjb25zdCBjaGFyICptZXRhX2ZpbGVfbmFtZSA9 IE5VTEw7IC8qIE5VTEwgbWVhbnMgaWdub3JlIG1ldGEgZmlsZSAqLw0KIA0K IC8qIE4uQi4gSWYgeW91IGNoYW5nZSB0aGUgZGlzayBmb3JtYXQgb2YgY3Jh bWZzLCBwbGVhc2UgdXBkYXRlIGZzL2NyYW1mcy9SRUFETUUuICovDQogDQpA QCAtNDQsMjQgKzQ3LDI3IEBADQogew0KIAlGSUxFICpzdHJlYW0gPSBzdGF0 dXMgPyBzdGRlcnIgOiBzdGRvdXQ7DQogDQotCWZwcmludGYoc3RyZWFtLCAi dXNhZ2U6ICVzIFstaF0gWy1lIGVkaXRpb25dIFstaSBmaWxlXSBbLW4gbmFt ZV0gZGlybmFtZSBvdXRmaWxlXG4iDQotCQkiIC1oICAgICAgICAgcHJpbnQg dGhpcyBoZWxwXG4iDQotCQkiIC1FICAgICAgICAgbWFrZSBhbGwgd2Fybmlu Z3MgZXJyb3JzIChub24temVybyBleGl0IHN0YXR1cylcbiINCi0JCSIgLWUg ZWRpdGlvbiBzZXQgZWRpdGlvbiBudW1iZXIgKHBhcnQgb2YgZnNpZClcbiIN Ci0JCSIgLWkgZmlsZSAgICBpbnNlcnQgYSBmaWxlIGltYWdlIGludG8gdGhl IGZpbGVzeXN0ZW0gKHJlcXVpcmVzID49IDIuNC4wKVxuIg0KLQkJIiAtbiBu YW1lICAgIHNldCBuYW1lIG9mIGNyYW1mcyBmaWxlc3lzdGVtXG4iDQotCQki IC1wICAgICAgICAgcGFkIGJ5ICVkIGJ5dGVzIGZvciBib290IGNvZGVcbiIN Ci0JCSIgLXMgICAgICAgICBzb3J0IGRpcmVjdG9yeSBlbnRyaWVzIChvbGQg b3B0aW9uLCBpZ25vcmVkKVxuIg0KLQkJIiAteiAgICAgICAgIG1ha2UgZXhw bGljaXQgaG9sZXMgKHJlcXVpcmVzID49IDIuMy4zOSlcbiINCi0JCSIgZGly bmFtZSAgICByb290IG9mIHRoZSBmaWxlc3lzdGVtIHRvIGJlIGNvbXByZXNz ZWRcbiINCi0JCSIgb3V0ZmlsZSAgICBvdXRwdXQgZmlsZVxuIiwgcHJvZ25h bWUsIFBBRF9TSVpFKTsNCisJZnByaW50ZihzdHJlYW0sICJ1c2FnZTogJXMg Wy1oXSBbLWIgYmxvY2tzaXplXSBbLWUgZWRpdGlvbl0gWy1pIGZpbGVdIFst bSBmaWxlbmFtZV1cbiINCisJCQkiICAgICAgIFstbiBuYW1lXSBkaXJuYW1l IG91dGZpbGVcbiINCisJCSIgLWggICAgICAgICAgIHByaW50IHRoaXMgaGVs cFxuIg0KKwkJIiAtRSAgICAgICAgICAgbWFrZSBhbGwgd2FybmluZ3MgZXJy b3JzIChub24temVybyBleGl0IHN0YXR1cylcbiINCisJCSIgLWIgYmxvY2tz aXplIHRoZSBwYWdlLXNpemUgKGRlZmF1bHQgaXMgNDA5NilcbiINCisJCSIg LWUgZWRpdGlvbiAgIHNldCBlZGl0aW9uIG51bWJlciAocGFydCBvZiBmc2lk KVxuIg0KKwkJIiAtaSBmaWxlICAgICAgaW5zZXJ0IGEgZmlsZSBpbWFnZSBp bnRvIHRoZSBmaWxlc3lzdGVtIChyZXF1aXJlcyA+PSAyLjQuMClcbiINCisJ CSIgLW0gZmlsZW5hbWUgIGxvb2sgZm9yIG1ldGEgZmlsZXMgd2l0aCB0aGlz IG5hbWUgaW4gZWFjaCBzdWJkaXJcbiINCisJCSIgLW4gbmFtZSAgICAgIHNl dCBuYW1lIG9mIGNyYW1mcyBmaWxlc3lzdGVtXG4iDQorCQkiIC1wICAgICAg ICAgICBwYWQgYnkgJWQgYnl0ZXMgZm9yIGJvb3QgY29kZVxuIg0KKwkJIiAt cyAgICAgICAgICAgc29ydCBkaXJlY3RvcnkgZW50cmllcyAob2xkIG9wdGlv biwgaWdub3JlZClcbiINCisJCSIgLXogICAgICAgICAgIG1ha2UgZXhwbGlj aXQgaG9sZXMgKHJlcXVpcmVzID49IDIuMy4zOSlcbiINCisJCSIgZGlybmFt ZSAgICAgIHJvb3Qgb2YgdGhlIGZpbGVzeXN0ZW0gdG8gYmUgY29tcHJlc3Nl ZFxuIg0KKwkJIiBvdXRmaWxlICAgICAgb3V0cHV0IGZpbGVcbiIsIHByb2du YW1lLCBQQURfU0laRSk7DQogDQogCWV4aXQoc3RhdHVzKTsNCiB9DQogDQot I2RlZmluZSBQQUdFX0NBQ0hFX1NJWkUgKDQwOTYpDQorI2RlZmluZSBERUZB VUxUX1BBR0VfQ0FDSEVfU0laRSAoNDA5NikNCiAvKiBUaGUga2VybmVsIGFz c3VtZXMgUEFHRV9DQUNIRV9TSVpFIGFzIGJsb2NrIHNpemUuICovDQotc3Rh dGljIHVuc2lnbmVkIGludCBibGtzaXplID0gUEFHRV9DQUNIRV9TSVpFOw0K K3N0YXRpYyB1bnNpZ25lZCBpbnQgYmxrc2l6ZSA9IERFRkFVTFRfUEFHRV9D QUNIRV9TSVpFOw0KIHN0YXRpYyBsb25nIHRvdGFsX2Jsb2NrcyA9IDAsIHRv dGFsX25vZGVzID0gMTsgLyogcHJlLWNvdW50IHRoZSByb290IG5vZGUgKi8N CiBzdGF0aWMgaW50IGltYWdlX2xlbmd0aCA9IDA7DQogDQpAQCAtODEsNiAr ODcsNyBAQA0KIHN0YXRpYyBjaGFyICpvcHRfbmFtZSA9IE5VTEw7DQogDQog c3RhdGljIGludCB3YXJuX2Rldiwgd2Fybl9naWQsIHdhcm5fbmFtZWxlbiwg d2Fybl9za2lwLCB3YXJuX3NpemUsIHdhcm5fdWlkOw0KK3N0YXRpYyBpbnQg bmFtZV9vZmZzZXQ7CS8qIEZvciByZW1vdmluZyBkaXJlY3RvcnkgbmFtZSBp biBvdXRwdXQgKi8NCiANCiAjaWZuZGVmIE1JTg0KICMgZGVmaW5lIE1JTihf YSxfYikgKChfYSkgPCAoX2IpID8gKF9hKSA6IChfYikpDQpAQCAtMTM0LDYg KzE0MSwzNDggQEANCiAgICAgICAgIH0NCiB9DQogDQorLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLw0KKw0KKy8qIE1ldGEgdHlwZXMgKi8NCisNCisjZGVmaW5l IE1FVEFfSUdOT1JFICAgICAgICAgIDENCisjZGVmaW5lIE1FVEFfSUdOT1JF X0NPTlRFTlRTIDINCisjZGVmaW5lIE1FVEFfREVWSUNFICAgICAgICAgIDMN CisjZGVmaW5lIE1FVEFfSU5DTFVERSAgICAgICAgIDQNCisjZGVmaW5lIE1F VEFfVUlEICAgICAgICAgICAgIDUNCisjZGVmaW5lIE1FVEFfR0lEICAgICAg ICAgICAgIDYNCisNCisjZGVmaW5lIElEX05PTkUgVUlOVF9NQVgJLyogZm9y IGlnbm9yaW5nIGRlZmF1bHRfdWlkIGFuZCBkZWZhdWx0X2dpZCAqLw0KKw0K K3N0cnVjdCBtZXRhZGF0YSB7DQorCXN0cnVjdCBtZXRhZGF0YSAqbmV4dDsJ LyogbmV4dCBub2RlIGluIGxpbmtlZCBsaXN0ICovDQorCWludCB0eXBlOwkJ LyogbWV0YSB0eXBlICovDQorCWNoYXIgKm5hbWU7CQkvKiBlbnRyeSBuYW1l ICovDQorCXVuc2lnbmVkIGludCBpZDsJLyogZm9yIHR5cGUgTUVUQV9VSUQg YW5kIE1FVEFfR0lEICovDQorCWNoYXIgZGV2X3R5cGU7CQkvKiBmb3IgdHlw ZSBNRVRBX0RFVklDRSAqLw0KKwl1bnNpZ25lZCBjaGFyIG1ham9yOwkvKiBm b3IgdHlwZSBNRVRBX0RFVklDRSAqLw0KKwl1bnNpZ25lZCBjaGFyIG1pbm9y OwkvKiBmb3IgdHlwZSBNRVRBX0RFVklDRSAqLw0KK307DQorDQorI2RlZmlu ZSBCVUZGRVJMRU5HVEggMjU2DQorDQorLyogTWV0YSBkYXRhIGZ1bmN0aW9u cyAqLw0KKw0KK3N0cnVjdCBtZXRhZGF0YSAqY3JlYXRlX21ldGFfaWdub3Jl KGNoYXIgKmxpbmUsIHN0cnVjdCBtZXRhZGF0YSAqbWV0YSwgaW50IGlnbm9y ZXR5cGUpDQorew0KKwlzdHJ1Y3QgbWV0YWRhdGEgKm5ld19tZXRhOw0KKwlj aGFyICplbmQgPSAmbGluZVtzdHJsZW4obGluZSldOw0KKw0KKwl3aGlsZSAo aXNzcGFjZSgqbGluZSkpIHsNCisJCWxpbmUrKzsNCisJfQ0KKw0KKwlmb3Ig KGVuZC0tOyBlbmQgPiBsaW5lICYmIGlzc3BhY2UoKmVuZCk7IGVuZC0tKSB7 DQorCQkqZW5kID0gJ1wwJzsNCisJfQ0KKw0KKwlpZiAoZW5kID4gbGluZSAm JiAqbGluZSA9PSAnIicgJiYgKmVuZCA9PSAnIicpIHsNCisJCWxpbmUrKzsN CisJCSplbmQgPSAnXDAnOw0KKwl9DQorDQorCS8qIENhbid0IGlnbm9yZSB0 aGUgLiBhbmQgLi4gZGlyZWN0b3JpZXMgKi8NCisJaWYgKHN0cmxlbihsaW5l KSAmJiBzdHJjbXAobGluZSwgIi4iKSAmJiBzdHJjbXAobGluZSwgIi4uIikp IHsNCisJCWlmICgobmV3X21ldGEgPSBtYWxsb2Moc2l6ZW9mKHN0cnVjdCBt ZXRhZGF0YSkpKSkgew0KKwkJCW5ld19tZXRhLT5uZXh0ID0gbWV0YTsNCisJ CQluZXdfbWV0YS0+dHlwZSA9IGlnbm9yZXR5cGU7DQorCQkJbmV3X21ldGEt Pm5hbWUgPSBzdHJkdXAobGluZSk7DQorCQkJcmV0dXJuIG5ld19tZXRhOw0K KwkJfSBlbHNlIHsNCisJCQlmcHJpbnRmKHN0ZGVyciwib3V0IG9mIG1lbW9y eVxuIik7DQorCQkJZXhpdCgxKTsNCisJCX0NCisJfQ0KKw0KKwlyZXR1cm4g bWV0YTsNCit9DQorDQorc3RydWN0IG1ldGFkYXRhICpjcmVhdGVfbWV0YV9p bmNsdWRlKGNoYXIgKmxpbmUsIHN0cnVjdCBtZXRhZGF0YSAqbWV0YSkNCit7 DQorCXN0cnVjdCBtZXRhZGF0YSAqbmV3X21ldGE7DQorCWNoYXIgKmVuZCA9 ICZsaW5lW3N0cmxlbihsaW5lKV07DQorDQorCXdoaWxlIChpc3NwYWNlKCps aW5lKSkgew0KKwkJbGluZSsrOw0KKwl9DQorDQorCWZvciAoZW5kLS07IGVu ZCA+IGxpbmUgJiYgaXNzcGFjZSgqZW5kKTsgZW5kLS0pIHsNCisJCSplbmQg PSAnXDAnOw0KKwl9DQorDQorCWlmIChlbmQgPiBsaW5lICYmICpsaW5lID09 ICciJyAmJiAqZW5kID09ICciJykgew0KKwkJbGluZSsrOw0KKwkJKmVuZCA9 ICdcMCc7DQorCX0NCisNCisJaWYgKChuZXdfbWV0YSA9IG1hbGxvYyhzaXpl b2Yoc3RydWN0IG1ldGFkYXRhKSkpKSB7DQorCQluZXdfbWV0YS0+bmV4dCA9 IG1ldGE7DQorCQluZXdfbWV0YS0+dHlwZSA9IE1FVEFfSU5DTFVERTsNCisJ CW5ld19tZXRhLT5uYW1lID0gc3RyZHVwKGxpbmUpOw0KKwkJcmV0dXJuIG5l d19tZXRhOw0KKwl9IGVsc2Ugew0KKwkJZnByaW50ZihzdGRlcnIsIm91dCBv ZiBtZW1vcnlcbiIpOw0KKwkJZXhpdCgxKTsNCisJfQ0KKw0KKwlyZXR1cm4g bWV0YTsNCit9DQorDQorc3RydWN0IG1ldGFkYXRhICpjcmVhdGVfbWV0YV9k ZXZpY2UoY2hhciAqbGluZSwgc3RydWN0IG1ldGFkYXRhICptZXRhKQ0KK3sN CisJc3RydWN0IG1ldGFkYXRhICpuZXdfbWV0YTsNCisJY2hhciBuYW1lW01B WF9JTlBVVF9OQU1FTEVOICsgMV07DQorCWNoYXIgZGV2X3R5cGU7DQorCXVu c2lnbmVkIGludCBtYWpvciA9IDA7DQorCXVuc2lnbmVkIGludCBtaW5vciA9 IDA7DQorCWludCBmb3VuZDsNCisNCisJZm91bmQgPSBzc2NhbmYobGluZSwg IiVzICVjICV1ICV1IiwgbmFtZSwgJmRldl90eXBlLCAmbWFqb3IsICZtaW5v cik7DQorCQ0KKwlpZiAoKGZvdW5kID09IDIgfHwgZm91bmQgPT0gNCkgJiYN CisJICAgIChkZXZfdHlwZSA9PSAnYicgfHwgZGV2X3R5cGUgPT0gJ2MnIHx8 IGRldl90eXBlID09ICdwJykgJiYNCisJICAgIG1ham9yIDwgMjU2ICYmIG1p bm9yIDwgMjU2KSB7DQorCQlpZiAoKG5ld19tZXRhID0gbWFsbG9jKHNpemVv ZihzdHJ1Y3QgbWV0YWRhdGEpKSkpIHsNCisJCQluZXdfbWV0YS0+bmV4dCA9 IG1ldGE7DQorCQkJbmV3X21ldGEtPnR5cGUgPSBNRVRBX0RFVklDRTsNCisJ CQluZXdfbWV0YS0+bmFtZSA9IHN0cmR1cChuYW1lKTsNCisJCQluZXdfbWV0 YS0+ZGV2X3R5cGUgPSBkZXZfdHlwZTsNCisJCQlpZiAoZGV2X3R5cGUgPT0g J2InIHx8IGRldl90eXBlID09ICdjJykgew0KKwkJCQluZXdfbWV0YS0+bWFq b3IgPSAodW5zaWduZWQgY2hhciltYWpvcjsNCisJCQkJbmV3X21ldGEtPm1p bm9yID0gKHVuc2lnbmVkIGNoYXIpbWlub3I7DQorCQkJfQ0KKwkJCXJldHVy biBuZXdfbWV0YTsNCisJCX0gZWxzZSB7DQorCQkJZnByaW50ZihzdGRlcnIs Im91dCBvZiBtZW1vcnlcbiIpOw0KKwkJCWV4aXQoMSk7DQorCQl9DQorCX0g ZWxzZQ0KKwkJZnByaW50ZihzdGRlcnIsICJJbGxlZ2FsIGRldmljZSBmaWxl IHNwZWNpZmljYXRpb246ICVzIiwgbGluZSk7DQorDQorCXJldHVybiBtZXRh Ow0KK30NCisNCitzdHJ1Y3QgbWV0YWRhdGEgKmNyZWF0ZV9tZXRhX3VpZChj aGFyICpsaW5lLCBzdHJ1Y3QgbWV0YWRhdGEgKm1ldGEpDQorew0KKwlzdHJ1 Y3QgbWV0YWRhdGEgKm5ld19tZXRhOw0KKwljaGFyIG5hbWVbTUFYX0lOUFVU X05BTUVMRU4gKyAxXTsNCisJdW5zaWduZWQgaW50IHVpZDsNCisJaW50IGZv dW5kOw0KKw0KKwlmb3VuZCA9IHNzY2FuZihsaW5lLCAiJXMgJXUiLCBuYW1l LCAmdWlkKTsNCisJDQorCWlmIChmb3VuZCA9PSAyKSB7DQorCQlpZiAoKG5l d19tZXRhID0gbWFsbG9jKHNpemVvZihzdHJ1Y3QgbWV0YWRhdGEpKSkpIHsN CisJCQluZXdfbWV0YS0+bmV4dCA9IG1ldGE7DQorCQkJbmV3X21ldGEtPnR5 cGUgPSBNRVRBX1VJRDsNCisJCQluZXdfbWV0YS0+bmFtZSA9IHN0cmR1cChu YW1lKTsNCisJCQluZXdfbWV0YS0+aWQgPSB1aWQ7DQorDQorCQkJcmV0dXJu IG5ld19tZXRhOw0KKwkJfSBlbHNlIHsNCisJCQlmcHJpbnRmKHN0ZGVyciwi b3V0IG9mIG1lbW9yeVxuIik7DQorCQkJZXhpdCgxKTsNCisJCX0NCisJfSBl bHNlDQorCQlmcHJpbnRmKHN0ZGVyciwgIklsbGVnYWwgdWlkIHNwZWNpZmlj YXRpb246ICVzIiwgbGluZSk7DQorDQorCXJldHVybiBtZXRhOw0KK30NCisN CitzdHJ1Y3QgbWV0YWRhdGEgKmNyZWF0ZV9tZXRhX2dpZChjaGFyICpsaW5l LCBzdHJ1Y3QgbWV0YWRhdGEgKm1ldGEpDQorew0KKwlzdHJ1Y3QgbWV0YWRh dGEgKm5ld19tZXRhOw0KKwljaGFyIG5hbWVbTUFYX0lOUFVUX05BTUVMRU4g KyAxXTsNCisJdW5zaWduZWQgaW50IGdpZDsNCisJaW50IGZvdW5kOw0KKw0K Kwlmb3VuZCA9IHNzY2FuZihsaW5lLCAiJXMgJXUiLCBuYW1lLCAmZ2lkKTsN CisJDQorCWlmIChmb3VuZCA9PSAyKSB7DQorCQlpZiAoKG5ld19tZXRhID0g bWFsbG9jKHNpemVvZihzdHJ1Y3QgbWV0YWRhdGEpKSkpIHsNCisJCQluZXdf bWV0YS0+bmV4dCA9IG1ldGE7DQorCQkJbmV3X21ldGEtPnR5cGUgPSBNRVRB X0dJRDsNCisJCQluZXdfbWV0YS0+bmFtZSA9IHN0cmR1cChuYW1lKTsNCisJ CQluZXdfbWV0YS0+aWQgPSBnaWQ7DQorDQorCQkJcmV0dXJuIG5ld19tZXRh Ow0KKwkJfSBlbHNlIHsNCisJCQlmcHJpbnRmKHN0ZGVyciwib3V0IG9mIG1l bW9yeVxuIik7DQorCQkJZXhpdCgxKTsNCisJCX0NCisJfSBlbHNlDQorCQlm cHJpbnRmKHN0ZGVyciwgIklsbGVnYWwgZ2lkIHNwZWNpZmljYXRpb246ICVz IiwgbGluZSk7DQorDQorCXJldHVybiBtZXRhOw0KK30NCisNCitzdHJ1Y3Qg bWV0YWRhdGEgKnJlYWRfbWV0YV9kYXRhKGNvbnN0IGNoYXIgKmRpcl9uYW1l LCB1bnNpZ25lZCBpbnQgKmRlZmF1bHRfdWlkX3B0ciwgdW5zaWduZWQgaW50 ICpkZWZhdWx0X2dpZF9wdHIpDQorew0KKwlGSUxFICptZXRhX2ZpbGU7DQor CWNoYXIgKmZpbGVfbmFtZTsNCisJc3RydWN0IG1ldGFkYXRhICptZXRhID0g MDsNCisJY2hhciBsaW5lW0JVRkZFUkxFTkdUSF07DQorDQorCWlmICghbWV0 YV9maWxlX25hbWUpDQorCQlyZXR1cm4gTlVMTDsNCisNCisJaWYgKCEoZmls ZV9uYW1lID0gbWFsbG9jKHN0cmxlbihkaXJfbmFtZSkgKyBzdHJsZW4obWV0 YV9maWxlX25hbWUpICsgMikpKSB7DQorCQlmcHJpbnRmKHN0ZGVyciwib3V0 IG9mIG1lbW9yeVxuIik7DQorCQlyZXR1cm4gMDsNCisJfQ0KKw0KKwlzdHJj cHkoZmlsZV9uYW1lLCBkaXJfbmFtZSk7DQorCXN0cmNhdChmaWxlX25hbWUs ICIvIik7DQorCXN0cmNhdChmaWxlX25hbWUsIG1ldGFfZmlsZV9uYW1lKTsN CisNCisJaWYgKCEobWV0YV9maWxlID0gZm9wZW4oZmlsZV9uYW1lLCAiciIp KSkgew0KKwkJcmV0dXJuIDA7DQorCX0NCisNCisJd2hpbGUgKCFmZW9mKG1l dGFfZmlsZSkpIHsNCisJCWlmIChmZ2V0cyhsaW5lLCBCVUZGRVJMRU5HVEgg LSAxLCBtZXRhX2ZpbGUpKSB7DQorCQkJaWYgKCFzdHJuY2FzZWNtcCgiSWdu b3JlOiIsIGxpbmUsIDcpKSB7DQorCQkJCW1ldGEgPSBjcmVhdGVfbWV0YV9p Z25vcmUobGluZSArIDcsIG1ldGEsIE1FVEFfSUdOT1JFKTsNCisJCQl9IGVs c2UgaWYgKCFzdHJuY2FzZWNtcCgiSWdub3JlQ29udGVudHM6IiwgbGluZSwg MTUpKSB7DQorCQkJCW1ldGEgPSBjcmVhdGVfbWV0YV9pZ25vcmUobGluZSAr IDE1LCBtZXRhLA0KKwkJCQkJCQkgIE1FVEFfSUdOT1JFX0NPTlRFTlRTKTsN CisJCQl9IGVsc2UgaWYgKCFzdHJuY2FzZWNtcCgiSW5jbHVkZToiLCBsaW5l LCA4KSkgew0KKwkJCQltZXRhID0gY3JlYXRlX21ldGFfaW5jbHVkZShsaW5l ICsgOCwgbWV0YSk7DQorCQkJfSBlbHNlIGlmICghc3RybmNhc2VjbXAoIkRl dmljZToiLCBsaW5lLCA3KSkgew0KKwkJCQltZXRhID0gY3JlYXRlX21ldGFf ZGV2aWNlKGxpbmUgKyA3LCBtZXRhKTsNCisJCQl9IGVsc2UgaWYgKCFzdHJu Y2FzZWNtcCgiVXNlcklkOiIsIGxpbmUsIDcpKSB7DQorCQkJCW1ldGEgPSBj cmVhdGVfbWV0YV91aWQobGluZSArIDcsIG1ldGEpOw0KKwkJCX0gZWxzZSBp ZiAoIXN0cm5jYXNlY21wKCJHcm91cElkOiIsIGxpbmUsIDgpKSB7DQorCQkJ CW1ldGEgPSBjcmVhdGVfbWV0YV9naWQobGluZSArIDgsIG1ldGEpOw0KKwkJ CX0gZWxzZSBpZiAoIXN0cm5jYXNlY21wKCJEZWZhdWx0VXNlcklkOiIsIGxp bmUsIDE0KSkgew0KKwkJCQlpbnQgY291bnQgPSBzc2NhbmYobGluZSArIDE0 LCAiJXUiLCBkZWZhdWx0X3VpZF9wdHIpOw0KKwkJCQlpZiAoY291bnQgPCAx KQ0KKwkJCQkJZnByaW50ZihzdGRlcnIsICJJbGxlZ2FsIGRlZmF1bHQgdWlk IHNwZWNpZmljYXRpb246ICVzIiwgbGluZSk7DQorCQkJfSBlbHNlIGlmICgh c3RybmNhc2VjbXAoIkRlZmF1bHRHcm91cElkOiIsIGxpbmUsIDE1KSkgew0K KwkJCQlpbnQgY291bnQgPSBzc2NhbmYobGluZSArIDE1LCAiJXUiLCBkZWZh dWx0X2dpZF9wdHIpOw0KKwkJCQlpZiAoY291bnQgPCAxKQ0KKwkJCQkJZnBy aW50ZihzdGRlcnIsICJJbGxlZ2FsIGRlZmF1bHQgZ2lkIHNwZWNpZmljYXRp b246ICVzIiwgbGluZSk7DQorCQkJfSBlbHNlIHsNCisJCQkJZnByaW50Zihz dGRlcnIsICJJbGxlZ2FsIG1ldGEgc3BlY2lmaWNhdGlvbjogJXMiLCBsaW5l KTsNCisJCQl9DQorCQl9DQorCX0NCisJDQorCWZjbG9zZShtZXRhX2ZpbGUp Ow0KKwlmcmVlKGZpbGVfbmFtZSk7DQorDQorCXJldHVybiBtZXRhOw0KK30N CisNCit2b2lkIGZyZWVfbWV0YV9kYXRhKHN0cnVjdCBtZXRhZGF0YSAqbWV0 YSkNCit7DQorCXN0cnVjdCBtZXRhZGF0YSAqbmV4dDsNCisNCisJZm9yICg7 IG1ldGE7IG1ldGEgPSBuZXh0KSB7DQorCQluZXh0ID0gbWV0YS0+bmV4dDsN CisJCWZyZWUobWV0YS0+bmFtZSk7DQorCQlmcmVlKG1ldGEpOw0KKwl9DQor fQ0KKw0KK2ludCBtZXRhX2lnbm9yZShzdHJ1Y3QgbWV0YWRhdGEgKm1ldGEs IGNoYXIgKm5hbWUpDQorew0KKwlmb3IgKDsgbWV0YTsgbWV0YSA9IG1ldGEt Pm5leHQpIHsNCisJCWlmIChtZXRhLT50eXBlID09IE1FVEFfSUdOT1JFICYm ICFzdHJjbXAobmFtZSwgbWV0YS0+bmFtZSkpIHsNCisJCQlyZXR1cm4gMTsN CisJCX0NCisJfQ0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQoraW50IG1ldGFf aWdub3JlX2NvbnRlbnRzKHN0cnVjdCBtZXRhZGF0YSAqbWV0YSwgY2hhciAq bmFtZSkNCit7DQorCWZvciAoOyBtZXRhOyBtZXRhID0gbWV0YS0+bmV4dCkg ew0KKwkJaWYgKG1ldGEtPnR5cGUgPT0gTUVUQV9JR05PUkVfQ09OVEVOVFMg JiYgIXN0cmNtcChuYW1lLCBtZXRhLT5uYW1lKSkgew0KKwkJCXJldHVybiAx Ow0KKwkJfQ0KKwl9DQorDQorCXJldHVybiAwOw0KK30NCisNCitpbnQgbWV0 YV9pbmNsdWRlKHN0cnVjdCBtZXRhZGF0YSAqbWV0YSwgY2hhciAqbmFtZSkN Cit7DQorCWludCBmb3VuZCA9IDA7DQorDQorCS8qIEFsd2F5cyBpbmNsdWRl IC4gYW5kIC4uICovDQorCWlmICghc3RyY21wKG5hbWUsICIuIikgfHwgIXN0 cmNtcChuYW1lLCAiLi4iKSkNCisJCXJldHVybiAxOyAgDQorDQorCWZvciAo OyBtZXRhOyBtZXRhID0gbWV0YS0+bmV4dCkgew0KKwkJaWYgKG1ldGEtPnR5 cGUgPT0gTUVUQV9JTkNMVURFKSB7DQorCQkJZm91bmQgPSAxOw0KKwkJCWlm ICghc3RyY21wKG5hbWUsIG1ldGEtPm5hbWUpKSB7DQorCQkJCXJldHVybiAx Ow0KKwkJCX0NCisJCX0NCisJfQ0KKw0KKwlyZXR1cm4gIWZvdW5kOw0KK30N CisNCitpbnQgbWV0YV9oYW5kbGVfZGV2aWNlKHN0cnVjdCBtZXRhZGF0YSAq bWV0YSwgc3RydWN0IGVudHJ5ICplbnRyeSkNCit7DQorCWZvciAoOyBtZXRh OyBtZXRhID0gbWV0YS0+bmV4dCkgew0KKwkJaWYgKG1ldGEtPnR5cGUgPT0g TUVUQV9ERVZJQ0UgJiYNCisJCSAgICAhc3RyY21wKGVudHJ5LT5uYW1lLCBt ZXRhLT5uYW1lKSkgew0KKwkJCWlmIChtZXRhLT5kZXZfdHlwZSA9PSAnYicp IHsNCisJCQkJZW50cnktPm1vZGUgPSAoZW50cnktPm1vZGUgJiB+U19JRk1U KSB8IFNfSUZCTEs7DQorCQkJCWVudHJ5LT5zaXplID0gbWFrZWRldihtZXRh LT5tYWpvciwgbWV0YS0+bWlub3IpOw0KKwkJCX0gZWxzZSBpZiAobWV0YS0+ ZGV2X3R5cGUgPT0gJ2MnKSB7DQorCQkJCWVudHJ5LT5tb2RlID0gKGVudHJ5 LT5tb2RlICYgflNfSUZNVCkgfCBTX0lGQ0hSOw0KKwkJCQllbnRyeS0+c2l6 ZSA9IG1ha2VkZXYobWV0YS0+bWFqb3IsIG1ldGEtPm1pbm9yKTsNCisJCQl9 IGVsc2Ugew0KKwkJCQllbnRyeS0+bW9kZSA9IChlbnRyeS0+bW9kZSAmIH5T X0lGTVQpIHwgU19JRklGTzsNCisJCQl9DQorCQkJcmV0dXJuIDE7DQorCQl9 DQorCX0NCisNCisJcmV0dXJuIDA7DQorfQ0KKw0KK2ludCBtZXRhX2hhbmRs ZV91aWQoc3RydWN0IG1ldGFkYXRhICptZXRhLCBzdHJ1Y3QgZW50cnkgKmVu dHJ5KQ0KK3sNCisJZm9yICg7IG1ldGE7IG1ldGEgPSBtZXRhLT5uZXh0KSB7 DQorCQlpZiAobWV0YS0+dHlwZSA9PSBNRVRBX1VJRCkgew0KKwkJCWlmICgh c3RyY21wKGVudHJ5LT5uYW1lLCBtZXRhLT5uYW1lKSkgew0KKwkJCQllbnRy eS0+dWlkID0gbWV0YS0+aWQ7DQorCQkJCXJldHVybiAxOw0KKwkJCX0NCisJ CX0NCisJfQ0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQoraW50IG1ldGFfaGFu ZGxlX2dpZChzdHJ1Y3QgbWV0YWRhdGEgKm1ldGEsIHN0cnVjdCBlbnRyeSAq ZW50cnkpDQorew0KKwlmb3IgKDsgbWV0YTsgbWV0YSA9IG1ldGEtPm5leHQp IHsNCisJCWlmIChtZXRhLT50eXBlID09IE1FVEFfR0lEKSB7DQorCQkJaWYg KCFzdHJjbXAoZW50cnktPm5hbWUsIG1ldGEtPm5hbWUpKSB7DQorCQkJCWVu dHJ5LT5naWQgPSBtZXRhLT5pZDsNCisJCQkJcmV0dXJuIDE7DQorCQkJfQ0K KwkJfQ0KKwl9DQorDQorCXJldHVybiAwOw0KK30NCisNCisvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovDQorDQogLyoNCiAgKiBXZSBkZWZpbmUgb3VyIG93biBz b3J0aW5nIGZ1bmN0aW9uIGluc3RlYWQgb2YgdXNpbmcgYWxwaGFzb3J0IHdo aWNoDQogICogdXNlcyBzdHJjb2xsIGFuZCBjaGFuZ2VzIG9yZGVyaW5nIGJh c2VkIG9uIGxvY2FsZSBpbmZvcm1hdGlvbi4NCkBAIC0xNDQsMTIgKzQ5Mywx NSBAQA0KIAkJICAgICAgICgqKGNvbnN0IHN0cnVjdCBkaXJlbnQgKiopIGIp LT5kX25hbWUpOw0KIH0NCiANCi1zdGF0aWMgdW5zaWduZWQgaW50IHBhcnNl X2RpcmVjdG9yeShzdHJ1Y3QgZW50cnkgKnJvb3RfZW50cnksIGNvbnN0IGNo YXIgKm5hbWUsIHN0cnVjdCBlbnRyeSAqKnByZXYsIGxvZmZfdCAqZnNsZW5f dWIpDQorc3RhdGljIHVuc2lnbmVkIGludCBwYXJzZV9kaXJlY3Rvcnkoc3Ry dWN0IGVudHJ5ICpyb290X2VudHJ5LCBjb25zdCBjaGFyICpuYW1lLCBzdHJ1 Y3QgZW50cnkgKipwcmV2LCBsb2ZmX3QgKmZzbGVuX3ViLCBpbnQgaWdub3Jl X2NvbnRlbnRzLCB1bnNpZ25lZCBpbnQgZGVmYXVsdF91aWQsIHVuc2lnbmVk IGludCBkZWZhdWx0X2dpZCkNCiB7DQogCXN0cnVjdCBkaXJlbnQgKipkaXJs aXN0Ow0KIAlpbnQgdG90YWxzaXplID0gMCwgZGlyY291bnQsIGRpcmluZGV4 Ow0KIAljaGFyICpwYXRoLCAqZW5kcGF0aDsNCiAJc2l6ZV90IGxlbiA9IHN0 cmxlbihuYW1lKTsNCisJc3RydWN0IG1ldGFkYXRhICptZXRhOw0KKw0KKwlt ZXRhID0gcmVhZF9tZXRhX2RhdGEobmFtZSwgJmRlZmF1bHRfdWlkLCAmZGVm YXVsdF9naWQpOw0KIA0KIAkvKiBTZXQgdXAgdGhlIHBhdGguICovDQogCS8q IFRPRE86IFJldXNlIHRoZSBwYXJlbnQncyBidWZmZXIgdG8gc2F2ZSBtZW1j cHknaW5nIGFuZCBkdXBsaWNhdGlvbi4gKi8NCkBAIC0xOTAsNiArNTQyLDI1 IEBADQogCQkJCQljb250aW51ZTsNCiAJCQl9DQogCQl9DQorDQorCQkvKiBJ Z25vcmUgZmlsZXMgYWNjb3JkaW5nIHRvIG1ldGEgZGF0YSAqLw0KKwkJaWYg KGlnbm9yZV9jb250ZW50cykgew0KKwkJCXByaW50ZigiTWV0YTogaWdub3Jp bmcgY29udGVudCAlcy8lc1xuIiwgbmFtZSArIG5hbWVfb2Zmc2V0LCBkaXJl bnQtPmRfbmFtZSk7DQorCQkJY29udGludWU7DQorCQl9DQorCQlpZiAobWV0 YV9maWxlX25hbWUgJiYgIXN0cmNtcChkaXJlbnQtPmRfbmFtZSwgbWV0YV9m aWxlX25hbWUpKSB7DQorCQkJcHJpbnRmKCJNZXRhOiBpZ25vcmluZyBtZXRh IGZpbGUgJXMvJXNcbiIsIG5hbWUgKyBuYW1lX29mZnNldCwgZGlyZW50LT5k X25hbWUpOw0KKwkJCWNvbnRpbnVlOyAvKiBkb24ndCBpbmNsdWRlIHRoZSBt ZXRhIGRhdGEgZmlsZSAqLw0KKwkJfQ0KKwkJaWYgKCFtZXRhX2luY2x1ZGUo bWV0YSwgZGlyZW50LT5kX25hbWUpKSB7DQorCQkJcHJpbnRmKCJNZXRhOiBu b3QgaW5jbHVkaW5nICVzLyVzXG4iLCBuYW1lICsgbmFtZV9vZmZzZXQsIGRp cmVudC0+ZF9uYW1lKTsNCisJCQljb250aW51ZTsgLyogaW5jbHVkZSBmaWxl cyBhY2NvcmRpbmcgdG8gdGhlIG1ldGEgZGF0YSAqLw0KKwkJfQ0KKwkJaWYg KG1ldGFfaWdub3JlKG1ldGEsIGRpcmVudC0+ZF9uYW1lKSkgew0KKwkJCXBy aW50ZigiTWV0YTogaWdub3JpbmcgJXMvJXNcbiIsIG5hbWUgKyBuYW1lX29m ZnNldCwgZGlyZW50LT5kX25hbWUpOw0KKwkJCWNvbnRpbnVlOyAvKiBpZ25v cmUgZmlsZXMgYWNjb3JkaW5nIHRvIHRoZSBtZXRhIGRhdGEgKi8NCisJCX0N CisNCiAJCW5hbWVsZW4gPSBzdHJsZW4oZGlyZW50LT5kX25hbWUpOw0KIAkJ aWYgKG5hbWVsZW4gPiBNQVhfSU5QVVRfTkFNRUxFTikgew0KIAkJCWZwcmlu dGYoc3RkZXJyLA0KQEAgLTIzOSw3ICs2MTAsNyBAQA0KIAkJc2l6ZSA9IHNp emVvZihzdHJ1Y3QgY3JhbWZzX2lub2RlKSArICgobmFtZWxlbiArIDMpICYg fjMpOw0KIAkJKmZzbGVuX3ViICs9IHNpemU7DQogCQlpZiAoU19JU0RJUihz dC5zdF9tb2RlKSkgew0KLQkJCWVudHJ5LT5zaXplID0gcGFyc2VfZGlyZWN0 b3J5KHJvb3RfZW50cnksIHBhdGgsICZlbnRyeS0+Y2hpbGQsIGZzbGVuX3Vi KTsNCisJCQllbnRyeS0+c2l6ZSA9IHBhcnNlX2RpcmVjdG9yeShyb290X2Vu dHJ5LCBwYXRoLCAmZW50cnktPmNoaWxkLCBmc2xlbl91YiwgbWV0YV9pZ25v cmVfY29udGVudHMobWV0YSwgZGlyZW50LT5kX25hbWUpLCBkZWZhdWx0X3Vp ZCwgZGVmYXVsdF9naWQpOw0KIAkJfSBlbHNlIGlmIChTX0lTUkVHKHN0LnN0 X21vZGUpKSB7DQogCQkJLyogVE9ETzogV2Ugb3VnaHQgdG8gb3BlbiBmaWxl cyBpbiBkb19jb21wcmVzcywgb25lDQogCQkJICAgYXQgYSB0aW1lLCBpbnN0 ZWFkIG9mIGFtYXNzaW5nIGFsbCB0aGVzZSBtZW1vcnkNCkBAIC0yNTAsNiAr NjIxLDExIEBADQogDQogCQkJICAgV2hpbGUgd2UncmUgYXQgaXQsIGRvIGFu YWxhZ291c2x5IGZvciBzeW1saW5rcw0KIAkJCSAgICh3aGljaCB3b3VsZCBq dXN0IHNhdmUgYSBsaXR0bGUgbWVtb3J5KS4gKi8NCisJCQlpZiAobWV0YV9o YW5kbGVfZGV2aWNlKG1ldGEsIGVudHJ5KSkgew0KKwkJCQlpZiAoZW50cnkt PnNpemUgJiAtKDEgPDwgQ1JBTUZTX1NJWkVfV0lEVEgpKQ0KKwkJCQkJd2Fy bl9kZXYgPSAxOw0KKwkJCQlwcmludGYoIk1ldGE6IGRldmljZSAoJWMgJWQg JWQpICVzLyVzXG4iLCAoU19JU0JMSyhlbnRyeS0+bW9kZSkpPyAnYicgOiAn YycsIG1ham9yKGVudHJ5LT5zaXplKSwgbWlub3IoZW50cnktPnNpemUpLCBu YW1lICsgbmFtZV9vZmZzZXQsIGRpcmVudC0+ZF9uYW1lKTsNCisJCQl9IGVs c2Ugew0KIAkJCWludCBmZCA9IG9wZW4ocGF0aCwgT19SRE9OTFkpOw0KIAkJ CWlmIChmZCA8IDApIHsNCiAJCQkJcGVycm9yKHBhdGgpOw0KQEAgLTI2OSw2 ICs2NDUsNyBAQA0KIAkJCQl9DQogCQkJfQ0KIAkJCWNsb3NlKGZkKTsNCisJ CQl9DQogCQl9IGVsc2UgaWYgKFNfSVNMTksoc3Quc3RfbW9kZSkpIHsNCiAJ CQllbnRyeS0+dW5jb21wcmVzc2VkID0gbWFsbG9jKGVudHJ5LT5zaXplKTsN CiAJCQlpZiAoIWVudHJ5LT51bmNvbXByZXNzZWQpIHsNCkBAIC0yOTcsMTEg KzY3NCwyNiBAQA0KIAkJCQkqZnNsZW5fdWIgKz0gKDQrMjYpKmJsb2NrcyAr IGVudHJ5LT5zaXplICsgMzsNCiAgICAgICAgICAgICAgICAgfQ0KIA0KKwkJ aWYgKG1ldGFfaGFuZGxlX3VpZChtZXRhLCBlbnRyeSkpIHsNCisJCQlwcmlu dGYoIk1ldGE6IHVpZCAoJXUpICVzLyVzXG4iLCBlbnRyeS0+dWlkLCBuYW1l ICsgbmFtZV9vZmZzZXQsIGRpcmVudC0+ZF9uYW1lKTsNCisJCX0gZWxzZSBp ZiAoZGVmYXVsdF91aWQgIT0gSURfTk9ORSkgew0KKwkJCWVudHJ5LT51aWQg PSBkZWZhdWx0X3VpZDsNCisJCQlwcmludGYoIk1ldGE6IGRlZmF1bHQgdWlk ICgldSkgJXMvJXNcbiIsIGVudHJ5LT51aWQsIG5hbWUgKyBuYW1lX29mZnNl dCwgZGlyZW50LT5kX25hbWUpOw0KKwkJfQ0KKw0KKwkJaWYgKG1ldGFfaGFu ZGxlX2dpZChtZXRhLCBlbnRyeSkpIHsNCisJCQlwcmludGYoIk1ldGE6IGdp ZCAoJXUpICVzLyVzXG4iLCBlbnRyeS0+Z2lkLCBuYW1lICsgbmFtZV9vZmZz ZXQsIGRpcmVudC0+ZF9uYW1lKTsNCisJCX0gZWxzZSBpZiAoZGVmYXVsdF9n aWQgIT0gSURfTk9ORSkgew0KKwkJCWVudHJ5LT5naWQgPSBkZWZhdWx0X2dp ZDsNCisJCQlwcmludGYoIk1ldGE6IGRlZmF1bHQgZ2lkICgldSkgJXMvJXNc biIsIGVudHJ5LT5naWQsIG5hbWUgKyBuYW1lX29mZnNldCwgZGlyZW50LT5k X25hbWUpOw0KKwkJfQ0KKw0KIAkJLyogTGluayBpdCBpbnRvIHRoZSBsaXN0 ICovDQogCQkqcHJldiA9IGVudHJ5Ow0KIAkJcHJldiA9ICZlbnRyeS0+bmV4 dDsNCiAJCXRvdGFsc2l6ZSArPSBzaXplOw0KIAl9DQorCWZyZWVfbWV0YV9k YXRhKG1ldGEpOw0KIAlmcmVlKHBhdGgpOw0KIAlmcmVlKGRpcmxpc3QpOwkJ LyogYWxsb2NhdGVkIGJ5IHNjYW5kaXIoKSB3aXRoIG1hbGxvYygpICovDQog CXJldHVybiB0b3RhbHNpemU7DQpAQCAtNTc2LDE3ICs5NjgsMjIgQEANCiAg Ki8NCiAjZGVmaW5lIE1BWEZTTEVOICgoKCgxIDw8IENSQU1GU19PRkZTRVRf V0lEVEgpIC0gMSkgPDwgMikgLyogb2Zmc2V0ICovIFwNCiAJCSAgKyAoMSA8 PCBDUkFNRlNfU0laRV9XSURUSCkgLSAxIC8qIGZpbGVzaXplICovIFwNCi0J CSAgKyAoMSA8PCBDUkFNRlNfU0laRV9XSURUSCkgKiA0IC8gUEFHRV9DQUNI RV9TSVpFIC8qIGJsb2NrIHBvaW50ZXJzICovICkNCisJCSAgKyAoMSA8PCBD UkFNRlNfU0laRV9XSURUSCkgKiA0IC8gYmxrc2l6ZSAvKiBibG9jayBwb2lu dGVycyAqLyApDQogDQogDQogLyoNCiAgKiBVc2FnZToNCiAgKg0KLSAqICAg ICAgbWtjcmFtZnMgZGlyZWN0b3J5LW5hbWUgb3V0ZmlsZQ0KKyAqICAgICAg bWtjcmFtZnMgW29wdGlvbnNdIGRpcmVjdG9yeSBvdXRwdXQtZmlsZQ0KICAq DQogICogd2hlcmUgImRpcmVjdG9yeS1uYW1lIiBpcyBzaW1wbHkgdGhlIHJv b3Qgb2YgdGhlIGRpcmVjdG9yeQ0KICAqIHRyZWUgdGhhdCB3ZSB3YW50IHRv IGdlbmVyYXRlIGEgY29tcHJlc3NlZCBmaWxlc3lzdGVtIG91dA0KICAqIG9m Lg0KKyAqDQorICogT3B0aW9ucyBjYW4gY3VycmVudGx5IGJlIC1iIFhYWCB3 aGVyZSBYWFggaXMgdGhlIGJsb2Nrc2l6ZSB0byB1c2UgYW5kDQorICogLW0g ZmlsZW5hbWUsIHdoZXJlIGZpbGVuYW1lIGlzIHRoZSBuYW1lIG9mIG1ldGEg ZmlsZXMgdG8gYmUgdXNlZC4NCisgKiBUaGlzIGFsbG93cyB0aGUgYnVpbGRp bmcgb2YgZmlsZXN5c3RlbXMgb24gb25lIGhvc3QgdG8gYmUgdXNlZCBvbiBh bm90aGVyDQorICogd2l0aCBhIGRpZmZlcmVudCBibG9ja3NpemUgKGp1c3Qg YmV3YXJlIHRoYXQgZW5kaWFuZXNzIG5lZWRzIHRvIGJlIHRoZSBzYW1lKS4N CiAgKi8NCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQogew0K QEAgLTYwNyw3ICsxMDA0LDcgQEANCiAJCXByb2duYW1lID0gYXJndlswXTsN CiANCiAJLyogY29tbWFuZCBsaW5lIG9wdGlvbnMgKi8NCi0Jd2hpbGUgKChj ID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJoRWU6aTpuOnBzeiIpKSAhPSBFT0Yp IHsNCisJd2hpbGUgKChjID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJoRWU6aTpi Om06bjpwc3oiKSkgIT0gRU9GKSB7DQogCQlzd2l0Y2ggKGMpIHsNCiAJCWNh c2UgJ2gnOg0KIAkJCXVzYWdlKDApOw0KQEAgLTYyNiw2ICsxMDIzLDE3IEBA DQogCQkJaW1hZ2VfbGVuZ3RoID0gc3Quc3Rfc2l6ZTsgLyogbWF5IGJlIHBh ZGRlZCBsYXRlciAqLw0KIAkJCWZzbGVuX3ViICs9IChpbWFnZV9sZW5ndGgg KyAzKTsgLyogMyBpcyBmb3IgcGFkZGluZyAqLw0KIAkJCWJyZWFrOw0KKwkJ Y2FzZSAnYic6DQorCQkJYmxrc2l6ZSA9IGF0b2kob3B0YXJnKTsNCisJCQlp ZiAoYmxrc2l6ZSA8PSAwKSB7DQorCQkJCWZwcmludGYoc3RkZXJyLCAiJXM6 IHdyb25nIGJsb2NrIHNpemVcbiIsDQorCQkJCQlwcm9nbmFtZSk7DQorCQkJ CXVzYWdlKDApOw0KKwkJCX0NCisJCQlicmVhazsNCisJCWNhc2UgJ20nOg0K KwkJCW1ldGFfZmlsZV9uYW1lID0gb3B0YXJnOw0KKwkJCWJyZWFrOw0KIAkJ Y2FzZSAnbic6DQogCQkJb3B0X25hbWUgPSBvcHRhcmc7DQogCQkJYnJlYWs7 DQpAQCAtNjQ3LDYgKzEwNTUsMTAgQEANCiAJZGlybmFtZSA9IGFyZ3Zbb3B0 aW5kXTsNCiAJb3V0ZmlsZSA9IGFyZ3Zbb3B0aW5kICsgMV07DQogDQorCXBy aW50ZigiVXNpbmcgYSBibG9ja3NpemUgb2YgJWQgYnl0ZXMuXG4iLCBibGtz aXplKTsNCisJaWYgKG1ldGFfZmlsZV9uYW1lKQ0KKwkJcHJpbnRmKCJVc2lu ZyBtZXRhIGZpbGUocykgbmFtZWQgXCIlc1wiLlxuIiwgbWV0YV9maWxlX25h bWUpOw0KKw0KIAlpZiAoc3RhdChkaXJuYW1lLCAmc3QpIDwgMCkgew0KIAkJ cGVycm9yKGRpcm5hbWUpOw0KIAkJZXhpdCgxNik7DQpAQCAtNjYyLDcgKzEw NzQsOCBAQA0KIAlyb290X2VudHJ5LT51aWQgPSBzdC5zdF91aWQ7DQogCXJv b3RfZW50cnktPmdpZCA9IHN0LnN0X2dpZDsNCiANCi0Jcm9vdF9lbnRyeS0+ c2l6ZSA9IHBhcnNlX2RpcmVjdG9yeShyb290X2VudHJ5LCBkaXJuYW1lLCAm cm9vdF9lbnRyeS0+Y2hpbGQsICZmc2xlbl91Yik7DQorCW5hbWVfb2Zmc2V0 ID0gc3RybGVuKGRpcm5hbWUpOw0KKwlyb290X2VudHJ5LT5zaXplID0gcGFy c2VfZGlyZWN0b3J5KHJvb3RfZW50cnksIGRpcm5hbWUsICZyb290X2VudHJ5 LT5jaGlsZCwgJmZzbGVuX3ViLCAwLCBJRF9OT05FLCBJRF9OT05FKTsNCiAN CiAJLyogYWx3YXlzIGFsbG9jYXRlIGEgbXVsdGlwbGUgb2YgYmxrc2l6ZSBi eXRlcyBiZWNhdXNlIHRoYXQncw0KICAgICAgICAgICAgd2hhdCB3ZSdyZSBn b2luZyB0byB3cml0ZSBsYXRlciBvbiAqLw0KLS0tIHRtcC9saW51eC9Eb2N1 bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL21ldGFmaWxlcy50eHQJVGh1IEphbiAg MSAwMTowMDowMCAxOTcwDQorKysgbGludXgvRG9jdW1lbnRhdGlvbi9maWxl c3lzdGVtcy9tZXRhZmlsZXMudHh0CU1vbiBTZXAgMTcgMTM6Mzg6NDMgMjAw MQ0KQEAgLTAsMCArMSw5MiBAQA0KK01ldGFmaWxlcw0KKz09PT09PT09PQ0K Kw0KK01ldGFmaWxlcyBhcmUgdXNlZCB0byBsZXQgYSBmaWxlc3lzdGVtIGJ1 aWxkZXIsIHN1Y2ggYXMgbWtjcmFtZnMgYW5kDQorbWtmcy5qZmZzMiwgaWdu b3JlIGZpbGVzIGFuZCBjaGFuZ2UgYXR0cmlidXRlcyBvZiBmaWxlcyB3aGls ZSBidWlsZGluZw0KK3RoZSBmaWxlc3lzdGVtLg0KKw0KK1RoaXMgZG9jdW1l bnQgYnJpZWZseSBkZXNjcmliZXMgaG93IEF4aXMgQ29tbXVuaWNhdGlvbnMg YXJlIHVzaW5nIG1ldGFmaWxlcw0KK3dpdGggbWtjcmFtZnMgYW1kIG1rZnMu amZmczIgYW5kIGlzIGFsc28gYSBwcm9wb3NhbCBvZiBhIG1ldGFmaWxlIHN0 YW5kYXJkDQorZm9yIGZpbGVzeXN0ZW0gYnVpbGRlcnMuDQorDQorDQorDQor TWV0YWZpbGUgRm9ybWF0DQorPT09PT09PT09PT09PT09DQorDQorQW4gaW5z dHJ1Y3Rpb24gaXMgYSBsaW5lIGluIGEgbWV0YWZpbGUgdGVsbGluZyB0aGUg ZmlsZXN5c3RlbSBidWlsZGVyIGlmDQorYW55dGhpbmcgc3BlY2lhbCBzaG91 bGQgYmUgZG9uZSB3aXRoIGEgZmlsZSBvciBkaXJlY3RvcnkgYmVmb3JlIHdy aXRpbmcgaXQgdG8NCit0aGUgZmlsZXN5c3RlbS4gVGhlIGZvbGxvd2luZyBp bnN0cnVjdGlvbnMgc2hvdWxkIGJlIHJlY29nbml6ZWQgYnkgdGhlDQorZmls ZXN5c3RlbSBidWlsZGVyOg0KKw0KKw0KK0lnbm9yZQ0KKy0tLS0tLQ0KK1N5 bnRheDogIklnbm9yZTogRklMRSINCisNCitJZ25vcmVzIGEgZmlsZSBvciBk aXJlY3RvcnkuIEkuZS4gRklMRSBpcyBub3QgaW5jbHVkZWQgaW4gdGhlIGZp bGVzeXN0ZW0uDQorVGhlIG1ldGFmaWxlcyB0aGVtc2VsdmVzIGFyZSBhbHdh eXMgaWdub3JlZCBhbmQgZG8gbm90IGhhdmUgdG8gYmUgbWVudGlvbmVkDQor aW4gYW55IG1ldGFmaWxlcy4NCisNCisNCitJZ25vcmVDb250ZW50cw0KKy0t LS0tLS0tLS0tLS0tDQorU3ludGF4OiAiSWdub3JlQ29udGVudHM6IERJUkVD VE9SWSINCisNCitJZ25vcmVzIHRoZSBjb250ZW50cyBvZiBhIGRpcmVjdG9y eS4gSS5lLiBESVJFQ1RPUlkgaXMgaW5jbHVkZWQgaW4gdGhlDQorZmlsZXN5 c3RlbSBidXQgYWxsIGZpbGVzIGFuZCBkaXJlY3RvcmllcyBpbiBESVJFQ1RP UlkgYXJlIGlnbm9yZWQuDQorDQorDQorSW5jbHVkZQ0KKy0tLS0tLS0NCitT eW50YXg6ICJJbmNsdWRlOiBGSUxFIg0KKw0KK0luY2x1ZGVzIGEgZmlsZSBv ciBkaXJlY3RvcnkuIElmIGFuIEluY2x1ZGUgaW5zdHJ1Y3Rpb24gaXMgZm91 bmQgaW4gYQ0KK21ldGFmaWxlLCBhbGwgZmlsZXMgb3IgZGlyZWN0b3JpZXMg KGluIHRoZSBzYW1lIGRpcmVjdG9yeSBhcyB0aGUgbWV0YWZpbGUpDQordGhh dCBhcmUgbm90IGluY2x1ZGVkIHdpbGwgYmUgaWdub3JlZCAoTk9URSEpLg0K Kw0KKw0KK0RldmljZQ0KKy0tLS0tLQ0KK1N5bnRheDogIkRldmljZTogRklM RSBUWVBFIE1BSk9SIE1JTk9SIg0KKw0KK0NvbnZlcnQgYSByZWd1bGFyIGZp bGUgdG8gYSBkZXZpY2Ugc3BlY2lhbCBmaWxlLiBJZiBGSUxFIGV4aXN0cyBp dCB3aWxsIGJlDQord3JpdHRlbiB0byB0aGUgZmlsZXN5c3RlbSBhcyBhIGNo YXJhY3RlciBvciBibG9jayBzcGVjaWFsIGZpbGUgd2l0aA0KK01BSk9SIGFu ZCBNSU5PUiBudW1iZXJzLiBUWVBFIGlzICdiJyBmb3IgYmxvY2sgYW5kICdj JyBmb3IgY2hhcmFjdGVyIGRldmljZS4NCisNCitFeGFtcGxlOiBUbyBjcmVh dGUgdGhlIGNoYXJhY3RlciBzcGVjaWFsIGZpbGUgL2Rldi90dHlTMCB1c2lu ZyBtZXRhZmlsZXMsDQorYWRkIHRoZSBmb2xsb3dpbmcgbGluZSB0byB0aGUg bWV0YWZpbGUgaW4gdGhlIC9kZXYgZGlyZWN0b3J5Og0KKw0KK0RldmljZTog dHR5UzAgYyA0IDY0DQorDQorDQorVXNlcklkDQorLS0tLS0tDQorU3ludGF4 OiAiVXNlcklkOiBGSUxFIFVJRCINCisNCitDaGFuZ2UgZmlsZSBvd25lci4g VGhlIG93bmVyIG9mIEZJTEUgd2lsbCBiZSBVSUQuDQorDQorDQorRGVmYXVs dFVzZXJJZA0KKy0tLS0tLS0tLS0tLS0NCitTeW50YXg6ICJEZWZhdWx0VXNl cklkOiBVSUQiDQorDQorQ2hhbmdlIGZpbGUgb3duZXIgcmVjdXJzaXZlbHku IEFsbCBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgaW4gdGhpcyBkaXJlY3RvcnkN Cit3aWxsIGJlIG93bmVkIGJ5IFVJRCB1bmxlc3Mgb3ZlcnJpZGRlbiB3aXRo IHRoZSBVc2VySWQgaW5zdHJ1Y3Rpb24uDQorDQorDQorR3JvdXBJZA0KKy0t LS0tLS0NCitTeW50YXg6ICJHcm91cElkOiBGSUxFIEdJRCINCisNCitDaGFu Z2UgZ3JvdXAgb3duZXJzaGlwIG9uIGEgZmlsZSBvciBkaXJlY3RvcnkuIFRo ZSBncm91cCBtZW1iZXJzaGlwIG9mIEZJTEUNCit3aWxsIGJlIEdJRC4NCisN CisNCitEZWZhdWx0R3JvdXBJZA0KKy0tLS0tLS0tLS0tLS0tDQorU3ludGF4 OiAiRGVmYXVsdEdyb3VwSWQ6IFVJRCINCisNCitDaGFuZ2UgZ3J1b3Agb3du ZXJzaGlwIHJlY3Vyc2l2ZWx5LiBUaGUgZ3JvdXAgbWVtYmVyc2hpcCBvZiBh bGwgZmlsZXMgYW5kDQorZGlyZWN0b3JpZXMgaW4gdGhpcyBkaXJlY3Rvcnkg d2lsbCBiZSBHSUQgdW5sZXNzIG92ZXJyaWRkZW4gd2l0aCB0aGUgR3JvdXBJ ZA0KK2luc3RydWN0aW9uLg0K --801292794-382094757-1001946061=:14246-- - 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/