From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v2] USB: core: devio: Restructured proc_ioctl for readability From: Tom Todd Message-Id: <20180812222653.3341-1-thomas.m.a.todd@gmail.com> Date: Sun, 12 Aug 2018 23:26:54 +0100 To: gregkh@linuxfoundation.org Cc: joe@perches.com, stern@rowland.harvard.edu, dan.carpenter@oracle.com, arvind.yadav.cs@gmail.com, thomas.m.a.todd@gmail.com, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org List-ID: T24sIFN1biwgMTIgQXVnIDIwMTggMTE6MzQ6NTkgLTA3MDAgSm9lIFBlcmNoZXMgd3JvdGU6Cj5P biBTdW4sIDIwMTgtMDgtMTIgYXQgMTk6MDYgKzAxMDAsIFRvbSBUb2RkIHdyb3RlOgo+PiBGaXhl ZCBhIGNvZGUgc3R5bGluZyBpc3N1ZQo+d2hpbGUgaXQncyBPSyB0byBmaXggc3R5bGUgb25seSBp c3N1ZXMsIGl0J3MgbXVjaCBiZXR0ZXIKPnRvIHJlb3JnYW5pemUgdGhlIGNvZGUgZm9yIHJlYWRl ciBjbGFyaXR5LgoKT2ssIHRoYW5rIHlvdSwgSSd2ZSB0YWtlbiB5b3VyIHN1Z2dlc3Rpb25zIGFu ZCBjcmVhdGVkIHRoZSBhIG5ldyB2ZXJzaW9uCgpSZXN0cnVjdHVyZWQgbWV0aG9kIHByb2NfaW9j dGwgZm9yIHJlYWRhYmlsaXR5IGFuZCBmaXhlZCBjb2RlIHN0eWxlCmVycm9ycy4KClNpZ25lZC1v ZmYtYnk6IFRvbSBUb2RkIDx0aG9tYXMubS5hLnRvZGRAZ21haWwuY29tPgotLS0KIGRyaXZlcnMv dXNiL2NvcmUvZGV2aW8uYyB8IDY3ICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzNyBpbnNlcnRpb25zKCspLCAzMCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9jb3JlL2RldmlvLmMgYi9kcml2ZXJzL3VzYi9jb3Jl L2RldmlvLmMKaW5kZXggNDc2ZGNjNWYyZGEzLi43NDBlNjBlMDg2ZTIgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvdXNiL2NvcmUvZGV2aW8uYworKysgYi9kcml2ZXJzL3VzYi9jb3JlL2RldmlvLmMKQEAg LTIxMTcsNDYgKzIxMTcsNTIgQEAgc3RhdGljIGludCBwcm9jX2lvY3RsKHN0cnVjdCB1c2JfZGV2 X3N0YXRlICpwcywgc3RydWN0IHVzYmRldmZzX2lvY3RsICpjdGwpCiAJLyogYWxsb2MgYnVmZmVy ICovCiAJc2l6ZSA9IF9JT0NfU0laRShjdGwtPmlvY3RsX2NvZGUpOwogCWlmIChzaXplID4gMCkg ewotCQlidWYgPSBrbWFsbG9jKHNpemUsIEdGUF9LRVJORUwpOwotCQlpZiAoYnVmID09IE5VTEwp Ci0JCQlyZXR1cm4gLUVOT01FTTsKLQkJaWYgKChfSU9DX0RJUihjdGwtPmlvY3RsX2NvZGUpICYg X0lPQ19XUklURSkpIHsKLQkJCWlmIChjb3B5X2Zyb21fdXNlcihidWYsIGN0bC0+ZGF0YSwgc2l6 ZSkpIHsKLQkJCQlrZnJlZShidWYpOworCQlpZiAoX0lPQ19ESVIoY3RsLT5pb2N0bF9jb2RlKSAm IF9JT0NfV1JJVEUpIHsKKwkJCWJ1ZiA9IG1lbWR1cF91c2VyKGN0bC0+ZGF0YSwgc2l6ZSk7CisJ CQlpZiAoIWJ1ZikKIAkJCQlyZXR1cm4gLUVGQVVMVDsKLQkJCX0KIAkJfSBlbHNlIHsKLQkJCW1l bXNldChidWYsIDAsIHNpemUpOworCQkJYnVmID0ga21hbGxvYyhzaXplLCBHRlBfS0VSTkVMKTsK KwkJCWlmICghYnVmKQorCQkJCXJldHVybiAtRU5PTUVNOwogCQl9CiAJfQogCiAJaWYgKCFjb25u ZWN0ZWQocHMpKSB7Ci0JCWtmcmVlKGJ1Zik7Ci0JCXJldHVybiAtRU5PREVWOworCQlyZXR2YWwg PSAtRU5PREVWOworCQlnb3RvIGV4aXQ7CiAJfQogCi0JaWYgKHBzLT5kZXYtPnN0YXRlICE9IFVT Ql9TVEFURV9DT05GSUdVUkVEKQorCWlmIChwcy0+ZGV2LT5zdGF0ZSAhPSBVU0JfU1RBVEVfQ09O RklHVVJFRCkgewogCQlyZXR2YWwgPSAtRUhPU1RVTlJFQUNIOwotCWVsc2UgaWYgKCEoaW50ZiA9 IHVzYl9pZm51bV90b19pZihwcy0+ZGV2LCBjdGwtPmlmbm8pKSkKKwkJZ290byBleGl0OworCX0K KworCWludGYgPSB1c2JfaWZudW1fdG9faWYocHMtPmRldiwgY3RsLT5pZm5vKTsKKwlpZiAoIWlu dGYpIHsKIAkJcmV0dmFsID0gLUVJTlZBTDsKLQllbHNlIHN3aXRjaCAoY3RsLT5pb2N0bF9jb2Rl KSB7CisJCWdvdG8gZXhpdDsKKwl9CiAKKwlzd2l0Y2ggKGN0bC0+aW9jdGxfY29kZSkgewogCS8q IGRpc2Nvbm5lY3Qga2VybmVsIGRyaXZlciBmcm9tIGludGVyZmFjZSAqLwogCWNhc2UgVVNCREVW RlNfRElTQ09OTkVDVDoKLQkJaWYgKGludGYtPmRldi5kcml2ZXIpIHsKLQkJCWRyaXZlciA9IHRv X3VzYl9kcml2ZXIoaW50Zi0+ZGV2LmRyaXZlcik7Ci0JCQlkZXZfZGJnKCZpbnRmLT5kZXYsICJk aXNjb25uZWN0IGJ5IHVzYmZzXG4iKTsKLQkJCXVzYl9kcml2ZXJfcmVsZWFzZV9pbnRlcmZhY2Uo ZHJpdmVyLCBpbnRmKTsKLQkJfSBlbHNlCisJCWlmICghaW50Zi0+ZGV2LmRyaXZlcikgewogCQkJ cmV0dmFsID0gLUVOT0RBVEE7CisJCQlnb3RvIGV4aXQ7CisJCX0KKwkJZHJpdmVyID0gdG9fdXNi X2RyaXZlcihpbnRmLT5kZXYuZHJpdmVyKTsKKwkJZGV2X2RiZygmaW50Zi0+ZGV2LCAiZGlzY29u bmVjdCBieSB1c2Jmc1xuIik7CisJCXVzYl9kcml2ZXJfcmVsZWFzZV9pbnRlcmZhY2UoZHJpdmVy LCBpbnRmKTsKIAkJYnJlYWs7CiAKIAkvKiBsZXQga2VybmVsIGRyaXZlcnMgdHJ5IHRvIChyZSli aW5kIHRvIHRoZSBpbnRlcmZhY2UgKi8KIAljYXNlIFVTQkRFVkZTX0NPTk5FQ1Q6Ci0JCWlmICgh aW50Zi0+ZGV2LmRyaXZlcikKLQkJCXJldHZhbCA9IGRldmljZV9hdHRhY2goJmludGYtPmRldik7 Ci0JCWVsc2UKKwkJaWYgKCFpbnRmLT5kZXYuZHJpdmVyKSB7CiAJCQlyZXR2YWwgPSAtRUJVU1k7 CisJCQlnb3RvIGV4aXQ7CisJCX0KKwkJcmV0dmFsID0gZGV2aWNlX2F0dGFjaCgmaW50Zi0+ZGV2 KTsKIAkJYnJlYWs7CiAKIAkvKiB0YWxrIGRpcmVjdGx5IHRvIHRoZSBpbnRlcmZhY2UncyBkcml2 ZXIgKi8KQEAgLTIxNjUsMjAgKzIxNzEsMjEgQEAgc3RhdGljIGludCBwcm9jX2lvY3RsKHN0cnVj dCB1c2JfZGV2X3N0YXRlICpwcywgc3RydWN0IHVzYmRldmZzX2lvY3RsICpjdGwpCiAJCQlkcml2 ZXIgPSB0b191c2JfZHJpdmVyKGludGYtPmRldi5kcml2ZXIpOwogCQlpZiAoZHJpdmVyID09IE5V TEwgfHwgZHJpdmVyLT51bmxvY2tlZF9pb2N0bCA9PSBOVUxMKSB7CiAJCQlyZXR2YWwgPSAtRU5P VFRZOwotCQl9IGVsc2UgewotCQkJcmV0dmFsID0gZHJpdmVyLT51bmxvY2tlZF9pb2N0bChpbnRm LCBjdGwtPmlvY3RsX2NvZGUsIGJ1Zik7Ci0JCQlpZiAocmV0dmFsID09IC1FTk9JT0NUTENNRCkK LQkJCQlyZXR2YWwgPSAtRU5PVFRZOworCQkJZ290byBleGl0OwogCQl9CisJCXJldHZhbCA9IGRy aXZlci0+dW5sb2NrZWRfaW9jdGwoaW50ZiwgY3RsLT5pb2N0bF9jb2RlLCBidWYpOworCQlpZiAo cmV0dmFsID09IC1FTk9JT0NUTENNRCkgeworCQkJcmV0dmFsID0gLUVOT1RUWTsKKwkJCWdvdG8g ZXhpdDsKKwkJfQorCQlicmVhazsKIAl9CiAKIAkvKiBjbGVhbnVwIGFuZCByZXR1cm4gKi8KLQlp ZiAocmV0dmFsID49IDAKLQkJCSYmIChfSU9DX0RJUihjdGwtPmlvY3RsX2NvZGUpICYgX0lPQ19S RUFEKSAhPSAwCi0JCQkmJiBzaXplID4gMAotCQkJJiYgY29weV90b191c2VyKGN0bC0+ZGF0YSwg YnVmLCBzaXplKSAhPSAwKQorCWlmIChyZXR2YWwgPj0gMCAmJiAoX0lPQ19ESVIoY3RsLT5pb2N0 bF9jb2RlKSAmIF9JT0NfUkVBRCkgIT0gMCAmJgorCQlzaXplID4gMCAmJiBjb3B5X3RvX3VzZXIo Y3RsLT5kYXRhLCBidWYsIHNpemUpICE9IDApCiAJCXJldHZhbCA9IC1FRkFVTFQ7Ci0KK2V4aXQ6 CiAJa2ZyZWUoYnVmKTsKIAlyZXR1cm4gcmV0dmFsOwogfQo=