From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Paul Subject: [PATCH v6 09/20] drm/dp_mst: Fix payload deallocation on hotplugs using malloc refs Date: Thu, 10 Jan 2019 14:57:43 -0500 Message-ID: <20190110195753.6234-10-lyude@redhat.com> References: <20190110195753.6234-1-lyude@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190110195753.6234-1-lyude-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, amd-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, intel-gfx-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Cc: Jerry Zuo , David Airlie , Harry Wentland , Juston Li List-Id: dri-devel@lists.freedesktop.org VXAgdW50aWwgbm93LCBmcmVlaW5nIHBheWxvYWRzIG9uIHJlbW90ZSBNU1QgaHVicyB0aGF0IGp1 c3QgaGFkIHBvcnRzCnJlbW92ZWQgaGFzIGFsbW9zdCBuZXZlciB3b3JrZWQgYmVjYXVzZSB3ZSd2 ZSBiZWVuIHJlbHlpbmcgb24gcG9ydAp2YWxpZGF0aW9uIGluIG9yZGVyIHRvIHN0b3AgdXMgZnJv bSBhY2Nlc3NpbmcgcG9ydHMgdGhhdCBoYXZlIGFscmVhZHkKYmVlbiBmcmVlZCBmcm9tIG1lbW9y eSwgYnV0IHBvcnRzIHdoaWNoIG5lZWQgdGhlaXIgcGF5bG9hZHMgcmVsZWFzZWQgZHVlCnRvIGJl aW5nIHJlbW92ZWQgd2lsbCBuZXZlciBiZSBhIHZhbGlkIHBhcnQgb2YgdGhlIHRvcG9sb2d5IGFm dGVyCnRoZXkndmUgYmVlbiByZW1vdmVkLgoKU2luY2Ugd2UndmUgaW50cm9kdWNlZCBtYWxsb2Mg cmVmcywgd2UgY2FuIHJlcGxhY2UgYWxsIG9mIHRoZSB2YWxpZGF0aW9uCmxvZ2ljIGluIHBheWxv YWQgaGVscGVycyB3aGljaCBhcmUgdXNlZCBmb3IgZGVhbGxvY2F0aW9uIHdpdGggc29tZQp3ZWxs LXBsYWNlZCBtYWxsb2Mga3JlZnMuIFRoaXMgZW5zdXJlcyB0aGF0IHJlZ2FyZGxlc3Mgb2Ygd2hl dGhlciBvciBub3QKdGhlIHBvcnRzIGFyZSBzdGlsbCB2YWxpZCBhbmQgaW4gdGhlIHRvcG9sb2d5 LCBhbnkgcG9ydCB3aGljaCBoYXMgYW4KYWxsb2NhdGVkIHBheWxvYWQgd2lsbCByZW1haW4gYWxs b2NhdGVkIGluIG1lbW9yeSB1bnRpbCBpdCdzIHBheWxvYWRzCmhhdmUgYmVlbiByZW1vdmVkIC0g ZmluYWxseSBhbGxvd2luZyB1cyB0byBhY3R1YWxseSByZWxlYXNlIHNhaWQKcGF5bG9hZHMgY29y cmVjdGx5LgoKU2lnbmVkLW9mZi1ieTogTHl1ZGUgUGF1bCA8bHl1ZGVAcmVkaGF0LmNvbT4KUmV2 aWV3ZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+ClJldmlld2Vk LWJ5OiBIYXJyeSBXZW50bGFuZCA8aGFycnkud2VudGxhbmRAYW1kLmNvbT4KQ2M6IERhdmlkIEFp cmxpZSA8YWlybGllZEByZWRoYXQuY29tPgpDYzogSmVycnkgWnVvIDxKZXJyeS5adW9AYW1kLmNv bT4KQ2M6IEp1c3RvbiBMaSA8anVzdG9uLmxpQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vZHJtX2RwX21zdF90b3BvbG9neS5jIHwgNTQgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t CiAxIGZpbGUgY2hhbmdlZCwgMzAgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYyBiL2RyaXZlcnMv Z3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMKaW5kZXggYmI5MTA3ODUyZmVkLi5iNTk3NmY4 YzMxOGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfbXN0X3RvcG9sb2d5LmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9tc3RfdG9wb2xvZ3kuYwpAQCAtMjA5NSwxMCAr MjA5NSw2IEBAIHN0YXRpYyBpbnQgZHJtX2RwX3BheWxvYWRfc2VuZF9tc2coc3RydWN0IGRybV9k cF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IsCiAJdTggc2lua3NbRFJNX0RQX01BWF9TRFBfU1RSRUFN U107CiAJaW50IGk7CiAKLQlwb3J0ID0gZHJtX2RwX21zdF90b3BvbG9neV9nZXRfcG9ydF92YWxp ZGF0ZWQobWdyLCBwb3J0KTsKLQlpZiAoIXBvcnQpCi0JCXJldHVybiAtRUlOVkFMOwotCiAJcG9y dF9udW0gPSBwb3J0LT5wb3J0X251bTsKIAltc3RiID0gZHJtX2RwX21zdF90b3BvbG9neV9nZXRf bXN0Yl92YWxpZGF0ZWQobWdyLCBwb3J0LT5wYXJlbnQpOwogCWlmICghbXN0YikgewpAQCAtMjEw NiwxMCArMjEwMiw4IEBAIHN0YXRpYyBpbnQgZHJtX2RwX3BheWxvYWRfc2VuZF9tc2coc3RydWN0 IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IsCiAJCQkJCQkJICAgICAgIHBvcnQtPnBhcmVu dCwKIAkJCQkJCQkgICAgICAgJnBvcnRfbnVtKTsKIAotCQlpZiAoIW1zdGIpIHsKLQkJCWRybV9k cF9tc3RfdG9wb2xvZ3lfcHV0X3BvcnQocG9ydCk7CisJCWlmICghbXN0YikKIAkJCXJldHVybiAt RUlOVkFMOwotCQl9CiAJfQogCiAJdHhtc2cgPSBremFsbG9jKHNpemVvZigqdHhtc2cpLCBHRlBf S0VSTkVMKTsKQEAgLTIxNDYsNyArMjE0MCw2IEBAIHN0YXRpYyBpbnQgZHJtX2RwX3BheWxvYWRf c2VuZF9tc2coc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IsCiAJa2ZyZWUodHht c2cpOwogZmFpbF9wdXQ6CiAJZHJtX2RwX21zdF90b3BvbG9neV9wdXRfbXN0Yihtc3RiKTsKLQlk cm1fZHBfbXN0X3RvcG9sb2d5X3B1dF9wb3J0KHBvcnQpOwogCXJldHVybiByZXQ7CiB9CiAKQEAg LTIyNTEsMTUgKzIyNDQsMTYgQEAgc3RhdGljIGludCBkcm1fZHBfZGVzdHJveV9wYXlsb2FkX3N0 ZXAyKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLAogICovCiBpbnQgZHJtX2Rw X3VwZGF0ZV9wYXlsb2FkX3BhcnQxKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdy KQogewotCWludCBpLCBqOwotCWludCBjdXJfc2xvdHMgPSAxOwogCXN0cnVjdCBkcm1fZHBfcGF5 bG9hZCByZXFfcGF5bG9hZDsKIAlzdHJ1Y3QgZHJtX2RwX21zdF9wb3J0ICpwb3J0OworCWludCBp LCBqOworCWludCBjdXJfc2xvdHMgPSAxOwogCiAJbXV0ZXhfbG9jaygmbWdyLT5wYXlsb2FkX2xv Y2spOwogCWZvciAoaSA9IDA7IGkgPCBtZ3ItPm1heF9wYXlsb2FkczsgaSsrKSB7CiAJCXN0cnVj dCBkcm1fZHBfdmNwaSAqdmNwaSA9IG1nci0+cHJvcG9zZWRfdmNwaXNbaV07CiAJCXN0cnVjdCBk cm1fZHBfcGF5bG9hZCAqcGF5bG9hZCA9ICZtZ3ItPnBheWxvYWRzW2ldOworCQlib29sIHB1dF9w b3J0ID0gZmFsc2U7CiAKIAkJLyogc29sdmUgdGhlIGN1cnJlbnQgcGF5bG9hZHMgLSBjb21wYXJl IHRvIHRoZSBodyBvbmVzCiAJCSAgIC0gdXBkYXRlIHRoZSBodyB2aWV3ICovCkBAIC0yMjY3LDEy ICsyMjYxLDIwIEBAIGludCBkcm1fZHBfdXBkYXRlX3BheWxvYWRfcGFydDEoc3RydWN0IGRybV9k cF9tc3RfdG9wb2xvZ3lfbWdyICptZ3IpCiAJCWlmICh2Y3BpKSB7CiAJCQlwb3J0ID0gY29udGFp bmVyX29mKHZjcGksIHN0cnVjdCBkcm1fZHBfbXN0X3BvcnQsCiAJCQkJCSAgICB2Y3BpKTsKLQkJ CXBvcnQgPSBkcm1fZHBfbXN0X3RvcG9sb2d5X2dldF9wb3J0X3ZhbGlkYXRlZChtZ3IsCi0JCQkJ CQkJCSAgICAgIHBvcnQpOwotCQkJaWYgKCFwb3J0KSB7Ci0JCQkJbXV0ZXhfdW5sb2NrKCZtZ3It PnBheWxvYWRfbG9jayk7Ci0JCQkJcmV0dXJuIC1FSU5WQUw7CisKKwkJCS8qIFZhbGlkYXRlZCBw b3J0cyBkb24ndCBtYXR0ZXIgaWYgd2UncmUgcmVsZWFzaW5nCisJCQkgKiBWQ1BJCisJCQkgKi8K KwkJCWlmICh2Y3BpLT5udW1fc2xvdHMpIHsKKwkJCQlwb3J0ID0gZHJtX2RwX21zdF90b3BvbG9n eV9nZXRfcG9ydF92YWxpZGF0ZWQoCisJCQkJICAgIG1nciwgcG9ydCk7CisJCQkJaWYgKCFwb3J0 KSB7CisJCQkJCW11dGV4X3VubG9jaygmbWdyLT5wYXlsb2FkX2xvY2spOworCQkJCQlyZXR1cm4g LUVJTlZBTDsKKwkJCQl9CisJCQkJcHV0X3BvcnQgPSB0cnVlOwogCQkJfQorCiAJCQlyZXFfcGF5 bG9hZC5udW1fc2xvdHMgPSB2Y3BpLT5udW1fc2xvdHM7CiAJCQlyZXFfcGF5bG9hZC52Y3BpID0g dmNwaS0+dmNwaTsKIAkJfSBlbHNlIHsKQEAgLTIzMDQsNyArMjMwNiw3IEBAIGludCBkcm1fZHBf dXBkYXRlX3BheWxvYWRfcGFydDEoc3RydWN0IGRybV9kcF9tc3RfdG9wb2xvZ3lfbWdyICptZ3Ip CiAJCX0KIAkJY3VyX3Nsb3RzICs9IHJlcV9wYXlsb2FkLm51bV9zbG90czsKIAotCQlpZiAocG9y dCkKKwkJaWYgKHB1dF9wb3J0KQogCQkJZHJtX2RwX21zdF90b3BvbG9neV9wdXRfcG9ydChwb3J0 KTsKIAl9CiAKQEAgLTMxMjAsNiArMzEyMiw4IEBAIGJvb2wgZHJtX2RwX21zdF9hbGxvY2F0ZV92 Y3BpKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21nciAqbWdyLAogCURSTV9ERUJVR19LTVMo ImluaXRpbmcgdmNwaSBmb3IgcGJuPSVkIHNsb3RzPSVkXG4iLAogCQkgICAgICBwYm4sIHBvcnQt PnZjcGkubnVtX3Nsb3RzKTsKIAorCS8qIEtlZXAgcG9ydCBhbGxvY2F0ZWQgdW50aWwgaXQncyBw YXlsb2FkIGhhcyBiZWVuIHJlbW92ZWQgKi8KKwlkcm1fZHBfbXN0X2dldF9wb3J0X21hbGxvYyhw b3J0KTsKIAlkcm1fZHBfbXN0X3RvcG9sb2d5X3B1dF9wb3J0KHBvcnQpOwogCXJldHVybiB0cnVl Owogb3V0OgpAQCAtMzE0OSwxMSArMzE1MywxMiBAQCBFWFBPUlRfU1lNQk9MKGRybV9kcF9tc3Rf Z2V0X3ZjcGlfc2xvdHMpOwogICovCiB2b2lkIGRybV9kcF9tc3RfcmVzZXRfdmNwaV9zbG90cyhz dHJ1Y3QgZHJtX2RwX21zdF90b3BvbG9neV9tZ3IgKm1nciwgc3RydWN0IGRybV9kcF9tc3RfcG9y dCAqcG9ydCkKIHsKLQlwb3J0ID0gZHJtX2RwX21zdF90b3BvbG9neV9nZXRfcG9ydF92YWxpZGF0 ZWQobWdyLCBwb3J0KTsKLQlpZiAoIXBvcnQpCi0JCXJldHVybjsKKwkvKgorCSAqIEEgcG9ydCB3 aXRoIFZDUEkgd2lsbCByZW1haW4gYWxsb2NhdGVkIHVudGlsIGl0J3MgVkNQSSBpcworCSAqIHJl bGVhc2VkLCBubyB2ZXJpZmllZCByZWYgbmVlZGVkCisJICovCisKIAlwb3J0LT52Y3BpLm51bV9z bG90cyA9IDA7Ci0JZHJtX2RwX21zdF90b3BvbG9neV9wdXRfcG9ydChwb3J0KTsKIH0KIEVYUE9S VF9TWU1CT0woZHJtX2RwX21zdF9yZXNldF92Y3BpX3Nsb3RzKTsKIApAQCAtMzE2NSwxNiArMzE3 MCwxNyBAQCBFWFBPUlRfU1lNQk9MKGRybV9kcF9tc3RfcmVzZXRfdmNwaV9zbG90cyk7CiB2b2lk IGRybV9kcF9tc3RfZGVhbGxvY2F0ZV92Y3BpKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sb2d5X21n ciAqbWdyLAogCQkJCXN0cnVjdCBkcm1fZHBfbXN0X3BvcnQgKnBvcnQpCiB7Ci0JcG9ydCA9IGRy bV9kcF9tc3RfdG9wb2xvZ3lfZ2V0X3BvcnRfdmFsaWRhdGVkKG1nciwgcG9ydCk7Ci0JaWYgKCFw b3J0KQotCQlyZXR1cm47CisJLyoKKwkgKiBBIHBvcnQgd2l0aCBWQ1BJIHdpbGwgcmVtYWluIGFs bG9jYXRlZCB1bnRpbCBpdCdzIFZDUEkgaXMKKwkgKiByZWxlYXNlZCwgbm8gdmVyaWZpZWQgcmVm IG5lZWRlZAorCSAqLwogCiAJZHJtX2RwX21zdF9wdXRfcGF5bG9hZF9pZChtZ3IsIHBvcnQtPnZj cGkudmNwaSk7CiAJcG9ydC0+dmNwaS5udW1fc2xvdHMgPSAwOwogCXBvcnQtPnZjcGkucGJuID0g MDsKIAlwb3J0LT52Y3BpLmFsaWduZWRfcGJuID0gMDsKIAlwb3J0LT52Y3BpLnZjcGkgPSAwOwot CWRybV9kcF9tc3RfdG9wb2xvZ3lfcHV0X3BvcnQocG9ydCk7CisJZHJtX2RwX21zdF9wdXRfcG9y dF9tYWxsb2MocG9ydCk7CiB9CiBFWFBPUlRfU1lNQk9MKGRybV9kcF9tc3RfZGVhbGxvY2F0ZV92 Y3BpKTsKIAotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpOb3V2ZWF1IG1haWxpbmcgbGlzdApOb3V2ZWF1QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL25vdXZl YXUK