Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Thu, 21 Feb 2002 08:49:18 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Thu, 21 Feb 2002 08:49:10 -0500 Received: from d12lmsgate-2.de.ibm.com ([195.212.91.200]:40159 "EHLO d12lmsgate-2.de.ibm.com") by vger.kernel.org with ESMTP id ; Thu, 21 Feb 2002 08:49:00 -0500 Importance: Normal Subject: Re: [PATCH] linux-2.417 devfs 64bit portablility issue To: Richard Gooch Cc: linux-kernel@vger.kernel.org X-Mailer: Lotus Notes Release 5.0.4a July 24, 2000 Message-ID: From: "Carsten Otte" Date: Thu, 21 Feb 2002 15:48:34 +0100 X-MIMETrack: Serialize by Router on D12ML033/12/M/IBM(Release 5.0.8 |June 18, 2001) at 21/02/2002 14:50:32 MIME-Version: 1.0 Content-type: multipart/mixed; Boundary="0__=C1256B6600556C318f9e8a93df938690918cC1256B6600556C31" Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org --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/