Re: [PATCH] linux-2.417 devfs 64bit portablility issue

Carsten Otte (COTTE@de.ibm.com)
Wed, 20 Mar 2002 13:27:47 +0100


--0__=4EBBE111DFD063818f9e8a93df938690918c4EBBE111DFD06381
Content-type: text/plain; charset=iso-8859-1
Content-transfer-encoding: quoted-printable

Hi Richard,

the previous version of my patch did contain a bug,
caused by incorrect parameter order when calling
__devfs_unregister_major. The symptom was, that
major numbers registered with devfs_register_*dev
but not allocated with devfs_alloc_major were not
freed by calling devfs_unregister_*dev. This is
now fixed. Sorry, the patch is attached (due to Notes
messing up with whitespace).
(See attached file: linux-2.4.17-devfs_fixup.diff)

Richard, I would appreciate it if you could finally
look into this.

mit freundlichem Gru=DF / with kind regards
Carsten Otte

IBM Deutschland Entwicklung GmbH
Linux for eServer development - device driver team
Phone: +49/07031/16-4076
IBM internal phone: *120-4076

--
We are Linux.
Resistance indicates that you're missing the point!=

--0__=4EBBE111DFD063818f9e8a93df938690918c4EBBE111DFD06381 Content-type: application/octet-stream; name="linux-2.4.17-devfs_fixup.diff" Content-Disposition: attachment; filename="linux-2.4.17-devfs_fixup.diff" Content-transfer-encoding: base64

ZGlmZiAtcnVOIGxpbnV4LTIuNC4xNy1zZG1hbnkvZnMvZGV2ZnMvYmFzZS5jIGxpbnV4LTIuNC4x Ny1zZG1hbnktZGV2ZnNfZml4dXAvZnMvZGV2ZnMvYmFzZS5jCi0tLSBsaW51eC0yLjQuMTctc2Rt YW55L2ZzL2RldmZzL2Jhc2UuYwlXZWQgRmViIDEzIDEzOjI1OjUwIDIwMDIKKysrIGxpbnV4LTIu NC4xNy1zZG1hbnktZGV2ZnNfZml4dXAvZnMvZGV2ZnMvYmFzZS5jCVR1ZSBNYXIgMTIgMjA6MTU6 NTMgMjAwMgpAQCAtMjE4Niw3ICsyMTg2LDcgQEAKIH0gICAvKiAgRW5kIEZ1bmN0aW9uIGRldmZz X2dldF9uYW1lICAqLwogCiAKLS8qKnkKKy8qKgogICoJZGV2ZnNfcmVnaXN0ZXJfY2hyZGV2IC0g T3B0aW9uYWxseSByZWdpc3RlciBhIGNvbnZlbnRpb25hbCBjaGFyYWN0ZXIgZHJpdmVyLgogICoJ QG1ham9yOiBUaGUgbWFqb3IgbnVtYmVyIGZvciB0aGUgZHJpdmVyLgogICoJQG5hbWU6IFRoZSBu YW1lIG9mIHRoZSBkcml2ZXIgKGFzIHNlZW4gaW4gL3Byb2MvZGV2aWNlcykuCkBAIC0yMjAxLDEy ICsyMjAxLDIxIEBACiAJCQkgICBzdHJ1Y3QgZmlsZV9vcGVyYXRpb25zICpmb3BzKQogewogICAg IHVuc2lnbmVkIGludCBuZXdfbWFqb3I7Ci0gICAgaWYgKGJvb3Rfb3B0aW9ucyAmIE9QVElPTl9P TkxZKSByZXR1cm4gMDsKLSAgICBpZiAobWFqb3IpCi0JbmV3X21ham9yID0gbWFqb3I7Ci0gICAg ZWxzZQotCW5ld19tYWpvciA9IGRldmZzX2FsbG9jX21ham9yIChERVZGU19TUEVDSUFMX0NIUik7 Ci0gICAgcmV0dXJuIHJlZ2lzdGVyX2NocmRldiAobmV3X21ham9yLCBuYW1lLCBmb3BzKTsKKyAg ICBpbnQgcmVzdWx0OworICAgIGlmIChib290X29wdGlvbnMgJiBPUFRJT05fT05MWSkgCisJICAg IHJldHVybiAwOworICAgIG5ld19tYWpvciA9IF9fZGV2ZnNfcmVnaXN0ZXJfbWFqb3IgKG1ham9y LCBERVZGU19TUEVDSUFMX0NIUik7CisgICAgaWYgKG5ld19tYWpvciA8IDApIAorCSAgICByZXR1 cm4gbmV3X21ham9yOworICAgIHJlc3VsdD1yZWdpc3Rlcl9jaHJkZXYgKG5ld19tYWpvciwgbmFt ZSwgZm9wcyk7CisgICAgaWYgKHJlc3VsdCA8IDApIHsKKwkgICAgX19kZXZmc191bnJlZ2lzdGVy X21ham9yIChtYWpvciwgREVWRlNfU1BFQ0lBTF9DSFIpOworCSAgICByZXR1cm4gcmVzdWx0Owor ICAgIH0KKyAgICBpZiAobWFqb3IpIAorCSAgICByZXR1cm4gMDsKKyAgICBlbHNlIAorCSAgICBy ZXR1cm4gbmV3X21ham9yOwogfSAgIC8qICBFbmQgRnVuY3Rpb24gZGV2ZnNfcmVnaXN0ZXJfY2hy ZGV2ICAqLwogCiAKQEAgLTIyMjUsMTIgKzIyMzQsMjEgQEAKIAkJCSAgIHN0cnVjdCBibG9ja19k ZXZpY2Vfb3BlcmF0aW9ucyAqYmRvcHMpCiB7CiAgICAgdW5zaWduZWQgaW50IG5ld19tYWpvcjsK LSAgICBpZiAoYm9vdF9vcHRpb25zICYgT1BUSU9OX09OTFkpIHJldHVybiAwOwotICAgIGlmICht YWpvcikKLQluZXdfbWFqb3IgPSBtYWpvcjsKLSAgICBlbHNlCi0JbmV3X21ham9yID0gZGV2ZnNf YWxsb2NfbWFqb3IgKERFVkZTX1NQRUNJQUxfQkxLKTsKLSAgICByZXR1cm4gcmVnaXN0ZXJfYmxr ZGV2IChuZXdfbWFqb3IsIG5hbWUsIGJkb3BzKTsKKyAgICBpbnQgcmVzdWx0OworICAgIGlmIChi b290X29wdGlvbnMgJiBPUFRJT05fT05MWSkgCisJICAgIHJldHVybiAwOworICAgIG5ld19tYWpv ciA9IF9fZGV2ZnNfcmVnaXN0ZXJfbWFqb3IgKG1ham9yLCBERVZGU19TUEVDSUFMX0JMSyk7Cisg ICAgaWYgKG5ld19tYWpvciA8IDApCisJICAgIHJldHVybiBuZXdfbWFqb3I7CisgICAgcmVzdWx0 PXJlZ2lzdGVyX2Jsa2RldiAobmV3X21ham9yLCBuYW1lLCBiZG9wcyk7CisgICAgaWYgKHJlc3Vs dCA8IDApIHsKKwkgICAgX19kZXZmc191bnJlZ2lzdGVyX21ham9yIChtYWpvciwgREVWRlNfU1BF Q0lBTF9CTEspOworCSAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKyAgICBpZiAobWFqb3IpIAor CSAgICByZXR1cm4gMDsKKyAgICBlbHNlIAorCSAgICByZXR1cm4gbmV3X21ham9yOwogfSAgIC8q ICBFbmQgRnVuY3Rpb24gZGV2ZnNfcmVnaXN0ZXJfYmxrZGV2ICAqLwogCiAKQEAgLTIyNDYsOCAr MjI2NCw5IEBACiAKIGludCBkZXZmc191bnJlZ2lzdGVyX2NocmRldiAodW5zaWduZWQgaW50IG1h am9yLCBjb25zdCBjaGFyICpuYW1lKQogewotICAgIGlmIChib290X29wdGlvbnMgJiBPUFRJT05f T05MWSkgcmV0dXJuIDA7Ci0gICAgZGV2ZnNfZGVhbGxvY19tYWpvciAobWFqb3IsIERFVkZTX1NQ RUNJQUxfQ0hSKTsKKyAgICBpZiAoYm9vdF9vcHRpb25zICYgT1BUSU9OX09OTFkpIAorCSAgICBy ZXR1cm4gMDsKKyAgICBfX2RldmZzX3VucmVnaXN0ZXJfbWFqb3IgKG1ham9yLCBERVZGU19TUEVD SUFMX0NIUik7CiAgICAgcmV0dXJuIHVucmVnaXN0ZXJfY2hyZGV2IChtYWpvciwgbmFtZSk7CiB9 ICAgLyogIEVuZCBGdW5jdGlvbiBkZXZmc191bnJlZ2lzdGVyX2NocmRldiAgKi8KIApAQCAtMjI2 NCw4ICsyMjgzLDkgQEAKIAogaW50IGRldmZzX3VucmVnaXN0ZXJfYmxrZGV2ICh1bnNpZ25lZCBp bnQgbWFqb3IsIGNvbnN0IGNoYXIgKm5hbWUpCiB7Ci0gICAgaWYgKGJvb3Rfb3B0aW9ucyAmIE9Q VElPTl9PTkxZKSByZXR1cm4gMDsKLSAgICBkZXZmc19kZWFsbG9jX21ham9yIChtYWpvciwgREVW RlNfU1BFQ0lBTF9CTEspOworICAgIGlmIChib290X29wdGlvbnMgJiBPUFRJT05fT05MWSkgCisJ ICAgIHJldHVybiAwOworICAgIF9fZGV2ZnNfdW5yZWdpc3Rlcl9tYWpvciAobWFqb3IsIERFVkZT X1NQRUNJQUxfQkxLKTsKICAgICByZXR1cm4gdW5yZWdpc3Rlcl9ibGtkZXYgKG1ham9yLCBuYW1l KTsKIH0gICAvKiAgRW5kIEZ1bmN0aW9uIGRldmZzX3VucmVnaXN0ZXJfYmxrZGV2ICAqLwogCmRp ZmYgLXJ1TiBsaW51eC0yLjQuMTctc2RtYW55L2ZzL2RldmZzL3V0aWwuYyBsaW51eC0yLjQuMTct c2RtYW55LWRldmZzX2ZpeHVwL2ZzL2RldmZzL3V0aWwuYwotLS0gbGludXgtMi40LjE3LXNkbWFu eS9mcy9kZXZmcy91dGlsLmMJRnJpIE9jdCAyNiAyMDowMDo1MiAyMDAxCisrKyBsaW51eC0yLjQu MTctc2RtYW55LWRldmZzX2ZpeHVwL2ZzL2RldmZzL3V0aWwuYwlUdWUgTWFyIDEyIDIwOjQ4OjUy IDIwMDIKQEAgLTE4NSw0MyArMTg1LDYyIEBACiAKIHN0cnVjdCBtYWpvcl9saXN0CiB7Ci0gICAg c3BpbmxvY2tfdCBsb2NrOwotICAgIF9fdTMyIGJpdHNbOF07CisJc3BpbmxvY2tfdCBsb2NrOwor CXVuc2lnbmVkIGNoYXIgc3RhdGVbMjU2XTsKIH07CiAKKworCiAvKiAgQmxvY2sgbWFqb3JzIGFs cmVhZHkgYXNzaWduZWQ6CiAgICAgMC0zLCA3LTksIDExLTYzLCA2NS05OSwgMTAxLTExMywgMTIw LTEyNywgMTk5LCAyMDEsIDI0MC0yNTUKICAgICBUb3RhbCBmcmVlOiAxMjIKICovCisKIHN0YXRp YyBzdHJ1Y3QgbWFqb3JfbGlzdCBibG9ja19tYWpvcl9saXN0ID0KLXtTUElOX0xPQ0tfVU5MT0NL RUQsCi0gICAgezB4ZmZmZmZiOGYsICAvKiAgTWFqb3JzIDAgICB0byAzMSAgICovCi0gICAgIDB4 ZmZmZmZmZmYsICAvKiAgTWFqb3JzIDMyICB0byA2MyAgICovCi0gICAgIDB4ZmZmZmZmZmUsICAv KiAgTWFqb3JzIDY0ICB0byA5NSAgICovCi0gICAgIDB4ZmYwM2ZmZWYsICAvKiAgTWFqb3JzIDk2 ICB0byAxMjcgICovCi0gICAgIDB4MDAwMDAwMDAsICAvKiAgTWFqb3JzIDEyOCB0byAxNTkgICov Ci0gICAgIDB4MDAwMDAwMDAsICAvKiAgTWFqb3JzIDE2MCB0byAxOTEgICovCi0gICAgIDB4MDAw MDAyODAsICAvKiAgTWFqb3JzIDE5MiB0byAyMjMgICovCi0gICAgIDB4ZmZmZjAwMDB9ICAvKiAg TWFqb3JzIDIyNCB0byAyNTUgICovCit7U1BJTl9MT0NLX1VOTE9DS0VELCAKKyB7IFsgIDAgLi4u ICAgM10gPSBERVZGU19NQUpPUl9TVEFUSUMsCisgICBbICA0IC4uLiAgIDZdID0gREVWRlNfTUFK T1JfRlJFRSwKKyAgIFsgIDcgLi4uICAgOV0gPSBERVZGU19NQUpPUl9TVEFUSUMsCisgICBbIDEw IC4uLiAgMTBdID0gREVWRlNfTUFKT1JfRlJFRSwKKyAgIFsgMTEgLi4uICA2M10gPSBERVZGU19N QUpPUl9TVEFUSUMsCisgICBbIDY0IC4uLiAgNjRdID0gREVWRlNfTUFKT1JfRlJFRSwKKyAgIFsg NjUgLi4uICA5OV0gPSBERVZGU19NQUpPUl9TVEFUSUMsCisgICBbMTAwIC4uLiAxMDBdID0gREVW RlNfTUFKT1JfRlJFRSwKKyAgIFsxMDEgLi4uIDExM10gPSBERVZGU19NQUpPUl9TVEFUSUMsCisg ICBbMTE0IC4uLiAxMTldID0gREVWRlNfTUFKT1JfRlJFRSwKKyAgIFsxMjAgLi4uIDEyN10gPSBE RVZGU19NQUpPUl9TVEFUSUMsCisgICBbMTI4IC4uLiAxOThdID0gREVWRlNfTUFKT1JfRlJFRSwK KyAgIFsxOTkgLi4uIDE5OV0gPSBERVZGU19NQUpPUl9TVEFUSUMsCisgICBbMjAwIC4uLiAyMDBd ID0gREVWRlNfTUFKT1JfRlJFRSwKKyAgIFsyMDEgLi4uIDIwMV0gPSBERVZGU19NQUpPUl9TVEFU SUMsCisgICBbMjAyIC4uLiAyMzldID0gREVWRlNfTUFKT1JfRlJFRSwKKyAgIFsyNDAgLi4uIDI1 NV0gPSBERVZGU19NQUpPUl9TVEFUSUMKKyB9CiB9OwogCiAvKiAgQ2hhciBtYWpvcnMgYWxyZWFk eSBhc3NpZ25lZDoKICAgICAwLTcsIDktMTUxLCAxNTQtMTU4LCAxNjAtMjExLCAyMTYtMjIxLCAy MjQtMjMwLCAyNDAtMjU1CiAgICAgVG90YWwgZnJlZTogMTkKICovCisKIHN0YXRpYyBzdHJ1Y3Qg bWFqb3JfbGlzdCBjaGFyX21ham9yX2xpc3QgPQoge1NQSU5fTE9DS19VTkxPQ0tFRCwKLSAgICB7 MHhmZmZmZmVmZiwgIC8qICBNYWpvcnMgMCAgIHRvIDMxICAgKi8KLSAgICAgMHhmZmZmZmZmZiwg IC8qICBNYWpvcnMgMzIgIHRvIDYzICAgKi8KLSAgICAgMHhmZmZmZmZmZiwgIC8qICBNYWpvcnMg NjQgIHRvIDk1ICAgKi8KLSAgICAgMHhmZmZmZmZmZiwgIC8qICBNYWpvcnMgOTYgIHRvIDEyNyAg Ki8KLSAgICAgMHg3Y2ZmZmZmZiwgIC8qICBNYWpvcnMgMTI4IHRvIDE1OSAgKi8KLSAgICAgMHhm ZmZmZmZmZiwgIC8qICBNYWpvcnMgMTYwIHRvIDE5MSAgKi8KLSAgICAgMHgzZjBmZmZmZiwgIC8q ICBNYWpvcnMgMTkyIHRvIDIyMyAgKi8KLSAgICAgMHhmZmZmMDA3Zn0gIC8qICBNYWpvcnMgMjI0 IHRvIDI1NSAgKi8KKyB7IFsgIDAgLi4uICAgN10gPSBERVZGU19NQUpPUl9TVEFUSUMsCisgICBb ICA4IC4uLiAgIDhdID0gREVWRlNfTUFKT1JfRlJFRSwKKyAgIFsgIDkgLi4uIDE1MV0gPSBERVZG U19NQUpPUl9TVEFUSUMsCisgICBbMTUyIC4uLiAxNTNdID0gREVWRlNfTUFKT1JfRlJFRSwKKyAg IFsxNTQgLi4uIDE1OF0gPSBERVZGU19NQUpPUl9TVEFUSUMsCisgICBbMTU5IC4uLiAxNTldID0g REVWRlNfTUFKT1JfRlJFRSwKKyAgIFsxNjAgLi4uIDIxMV0gPSBERVZGU19NQUpPUl9TVEFUSUMs CisgICBbMjEyIC4uLiAyMTVdID0gREVWRlNfTUFKT1JfRlJFRSwKKyAgIFsyMTYgLi4uIDIyMV0g PSBERVZGU19NQUpPUl9TVEFUSUMsCisgICBbMjIyIC4uLiAyMjNdID0gREVWRlNfTUFKT1JfRlJF RSwKKyAgIFsyMjQgLi4uIDIzMF0gPSBERVZGU19NQUpPUl9TVEFUSUMsCisgICBbMjMxIC4uLiAy MzldID0gREVWRlNfTUFKT1JfRlJFRSwKKyAgIFsyNDAgLi4uIDI1NV0gPSBERVZGU19NQUpPUl9T VEFUSUMKKyB9CiB9OwogCi0KIC8qKgogICoJZGV2ZnNfYWxsb2NfbWFqb3IgLSBBbGxvY2F0ZSBh IG1ham9yIG51bWJlci4KICAqCUB0eXBlOiBUaGUgdHlwZSBvZiB0aGUgbWFqb3IgKERFVkZTX1NQ RUNJQUxfQ0hSIG9yIERFVkZTX1NQRUNJQUxfQkxLKQpAQCAtMjM3LDE0ICsyNTYsNjMgQEAKIAog ICAgIGxpc3QgPSAodHlwZSA9PSBERVZGU19TUEVDSUFMX0NIUikgPyAmY2hhcl9tYWpvcl9saXN0 IDogJmJsb2NrX21ham9yX2xpc3Q7CiAgICAgc3Bpbl9sb2NrICgmbGlzdC0+bG9jayk7Ci0gICAg bWFqb3IgPSBmaW5kX2ZpcnN0X3plcm9fYml0IChsaXN0LT5iaXRzLCAyNTYpOwotICAgIGlmICht YWpvciA8IDI1NikgX19zZXRfYml0IChtYWpvciwgbGlzdC0+Yml0cyk7Ci0gICAgZWxzZSBtYWpv ciA9IC0xOworICAgIGZvciAobWFqb3I9MDsgbWFqb3I8MjU2OyBtYWpvcisrKQorCSAgICBpZiAo bGlzdC0+c3RhdGVbbWFqb3JdID09IERFVkZTX01BSk9SX0ZSRUUpCisJCSAgICBicmVhazsKKyAg ICBpZiAobWFqb3IgPCAyNTYpIAorCSAgICBsaXN0LT5zdGF0ZVttYWpvcl0gPSBERVZGU19NQUpP Ul9BTExPQ0VEOworICAgIGVsc2UgCisJICAgIG1ham9yID0gLTE7CiAgICAgc3Bpbl91bmxvY2sg KCZsaXN0LT5sb2NrKTsKICAgICByZXR1cm4gbWFqb3I7CiB9ICAgLyogIEVuZCBGdW5jdGlvbiBk ZXZmc19hbGxvY19tYWpvciAgKi8KIEVYUE9SVF9TWU1CT0woZGV2ZnNfYWxsb2NfbWFqb3IpOwog CisvKioKKyAqCV9fZGV2ZnNfcmVnaXN0ZXJfbWFqb3IgLSBJbnRlcm5hbHkgY2FsbGVkIGJ5IGRl dmZzX3JlZ2lzdGVyXypkZXYKKyAqCUB0eXBlOiBUaGUgdHlwZSBvZiB0aGUgbWFqb3IgKERFVkZT X1NQRUNJQUxfQ0hSIG9yIERFVkZTX1NQRUNJQUxfQkxLKQorICogICAgICAgQG1ham9yOiBUaGUg bWFqb3IgbnVtYmVyIG9yIDAgZm9yIGF1dG9tYXRpYyBzZWxlY3Rpb24KKworICoJUmV0dXJucyB0 aGUgYWxsb2NhdGVkIG1ham9yLCBlbHNlIC0xIGlmIG5vbmUgYXJlIGF2YWlsYWJsZS4KKyAqCVRo aXMgcm91dGluZSBpcyB0aHJlYWQgc2FmZSBhbmQgZG9lcyBub3QgYmxvY2suCisgKi8KKworaW50 IF9fZGV2ZnNfcmVnaXN0ZXJfbWFqb3IgKGludCBtYWpvciwgY2hhciB0eXBlKQoreworICAgIHN0 cnVjdCBtYWpvcl9saXN0ICpsaXN0OworCisgICAgbGlzdCA9ICh0eXBlID09IERFVkZTX1NQRUNJ QUxfQ0hSKSA/ICZjaGFyX21ham9yX2xpc3QgOiAmYmxvY2tfbWFqb3JfbGlzdDsKKyAgICBzcGlu X2xvY2sgKCZsaXN0LT5sb2NrKTsKKyAgICBzd2l0Y2ggKG1ham9yKSB7CisgICAgY2FzZSAwOgor CSAgICBmb3IgKG1ham9yPTA7IChtYWpvciA8IDI1NikgJiYgKGxpc3QtPnN0YXRlW21ham9yXSAh PSBERVZGU19NQUpPUl9GUkVFKTsgbWFqb3IrKyk7CisJICAgIGlmIChtYWpvciA8IDI1NikgCisJ CSAgICBsaXN0LT5zdGF0ZVttYWpvcl0gPSBERVZGU19NQUpPUl9SRUdJU1RFUkVEOworCSAgICBl bHNlIAorCQkgICAgbWFqb3IgPSAtMTsKKwkgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKwkgICAg c3dpdGNoIChsaXN0LT5zdGF0ZVttYWpvcl0pIHsKKwkgICAgY2FzZSBERVZGU19NQUpPUl9SRUdJ U1RFUkVEOgorCQkgICAgbWFqb3IgPSAtMTsKKwkJICAgIGJyZWFrOworCSAgICBjYXNlIERFVkZT X01BSk9SX0ZSRUU6CisJCSAgICBsaXN0LT5zdGF0ZVttYWpvcl0gPSBERVZGU19NQUpPUl9SRUdJ U1RFUkVEOworCQkgICAgYnJlYWs7CisJICAgIGNhc2UgREVWRlNfTUFKT1JfU1RBVElDOgorCSAg ICBjYXNlIERFVkZTX01BSk9SX0FMTE9DRUQ6CisJCSAgICAvKiBmaW5lIHdpdGggdGhpcyBvbmUg Ki8KKwkJICAgIGJyZWFrOworCSAgICBkZWZhdWx0OgorCQkgICAgLyogaW5jb25zaXN0ZW5jeSBp biBsaXN0LT5zdGF0ZSBhcnJheSAqLworCQkgICAgc3Bpbl91bmxvY2soJmxpc3QtPmxvY2spOwor CQkgICAgQlVHKCk7CisJICAgIH0KKyAgICB9CisgICAgc3Bpbl91bmxvY2sgKCZsaXN0LT5sb2Nr KTsKKyAgICByZXR1cm4gbWFqb3I7Cit9ICAgLyogIEVuZCBGdW5jdGlvbiBfX2RldmZzX3JlZ2lz dGVyX21ham9yICAqLworCiAKIC8qKgogICoJZGV2ZnNfZGVhbGxvY19tYWpvciAtIERlYWxsb2Nh dGUgYSBtYWpvciBudW1iZXIuCkBAIC0yNTUsMjAgKzMyMyw1NSBAQAogCiB2b2lkIGRldmZzX2Rl YWxsb2NfbWFqb3IgKGNoYXIgdHlwZSwgaW50IG1ham9yKQogewotICAgIGludCB3YXNfc2V0Owog ICAgIHN0cnVjdCBtYWpvcl9saXN0ICpsaXN0OwogCi0gICAgaWYgKG1ham9yIDwgMCkgcmV0dXJu OworICAgIGlmIChtYWpvciA8IDApIAorCSAgICByZXR1cm47CiAgICAgbGlzdCA9ICh0eXBlID09 IERFVkZTX1NQRUNJQUxfQ0hSKSA/ICZjaGFyX21ham9yX2xpc3QgOiAmYmxvY2tfbWFqb3JfbGlz dDsKICAgICBzcGluX2xvY2sgKCZsaXN0LT5sb2NrKTsKLSAgICB3YXNfc2V0ID0gX190ZXN0X2Fu ZF9jbGVhcl9iaXQgKG1ham9yLCBsaXN0LT5iaXRzKTsKKyAgICBpZiAobGlzdC0+c3RhdGVbbWFq b3JdICE9IERFVkZTX01BSk9SX0FMTE9DRUQpCisJcHJpbnRrIChLRVJOX0VSUiBfX0ZVTkNUSU9O X18gIigpOiBtYWpvciAlZCB3YXMgbm90IGFsbG9jZWQuIFN0YXRlIHdhczogJWRcbiIsCisJCW1h am9yLCBsaXN0LT5zdGF0ZVttYWpvcl0pOworICAgIGxpc3QtPnN0YXRlW21ham9yXSA9IERFVkZT X01BSk9SX0ZSRUU7CiAgICAgc3Bpbl91bmxvY2sgKCZsaXN0LT5sb2NrKTsKLSAgICBpZiAoIXdh c19zZXQpCi0JcHJpbnRrIChLRVJOX0VSUiBfX0ZVTkNUSU9OX18gIigpOiBtYWpvciAlZCB3YXMg YWxyZWFkeSBmcmVlXG4iLAotCQltYWpvcik7CiB9ICAgLyogIEVuZCBGdW5jdGlvbiBkZXZmc19k ZWFsbG9jX21ham9yICAqLwogRVhQT1JUX1NZTUJPTChkZXZmc19kZWFsbG9jX21ham9yKTsKIAor LyoqCisgKglfX2RldmZzX3VucmVnaXN0ZXJfbWFqb3IgLSBJbnRlcm5hbHkgY2FsbGVkIGZyb20g ZGV2ZnNfdW5yZWdpc3Rlcl8qZGV2CisgKglAdHlwZTogVGhlIHR5cGUgb2YgdGhlIG1ham9yIChE RVZGU19TUEVDSUFMX0NIUiBvciBERVZGU19TUEVDSUFMX0JMSykKKyAqCUBtYWpvcjogVGhlIG1h am9yIG51bWJlci4KKyAqCVRoaXMgcm91dGluZSBpcyB0aHJlYWQgc2FmZSBhbmQgZG9lcyBub3Qg YmxvY2suCisgKi8KKwordm9pZCBfX2RldmZzX3VucmVnaXN0ZXJfbWFqb3IgKGludCBtYWpvciwg Y2hhciB0eXBlKQoreworICAgIHN0cnVjdCBtYWpvcl9saXN0ICpsaXN0OworCisgICAgaWYgKG1h am9yIDwgMCkgCisJICAgIHJldHVybjsKKyAgICBsaXN0ID0gKHR5cGUgPT0gREVWRlNfU1BFQ0lB TF9DSFIpID8gJmNoYXJfbWFqb3JfbGlzdCA6ICZibG9ja19tYWpvcl9saXN0OworICAgIHNwaW5f bG9jayAoJmxpc3QtPmxvY2spOworICAgIHN3aXRjaCAobGlzdC0+c3RhdGVbbWFqb3JdKSB7Cisg ICAgY2FzZSBERVZGU19NQUpPUl9GUkVFOgorCSAgICBwcmludGsgKEtFUk5fRVJSIF9fRlVOQ1RJ T05fXyAiKCk6IG1ham9yICVkIHdhcyBmcmVlXG4iLAorCQkgICAgbWFqb3IpOworCSAgICBicmVh azsKKyAgICBjYXNlIERFVkZTX01BSk9SX0FMTE9DRUQ6CisgICAgY2FzZSBERVZGU19NQUpPUl9T VEFUSUM6CisJICAgIC8qIG1ham9yIGlzIHN0aWxsIGluIHVzZSAtPiBkbyBub3QgZnJlZSAqLwor CSAgICBicmVhazsKKyAgICBjYXNlIERFVkZTX01BSk9SX1JFR0lTVEVSRUQ6CisJICAgIGxpc3Qt PnN0YXRlW21ham9yXSA9IERFVkZTX01BSk9SX0ZSRUU7CisJICAgIGJyZWFrOworICAgIGRlZmF1 bHQ6CisJICAgIC8qIGluY29uc2lzdGVuY3kgaW4gbGlzdC0+c3RhdGUgYXJyYXkgKi8KKwkgICAg c3Bpbl91bmxvY2sgKCZsaXN0LT5sb2NrKTsKKwkgICAgQlVHKCk7CisgICAgfQorICAgIHNwaW5f dW5sb2NrICgmbGlzdC0+bG9jayk7Cit9ICAgLyogIEVuZCBGdW5jdGlvbiBkZXZmc191bnJlZ2lz dGVyX21ham9yICAqLworCiAKIHN0cnVjdCBtaW5vcl9saXN0CiB7CmRpZmYgLXJ1TiBsaW51eC0y LjQuMTctc2RtYW55L2luY2x1ZGUvbGludXgvZGV2ZnNfZnNfa2VybmVsLmggbGludXgtMi40LjE3 LXNkbWFueS1kZXZmc19maXh1cC9pbmNsdWRlL2xpbnV4L2RldmZzX2ZzX2tlcm5lbC5oCi0tLSBs aW51eC0yLjQuMTctc2RtYW55L2luY2x1ZGUvbGludXgvZGV2ZnNfZnNfa2VybmVsLmgJVGh1IERl YyAyNyAxOTo1MzowNyAyMDAxCisrKyBsaW51eC0yLjQuMTctc2RtYW55LWRldmZzX2ZpeHVwL2lu Y2x1ZGUvbGludXgvZGV2ZnNfZnNfa2VybmVsLmgJVHVlIE1hciAxMiAyMDo0ODo0OSAyMDAyCkBA IC0yMCw3ICsyMCw2IEBACiAgICAgICAgKGRldmZzX2dldF9tYWpfbWluKGRldmZzX2dldF9oYW5k bGVfZnJvbV9pbm9kZSgoaW5vZGUpKSxOVUxMLCZtKT09MCkgXAogICAgICAgKSA/IG0gOiBNSU5P UigoaW5vZGUpLT5yX2Rldik7IH0pCiAKLQogI2RlZmluZSBERVZGU19GTF9OT05FICAgICAgICAg ICAweDAwMCAvKiBUaGlzIGhlbHBzIHRvIG1ha2UgY29kZSBtb3JlIHJlYWRhYmxlCiAJCQkJICAg ICAgICovCiAjZGVmaW5lIERFVkZTX0ZMX0FVVE9fT1dORVIgICAgIDB4MDAxIC8qIFdoZW4gYSBj bG9zZWQgaW5vZGUgaXMgb3BlbmVkIHRoZQpAQCAtNDYsNiArNDUsMTAgQEAKIAogdHlwZWRlZiBz dHJ1Y3QgZGV2ZnNfZW50cnkgKiBkZXZmc19oYW5kbGVfdDsKIAorI2RlZmluZSBERVZGU19NQUpP Ul9GUkVFICAgICAgIDAKKyNkZWZpbmUgREVWRlNfTUFKT1JfU1RBVElDICAgICAxCisjZGVmaW5l IERFVkZTX01BSk9SX0FMTE9DRUQgICAgMgorI2RlZmluZSBERVZGU19NQUpPUl9SRUdJU1RFUkVE IDMKIAogI2lmZGVmIENPTkZJR19CTEtfREVWX0lOSVRSRAogIyAgZGVmaW5lIFJPT1RfREVWSUNF X05BTUUgKChyZWFsX3Jvb3RfZGV2ID09Uk9PVF9ERVYpID8gcm9vdF9kZXZpY2VfbmFtZTpOVUxM KQpAQCAtMTE1LDggKzExOCwxMSBAQAogCQkJCSAgIHVuc2lnbmVkIGludCBmbGFncywgdW5zaWdu ZWQgaW50IG1ham9yLAogCQkJCSAgIHVuc2lnbmVkIGludCBtaW5vcl9zdGFydCwKIAkJCQkgICB1 bW9kZV90IG1vZGUsIHZvaWQgKm9wcywgdm9pZCAqaW5mbyk7CitleHRlcm4gdm9pZCBkZXZmc19p bml0X21ham9yX2xpc3RzICh2b2lkKTsKIGV4dGVybiBpbnQgZGV2ZnNfYWxsb2NfbWFqb3IgKGNo YXIgdHlwZSk7CiBleHRlcm4gdm9pZCBkZXZmc19kZWFsbG9jX21ham9yIChjaGFyIHR5cGUsIGlu dCBtYWpvcik7CitleHRlcm4gaW50IF9fZGV2ZnNfcmVnaXN0ZXJfbWFqb3IgKGludCBtYWpvciwg Y2hhciB0eXBlKTsKK2V4dGVybiB2b2lkIF9fZGV2ZnNfdW5yZWdpc3Rlcl9tYWpvciAoaW50IG1h am9yLCBjaGFyIHR5cGUpOwogZXh0ZXJuIGtkZXZfdCBkZXZmc19hbGxvY19kZXZudW0gKGNoYXIg dHlwZSk7CiBleHRlcm4gdm9pZCBkZXZmc19kZWFsbG9jX2Rldm51bSAoY2hhciB0eXBlLCBrZGV2 X3QgZGV2bnVtKTsKIGV4dGVybiBpbnQgZGV2ZnNfYWxsb2NfdW5pcXVlX251bWJlciAoc3RydWN0 IHVuaXF1ZV9udW1zcGFjZSAqc3BhY2UpOwo=

--0__=4EBBE111DFD063818f9e8a93df938690918c4EBBE111DFD06381--

- 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/