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: xhci: force all memory allocations to node From: Adam Wallis Message-Id: <1527015332-27114-1-git-send-email-awallis@codeaurora.org> Date: Tue, 22 May 2018 14:55:32 -0400 To: Mathias Nyman , Greg Kroah-Hartman , linux-usb@vger.kernel.org Cc: timur@codeaurora.org List-ID: VGhlIHhoY2kgZHJpdmVyIGZvcmNlcyBETUEgbWVtb3J5IHRvIGJlIG5vZGUgYXdhcmUsIGhvd2V2 ZXIsIHRoZXJlIGFyZQpzZXZlcmFsIHJpbmctcmVsYXRlZCBtZW1vcnkgYWxsb2NhdGlvbnMgdGhh dCBhcmUgbm90IG1lbW9yeSBub2RlIGF3YXJlLgpUaGlzIHBhdGNoIHJlc29sdmVzIHRob3NlICph bGxvYyBmdW5jdGlvbnMgdG8gYmUgYWxsb2NhdGVkIG9uIHRoZSBwcm9wZXIKbWVtb3J5IG5vZGUu CgpTaWduZWQtb2ZmLWJ5OiBBZGFtIFdhbGxpcyA8YXdhbGxpc0Bjb2RlYXVyb3JhLm9yZz4KLS0t CmNoYW5nZXMgZnJvbSB2MToKICAgKiBUaGlzIHdhcyByZWJhc2VkIG9uIHRvcCBvZiBNYXRoaWFz JyBmb3ItdXNiLW5leHQgYnJhbmNoCgogZHJpdmVycy91c2IvaG9zdC94aGNpLW1lbS5jIHwgNTcg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgMzggaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy91c2IvaG9zdC94aGNpLW1lbS5jIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLW1lbS5jCmlu ZGV4IDBiNjFiNzdkLi40ZmU3NDcxIDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L3hoY2kt bWVtLmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLW1lbS5jCkBAIC0zMyw4ICszMyw5IEBA IHN0YXRpYyBzdHJ1Y3QgeGhjaV9zZWdtZW50ICp4aGNpX3NlZ21lbnRfYWxsb2Moc3RydWN0IHho Y2lfaGNkICp4aGNpLAogCXN0cnVjdCB4aGNpX3NlZ21lbnQgKnNlZzsKIAlkbWFfYWRkcl90CWRt YTsKIAlpbnQJCWk7CisJc3RydWN0IGRldmljZSAqZGV2ID0geGhjaV90b19oY2QoeGhjaSktPnNl bGYuc3lzZGV2OwogCi0Jc2VnID0ga3phbGxvYyhzaXplb2YgKnNlZywgZmxhZ3MpOworCXNlZyA9 IGt6YWxsb2Nfbm9kZShzaXplb2YoKnNlZyksIGZsYWdzLCBkZXZfdG9fbm9kZShkZXYpKTsKIAlp ZiAoIXNlZykKIAkJcmV0dXJuIE5VTEw7CiAKQEAgLTQ1LDcgKzQ2LDggQEAgc3RhdGljIHN0cnVj dCB4aGNpX3NlZ21lbnQgKnhoY2lfc2VnbWVudF9hbGxvYyhzdHJ1Y3QgeGhjaV9oY2QgKnhoY2ks CiAJfQogCiAJaWYgKG1heF9wYWNrZXQpIHsKLQkJc2VnLT5ib3VuY2VfYnVmID0ga3phbGxvYyht YXhfcGFja2V0LCBmbGFncyk7CisJCXNlZy0+Ym91bmNlX2J1ZiA9IGt6YWxsb2Nfbm9kZShtYXhf cGFja2V0LCBmbGFncywKKwkJCQkJZGV2X3RvX25vZGUoZGV2KSk7CiAJCWlmICghc2VnLT5ib3Vu Y2VfYnVmKSB7CiAJCQlkbWFfcG9vbF9mcmVlKHhoY2ktPnNlZ21lbnRfcG9vbCwgc2VnLT50cmJz LCBkbWEpOwogCQkJa2ZyZWUoc2VnKTsKQEAgLTM2Myw4ICszNjUsOSBAQCBzdHJ1Y3QgeGhjaV9y aW5nICp4aGNpX3JpbmdfYWxsb2Moc3RydWN0IHhoY2lfaGNkICp4aGNpLAogewogCXN0cnVjdCB4 aGNpX3JpbmcJKnJpbmc7CiAJaW50IHJldDsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSB4aGNpX3Rv X2hjZCh4aGNpKS0+c2VsZi5zeXNkZXY7CiAKLQlyaW5nID0ga3phbGxvYyhzaXplb2YgKihyaW5n KSwgZmxhZ3MpOworCXJpbmcgPSBremFsbG9jX25vZGUoc2l6ZW9mKCpyaW5nKSwgZmxhZ3MsIGRl dl90b19ub2RlKGRldikpOwogCWlmICghcmluZykKIAkJcmV0dXJuIE5VTEw7CiAKQEAgLTQ1OCwx MSArNDYxLDEyIEBAIHN0cnVjdCB4aGNpX2NvbnRhaW5lcl9jdHggKnhoY2lfYWxsb2NfY29udGFp bmVyX2N0eChzdHJ1Y3QgeGhjaV9oY2QgKnhoY2ksCiAJCQkJCQkgICAgaW50IHR5cGUsIGdmcF90 IGZsYWdzKQogewogCXN0cnVjdCB4aGNpX2NvbnRhaW5lcl9jdHggKmN0eDsKKwlzdHJ1Y3QgZGV2 aWNlICpkZXYgPSB4aGNpX3RvX2hjZCh4aGNpKS0+c2VsZi5zeXNkZXY7CiAKIAlpZiAoKHR5cGUg IT0gWEhDSV9DVFhfVFlQRV9ERVZJQ0UpICYmICh0eXBlICE9IFhIQ0lfQ1RYX1RZUEVfSU5QVVQp KQogCQlyZXR1cm4gTlVMTDsKIAotCWN0eCA9IGt6YWxsb2Moc2l6ZW9mKCpjdHgpLCBmbGFncyk7 CisJY3R4ID0ga3phbGxvY19ub2RlKHNpemVvZigqY3R4KSwgZmxhZ3MsIGRldl90b19ub2RlKGRl dikpOwogCWlmICghY3R4KQogCQlyZXR1cm4gTlVMTDsKIApAQCAtNjE1LDYgKzYxOSw3IEBAIHN0 cnVjdCB4aGNpX3N0cmVhbV9pbmZvICp4aGNpX2FsbG9jX3N0cmVhbV9pbmZvKHN0cnVjdCB4aGNp X2hjZCAqeGhjaSwKIAlzdHJ1Y3QgeGhjaV9yaW5nICpjdXJfcmluZzsKIAl1NjQgYWRkcjsKIAlp bnQgcmV0OworCXN0cnVjdCBkZXZpY2UgKmRldiA9IHhoY2lfdG9faGNkKHhoY2kpLT5zZWxmLnN5 c2RldjsKIAogCXhoY2lfZGJnKHhoY2ksICJBbGxvY2F0aW5nICV1IHN0cmVhbXMgYW5kICV1ICIK IAkJCSJzdHJlYW0gY29udGV4dCBhcnJheSBlbnRyaWVzLlxuIiwKQEAgLTYyNSw3ICs2MzAsOCBA QCBzdHJ1Y3QgeGhjaV9zdHJlYW1faW5mbyAqeGhjaV9hbGxvY19zdHJlYW1faW5mbyhzdHJ1Y3Qg eGhjaV9oY2QgKnhoY2ksCiAJfQogCXhoY2ktPmNtZF9yaW5nX3Jlc2VydmVkX3RyYnMrKzsKIAot CXN0cmVhbV9pbmZvID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IHhoY2lfc3RyZWFtX2luZm8pLCBt ZW1fZmxhZ3MpOworCXN0cmVhbV9pbmZvID0ga3phbGxvY19ub2RlKHNpemVvZigqc3RyZWFtX2lu Zm8pLCBtZW1fZmxhZ3MsCisJCQlkZXZfdG9fbm9kZShkZXYpKTsKIAlpZiAoIXN0cmVhbV9pbmZv KQogCQlnb3RvIGNsZWFudXBfdHJiczsKIApAQCAtNjMzLDkgKzYzOSw5IEBAIHN0cnVjdCB4aGNp X3N0cmVhbV9pbmZvICp4aGNpX2FsbG9jX3N0cmVhbV9pbmZvKHN0cnVjdCB4aGNpX2hjZCAqeGhj aSwKIAlzdHJlYW1faW5mby0+bnVtX3N0cmVhbV9jdHhzID0gbnVtX3N0cmVhbV9jdHhzOwogCiAJ LyogSW5pdGlhbGl6ZSB0aGUgYXJyYXkgb2YgdmlydHVhbCBwb2ludGVycyB0byBzdHJlYW0gcmlu Z3MuICovCi0Jc3RyZWFtX2luZm8tPnN0cmVhbV9yaW5ncyA9IGt6YWxsb2MoCi0JCQlzaXplb2Yo c3RydWN0IHhoY2lfcmluZyAqKSpudW1fc3RyZWFtcywKLQkJCW1lbV9mbGFncyk7CisJc3RyZWFt X2luZm8tPnN0cmVhbV9yaW5ncyA9IGtjYWxsb2Nfbm9kZSgKKwkJCW51bV9zdHJlYW1zLCBzaXpl b2Yoc3RydWN0IHhoY2lfcmluZyAqKSwgbWVtX2ZsYWdzLAorCQkJZGV2X3RvX25vZGUoZGV2KSk7 CiAJaWYgKCFzdHJlYW1faW5mby0+c3RyZWFtX3JpbmdzKQogCQlnb3RvIGNsZWFudXBfaW5mbzsK IApAQCAtODMxLDYgKzgzNyw3IEBAIGludCB4aGNpX2FsbG9jX3R0X2luZm8oc3RydWN0IHhoY2lf aGNkICp4aGNpLAogCXN0cnVjdCB4aGNpX3R0X2J3X2luZm8JCSp0dF9pbmZvOwogCXVuc2lnbmVk IGludAkJCW51bV9wb3J0czsKIAlpbnQJCQkJaSwgajsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSB4 aGNpX3RvX2hjZCh4aGNpKS0+c2VsZi5zeXNkZXY7CiAKIAlpZiAoIXR0LT5tdWx0aSkKIAkJbnVt X3BvcnRzID0gMTsKQEAgLTg0MCw3ICs4NDcsOCBAQCBpbnQgeGhjaV9hbGxvY190dF9pbmZvKHN0 cnVjdCB4aGNpX2hjZCAqeGhjaSwKIAlmb3IgKGkgPSAwOyBpIDwgbnVtX3BvcnRzOyBpKyssIHR0 X2luZm8rKykgewogCQlzdHJ1Y3QgeGhjaV9pbnRlcnZhbF9id190YWJsZSAqYndfdGFibGU7CiAK LQkJdHRfaW5mbyA9IGt6YWxsb2Moc2l6ZW9mKCp0dF9pbmZvKSwgbWVtX2ZsYWdzKTsKKwkJdHRf aW5mbyA9IGt6YWxsb2Nfbm9kZShzaXplb2YoKnR0X2luZm8pLCBtZW1fZmxhZ3MsCisJCQkJZGV2 X3RvX25vZGUoZGV2KSk7CiAJCWlmICghdHRfaW5mbykKIAkJCWdvdG8gZnJlZV90dHM7CiAJCUlO SVRfTElTVF9IRUFEKCZ0dF9pbmZvLT50dF9saXN0KTsKQEAgLTE2NDEsNyArMTY0OSw4IEBAIHN0 YXRpYyBpbnQgc2NyYXRjaHBhZF9hbGxvYyhzdHJ1Y3QgeGhjaV9oY2QgKnhoY2ksIGdmcF90IGZs YWdzKQogCWlmICghbnVtX3NwKQogCQlyZXR1cm4gMDsKIAotCXhoY2ktPnNjcmF0Y2hwYWQgPSBr emFsbG9jKHNpemVvZigqeGhjaS0+c2NyYXRjaHBhZCksIGZsYWdzKTsKKwl4aGNpLT5zY3JhdGNo cGFkID0ga3phbGxvY19ub2RlKHNpemVvZigqeGhjaS0+c2NyYXRjaHBhZCksIGZsYWdzLAorCQkJ CWRldl90b19ub2RlKGRldikpOwogCWlmICgheGhjaS0+c2NyYXRjaHBhZCkKIAkJZ290byBmYWls X3NwOwogCkBAIC0xNjUxLDcgKzE2NjAsOCBAQCBzdGF0aWMgaW50IHNjcmF0Y2hwYWRfYWxsb2Mo c3RydWN0IHhoY2lfaGNkICp4aGNpLCBnZnBfdCBmbGFncykKIAlpZiAoIXhoY2ktPnNjcmF0Y2hw YWQtPnNwX2FycmF5KQogCQlnb3RvIGZhaWxfc3AyOwogCi0JeGhjaS0+c2NyYXRjaHBhZC0+c3Bf YnVmZmVycyA9IGt6YWxsb2Moc2l6ZW9mKHZvaWQgKikgKiBudW1fc3AsIGZsYWdzKTsKKwl4aGNp LT5zY3JhdGNocGFkLT5zcF9idWZmZXJzID0ga2NhbGxvY19ub2RlKG51bV9zcCwgc2l6ZW9mKHZv aWQgKiksCisJCQkJCWZsYWdzLCBkZXZfdG9fbm9kZShkZXYpKTsKIAlpZiAoIXhoY2ktPnNjcmF0 Y2hwYWQtPnNwX2J1ZmZlcnMpCiAJCWdvdG8gZmFpbF9zcDM7CiAKQEAgLTE3MTksMTQgKzE3Mjks MTYgQEAgc3RydWN0IHhoY2lfY29tbWFuZCAqeGhjaV9hbGxvY19jb21tYW5kKHN0cnVjdCB4aGNp X2hjZCAqeGhjaSwKIAkJYm9vbCBhbGxvY2F0ZV9jb21wbGV0aW9uLCBnZnBfdCBtZW1fZmxhZ3Mp CiB7CiAJc3RydWN0IHhoY2lfY29tbWFuZCAqY29tbWFuZDsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYg PSB4aGNpX3RvX2hjZCh4aGNpKS0+c2VsZi5zeXNkZXY7CiAKLQljb21tYW5kID0ga3phbGxvYyhz aXplb2YoKmNvbW1hbmQpLCBtZW1fZmxhZ3MpOworCWNvbW1hbmQgPSBremFsbG9jX25vZGUoc2l6 ZW9mKCpjb21tYW5kKSwgbWVtX2ZsYWdzLCBkZXZfdG9fbm9kZShkZXYpKTsKIAlpZiAoIWNvbW1h bmQpCiAJCXJldHVybiBOVUxMOwogCiAJaWYgKGFsbG9jYXRlX2NvbXBsZXRpb24pIHsKIAkJY29t bWFuZC0+Y29tcGxldGlvbiA9Ci0JCQlremFsbG9jKHNpemVvZihzdHJ1Y3QgY29tcGxldGlvbiks IG1lbV9mbGFncyk7CisJCQlremFsbG9jX25vZGUoc2l6ZW9mKHN0cnVjdCBjb21wbGV0aW9uKSwg bWVtX2ZsYWdzLAorCQkJCWRldl90b19ub2RlKGRldikpOwogCQlpZiAoIWNvbW1hbmQtPmNvbXBs ZXRpb24pIHsKIAkJCWtmcmVlKGNvbW1hbmQpOwogCQkJcmV0dXJuIE5VTEw7CkBAIC0yMDk5LDYg KzIxMTEsNyBAQCBzdGF0aWMgdm9pZCB4aGNpX2FkZF9pbl9wb3J0KHN0cnVjdCB4aGNpX2hjZCAq eGhjaSwgdW5zaWduZWQgaW50IG51bV9wb3J0cywKIAlpbnQgaTsKIAl1OCBtYWpvcl9yZXZpc2lv biwgbWlub3JfcmV2aXNpb247CiAJc3RydWN0IHhoY2lfaHViICpyaHViOworCXN0cnVjdCBkZXZp Y2UgKmRldiA9IHhoY2lfdG9faGNkKHhoY2kpLT5zZWxmLnN5c2RldjsKIAogCXRlbXAgPSByZWFk bChhZGRyKTsKIAltYWpvcl9yZXZpc2lvbiA9IFhIQ0lfRVhUX1BPUlRfTUFKT1IodGVtcCk7CkBA IC0yMTM1LDggKzIxNDgsOCBAQCBzdGF0aWMgdm9pZCB4aGNpX2FkZF9pbl9wb3J0KHN0cnVjdCB4 aGNpX2hjZCAqeGhjaSwgdW5zaWduZWQgaW50IG51bV9wb3J0cywKIAogCXJodWItPnBzaV9jb3Vu dCA9IFhIQ0lfRVhUX1BPUlRfUFNJQyh0ZW1wKTsKIAlpZiAocmh1Yi0+cHNpX2NvdW50KSB7Ci0J CXJodWItPnBzaSA9IGtjYWxsb2Mocmh1Yi0+cHNpX2NvdW50LCBzaXplb2YoKnJodWItPnBzaSks Ci0JCQkJICAgIEdGUF9LRVJORUwpOworCQlyaHViLT5wc2kgPSBrY2FsbG9jX25vZGUocmh1Yi0+ cHNpX2NvdW50LCBzaXplb2YoKnJodWItPnBzaSksCisJCQkJICAgIEdGUF9LRVJORUwsIGRldl90 b19ub2RlKGRldikpOwogCQlpZiAoIXJodWItPnBzaSkKIAkJCXJodWItPnBzaV9jb3VudCA9IDA7 CiAKQEAgLTIyMTQsMTAgKzIyMjcsMTIgQEAgc3RhdGljIHZvaWQgeGhjaV9jcmVhdGVfcmh1Yl9w b3J0X2FycmF5KHN0cnVjdCB4aGNpX2hjZCAqeGhjaSwKIHsKIAlpbnQgcG9ydF9pbmRleCA9IDA7 CiAJaW50IGk7CisJc3RydWN0IGRldmljZSAqZGV2ID0geGhjaV90b19oY2QoeGhjaSktPnNlbGYu c3lzZGV2OwogCiAJaWYgKCFyaHViLT5udW1fcG9ydHMpCiAJCXJldHVybjsKLQlyaHViLT5wb3J0 cyA9IGtjYWxsb2Mocmh1Yi0+bnVtX3BvcnRzLCBzaXplb2Yocmh1Yi0+cG9ydHMpLCBmbGFncyk7 CisJcmh1Yi0+cG9ydHMgPSBrY2FsbG9jX25vZGUocmh1Yi0+bnVtX3BvcnRzLCBzaXplb2Yocmh1 Yi0+cG9ydHMpLCBmbGFncywKKwkJCWRldl90b19ub2RlKGRldikpOwogCWZvciAoaSA9IDA7IGkg PCBIQ1NfTUFYX1BPUlRTKHhoY2ktPmhjc19wYXJhbXMxKTsgaSsrKSB7CiAJCWlmICh4aGNpLT5o d19wb3J0c1tpXS5yaHViICE9IHJodWIgfHwKIAkJICAgIHhoY2ktPmh3X3BvcnRzW2ldLmhjZF9w b3J0bnVtID09IERVUExJQ0FURV9FTlRSWSkKQEAgLTIyNDUsOSArMjI2MCwxMSBAQCBzdGF0aWMg aW50IHhoY2lfc2V0dXBfcG9ydF9hcnJheXMoc3RydWN0IHhoY2lfaGNkICp4aGNpLCBnZnBfdCBm bGFncykKIAlpbnQgaSwgajsKIAlpbnQgY2FwX2NvdW50ID0gMDsKIAl1MzIgY2FwX3N0YXJ0Owor CXN0cnVjdCBkZXZpY2UgKmRldiA9IHhoY2lfdG9faGNkKHhoY2kpLT5zZWxmLnN5c2RldjsKIAog CW51bV9wb3J0cyA9IEhDU19NQVhfUE9SVFMoeGhjaS0+aGNzX3BhcmFtczEpOwotCXhoY2ktPmh3 X3BvcnRzID0ga2NhbGxvYyhudW1fcG9ydHMsIHNpemVvZigqeGhjaS0+aHdfcG9ydHMpLCBmbGFn cyk7CisJeGhjaS0+aHdfcG9ydHMgPSBrY2FsbG9jX25vZGUobnVtX3BvcnRzLCBzaXplb2YoKnho Y2ktPmh3X3BvcnRzKSwKKwkJCQlmbGFncywgZGV2X3RvX25vZGUoZGV2KSk7CiAJaWYgKCF4aGNp LT5od19wb3J0cykKIAkJcmV0dXJuIC1FTk9NRU07CiAKQEAgLTIyNTcsNyArMjI3NCw4IEBAIHN0 YXRpYyBpbnQgeGhjaV9zZXR1cF9wb3J0X2FycmF5cyhzdHJ1Y3QgeGhjaV9oY2QgKnhoY2ksIGdm cF90IGZsYWdzKQogCQl4aGNpLT5od19wb3J0c1tpXS5od19wb3J0bnVtID0gaTsKIAl9CiAKLQl4 aGNpLT5yaF9idyA9IGt6YWxsb2Moc2l6ZW9mKCp4aGNpLT5yaF9idykqbnVtX3BvcnRzLCBmbGFn cyk7CisJeGhjaS0+cmhfYncgPSBremFsbG9jX25vZGUoc2l6ZW9mKCp4aGNpLT5yaF9idykqbnVt X3BvcnRzLCBmbGFncywKKwkJCWRldl90b19ub2RlKGRldikpOwogCWlmICgheGhjaS0+cmhfYncp CiAJCXJldHVybiAtRU5PTUVNOwogCWZvciAoaSA9IDA7IGkgPCBudW1fcG9ydHM7IGkrKykgewpA QCAtMjI4NCw3ICsyMzAyLDggQEAgc3RhdGljIGludCB4aGNpX3NldHVwX3BvcnRfYXJyYXlzKHN0 cnVjdCB4aGNpX2hjZCAqeGhjaSwgZ2ZwX3QgZmxhZ3MpCiAJCQkJCQkgICAgICBYSENJX0VYVF9D QVBTX1BST1RPQ09MKTsKIAl9CiAKLQl4aGNpLT5leHRfY2FwcyA9IGt6YWxsb2Moc2l6ZW9mKCp4 aGNpLT5leHRfY2FwcykgKiBjYXBfY291bnQsIGZsYWdzKTsKKwl4aGNpLT5leHRfY2FwcyA9IGtj YWxsb2Nfbm9kZShjYXBfY291bnQsIHNpemVvZigqeGhjaS0+ZXh0X2NhcHMpLAorCQkJCWZsYWdz LCBkZXZfdG9fbm9kZShkZXYpKTsKIAlpZiAoIXhoY2ktPmV4dF9jYXBzKQogCQlyZXR1cm4gLUVO T01FTTsKIAo=