From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Carpenter Subject: [patch 1/4] drm/amdgpu: unwind properly in amdgpu_cs_parser_init() Date: Wed, 23 Sep 2015 13:59:28 +0300 Message-ID: <20150923105928.GA16158@mwanda> References: <13E61BCA7787794E89BDF39B8DE40C024D12E9F63F@ioaexchange.ioactive.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from userp1040.oracle.com (userp1040.oracle.com [156.151.31.81]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8AF276E0A2 for ; Wed, 23 Sep 2015 04:00:04 -0700 (PDT) Content-Disposition: inline In-Reply-To: <13E61BCA7787794E89BDF39B8DE40C024D12E9F63F@ioaexchange.ioactive.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: David Airlie , Ilja Van Sprundel Cc: security@kernel.org, Marek =?utf-8?B?T2zFocOhaw==?= , dri-devel@lists.freedesktop.org, Alex Deucher , Christian =?iso-8859-1?Q?K=F6nig?= , "monk.liu" List-Id: dri-devel@lists.freedesktop.org VGhlIGFtZGdwdV9jc19wYXJzZXJfaW5pdCgpIGZ1bmN0aW9uIGRvZXNuJ3QgY2xlYW4gdXAgYWZ0 ZXIgaXRzZWxmIGJ1dAppbnN0ZWFkIHRoZSBjYWxsZXIgdXNlcyBhIGZyZWUgZXZlcnl0aGluZyBm dW5jdGlvbiBhbWRncHVfY3NfcGFyc2VyX2ZpbmkoKQpvbiBmYWlsdXJlLiAgVGhpcyBzdHlsZSBv ZiBlcnJvciBoYW5kbGluZyBpcyBvZnRlbiBidWdneS4gIEluIHRoaXMKZXhhbXBsZSwgd2UgY2Fs bCAiZHJtX2ZyZWVfbGFyZ2UocGFyc2VyLT5jaHVua3NbaV0ua2RhdGEpOyIgd2hlbiBpdCBpcwph biB1bmludGlhbGl6ZWQgcG9pbnRlciBvciB3aGVuICJwYXJzZXItPmNodW5rcyIgaXMgTlVMTC4K CkkgZml4ZWQgdGhpcyBidWcgYnkgYWRkaW5nIHVud2luZCBjb2RlIHNvIHRoYXQgaXQgZnJlZXMg ZXZlcnl0aGluZyB0aGF0Cml0IGFsbG9jYXRlcy4KCkkgYWxzbyBtb2RlIHNvbWUgb3RoZXIgdmVy eSBtaW5vciBjaGFuZ2VzOgoxKSBSZW5hbWVkICJyIiB0byAicmV0Ii4KMikgTW92ZWQgdGhlIGNo dW5rX2FycmF5IGFsbG9jYXRpb24gdG8gdGhlIHN0YXJ0IG9mIHRoZSBmdW5jdGlvbi4KMykgUmVt b3ZlZCBzb21lIGluaXRpYWxpemVycyB3aGljaCBhcmUgbm8gbG9uZ2VyIG5lZWRlZC4KClJlcG9y dGVkLWJ5OiBJbGphIFZhbiBTcHJ1bmRlbCA8aXZhbnNwcnVuZGVsQGlvYWN0aXZlLmNvbT4KU2ln bmVkLW9mZi1ieTogRGFuIENhcnBlbnRlciA8ZGFuLmNhcnBlbnRlckBvcmFjbGUuY29tPgoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9jcy5jIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKaW5kZXggM2IzNTVhZS4uYWJiMjU3ZCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2NzLmMKQEAgLTE1NCw0MiArMTU0LDQx IEBAIGludCBhbWRncHVfY3NfcGFyc2VyX2luaXQoc3RydWN0IGFtZGdwdV9jc19wYXJzZXIgKnAs IHZvaWQgKmRhdGEpCiB7CiAJdW5pb24gZHJtX2FtZGdwdV9jcyAqY3MgPSBkYXRhOwogCXVpbnQ2 NF90ICpjaHVua19hcnJheV91c2VyOwotCXVpbnQ2NF90ICpjaHVua19hcnJheSA9IE5VTEw7CisJ dWludDY0X3QgKmNodW5rX2FycmF5OwogCXN0cnVjdCBhbWRncHVfZnByaXYgKmZwcml2ID0gcC0+ ZmlscC0+ZHJpdmVyX3ByaXY7CiAJdW5zaWduZWQgc2l6ZSwgaTsKLQlpbnQgciA9IDA7CisJaW50 IHJldDsKIAotCWlmICghY3MtPmluLm51bV9jaHVua3MpCi0JCWdvdG8gb3V0OworCWlmIChjcy0+ aW4ubnVtX2NodW5rcyA9PSAwKQorCQlyZXR1cm4gMDsKKworCWNodW5rX2FycmF5ID0ga21hbGxv Y19hcnJheShjcy0+aW4ubnVtX2NodW5rcywgc2l6ZW9mKHVpbnQ2NF90KSwgR0ZQX0tFUk5FTCk7 CisJaWYgKCFjaHVua19hcnJheSkKKwkJcmV0dXJuIC1FTk9NRU07CiAKIAlwLT5jdHggPSBhbWRn cHVfY3R4X2dldChmcHJpdiwgY3MtPmluLmN0eF9pZCk7CiAJaWYgKCFwLT5jdHgpIHsKLQkJciA9 IC1FSU5WQUw7Ci0JCWdvdG8gb3V0OworCQlyZXQgPSAtRUlOVkFMOworCQlnb3RvIGZyZWVfY2h1 bms7CiAJfQorCiAJcC0+Ym9fbGlzdCA9IGFtZGdwdV9ib19saXN0X2dldChmcHJpdiwgY3MtPmlu LmJvX2xpc3RfaGFuZGxlKTsKIAogCS8qIGdldCBjaHVua3MgKi8KIAlJTklUX0xJU1RfSEVBRCgm cC0+dmFsaWRhdGVkKTsKLQljaHVua19hcnJheSA9IGttYWxsb2NfYXJyYXkoY3MtPmluLm51bV9j aHVua3MsIHNpemVvZih1aW50NjRfdCksIEdGUF9LRVJORUwpOwotCWlmIChjaHVua19hcnJheSA9 PSBOVUxMKSB7Ci0JCXIgPSAtRU5PTUVNOwotCQlnb3RvIG91dDsKLQl9Ci0KIAljaHVua19hcnJh eV91c2VyID0gKHVpbnQ2NF90IF9fdXNlciAqKShjcy0+aW4uY2h1bmtzKTsKIAlpZiAoY29weV9m cm9tX3VzZXIoY2h1bmtfYXJyYXksIGNodW5rX2FycmF5X3VzZXIsCiAJCQkgICBzaXplb2YodWlu dDY0X3QpKmNzLT5pbi5udW1fY2h1bmtzKSkgewotCQlyID0gLUVGQVVMVDsKLQkJZ290byBvdXQ7 CisJCXJldCA9IC1FRkFVTFQ7CisJCWdvdG8gcHV0X2JvX2xpc3Q7CiAJfQogCiAJcC0+bmNodW5r cyA9IGNzLT5pbi5udW1fY2h1bmtzOwogCXAtPmNodW5rcyA9IGttYWxsb2NfYXJyYXkocC0+bmNo dW5rcywgc2l6ZW9mKHN0cnVjdCBhbWRncHVfY3NfY2h1bmspLAogCQkJICAgIEdGUF9LRVJORUwp OwotCWlmIChwLT5jaHVua3MgPT0gTlVMTCkgewotCQlyID0gLUVOT01FTTsKLQkJZ290byBvdXQ7 CisJaWYgKCFwLT5jaHVua3MpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBwdXRfYm9fbGlz dDsKIAl9CiAKIAlmb3IgKGkgPSAwOyBpIDwgcC0+bmNodW5rczsgaSsrKSB7CkBAIC0yMDAsOCAr MTk5LDkgQEAgaW50IGFtZGdwdV9jc19wYXJzZXJfaW5pdChzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNl ciAqcCwgdm9pZCAqZGF0YSkKIAkJY2h1bmtfcHRyID0gKHZvaWQgX191c2VyICopY2h1bmtfYXJy YXlbaV07CiAJCWlmIChjb3B5X2Zyb21fdXNlcigmdXNlcl9jaHVuaywgY2h1bmtfcHRyLAogCQkJ CSAgICAgICBzaXplb2Yoc3RydWN0IGRybV9hbWRncHVfY3NfY2h1bmspKSkgewotCQkJciA9IC1F RkFVTFQ7Ci0JCQlnb3RvIG91dDsKKwkJCXJldCA9IC1FRkFVTFQ7CisJCQlpLS07CisJCQlnb3Rv IGZyZWVfcGFydGlhbF9rZGF0YTsKIAkJfQogCQlwLT5jaHVua3NbaV0uY2h1bmtfaWQgPSB1c2Vy X2NodW5rLmNodW5rX2lkOwogCQlwLT5jaHVua3NbaV0ubGVuZ3RoX2R3ID0gdXNlcl9jaHVuay5s ZW5ndGhfZHc7CkBAIC0yMTIsMTMgKzIxMiwxNCBAQCBpbnQgYW1kZ3B1X2NzX3BhcnNlcl9pbml0 KHN0cnVjdCBhbWRncHVfY3NfcGFyc2VyICpwLCB2b2lkICpkYXRhKQogCiAJCXAtPmNodW5rc1tp XS5rZGF0YSA9IGRybV9tYWxsb2NfYWIoc2l6ZSwgc2l6ZW9mKHVpbnQzMl90KSk7CiAJCWlmIChw LT5jaHVua3NbaV0ua2RhdGEgPT0gTlVMTCkgewotCQkJciA9IC1FTk9NRU07Ci0JCQlnb3RvIG91 dDsKKwkJCXJldCA9IC1FTk9NRU07CisJCQlpLS07CisJCQlnb3RvIGZyZWVfcGFydGlhbF9rZGF0 YTsKIAkJfQogCQlzaXplICo9IHNpemVvZih1aW50MzJfdCk7CiAJCWlmIChjb3B5X2Zyb21fdXNl cihwLT5jaHVua3NbaV0ua2RhdGEsIGNkYXRhLCBzaXplKSkgewotCQkJciA9IC1FRkFVTFQ7Ci0J CQlnb3RvIG91dDsKKwkJCXJldCA9IC1FRkFVTFQ7CisJCQlnb3RvIGZyZWVfcGFydGlhbF9rZGF0 YTsKIAkJfQogCiAJCXN3aXRjaCAocC0+Y2h1bmtzW2ldLmNodW5rX2lkKSB7CkBAIC0yMzgsMTUg KzIzOSwxNSBAQCBpbnQgYW1kZ3B1X2NzX3BhcnNlcl9pbml0KHN0cnVjdCBhbWRncHVfY3NfcGFy c2VyICpwLCB2b2lkICpkYXRhKQogCQkJCWdvYmogPSBkcm1fZ2VtX29iamVjdF9sb29rdXAocC0+ YWRldi0+ZGRldiwKIAkJCQkJCQkgICAgIHAtPmZpbHAsIGhhbmRsZSk7CiAJCQkJaWYgKGdvYmog PT0gTlVMTCkgewotCQkJCQlyID0gLUVJTlZBTDsKLQkJCQkJZ290byBvdXQ7CisJCQkJCXJldCA9 IC1FSU5WQUw7CisJCQkJCWdvdG8gZnJlZV9wYXJ0aWFsX2tkYXRhOwogCQkJCX0KIAogCQkJCXAt PnVmLmJvID0gZ2VtX3RvX2FtZGdwdV9ibyhnb2JqKTsKIAkJCQlwLT51Zi5vZmZzZXQgPSBmZW5j ZV9kYXRhLT5vZmZzZXQ7CiAJCQl9IGVsc2UgewotCQkJCXIgPSAtRUlOVkFMOwotCQkJCWdvdG8g b3V0OworCQkJCXJldCA9IC1FSU5WQUw7CisJCQkJZ290byBmcmVlX3BhcnRpYWxfa2RhdGE7CiAJ CQl9CiAJCQlicmVhazsKIApAQCAtMjU0LDE5ICsyNTUsMzUgQEAgaW50IGFtZGdwdV9jc19wYXJz ZXJfaW5pdChzdHJ1Y3QgYW1kZ3B1X2NzX3BhcnNlciAqcCwgdm9pZCAqZGF0YSkKIAkJCWJyZWFr OwogCiAJCWRlZmF1bHQ6Ci0JCQlyID0gLUVJTlZBTDsKLQkJCWdvdG8gb3V0OworCQkJcmV0ID0g LUVJTlZBTDsKKwkJCWdvdG8gZnJlZV9wYXJ0aWFsX2tkYXRhOwogCQl9CiAJfQogCiAKIAlwLT5p YnMgPSBrY2FsbG9jKHAtPm51bV9pYnMsIHNpemVvZihzdHJ1Y3QgYW1kZ3B1X2liKSwgR0ZQX0tF Uk5FTCk7Ci0JaWYgKCFwLT5pYnMpCi0JCXIgPSAtRU5PTUVNOworCWlmICghcC0+aWJzKSB7CisJ CXJldCA9IC1FTk9NRU07CisJCWdvdG8gZnJlZV9hbGxfa2RhdGE7CisJfQogCi1vdXQ6CiAJa2Zy ZWUoY2h1bmtfYXJyYXkpOwotCXJldHVybiByOworCXJldHVybiAwOworCitmcmVlX2FsbF9rZGF0 YToKKwlpID0gcC0+bmNodW5rcyAtIDE7CitmcmVlX3BhcnRpYWxfa2RhdGE6CisJZm9yICg7IGkg Pj0gMDsgaS0tKQorCQlkcm1fZnJlZV9sYXJnZShwLT5jaHVua3NbaV0ua2RhdGEpOworCWtmcmVl KHAtPmNodW5rcyk7CitwdXRfYm9fbGlzdDoKKwlpZiAocC0+Ym9fbGlzdCkKKwkJYW1kZ3B1X2Jv X2xpc3RfcHV0KHAtPmJvX2xpc3QpOworCWFtZGdwdV9jdHhfcHV0KHAtPmN0eCk7CitmcmVlX2No dW5rOgorCWtmcmVlKGNodW5rX2FycmF5KTsKKworCXJldHVybiByZXQ7CiB9CiAKIC8qIFJldHVy bnMgaG93IG1hbnkgYnl0ZXMgVFRNIGNhbiBtb3ZlIHBlciBJQi4KQEAgLTgwNCw3ICs4MjEsNyBA QCBpbnQgYW1kZ3B1X2NzX2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEs IHN0cnVjdCBkcm1fZmlsZSAqZmlscCkKIAlyID0gYW1kZ3B1X2NzX3BhcnNlcl9pbml0KHBhcnNl ciwgZGF0YSk7CiAJaWYgKHIpIHsKIAkJRFJNX0VSUk9SKCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBw YXJzZXIgIVxuIik7Ci0JCWFtZGdwdV9jc19wYXJzZXJfZmluaShwYXJzZXIsIHIsIGZhbHNlKTsK KwkJa2ZyZWUocGFyc2VyKTsKIAkJdXBfcmVhZCgmYWRldi0+ZXhjbHVzaXZlX2xvY2spOwogCQly ID0gYW1kZ3B1X2NzX2hhbmRsZV9sb2NrdXAoYWRldiwgcik7CiAJCXJldHVybiByOwpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=