[PATCH] mkcramfs gets an option to use meta-information

Bjorn Wesen (bjorn@sparta.lu.se)
Mon, 1 Oct 2001 16:21:01 +0200 (MET DST)


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: <Pine.LNX.3.96.1011001162101.14246C@medusa.sparta.lu.se>
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/