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

Carsten Otte (COTTE@de.ibm.com)
Thu, 21 Feb 2002 15:48:34 +0100


--0__=C1256B6600556C318f9e8a93df938690918cC1256B6600556C31
Content-type: text/plain; charset=us-ascii

Richard Gooch writes:
>Except that devfs_register_???dev() (which are in fact minor
>variations on the register_???dev() calls) *do not* avoid assigned
>majors. That is why I wrote devfs_alloc_major() in the first place.
To me, the disadvantage of this soloution is that if a device driver has
called devfs_register_blkdev with major 0 (automatic allocation) and
another device driver calls devfs_alloc_major, the same major number may
be assigned twice. Same situation is vice versa (major has been allocated,
devfs_register_blkdev with major 0 gives the same major to a different
driver).

>And while I do think that register_???dev() should in fact do just
>what devfs_alloc_major() does, that's not a battle I care to fight. By
>writing devfs_alloc_major(), this functionality is optional, and I can
>avoid a whole pile of stupid flaming.
I reworked my initial patch in order to
- avoid setting up the array on initialisation (since you dislike this)
- have a portable soloution that works on any arch
- avoid assigning staticaly allocated majors with any devfs_* functions
- avoid assigning the same major twice with devfs_* functions

Please do have a look at this patch (sorry, attached again) and let me
know what you think of including this solution.

w/kind regards
Carsten Otte
(See attached file: linux-2.4.17-devfs_fixup.diff)
--0__=C1256B6600556C318f9e8a93df938690918cC1256B6600556C31
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

ZGlmZiAtcnVOIGxpbnV4LTIuMy1TRE1BTlkvZnMvZGV2ZnMvYmFzZS5jIGxpbnV4LTIuMy1TRE1B
TlktREVWRlNGSVgvZnMvZGV2ZnMvYmFzZS5jCi0tLSBsaW51eC0yLjMtU0RNQU5ZL2ZzL2RldmZz
L2Jhc2UuYwlXZWQgRmViIDEzIDEzOjI1OjUwIDIwMDIKKysrIGxpbnV4LTIuMy1TRE1BTlktREVW
RlNGSVgvZnMvZGV2ZnMvYmFzZS5jCVRodSBGZWIgMjEgMTE6MTI6MjYgMjAwMgpAQCAtMjIwMSwx
MiArMjIwMSwyMSBAQAogCQkJICAgc3RydWN0IGZpbGVfb3BlcmF0aW9ucyAqZm9wcykKIHsKICAg
ICB1bnNpZ25lZCBpbnQgbmV3X21ham9yOwotICAgIGlmIChib290X29wdGlvbnMgJiBPUFRJT05f
T05MWSkgcmV0dXJuIDA7Ci0gICAgaWYgKG1ham9yKQotCW5ld19tYWpvciA9IG1ham9yOwotICAg
IGVsc2UKLQluZXdfbWFqb3IgPSBkZXZmc19hbGxvY19tYWpvciAoREVWRlNfU1BFQ0lBTF9DSFIp
OwotICAgIHJldHVybiByZWdpc3Rlcl9jaHJkZXYgKG5ld19tYWpvciwgbmFtZSwgZm9wcyk7Cisg
ICAgaW50IHJlc3VsdDsKKyAgICBpZiAoYm9vdF9vcHRpb25zICYgT1BUSU9OX09OTFkpIAorCSAg
ICByZXR1cm4gMDsKKyAgICBuZXdfbWFqb3IgPSBfX2RldmZzX3JlZ2lzdGVyX21ham9yIChtYWpv
ciwgREVWRlNfU1BFQ0lBTF9DSFIpOworICAgIGlmIChuZXdfbWFqb3IgPCAwKSAKKwkgICAgcmV0
dXJuIG5ld19tYWpvcjsKKyAgICByZXN1bHQ9cmVnaXN0ZXJfY2hyZGV2IChuZXdfbWFqb3IsIG5h
bWUsIGZvcHMpOworICAgIGlmIChyZXN1bHQgPCAwKSB7CisJICAgIF9fZGV2ZnNfdW5yZWdpc3Rl
cl9tYWpvciAobWFqb3IsIERFVkZTX1NQRUNJQUxfQ0hSKTsKKwkgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICB9CisgICAgaWYgKG1ham9yKSAKKwkgICAgcmV0dXJuIDA7CisgICAgZWxzZSAKKwkgICAg
cmV0dXJuIG5ld19tYWpvcjsKIH0gICAvKiAgRW5kIEZ1bmN0aW9uIGRldmZzX3JlZ2lzdGVyX2No
cmRldiAgKi8KIAogCkBAIC0yMjI1LDEyICsyMjM0LDIxIEBACiAJCQkgICBzdHJ1Y3QgYmxvY2tf
ZGV2aWNlX29wZXJhdGlvbnMgKmJkb3BzKQogewogICAgIHVuc2lnbmVkIGludCBuZXdfbWFqb3I7
Ci0gICAgaWYgKGJvb3Rfb3B0aW9ucyAmIE9QVElPTl9PTkxZKSByZXR1cm4gMDsKLSAgICBpZiAo
bWFqb3IpCi0JbmV3X21ham9yID0gbWFqb3I7Ci0gICAgZWxzZQotCW5ld19tYWpvciA9IGRldmZz
X2FsbG9jX21ham9yIChERVZGU19TUEVDSUFMX0JMSyk7Ci0gICAgcmV0dXJuIHJlZ2lzdGVyX2Js
a2RldiAobmV3X21ham9yLCBuYW1lLCBiZG9wcyk7CisgICAgaW50IHJlc3VsdDsKKyAgICBpZiAo
Ym9vdF9vcHRpb25zICYgT1BUSU9OX09OTFkpIAorCSAgICByZXR1cm4gMDsKKyAgICBuZXdfbWFq
b3IgPSBfX2RldmZzX3JlZ2lzdGVyX21ham9yIChtYWpvciwgREVWRlNfU1BFQ0lBTF9CTEspOwor
ICAgIGlmIChuZXdfbWFqb3IgPCAwKQorCSAgICByZXR1cm4gbmV3X21ham9yOworICAgIHJlc3Vs
dD1yZWdpc3Rlcl9ibGtkZXYgKG5ld19tYWpvciwgbmFtZSwgYmRvcHMpOworICAgIGlmIChyZXN1
bHQgPCAwKSB7CisJICAgIF9fZGV2ZnNfdW5yZWdpc3Rlcl9tYWpvciAobWFqb3IsIERFVkZTX1NQ
RUNJQUxfQkxLKTsKKwkgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisgICAgaWYgKG1ham9yKSAK
KwkgICAgcmV0dXJuIDA7CisgICAgZWxzZSAKKwkgICAgcmV0dXJuIG5ld19tYWpvcjsKIH0gICAv
KiAgRW5kIEZ1bmN0aW9uIGRldmZzX3JlZ2lzdGVyX2Jsa2RldiAgKi8KIAogCkBAIC0yMjQ2LDgg
KzIyNjQsOSBAQAogCiBpbnQgZGV2ZnNfdW5yZWdpc3Rlcl9jaHJkZXYgKHVuc2lnbmVkIGludCBt
YWpvciwgY29uc3QgY2hhciAqbmFtZSkKIHsKLSAgICBpZiAoYm9vdF9vcHRpb25zICYgT1BUSU9O
X09OTFkpIHJldHVybiAwOwotICAgIGRldmZzX2RlYWxsb2NfbWFqb3IgKG1ham9yLCBERVZGU19T
UEVDSUFMX0NIUik7CisgICAgaWYgKGJvb3Rfb3B0aW9ucyAmIE9QVElPTl9PTkxZKSAKKwkgICAg
cmV0dXJuIDA7CisgICAgX19kZXZmc191bnJlZ2lzdGVyX21ham9yIChtYWpvciwgREVWRlNfU1BF
Q0lBTF9DSFIpOwogICAgIHJldHVybiB1bnJlZ2lzdGVyX2NocmRldiAobWFqb3IsIG5hbWUpOwog
fSAgIC8qICBFbmQgRnVuY3Rpb24gZGV2ZnNfdW5yZWdpc3Rlcl9jaHJkZXYgICovCiAKQEAgLTIy
NjQsOCArMjI4Myw5IEBACiAKIGludCBkZXZmc191bnJlZ2lzdGVyX2Jsa2RldiAodW5zaWduZWQg
aW50IG1ham9yLCBjb25zdCBjaGFyICpuYW1lKQogewotICAgIGlmIChib290X29wdGlvbnMgJiBP
UFRJT05fT05MWSkgcmV0dXJuIDA7Ci0gICAgZGV2ZnNfZGVhbGxvY19tYWpvciAobWFqb3IsIERF
VkZTX1NQRUNJQUxfQkxLKTsKKyAgICBpZiAoYm9vdF9vcHRpb25zICYgT1BUSU9OX09OTFkpIAor
CSAgICByZXR1cm4gMDsKKyAgICBfX2RldmZzX3VucmVnaXN0ZXJfbWFqb3IgKG1ham9yLCBERVZG
U19TUEVDSUFMX0JMSyk7CiAgICAgcmV0dXJuIHVucmVnaXN0ZXJfYmxrZGV2IChtYWpvciwgbmFt
ZSk7CiB9ICAgLyogIEVuZCBGdW5jdGlvbiBkZXZmc191bnJlZ2lzdGVyX2Jsa2RldiAgKi8KIApk
aWZmIC1ydU4gbGludXgtMi4zLVNETUFOWS9mcy9kZXZmcy91dGlsLmMgbGludXgtMi4zLVNETUFO
WS1ERVZGU0ZJWC9mcy9kZXZmcy91dGlsLmMKLS0tIGxpbnV4LTIuMy1TRE1BTlkvZnMvZGV2ZnMv
dXRpbC5jCUZyaSBPY3QgMjYgMjA6MDA6NTIgMjAwMQorKysgbGludXgtMi4zLVNETUFOWS1ERVZG
U0ZJWC9mcy9kZXZmcy91dGlsLmMJV2VkIEZlYiAyMCAxOToxMjoxOCAyMDAyCkBAIC0xODUsNDMg
KzE4NSw2MiBAQAogCiBzdHJ1Y3QgbWFqb3JfbGlzdAogewotICAgIHNwaW5sb2NrX3QgbG9jazsK
LSAgICBfX3UzMiBiaXRzWzhdOworCXNwaW5sb2NrX3QgbG9jazsKKwl1bnNpZ25lZCBjaGFyIHN0
YXRlWzI1Nl07CiB9OwogCisKKwogLyogIEJsb2NrIG1ham9ycyBhbHJlYWR5IGFzc2lnbmVkOgog
ICAgIDAtMywgNy05LCAxMS02MywgNjUtOTksIDEwMS0xMTMsIDEyMC0xMjcsIDE5OSwgMjAxLCAy
NDAtMjU1CiAgICAgVG90YWwgZnJlZTogMTIyCiAqLworCiBzdGF0aWMgc3RydWN0IG1ham9yX2xp
c3QgYmxvY2tfbWFqb3JfbGlzdCA9Ci17U1BJTl9MT0NLX1VOTE9DS0VELAotICAgIHsweGZmZmZm
YjhmLCAgLyogIE1ham9ycyAwICAgdG8gMzEgICAqLwotICAgICAweGZmZmZmZmZmLCAgLyogIE1h
am9ycyAzMiAgdG8gNjMgICAqLwotICAgICAweGZmZmZmZmZlLCAgLyogIE1ham9ycyA2NCAgdG8g
OTUgICAqLwotICAgICAweGZmMDNmZmVmLCAgLyogIE1ham9ycyA5NiAgdG8gMTI3ICAqLwotICAg
ICAweDAwMDAwMDAwLCAgLyogIE1ham9ycyAxMjggdG8gMTU5ICAqLwotICAgICAweDAwMDAwMDAw
LCAgLyogIE1ham9ycyAxNjAgdG8gMTkxICAqLwotICAgICAweDAwMDAwMjgwLCAgLyogIE1ham9y
cyAxOTIgdG8gMjIzICAqLwotICAgICAweGZmZmYwMDAwfSAgLyogIE1ham9ycyAyMjQgdG8gMjU1
ICAqLwore1NQSU5fTE9DS19VTkxPQ0tFRCwgCisgeyBbICAwIC4uLiAgIDNdID0gREVWRlNfTUFK
T1JfU1RBVElDLAorICAgWyAgNCAuLi4gICA2XSA9IERFVkZTX01BSk9SX0ZSRUUsCisgICBbICA3
IC4uLiAgIDldID0gREVWRlNfTUFKT1JfU1RBVElDLAorICAgWyAxMCAuLi4gIDEwXSA9IERFVkZT
X01BSk9SX0ZSRUUsCisgICBbIDExIC4uLiAgNjNdID0gREVWRlNfTUFKT1JfU1RBVElDLAorICAg
WyA2NCAuLi4gIDY0XSA9IERFVkZTX01BSk9SX0ZSRUUsCisgICBbIDY1IC4uLiAgOTldID0gREVW
RlNfTUFKT1JfU1RBVElDLAorICAgWzEwMCAuLi4gMTAwXSA9IERFVkZTX01BSk9SX0ZSRUUsCisg
ICBbMTAxIC4uLiAxMTNdID0gREVWRlNfTUFKT1JfU1RBVElDLAorICAgWzExNCAuLi4gMTE5XSA9
IERFVkZTX01BSk9SX0ZSRUUsCisgICBbMTIwIC4uLiAxMjddID0gREVWRlNfTUFKT1JfU1RBVElD
LAorICAgWzEyOCAuLi4gMTk4XSA9IERFVkZTX01BSk9SX0ZSRUUsCisgICBbMTk5IC4uLiAxOTld
ID0gREVWRlNfTUFKT1JfU1RBVElDLAorICAgWzIwMCAuLi4gMjAwXSA9IERFVkZTX01BSk9SX0ZS
RUUsCisgICBbMjAxIC4uLiAyMDFdID0gREVWRlNfTUFKT1JfU1RBVElDLAorICAgWzIwMiAuLi4g
MjM5XSA9IERFVkZTX01BSk9SX0ZSRUUsCisgICBbMjQwIC4uLiAyNTVdID0gREVWRlNfTUFKT1Jf
U1RBVElDCisgfQogfTsKIAogLyogIENoYXIgbWFqb3JzIGFscmVhZHkgYXNzaWduZWQ6CiAgICAg
MC03LCA5LTE1MSwgMTU0LTE1OCwgMTYwLTIxMSwgMjE2LTIyMSwgMjI0LTIzMCwgMjQwLTI1NQog
ICAgIFRvdGFsIGZyZWU6IDE5CiAqLworCiBzdGF0aWMgc3RydWN0IG1ham9yX2xpc3QgY2hhcl9t
YWpvcl9saXN0ID0KIHtTUElOX0xPQ0tfVU5MT0NLRUQsCi0gICAgezB4ZmZmZmZlZmYsICAvKiAg
TWFqb3JzIDAgICB0byAzMSAgICovCi0gICAgIDB4ZmZmZmZmZmYsICAvKiAgTWFqb3JzIDMyICB0
byA2MyAgICovCi0gICAgIDB4ZmZmZmZmZmYsICAvKiAgTWFqb3JzIDY0ICB0byA5NSAgICovCi0g
ICAgIDB4ZmZmZmZmZmYsICAvKiAgTWFqb3JzIDk2ICB0byAxMjcgICovCi0gICAgIDB4N2NmZmZm
ZmYsICAvKiAgTWFqb3JzIDEyOCB0byAxNTkgICovCi0gICAgIDB4ZmZmZmZmZmYsICAvKiAgTWFq
b3JzIDE2MCB0byAxOTEgICovCi0gICAgIDB4M2YwZmZmZmYsICAvKiAgTWFqb3JzIDE5MiB0byAy
MjMgICovCi0gICAgIDB4ZmZmZjAwN2Z9ICAvKiAgTWFqb3JzIDIyNCB0byAyNTUgICovCisgeyBb
ICAwIC4uLiAgIDddID0gREVWRlNfTUFKT1JfU1RBVElDLAorICAgWyAgOCAuLi4gICA4XSA9IERF
VkZTX01BSk9SX0ZSRUUsCisgICBbICA5IC4uLiAxNTFdID0gREVWRlNfTUFKT1JfU1RBVElDLAor
ICAgWzE1MiAuLi4gMTUzXSA9IERFVkZTX01BSk9SX0ZSRUUsCisgICBbMTU0IC4uLiAxNThdID0g
REVWRlNfTUFKT1JfU1RBVElDLAorICAgWzE1OSAuLi4gMTU5XSA9IERFVkZTX01BSk9SX0ZSRUUs
CisgICBbMTYwIC4uLiAyMTFdID0gREVWRlNfTUFKT1JfU1RBVElDLAorICAgWzIxMiAuLi4gMjE1
XSA9IERFVkZTX01BSk9SX0ZSRUUsCisgICBbMjE2IC4uLiAyMjFdID0gREVWRlNfTUFKT1JfU1RB
VElDLAorICAgWzIyMiAuLi4gMjIzXSA9IERFVkZTX01BSk9SX0ZSRUUsCisgICBbMjI0IC4uLiAy
MzBdID0gREVWRlNfTUFKT1JfU1RBVElDLAorICAgWzIzMSAuLi4gMjM5XSA9IERFVkZTX01BSk9S
X0ZSRUUsCisgICBbMjQwIC4uLiAyNTVdID0gREVWRlNfTUFKT1JfU1RBVElDCisgfQogfTsKIAot
CiAvKioKICAqCWRldmZzX2FsbG9jX21ham9yIC0gQWxsb2NhdGUgYSBtYWpvciBudW1iZXIuCiAg
KglAdHlwZTogVGhlIHR5cGUgb2YgdGhlIG1ham9yIChERVZGU19TUEVDSUFMX0NIUiBvciBERVZG
U19TUEVDSUFMX0JMSykKQEAgLTIzNywxNCArMjU2LDYzIEBACiAKICAgICBsaXN0ID0gKHR5cGUg
PT0gREVWRlNfU1BFQ0lBTF9DSFIpID8gJmNoYXJfbWFqb3JfbGlzdCA6ICZibG9ja19tYWpvcl9s
aXN0OwogICAgIHNwaW5fbG9jayAoJmxpc3QtPmxvY2spOwotICAgIG1ham9yID0gZmluZF9maXJz
dF96ZXJvX2JpdCAobGlzdC0+Yml0cywgMjU2KTsKLSAgICBpZiAobWFqb3IgPCAyNTYpIF9fc2V0
X2JpdCAobWFqb3IsIGxpc3QtPmJpdHMpOwotICAgIGVsc2UgbWFqb3IgPSAtMTsKKyAgICBmb3Ig
KG1ham9yPTA7IG1ham9yPDI1NjsgbWFqb3IrKykKKwkgICAgaWYgKGxpc3QtPnN0YXRlW21ham9y
XSA9PSBERVZGU19NQUpPUl9GUkVFKQorCQkgICAgYnJlYWs7CisgICAgaWYgKG1ham9yIDwgMjU2
KSAKKwkgICAgbGlzdC0+c3RhdGVbbWFqb3JdID0gREVWRlNfTUFKT1JfQUxMT0NFRDsKKyAgICBl
bHNlIAorCSAgICBtYWpvciA9IC0xOwogICAgIHNwaW5fdW5sb2NrICgmbGlzdC0+bG9jayk7CiAg
ICAgcmV0dXJuIG1ham9yOwogfSAgIC8qICBFbmQgRnVuY3Rpb24gZGV2ZnNfYWxsb2NfbWFqb3Ig
ICovCiBFWFBPUlRfU1lNQk9MKGRldmZzX2FsbG9jX21ham9yKTsKIAorLyoqCisgKglfX2RldmZz
X3JlZ2lzdGVyX21ham9yIC0gSW50ZXJuYWx5IGNhbGxlZCBieSBkZXZmc19yZWdpc3Rlcl8qZGV2
CisgKglAdHlwZTogVGhlIHR5cGUgb2YgdGhlIG1ham9yIChERVZGU19TUEVDSUFMX0NIUiBvciBE
RVZGU19TUEVDSUFMX0JMSykKKyAqICAgICAgIEBtYWpvcjogVGhlIG1ham9yIG51bWJlciBvciAw
IGZvciBhdXRvbWF0aWMgc2VsZWN0aW9uCisKKyAqCVJldHVybnMgdGhlIGFsbG9jYXRlZCBtYWpv
ciwgZWxzZSAtMSBpZiBub25lIGFyZSBhdmFpbGFibGUuCisgKglUaGlzIHJvdXRpbmUgaXMgdGhy
ZWFkIHNhZmUgYW5kIGRvZXMgbm90IGJsb2NrLgorICovCisKK2ludCBfX2RldmZzX3JlZ2lzdGVy
X21ham9yIChpbnQgbWFqb3IsIGNoYXIgdHlwZSkKK3sKKyAgICBzdHJ1Y3QgbWFqb3JfbGlzdCAq
bGlzdDsKKworICAgIGxpc3QgPSAodHlwZSA9PSBERVZGU19TUEVDSUFMX0NIUikgPyAmY2hhcl9t
YWpvcl9saXN0IDogJmJsb2NrX21ham9yX2xpc3Q7CisgICAgc3Bpbl9sb2NrICgmbGlzdC0+bG9j
ayk7CisgICAgc3dpdGNoIChtYWpvcikgeworICAgIGNhc2UgMDoKKwkgICAgZm9yIChtYWpvcj0w
OyAobWFqb3IgPCAyNTYpICYmIChsaXN0LT5zdGF0ZVttYWpvcl0gIT0gREVWRlNfTUFKT1JfRlJF
RSk7IG1ham9yKyspOworCSAgICBpZiAobWFqb3IgPCAyNTYpIAorCQkgICAgbGlzdC0+c3RhdGVb
bWFqb3JdID0gREVWRlNfTUFKT1JfUkVHSVNURVJFRDsKKwkgICAgZWxzZSAKKwkJICAgIG1ham9y
ID0gLTE7CisJICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisJICAgIHN3aXRjaCAobGlzdC0+c3Rh
dGVbbWFqb3JdKSB7CisJICAgIGNhc2UgREVWRlNfTUFKT1JfUkVHSVNURVJFRDoKKwkJICAgIG1h
am9yID0gLTE7CisJCSAgICBicmVhazsKKwkgICAgY2FzZSBERVZGU19NQUpPUl9GUkVFOgorCQkg
ICAgbGlzdC0+c3RhdGVbbWFqb3JdID0gREVWRlNfTUFKT1JfUkVHSVNURVJFRDsKKwkJICAgIGJy
ZWFrOworCSAgICBjYXNlIERFVkZTX01BSk9SX1NUQVRJQzoKKwkgICAgY2FzZSBERVZGU19NQUpP
Ul9BTExPQ0VEOgorCQkgICAgLyogZmluZSB3aXRoIHRoaXMgb25lICovCisJCSAgICBicmVhazsK
KwkgICAgZGVmYXVsdDoKKwkJICAgIC8qIGluY29uc2lzdGVuY3kgaW4gbGlzdC0+c3RhdGUgYXJy
YXkgKi8KKwkJICAgIHNwaW5fdW5sb2NrKCZsaXN0LT5sb2NrKTsKKwkJICAgIEJVRygpOworCSAg
ICB9CisgICAgfQorICAgIHNwaW5fdW5sb2NrICgmbGlzdC0+bG9jayk7CisgICAgcmV0dXJuIG1h
am9yOworfSAgIC8qICBFbmQgRnVuY3Rpb24gX19kZXZmc19yZWdpc3Rlcl9tYWpvciAgKi8KKwog
CiAvKioKICAqCWRldmZzX2RlYWxsb2NfbWFqb3IgLSBEZWFsbG9jYXRlIGEgbWFqb3IgbnVtYmVy
LgpAQCAtMjU1LDIwICszMjMsNTUgQEAKIAogdm9pZCBkZXZmc19kZWFsbG9jX21ham9yIChjaGFy
IHR5cGUsIGludCBtYWpvcikKIHsKLSAgICBpbnQgd2FzX3NldDsKICAgICBzdHJ1Y3QgbWFqb3Jf
bGlzdCAqbGlzdDsKIAotICAgIGlmIChtYWpvciA8IDApIHJldHVybjsKKyAgICBpZiAobWFqb3Ig
PCAwKSAKKwkgICAgcmV0dXJuOwogICAgIGxpc3QgPSAodHlwZSA9PSBERVZGU19TUEVDSUFMX0NI
UikgPyAmY2hhcl9tYWpvcl9saXN0IDogJmJsb2NrX21ham9yX2xpc3Q7CiAgICAgc3Bpbl9sb2Nr
ICgmbGlzdC0+bG9jayk7Ci0gICAgd2FzX3NldCA9IF9fdGVzdF9hbmRfY2xlYXJfYml0IChtYWpv
ciwgbGlzdC0+Yml0cyk7CisgICAgaWYgKGxpc3QtPnN0YXRlW21ham9yXSAhPSBERVZGU19NQUpP
Ul9BTExPQ0VEKQorCXByaW50ayAoS0VSTl9FUlIgX19GVU5DVElPTl9fICIoKTogbWFqb3IgJWQg
d2FzIG5vdCBhbGxvY2VkLiBTdGF0ZSB3YXM6ICVkXG4iLAorCQltYWpvciwgbGlzdC0+c3RhdGVb
bWFqb3JdKTsKKyAgICBsaXN0LT5zdGF0ZVttYWpvcl0gPSBERVZGU19NQUpPUl9GUkVFOwogICAg
IHNwaW5fdW5sb2NrICgmbGlzdC0+bG9jayk7Ci0gICAgaWYgKCF3YXNfc2V0KQotCXByaW50ayAo
S0VSTl9FUlIgX19GVU5DVElPTl9fICIoKTogbWFqb3IgJWQgd2FzIGFscmVhZHkgZnJlZVxuIiwK
LQkJbWFqb3IpOwogfSAgIC8qICBFbmQgRnVuY3Rpb24gZGV2ZnNfZGVhbGxvY19tYWpvciAgKi8K
IEVYUE9SVF9TWU1CT0woZGV2ZnNfZGVhbGxvY19tYWpvcik7CiAKKy8qKgorICoJX19kZXZmc191
bnJlZ2lzdGVyX21ham9yIC0gSW50ZXJuYWx5IGNhbGxlZCBmcm9tIGRldmZzX3VucmVnaXN0ZXJf
KmRldgorICoJQHR5cGU6IFRoZSB0eXBlIG9mIHRoZSBtYWpvciAoREVWRlNfU1BFQ0lBTF9DSFIg
b3IgREVWRlNfU1BFQ0lBTF9CTEspCisgKglAbWFqb3I6IFRoZSBtYWpvciBudW1iZXIuCisgKglU
aGlzIHJvdXRpbmUgaXMgdGhyZWFkIHNhZmUgYW5kIGRvZXMgbm90IGJsb2NrLgorICovCisKK3Zv
aWQgX19kZXZmc191bnJlZ2lzdGVyX21ham9yIChjaGFyIHR5cGUsIGludCBtYWpvcikKK3sKKyAg
ICBzdHJ1Y3QgbWFqb3JfbGlzdCAqbGlzdDsKKworICAgIGlmIChtYWpvciA8IDApIAorCSAgICBy
ZXR1cm47CisgICAgbGlzdCA9ICh0eXBlID09IERFVkZTX1NQRUNJQUxfQ0hSKSA/ICZjaGFyX21h
am9yX2xpc3QgOiAmYmxvY2tfbWFqb3JfbGlzdDsKKyAgICBzcGluX2xvY2sgKCZsaXN0LT5sb2Nr
KTsKKyAgICBzd2l0Y2ggKGxpc3QtPnN0YXRlW21ham9yXSkgeworICAgIGNhc2UgREVWRlNfTUFK
T1JfRlJFRToKKwkgICAgcHJpbnRrIChLRVJOX0VSUiBfX0ZVTkNUSU9OX18gIigpOiBtYWpvciAl
ZCB3YXMgZnJlZVxuIiwKKwkJICAgIG1ham9yKTsKKwkgICAgYnJlYWs7CisgICAgY2FzZSBERVZG
U19NQUpPUl9BTExPQ0VEOgorICAgIGNhc2UgREVWRlNfTUFKT1JfU1RBVElDOgorCSAgICAvKiBt
YWpvciBpcyBzdGlsbCBpbiB1c2UgLT4gZG8gbm90IGZyZWUgKi8KKwkgICAgYnJlYWs7CisgICAg
Y2FzZSBERVZGU19NQUpPUl9SRUdJU1RFUkVEOgorCSAgICBsaXN0LT5zdGF0ZVttYWpvcl0gPSBE
RVZGU19NQUpPUl9GUkVFOworCSAgICBicmVhazsKKyAgICBkZWZhdWx0OgorCSAgICAvKiBpbmNv
bnNpc3RlbmN5IGluIGxpc3QtPnN0YXRlIGFycmF5ICovCisJICAgIHNwaW5fdW5sb2NrICgmbGlz
dC0+bG9jayk7CisJICAgIEJVRygpOworICAgIH0KKyAgICBzcGluX3VubG9jayAoJmxpc3QtPmxv
Y2spOworfSAgIC8qICBFbmQgRnVuY3Rpb24gZGV2ZnNfdW5yZWdpc3Rlcl9tYWpvciAgKi8KKwog
CiBzdHJ1Y3QgbWlub3JfbGlzdAogewpkaWZmIC1ydU4gbGludXgtMi4zLVNETUFOWS9pbmNsdWRl
L2xpbnV4L2RldmZzX2ZzX2tlcm5lbC5oIGxpbnV4LTIuMy1TRE1BTlktREVWRlNGSVgvaW5jbHVk
ZS9saW51eC9kZXZmc19mc19rZXJuZWwuaAotLS0gbGludXgtMi4zLVNETUFOWS9pbmNsdWRlL2xp
bnV4L2RldmZzX2ZzX2tlcm5lbC5oCVRodSBEZWMgMjcgMTk6NTM6MDcgMjAwMQorKysgbGludXgt
Mi4zLVNETUFOWS1ERVZGU0ZJWC9pbmNsdWRlL2xpbnV4L2RldmZzX2ZzX2tlcm5lbC5oCVdlZCBG
ZWIgMjAgMTg6NDE6MzkgMjAwMgpAQCAtMjAsNyArMjAsNiBAQAogICAgICAgIChkZXZmc19nZXRf
bWFqX21pbihkZXZmc19nZXRfaGFuZGxlX2Zyb21faW5vZGUoKGlub2RlKSksTlVMTCwmbSk9PTAp
IFwKICAgICAgICkgPyBtIDogTUlOT1IoKGlub2RlKS0+cl9kZXYpOyB9KQogCi0KICNkZWZpbmUg
REVWRlNfRkxfTk9ORSAgICAgICAgICAgMHgwMDAgLyogVGhpcyBoZWxwcyB0byBtYWtlIGNvZGUg
bW9yZSByZWFkYWJsZQogCQkJCSAgICAgICAqLwogI2RlZmluZSBERVZGU19GTF9BVVRPX09XTkVS
ICAgICAweDAwMSAvKiBXaGVuIGEgY2xvc2VkIGlub2RlIGlzIG9wZW5lZCB0aGUKQEAgLTQ2LDYg
KzQ1LDEwIEBACiAKIHR5cGVkZWYgc3RydWN0IGRldmZzX2VudHJ5ICogZGV2ZnNfaGFuZGxlX3Q7
CiAKKyNkZWZpbmUgREVWRlNfTUFKT1JfRlJFRSAgICAgICAwCisjZGVmaW5lIERFVkZTX01BSk9S
X1NUQVRJQyAgICAgMQorI2RlZmluZSBERVZGU19NQUpPUl9BTExPQ0VEICAgIDIKKyNkZWZpbmUg
REVWRlNfTUFKT1JfUkVHSVNURVJFRCAzCiAKICNpZmRlZiBDT05GSUdfQkxLX0RFVl9JTklUUkQK
ICMgIGRlZmluZSBST09UX0RFVklDRV9OQU1FICgocmVhbF9yb290X2RldiA9PVJPT1RfREVWKSA/
IHJvb3RfZGV2aWNlX25hbWU6TlVMTCkKQEAgLTExNSw4ICsxMTgsMTEgQEAKIAkJCQkgICB1bnNp
Z25lZCBpbnQgZmxhZ3MsIHVuc2lnbmVkIGludCBtYWpvciwKIAkJCQkgICB1bnNpZ25lZCBpbnQg
bWlub3Jfc3RhcnQsCiAJCQkJICAgdW1vZGVfdCBtb2RlLCB2b2lkICpvcHMsIHZvaWQgKmluZm8p
OworZXh0ZXJuIHZvaWQgZGV2ZnNfaW5pdF9tYWpvcl9saXN0cyAodm9pZCk7CiBleHRlcm4gaW50
IGRldmZzX2FsbG9jX21ham9yIChjaGFyIHR5cGUpOwogZXh0ZXJuIHZvaWQgZGV2ZnNfZGVhbGxv
Y19tYWpvciAoY2hhciB0eXBlLCBpbnQgbWFqb3IpOworZXh0ZXJuIGludCBfX2RldmZzX3JlZ2lz
dGVyX21ham9yIChpbnQgbWFqb3IsIGNoYXIgdHlwZSk7CitleHRlcm4gdm9pZCBfX2RldmZzX3Vu
cmVnaXN0ZXJfbWFqb3IgKGNoYXIgdHlwZSwgaW50IG1ham9yKTsKIGV4dGVybiBrZGV2X3QgZGV2
ZnNfYWxsb2NfZGV2bnVtIChjaGFyIHR5cGUpOwogZXh0ZXJuIHZvaWQgZGV2ZnNfZGVhbGxvY19k
ZXZudW0gKGNoYXIgdHlwZSwga2Rldl90IGRldm51bSk7CiBleHRlcm4gaW50IGRldmZzX2FsbG9j
X3VuaXF1ZV9udW1iZXIgKHN0cnVjdCB1bmlxdWVfbnVtc3BhY2UgKnNwYWNlKTsK

--0__=C1256B6600556C318f9e8a93df938690918cC1256B6600556C31--

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