From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH i-g-t 03/12] i915/gem_ctx_create: Basic checks for constructor properties Date: Wed, 22 May 2019 12:37:03 +0100 Message-ID: <20190522113712.23512-3-chris@chris-wilson.co.uk> References: <20190522113712.23512-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190522113712.23512-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: igt-dev@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q2hlY2sgdGhhdCB0aGUgZXh0ZW5kZWQgY3JlYXRlIGludGVyZmFjZSBhY2NlcHRzIHNldHBhcmFt LgoKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ Ci0tLQogdGVzdHMvaTkxNS9nZW1fY3R4X2NyZWF0ZS5jIHwgMjI1ICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDIxMyBpbnNlcnRpb25zKCspLCAx MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9jdHhfY3JlYXRlLmMg Yi90ZXN0cy9pOTE1L2dlbV9jdHhfY3JlYXRlLmMKaW5kZXggYTY2NDA3MGRiLi45YjRmZGRiZTcg MTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX2N0eF9jcmVhdGUuYworKysgYi90ZXN0cy9pOTE1 L2dlbV9jdHhfY3JlYXRlLmMKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlIDx0aW1lLmg+CiAK ICNpbmNsdWRlICJpZ3RfcmFuZC5oIgorI2luY2x1ZGUgInN3X3N5bmMuaCIKIAogI2RlZmluZSBM T0NBTF9JOTE1X0VYRUNfQlNEX1NISUZUICAgICAgKDEzKQogI2RlZmluZSBMT0NBTF9JOTE1X0VY RUNfQlNEX01BU0sgICAgICAgKDMgPDwgTE9DQUxfSTkxNV9FWEVDX0JTRF9TSElGVCkKQEAgLTQ1 LDEyICs0NiwzMyBAQCBzdGF0aWMgdW5zaWduZWQgYWxsX25lbmdpbmU7CiBzdGF0aWMgdW5zaWdu ZWQgcHBndHRfZW5naW5lc1sxNl07CiBzdGF0aWMgdW5zaWduZWQgcHBndHRfbmVuZ2luZTsKIAot c3RhdGljIGludCBfX2dlbV9jb250ZXh0X2NyZWF0ZV9sb2NhbChpbnQgZmQsIHN0cnVjdCBkcm1f aTkxNV9nZW1fY29udGV4dF9jcmVhdGUgKmFyZykKK3N0YXRpYyBpbnQgY3JlYXRlX2lvY3RsKGlu dCBmZCwgc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X2NyZWF0ZSAqYXJnKQogewotCWludCBy ZXQgPSAwOwotCWlmIChkcm1Jb2N0bChmZCwgRFJNX0lPQ1RMX0k5MTVfR0VNX0NPTlRFWFRfQ1JF QVRFLCBhcmcpKQotCQlyZXQgPSAtZXJybm87Ci0JcmV0dXJuIHJldDsKKwlpbnQgZXJyOworCisJ ZXJyID0gMDsKKwlpZiAoaWd0X2lvY3RsKGZkLCBEUk1fSU9DVExfSTkxNV9HRU1fQ09OVEVYVF9D UkVBVEUsIGFyZykpIHsKKwkJZXJyID0gLWVycm5vOworCQlpZ3RfYXNzZXJ0KGVycik7CisJfQor CisJZXJybm8gPSAwOworCXJldHVybiBlcnI7Cit9CisKK3N0YXRpYyBpbnQgY3JlYXRlX2V4dF9p b2N0bChpbnQgaTkxNSwKKwkJCSAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2NvbnRleHRfY3JlYXRl X2V4dCAqYXJnKQoreworCWludCBlcnI7CisKKwllcnIgPSAwOworCWlmIChpZ3RfaW9jdGwoaTkx NSwgRFJNX0lPQ1RMX0k5MTVfR0VNX0NPTlRFWFRfQ1JFQVRFX0VYVCwgYXJnKSkgeworCQllcnIg PSAtZXJybm87CisJCWlndF9hc3N1bWUoZXJyKTsKKwl9CisKKwllcnJubyA9IDA7CisJcmV0dXJu IGVycjsKIH0KIAogc3RhdGljIGRvdWJsZSBlbGFwc2VkKGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAq c3RhcnQsCkBAIC0zMDgsNiArMzMwLDE4NyBAQCBzdGF0aWMgdm9pZCBtYXhpbXVtKGludCBmZCwg aW50IG5jcHVzLCB1bnNpZ25lZCBtb2RlKQogCWZyZWUoY29udGV4dHMpOwogfQogCitzdGF0aWMg dm9pZCBiYXNpY19leHRfcGFyYW0oaW50IGk5MTUpCit7CisJc3RydWN0IGRybV9pOTE1X2dlbV9j b250ZXh0X2NyZWF0ZV9leHRfc2V0cGFyYW0gZXh0ID0geworCQl7IC5uYW1lID0gSTkxNV9DT05U RVhUX0NSRUFURV9FWFRfU0VUUEFSQU0gfSwKKwl9OworCXN0cnVjdCBkcm1faTkxNV9nZW1fY29u dGV4dF9jcmVhdGVfZXh0IGNyZWF0ZSA9IHsKKwkJLmZsYWdzID0gSTkxNV9DT05URVhUX0NSRUFU RV9GTEFHU19VU0VfRVhURU5TSU9OUworCX07CisJc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0 X3BhcmFtIGdldDsKKworCWlndF9yZXF1aXJlKGNyZWF0ZV9leHRfaW9jdGwoaTkxNSwgJmNyZWF0 ZSkgPT0gMCk7CisJZ2VtX2NvbnRleHRfZGVzdHJveShpOTE1LCBjcmVhdGUuY3R4X2lkKTsKKwor CWNyZWF0ZS5leHRlbnNpb25zID0gLTF1bGw7CisJaWd0X2Fzc2VydF9lcShjcmVhdGVfZXh0X2lv Y3RsKGk5MTUsICZjcmVhdGUpLCAtRUZBVUxUKTsKKworCWNyZWF0ZS5leHRlbnNpb25zID0gdG9f dXNlcl9wb2ludGVyKCZleHQpOworCWlndF9hc3NlcnRfZXEoY3JlYXRlX2V4dF9pb2N0bChpOTE1 LCAmY3JlYXRlKSwgLUVJTlZBTCk7CisKKwlleHQucGFyYW0ucGFyYW0gPSBJOTE1X0NPTlRFWFRf UEFSQU1fUFJJT1JJVFk7CisJaWYgKGNyZWF0ZV9leHRfaW9jdGwoaTkxNSwgJmNyZWF0ZSkgIT0g LUVOT0RFVikgeworCQlnZW1fY29udGV4dF9kZXN0cm95KGk5MTUsIGNyZWF0ZS5jdHhfaWQpOwor CisJCWV4dC5iYXNlLm5leHRfZXh0ZW5zaW9uID0gLTF1bGw7CisJCWlndF9hc3NlcnRfZXEoY3Jl YXRlX2V4dF9pb2N0bChpOTE1LCAmY3JlYXRlKSwgLUVGQVVMVCk7CisJCWV4dC5iYXNlLm5leHRf ZXh0ZW5zaW9uID0gdG9fdXNlcl9wb2ludGVyKCZleHQpOworCQlpZ3RfYXNzZXJ0X2VxKGNyZWF0 ZV9leHRfaW9jdGwoaTkxNSwgJmNyZWF0ZSksIC1FMkJJRyk7CisJCWV4dC5iYXNlLm5leHRfZXh0 ZW5zaW9uID0gMDsKKworCQlleHQucGFyYW0udmFsdWUgPSAzMjsKKwkJaWd0X2Fzc2VydF9lcShj cmVhdGVfZXh0X2lvY3RsKGk5MTUsICZjcmVhdGUpLCAwKTsKKworCQltZW1zZXQoJmdldCwgMCwg c2l6ZW9mKGdldCkpOworCQlnZXQuY3R4X2lkID0gY3JlYXRlLmN0eF9pZDsKKwkJZ2V0LnBhcmFt ID0gSTkxNV9DT05URVhUX1BBUkFNX1BSSU9SSVRZOworCQlnZW1fY29udGV4dF9nZXRfcGFyYW0o aTkxNSwgJmdldCk7CisJCWlndF9hc3NlcnRfZXEoZ2V0LnZhbHVlLCBleHQucGFyYW0udmFsdWUp OworCisJCWdlbV9jb250ZXh0X2Rlc3Ryb3koaTkxNSwgY3JlYXRlLmN0eF9pZCk7CisJfQorfQor CitzdGF0aWMgdm9pZCBjaGVja19zaW5nbGVfdGltZWxpbmUoaW50IGk5MTUsIHVpbnQzMl90IGN0 eCwgaW50IG51bV9lbmdpbmVzKQoreworI2RlZmluZSBSQ1NfVElNRVNUQU1QICgweDIwMDAgKyAw eDM1OCkKKwljb25zdCBpbnQgZ2VuID0gaW50ZWxfZ2VuKGludGVsX2dldF9kcm1fZGV2aWQoaTkx NSkpOworCWNvbnN0IGludCBoYXNfNjRiaXRfcmVsb2MgPSBnZW4gPj0gODsKKwlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX2V4ZWNfb2JqZWN0MiByZXN1bHRzID0geyAuaGFuZGxlID0gZ2VtX2NyZWF0ZShp OTE1LCA0MDk2KSB9OworCWNvbnN0IHVpbnQzMl90IGJiZSA9IE1JX0JBVENIX0JVRkZFUl9FTkQ7 CisJaW50IHRpbWVsaW5lID0gc3dfc3luY190aW1lbGluZV9jcmVhdGUoKTsKKwl1aW50MzJfdCBs YXN0LCAqbWFwOworCisJeworCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyIGV4ZWNi dWYgPSB7CisJCQkuYnVmZmVyc19wdHIgPSB0b191c2VyX3BvaW50ZXIoJnJlc3VsdHMpLAorCQkJ LmJ1ZmZlcl9jb3VudCA9IDEsCisJCQkucnN2ZDEgPSBjdHgsCisJCX07CisJCWdlbV93cml0ZShp OTE1LCByZXN1bHRzLmhhbmRsZSwgMCwgJmJiZSwgc2l6ZW9mKGJiZSkpOworCQlnZW1fZXhlY2J1 ZihpOTE1LCAmZXhlY2J1Zik7CisJCXJlc3VsdHMuZmxhZ3MgPSBFWEVDX09CSkVDVF9QSU5ORUQ7 CisJfQorCisJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1fZW5naW5lczsgaSsrKSB7CisJCXN0cnVj dCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyIG9ialsyXSA9IHsKKwkJCXJlc3VsdHMsIC8qIHdy aXRlIGhhemFyZCBsaWVzISAqLworCQkJeyAuaGFuZGxlID0gZ2VtX2NyZWF0ZShpOTE1LCA0MDk2 KSB9LAorCQl9OworCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX2V4ZWNidWZmZXIyIGV4ZWNidWYgPSB7 CisJCQkuYnVmZmVyc19wdHIgPSB0b191c2VyX3BvaW50ZXIob2JqKSwKKwkJCS5idWZmZXJfY291 bnQgPSAyLAorCQkJLnJzdmQxID0gY3R4LAorCQkJLnJzdmQyID0gc3dfc3luY190aW1lbGluZV9j cmVhdGVfZmVuY2UodGltZWxpbmUsIG51bV9lbmdpbmVzIC0gaSksCisJCQkuZmxhZ3MgPSBpIHwg STkxNV9FWEVDX0ZFTkNFX0lOLAorCQl9OworCQl1aW50NjRfdCBvZmZzZXQgPSByZXN1bHRzLm9m ZnNldCArIDQgKiBpOworCQl1aW50MzJfdCAqY3M7CisJCWludCBqID0gMDsKKworCQljcyA9IGdl bV9tbWFwX19jcHUoaTkxNSwgb2JqWzFdLmhhbmRsZSwgMCwgNDA5NiwgUFJPVF9XUklURSk7CisK KwkJY3Nbal0gPSAweDI0IDw8IDIzIHwgMTsgLyogU1JNICovCisJCWlmIChoYXNfNjRiaXRfcmVs b2MpCisJCQljc1tqXSsrOworCQlqKys7CisJCWNzW2orK10gPSBSQ1NfVElNRVNUQU1QOworCQlj c1tqKytdID0gb2Zmc2V0OworCQlpZiAoaGFzXzY0Yml0X3JlbG9jKQorCQkJY3NbaisrXSA9IG9m ZnNldCA+PiAzMjsKKwkJY3NbaisrXSA9IE1JX0JBVENIX0JVRkZFUl9FTkQ7CisKKwkJbXVubWFw KGNzLCA0MDk2KTsKKworCQlnZW1fZXhlY2J1ZihpOTE1LCAmZXhlY2J1Zik7CisJCWdlbV9jbG9z ZShpOTE1LCBvYmpbMV0uaGFuZGxlKTsKKwkJY2xvc2UoZXhlY2J1Zi5yc3ZkMik7CisJfQorCWNs b3NlKHRpbWVsaW5lKTsKKwlnZW1fc3luYyhpOTE1LCByZXN1bHRzLmhhbmRsZSk7CisKKwltYXAg PSBnZW1fbW1hcF9fY3B1KGk5MTUsIHJlc3VsdHMuaGFuZGxlLCAwLCA0MDk2LCBQUk9UX1JFQUQp OworCWdlbV9zZXRfZG9tYWluKGk5MTUsIHJlc3VsdHMuaGFuZGxlLCBJOTE1X0dFTV9ET01BSU5f Q1BVLCAwKTsKKwlnZW1fY2xvc2UoaTkxNSwgcmVzdWx0cy5oYW5kbGUpOworCisJbGFzdCA9IG1h cFswXTsKKwlmb3IgKGludCBpID0gMTsgaSA8IG51bV9lbmdpbmVzOyBpKyspIHsKKwkJaWd0X2Fz c2VydF9mKChtYXBbaV0gLSBsYXN0KSA+IDAsCisJCQkgICAgICJFbmdpbmUgaW5zdGFuY2UgWyVk XSBleGVjdXRlZCB0b28gZWFybHk6IHRoaXM6JXgsIGxhc3Q6JXhcbiIsCisJCQkgICAgIGksIG1h cFtpXSwgbGFzdCk7CisJCWxhc3QgPSBtYXBbaV07CisJfQorCW11bm1hcChtYXAsIDQwOTYpOwor fQorCitzdGF0aWMgdm9pZCBpcmlzX3BpcGVsaW5lKGludCBpOTE1KQoreworI2lmZGVmIEk5MTVf REVGSU5FX0NPTlRFWFRfUEFSQU1fRU5HSU5FUworI2RlZmluZSBSQ1MwIHswLCAwfQorCUk5MTVf REVGSU5FX0NPTlRFWFRfUEFSQU1fRU5HSU5FUyhlbmdpbmVzLCAyKSA9IHsKKwkJLmVuZ2luZXMg PSB7IFJDUzAsIFJDUzAgfQorCX07CisJc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X2NyZWF0 ZV9leHRfc2V0cGFyYW0gcF9lbmdpbmVzID0geworCQkuYmFzZSA9IHsKKwkJCS5uYW1lID0gSTkx NV9DT05URVhUX0NSRUFURV9FWFRfU0VUUEFSQU0sCisJCQkubmV4dF9leHRlbnNpb24gPSAwLCAv KiBlbmQgb2YgY2hhaW4gKi8KKwkJfSwKKwkJLnBhcmFtID0geworCQkJLnBhcmFtID0gSTkxNV9D T05URVhUX1BBUkFNX0VOR0lORVMsCisJCQkudmFsdWUgPSB0b191c2VyX3BvaW50ZXIoJmVuZ2lu ZXMpLAorCQkJLnNpemUgPSBzaXplb2YoZW5naW5lcyksCisJCX0sCisJfTsKKwlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX2NvbnRleHRfY3JlYXRlX2V4dF9zZXRwYXJhbSBwX3JlY292ZXIgPSB7CisJCS5i YXNlID0geworCQkJLm5hbWUgPUk5MTVfQ09OVEVYVF9DUkVBVEVfRVhUX1NFVFBBUkFNLAorCQkJ Lm5leHRfZXh0ZW5zaW9uID0gdG9fdXNlcl9wb2ludGVyKCZwX2VuZ2luZXMpLAorCQl9LAorCQku cGFyYW0gPSB7CisJCQkucGFyYW0gPSBJOTE1X0NPTlRFWFRfUEFSQU1fUkVDT1ZFUkFCTEUsCisJ CQkudmFsdWUgPSAwLAorCQl9LAorCX07CisJc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X2Ny ZWF0ZV9leHRfc2V0cGFyYW0gcF9wcmlvID0geworCQkuYmFzZSA9IHsKKwkJCS5uYW1lID1JOTE1 X0NPTlRFWFRfQ1JFQVRFX0VYVF9TRVRQQVJBTSwKKwkJCS5uZXh0X2V4dGVuc2lvbiA9IHRvX3Vz ZXJfcG9pbnRlcigmcF9yZWNvdmVyKSwKKwkJfSwKKwkJLnBhcmFtID0geworCQkJLnBhcmFtID0g STkxNV9DT05URVhUX1BBUkFNX1BSSU9SSVRZLAorCQkJLnZhbHVlID0gNzY4LAorCQl9LAorCX07 CisJc3RydWN0IGRybV9pOTE1X2dlbV9jb250ZXh0X2NyZWF0ZV9leHQgY3JlYXRlID0geworCQku ZmxhZ3MgPSAoSTkxNV9DT05URVhUX0NSRUFURV9GTEFHU19TSU5HTEVfVElNRUxJTkUgfAorCQkJ ICBJOTE1X0NPTlRFWFRfQ1JFQVRFX0ZMQUdTX1VTRV9FWFRFTlNJT05TKSwKKwl9OworCXN0cnVj dCBkcm1faTkxNV9nZW1fY29udGV4dF9wYXJhbSBnZXQ7CisKKwlpZ3RfcmVxdWlyZShjcmVhdGVf ZXh0X2lvY3RsKGk5MTUsICZjcmVhdGUpID09IDApOworCisJY3JlYXRlLmV4dGVuc2lvbnMgPSB0 b191c2VyX3BvaW50ZXIoJnBfcHJpbyk7CisJaWd0X2Fzc2VydF9lcShjcmVhdGVfZXh0X2lvY3Rs KGk5MTUsICZjcmVhdGUpLCAwKTsKKworCW1lbXNldCgmZ2V0LCAwLCBzaXplb2YoZ2V0KSk7CisJ Z2V0LmN0eF9pZCA9IGNyZWF0ZS5jdHhfaWQ7CisJZ2V0LnBhcmFtID0gSTkxNV9DT05URVhUX1BB UkFNX1BSSU9SSVRZOworCWdlbV9jb250ZXh0X2dldF9wYXJhbShpOTE1LCAmZ2V0KTsKKwlpZ3Rf YXNzZXJ0X2VxKGdldC52YWx1ZSwgcF9wcmlvLnBhcmFtLnZhbHVlKTsKKworCW1lbXNldCgmZ2V0 LCAwLCBzaXplb2YoZ2V0KSk7CisJZ2V0LmN0eF9pZCA9IGNyZWF0ZS5jdHhfaWQ7CisJZ2V0LnBh cmFtID0gSTkxNV9DT05URVhUX1BBUkFNX1JFQ09WRVJBQkxFOworCWdlbV9jb250ZXh0X2dldF9w YXJhbShpOTE1LCAmZ2V0KTsKKwlpZ3RfYXNzZXJ0X2VxKGdldC52YWx1ZSwgMCk7CisKKwljaGVj a19zaW5nbGVfdGltZWxpbmUoaTkxNSwgY3JlYXRlLmN0eF9pZCwgMik7CisKKwlnZW1fY29udGV4 dF9kZXN0cm95KGk5MTUsIGNyZWF0ZS5jdHhfaWQpOworI2VuZGlmIC8qIEk5MTVfREVGSU5FX0NP TlRFWFRfUEFSQU1fRU5HSU5FUyAqLworfQorCiBpZ3RfbWFpbgogewogCWNvbnN0IGludCBuY3B1 cyA9IHN5c2NvbmYoX1NDX05QUk9DRVNTT1JTX09OTE4pOwpAQCAtMzQwLDE3ICs1NDMsMTUgQEAg aWd0X21haW4KIAkJbWVtc2V0KCZjcmVhdGUsIDAsIHNpemVvZihjcmVhdGUpKTsKIAkJY3JlYXRl LmN0eF9pZCA9IHJhbmQoKTsKIAkJY3JlYXRlLnBhZCA9IDA7Ci0JCWlndF9hc3NlcnRfZXEoX19n ZW1fY29udGV4dF9jcmVhdGVfbG9jYWwoZmQsICZjcmVhdGUpLCAwKTsKKwkJaWd0X2Fzc2VydF9l cShjcmVhdGVfaW9jdGwoZmQsICZjcmVhdGUpLCAwKTsKIAkJaWd0X2Fzc2VydChjcmVhdGUuY3R4 X2lkICE9IDApOwogCQlnZW1fY29udGV4dF9kZXN0cm95KGZkLCBjcmVhdGUuY3R4X2lkKTsKIAl9 CiAKLQlpZ3Rfc3VidGVzdCgiaW52YWxpZC1wYWQiKSB7Ci0JCW1lbXNldCgmY3JlYXRlLCAwLCBz aXplb2YoY3JlYXRlKSk7Ci0JCWNyZWF0ZS5jdHhfaWQgPSByYW5kKCk7Ci0JCWNyZWF0ZS5wYWQg PSAxOwotCQlpZ3RfYXNzZXJ0X2VxKF9fZ2VtX2NvbnRleHRfY3JlYXRlX2xvY2FsKGZkLCAmY3Jl YXRlKSwgLUVJTlZBTCk7Ci0JfQorCWlndF9zdWJ0ZXN0KCJleHQtcGFyYW0iKQorCQliYXNpY19l eHRfcGFyYW0oZmQpOworCWlndF9zdWJ0ZXN0KCJpcmlzLXBpcGVsaW5lIikKKwkJaXJpc19waXBl bGluZShmZCk7CiAKIAlpZ3Rfc3VidGVzdCgibWF4aW11bS1tZW0iKQogCQltYXhpbXVtKGZkLCBu Y3B1cywgQ0hFQ0tfUkFNKTsKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4