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: [2/3] usb: gadget: configfs: Create control_config group From: Jerry Zhang Message-Id: <20180417011742.192184-3-zhangjerry@google.com> Date: Mon, 16 Apr 2018 18:17:41 -0700 To: Felipe Balbi , Greg Kroah-Hartman , linux-usb@vger.kernel.org Cc: Michal Nazarewicz , Krzysztof Opasiak , Badhri Jagan Sridharan , Andrzej Pietrasiewicz , Lars-Peter Clausen , felixhaedicke@web.de, Jerry Zhang List-ID: Q29udHJvbF9jb25maWcgaXMgYSBncm91cCB1bmRlciBnYWRnZXQgdGhhdCBhY3RzCmFzIGEgbm9y bWFsIGNvbmZpZyBncm91cCwgZXhjZXB0IGl0IGRvZXMgbm90CmFwcGVhciBpbiBjZGV2LT5jb25m aWdzLiBGdW5jdGlvbnMgY2FuIGJlIGxpbmtlZAppbnRvIHRoZSBjb25maWcgYXMgbm9ybWFsLCBh bmQgdGhvc2UgZnVuY3Rpb25zCmFyZSBib3VuZCBhbmQgdW5ib3VuZCB3aXRoIHRoZSByZXN0IG9m IHRoZSBnYWRnZXQuCgpDcmVhdGUgY29uZmlnZnNfc2V0dXAoKSwgd2hpY2ggd2lsbCBmaXJzdCBh dHRlbXB0CmNvbXBvc2l0ZSBzZXR1cC4gSWYgdGhhdCBmYWlscywgaXQgd2lsbCBnbyB0aHJvdWdo CmZ1bmN0aW9ucyBpbiBjb250cm9sX2NvbmZpZyBhbmQgdXNlIHJlcV9tYXRjaCB0bwpmaW5kIG9u ZSB0aGF0IGNhbiBoYW5kbGUgdGhlIGNvbnRyb2wgcmVxdWVzdC4KClRoaXMgYWxsb3dzIHRoZSB1 c2VyIHRvIGNyZWF0ZSBhIGZ1bmN0aW9uZnMgaW5zdGFuY2UKZGVkaWNhdGVkIHRvIGhhbmRsaW5n IG5vbi1zdGFuZGFyZCBjb250cm9sIHJlcXVlc3RzCm5vIG1hdHRlciB3aGF0IGZ1bmN0aW9ucyBv ciBjb25maWd1cmF0aW9ucyBhcmUKY3VycmVudGx5IGFjdGl2ZS4KClNpZ25lZC1vZmYtYnk6IEpl cnJ5IFpoYW5nIDx6aGFuZ2plcnJ5QGdvb2dsZS5jb20+Ci0tLQogZHJpdmVycy91c2IvZ2FkZ2V0 L2NvbmZpZ2ZzLmMgfCA4NiArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDY4IGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvdXNiL2dhZGdldC9jb25maWdmcy5jIGIvZHJpdmVycy91c2IvZ2FkZ2V0L2Nv bmZpZ2ZzLmMKaW5kZXggZWZiYTY2Y2EwNzE5Li5iM2FjZGRkYTI0YzEgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvdXNiL2dhZGdldC9jb25maWdmcy5jCisrKyBiL2RyaXZlcnMvdXNiL2dhZGdldC9jb25m aWdmcy5jCkBAIC00NCwxMiArNDQsMjIgQEAgaW50IGNoZWNrX3VzZXJfdXNiX3N0cmluZyhjb25z dCBjaGFyICpuYW1lLAogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHVzYl9kZXNjcmlwdG9yX2hlYWRl ciAqb3RnX2Rlc2NbMl07CiAKK3N0cnVjdCBjb25maWdfdXNiX2NmZyB7CisJc3RydWN0IGNvbmZp Z19ncm91cCBncm91cDsKKwlzdHJ1Y3QgY29uZmlnX2dyb3VwIHN0cmluZ3NfZ3JvdXA7CisJc3Ry dWN0IGxpc3RfaGVhZCBzdHJpbmdfbGlzdDsKKwlzdHJ1Y3QgdXNiX2NvbmZpZ3VyYXRpb24gYzsK KwlzdHJ1Y3QgbGlzdF9oZWFkIGZ1bmNfbGlzdDsKKwlzdHJ1Y3QgdXNiX2dhZGdldF9zdHJpbmdz ICpnc3RyaW5nc1tNQVhfVVNCX1NUUklOR19MQU5HUyArIDFdOworfTsKKwogc3RydWN0IGdhZGdl dF9pbmZvIHsKIAlzdHJ1Y3QgY29uZmlnX2dyb3VwIGdyb3VwOwogCXN0cnVjdCBjb25maWdfZ3Jv dXAgZnVuY3Rpb25zX2dyb3VwOwogCXN0cnVjdCBjb25maWdfZ3JvdXAgY29uZmlnc19ncm91cDsK IAlzdHJ1Y3QgY29uZmlnX2dyb3VwIHN0cmluZ3NfZ3JvdXA7CiAJc3RydWN0IGNvbmZpZ19ncm91 cCBvc19kZXNjX2dyb3VwOworCXN0cnVjdCBjb25maWdfdXNiX2NmZyBjb250cm9sX2NvbmZpZzsK IAogCXN0cnVjdCBtdXRleCBsb2NrOwogCXN0cnVjdCB1c2JfZ2FkZ2V0X3N0cmluZ3MgKmdzdHJp bmdzW01BWF9VU0JfU1RSSU5HX0xBTkdTICsgMV07CkBAIC02OCwxNSArNzgsNiBAQCBzdGF0aWMg aW5saW5lIHN0cnVjdCBnYWRnZXRfaW5mbyAqdG9fZ2FkZ2V0X2luZm8oc3RydWN0IGNvbmZpZ19p dGVtICppdGVtKQogCSByZXR1cm4gY29udGFpbmVyX29mKHRvX2NvbmZpZ19ncm91cChpdGVtKSwg c3RydWN0IGdhZGdldF9pbmZvLCBncm91cCk7CiB9CiAKLXN0cnVjdCBjb25maWdfdXNiX2NmZyB7 Ci0Jc3RydWN0IGNvbmZpZ19ncm91cCBncm91cDsKLQlzdHJ1Y3QgY29uZmlnX2dyb3VwIHN0cmlu Z3NfZ3JvdXA7Ci0Jc3RydWN0IGxpc3RfaGVhZCBzdHJpbmdfbGlzdDsKLQlzdHJ1Y3QgdXNiX2Nv bmZpZ3VyYXRpb24gYzsKLQlzdHJ1Y3QgbGlzdF9oZWFkIGZ1bmNfbGlzdDsKLQlzdHJ1Y3QgdXNi X2dhZGdldF9zdHJpbmdzICpnc3RyaW5nc1tNQVhfVVNCX1NUUklOR19MQU5HUyArIDFdOwotfTsK LQogc3RhdGljIGlubGluZSBzdHJ1Y3QgY29uZmlnX3VzYl9jZmcgKnRvX2NvbmZpZ191c2JfY2Zn KHN0cnVjdCBjb25maWdfaXRlbSAqaXRlbSkKIHsKIAlyZXR1cm4gY29udGFpbmVyX29mKHRvX2Nv bmZpZ19ncm91cChpdGVtKSwgc3RydWN0IGNvbmZpZ191c2JfY2ZnLApAQCAtMTIwNSwxMSArMTIw NiwxMCBAQCBpbnQgY29tcG9zaXRlX29zX2Rlc2NfcmVxX3ByZXBhcmUoc3RydWN0IHVzYl9jb21w b3NpdGVfZGV2ICpjZGV2LAogc3RhdGljIHZvaWQgcHVyZ2VfY29uZmlnc19mdW5jcyhzdHJ1Y3Qg Z2FkZ2V0X2luZm8gKmdpKQogewogCXN0cnVjdCB1c2JfY29uZmlndXJhdGlvbgkqYzsKKwlzdHJ1 Y3QgdXNiX2Z1bmN0aW9uICpmLCAqdG1wOworCXN0cnVjdCBjb25maWdfdXNiX2NmZyAqY2ZnOwog CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShjLCAmZ2ktPmNkZXYuY29uZmlncywgbGlzdCkgewotCQlz dHJ1Y3QgdXNiX2Z1bmN0aW9uICpmLCAqdG1wOwotCQlzdHJ1Y3QgY29uZmlnX3VzYl9jZmcgKmNm ZzsKLQogCQljZmcgPSBjb250YWluZXJfb2YoYywgc3RydWN0IGNvbmZpZ191c2JfY2ZnLCBjKTsK IAogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoZiwgdG1wLCAmYy0+ZnVuY3Rpb25zLCBsaXN0 KSB7CkBAIC0xMjI5LDYgKzEyMjksMTQgQEAgc3RhdGljIHZvaWQgcHVyZ2VfY29uZmlnc19mdW5j cyhzdHJ1Y3QgZ2FkZ2V0X2luZm8gKmdpKQogCQljLT5oaWdoc3BlZWQgPSAwOwogCQljLT5mdWxs c3BlZWQgPSAwOwogCX0KKworCWNmZyA9ICZnaS0+Y29udHJvbF9jb25maWc7CisJYyA9ICZjZmct PmM7CisJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGYsIHRtcCwgJmMtPmZ1bmN0aW9ucywgbGlz dCkgeworCQlsaXN0X21vdmVfdGFpbCgmZi0+bGlzdCwgJmNmZy0+ZnVuY19saXN0KTsKKwkJaWYg KGYtPnVuYmluZCkKKwkJCWYtPnVuYmluZChjLCBmKTsKKwl9CiB9CiAKIHN0YXRpYyBpbnQgY29u ZmlnZnNfY29tcG9zaXRlX2JpbmQoc3RydWN0IHVzYl9nYWRnZXQgKmdhZGdldCwKQEAgLTEyNDIs NiArMTI1MCw5IEBAIHN0YXRpYyBpbnQgY29uZmlnZnNfY29tcG9zaXRlX2JpbmQoc3RydWN0IHVz Yl9nYWRnZXQgKmdhZGdldCwKIAlzdHJ1Y3QgdXNiX3N0cmluZwkJKnM7CiAJdW5zaWduZWQJCQlp OwogCWludAkJCQlyZXQ7CisJc3RydWN0IGNvbmZpZ191c2JfY2ZnICpjZmc7CisJc3RydWN0IHVz Yl9mdW5jdGlvbiAqZjsKKwlzdHJ1Y3QgdXNiX2Z1bmN0aW9uICp0bXA7CiAKIAkvKiB0aGUgZ2kt PmxvY2sgaXMgaG9sZCBieSB0aGUgY2FsbGVyICovCiAJY2Rldi0+Z2FkZ2V0ID0gZ2FkZ2V0OwpA QCAtMTI2MCw4ICsxMjcxLDYgQEAgc3RhdGljIGludCBjb25maWdmc19jb21wb3NpdGVfYmluZChz dHJ1Y3QgdXNiX2dhZGdldCAqZ2FkZ2V0LAogCiAKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGMsICZn aS0+Y2Rldi5jb25maWdzLCBsaXN0KSB7Ci0JCXN0cnVjdCBjb25maWdfdXNiX2NmZyAqY2ZnOwot CiAJCWNmZyA9IGNvbnRhaW5lcl9vZihjLCBzdHJ1Y3QgY29uZmlnX3VzYl9jZmcsIGMpOwogCQlp ZiAobGlzdF9lbXB0eSgmY2ZnLT5mdW5jX2xpc3QpKSB7CiAJCQlwcl9lcnIoIkNvbmZpZyAlcy8l ZCBvZiAlcyBuZWVkcyBhdCBsZWFzdCBvbmUgZnVuY3Rpb24uXG4iLApAQCAtMTMyMCw5ICsxMzI5 LDYgQEAgc3RhdGljIGludCBjb25maWdmc19jb21wb3NpdGVfYmluZChzdHJ1Y3QgdXNiX2dhZGdl dCAqZ2FkZ2V0LAogCiAJLyogR28gdGhyb3VnaCBhbGwgY29uZmlncywgYXR0YWNoIGFsbCBmdW5j dGlvbnMgKi8KIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGMsICZnaS0+Y2Rldi5jb25maWdzLCBsaXN0 KSB7Ci0JCXN0cnVjdCBjb25maWdfdXNiX2NmZyAqY2ZnOwotCQlzdHJ1Y3QgdXNiX2Z1bmN0aW9u ICpmOwotCQlzdHJ1Y3QgdXNiX2Z1bmN0aW9uICp0bXA7CiAJCXN0cnVjdCBnYWRnZXRfY29uZmln X25hbWUgKmNuOwogCiAJCWlmIChnYWRnZXRfaXNfb3RnKGdhZGdldCkpCkBAIC0xMzYyLDYgKzEz NjgsMTYgQEAgc3RhdGljIGludCBjb25maWdmc19jb21wb3NpdGVfYmluZChzdHJ1Y3QgdXNiX2dh ZGdldCAqZ2FkZ2V0LAogCQkJZ290byBlcnJfcHVyZ2VfZnVuY3M7CiAJfQogCisJY2ZnID0gJmdp LT5jb250cm9sX2NvbmZpZzsKKwljID0gJmNmZy0+YzsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3Nh ZmUoZiwgdG1wLCAmY2ZnLT5mdW5jX2xpc3QsIGxpc3QpIHsKKwkJaWYgKGYtPnJlcV9tYXRjaCAm JiBmLT5zZXR1cCkgeworCQkJbGlzdF9kZWwoJmYtPmxpc3QpOworCQkJaWYgKHVzYl9hZGRfZnVu Y3Rpb24oJmNmZy0+YywgZikpCisJCQkJbGlzdF9hZGQoJmYtPmxpc3QsICZjZmctPmZ1bmNfbGlz dCk7CisJCX0KKwl9CisKIAl1c2JfZXBfYXV0b2NvbmZpZ19yZXNldChjZGV2LT5nYWRnZXQpOwog CXJldHVybiAwOwogCkBAIC0xMzkxLDExICsxNDA3LDMzIEBAIHN0YXRpYyB2b2lkIGNvbmZpZ2Zz X2NvbXBvc2l0ZV91bmJpbmQoc3RydWN0IHVzYl9nYWRnZXQgKmdhZGdldCkKIAlzZXRfZ2FkZ2V0 X2RhdGEoZ2FkZ2V0LCBOVUxMKTsKIH0KIAorc3RhdGljIGludCBjb25maWdmc19jb21wb3NpdGVf c2V0dXAoc3RydWN0IHVzYl9nYWRnZXQgKmdhZGdldCwKKwkJCWNvbnN0IHN0cnVjdCB1c2JfY3Ry bHJlcXVlc3QgKmMpCit7CisJc3RydWN0IHVzYl9jb21wb3NpdGVfZGV2ICpjZGV2ID0gZ2V0X2dh ZGdldF9kYXRhKGdhZGdldCk7CisJc3RydWN0IGdhZGdldF9pbmZvICpnaSA9IGNvbnRhaW5lcl9v ZihjZGV2LCBzdHJ1Y3QgZ2FkZ2V0X2luZm8sIGNkZXYpOworCisJc3RydWN0IGNvbmZpZ191c2Jf Y2ZnICpjZmcgPSAmZ2ktPmNvbnRyb2xfY29uZmlnOworCXN0cnVjdCB1c2JfZnVuY3Rpb24gKmY7 CisJaW50IHZhbHVlID0gY29tcG9zaXRlX3NldHVwKGdhZGdldCwgYyk7CisKKwlpZiAodmFsdWUg Pj0gMCkKKwkJcmV0dXJuIHZhbHVlOworCisJbGlzdF9mb3JfZWFjaF9lbnRyeShmLCAmY2ZnLT5j LmZ1bmN0aW9ucywgbGlzdCkgeworCQlpZiAoZi0+cmVxX21hdGNoKGYsIGMsIGZhbHNlKSkgewor CQkJdmFsdWUgPSBmLT5zZXR1cChmLCBjKTsKKwkJCWJyZWFrOworCQl9CisJfQorCXJldHVybiB2 YWx1ZTsKK30KKwogc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZ2FkZ2V0X2RyaXZlciBjb25maWdm c19kcml2ZXJfdGVtcGxhdGUgPSB7CiAJLmJpbmQgICAgICAgICAgID0gY29uZmlnZnNfY29tcG9z aXRlX2JpbmQsCiAJLnVuYmluZCAgICAgICAgID0gY29uZmlnZnNfY29tcG9zaXRlX3VuYmluZCwK IAotCS5zZXR1cCAgICAgICAgICA9IGNvbXBvc2l0ZV9zZXR1cCwKKwkuc2V0dXAgICAgICAgICAg PSBjb25maWdmc19jb21wb3NpdGVfc2V0dXAsCiAJLnJlc2V0ICAgICAgICAgID0gY29tcG9zaXRl X2Rpc2Nvbm5lY3QsCiAJLmRpc2Nvbm5lY3QgICAgID0gY29tcG9zaXRlX2Rpc2Nvbm5lY3QsCiAK QEAgLTE0NjEsNiArMTQ5OSwxOCBAQCBzdGF0aWMgc3RydWN0IGNvbmZpZ19ncm91cCAqZ2FkZ2V0 c19tYWtlKAogCWlmICghZ2ktPmNvbXBvc2l0ZS5nYWRnZXRfZHJpdmVyLmZ1bmN0aW9uKQogCQln b3RvIGVycjsKIAorCWdpLT5jb250cm9sX2NvbmZpZy5jLmxhYmVsID0gImNvbnRyb2xfY29uZmln IjsKKwkvKiBjb21wb3NpdGUgcmVxdWlyZXMgc29tZSB2YWx1ZSwgYnV0IGl0IGRvZXNuJ3QgbWF0 dGVyICovCisJZ2ktPmNvbnRyb2xfY29uZmlnLmMuYkNvbmZpZ3VyYXRpb25WYWx1ZSA9IDQyOwor CUlOSVRfTElTVF9IRUFEKCZnaS0+Y29udHJvbF9jb25maWcuZnVuY19saXN0KTsKKwljb25maWdf Z3JvdXBfaW5pdF90eXBlX25hbWUoJmdpLT5jb250cm9sX2NvbmZpZy5ncm91cCwKKwkJCSJjb250 cm9sX2NvbmZpZyIsICZnYWRnZXRfY29uZmlnX3R5cGUpOworCWNvbmZpZ2ZzX2FkZF9kZWZhdWx0 X2dyb3VwKCZnaS0+Y29udHJvbF9jb25maWcuZ3JvdXAsICZnaS0+Z3JvdXApOworCisJaWYgKHVz Yl9hZGRfY29uZmlnX29ubHkoJmdpLT5jZGV2LCAmZ2ktPmNvbnRyb2xfY29uZmlnLmMpKQorCQln b3RvIGVycjsKKwlsaXN0X2RlbCgmZ2ktPmNvbnRyb2xfY29uZmlnLmMubGlzdCk7CisKIAlyZXR1 cm4gJmdpLT5ncm91cDsKIGVycjoKIAlrZnJlZShnaSk7Cg==