From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH v4 10/38] drm: kselftest for drm_mm_insert_node() Date: Thu, 22 Dec 2016 08:36:13 +0000 Message-ID: <20161222083641.2691-11-chris@chris-wilson.co.uk> References: <20161222083641.2691-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: <20161222083641.2691-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RXhlcmNpc2UgZHJtX21tX2luc2VydF9ub2RlKCksIGNoZWNrIHRoYXQgd2UgY2FuJ3Qgb3ZlcmZp bGwgYSByYW5nZSBhbmQKdGhhdCB0aGUgbGlzdHMgYXJlIGNvcnJlY3QgYWZ0ZXIgcmVzZXJ2aW5n L3JlbW92aW5nLgoKdjI6IEV4dHJhY3QgaGVscGVycyBmb3IgdGhlIHJlcGVhdGVkIHRlc3RzCnYz OiBJdGVyYXRlIG92ZXIgYWxsIGFsbG9jYXRpb24gZmxhZ3MKClNpZ25lZC1vZmYtYnk6IENocmlz IFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpSZXZpZXdlZC1ieTogSm9vbmFzIExh aHRpbmVuIDxqb29uYXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1 L2RybS9zZWxmdGVzdHMvZHJtX21tX3NlbGZ0ZXN0cy5oIHwgICAxICsKIGRyaXZlcnMvZ3B1L2Ry bS9zZWxmdGVzdHMvdGVzdC1kcm1fbW0uYyAgICAgIHwgMjM0ICsrKysrKysrKysrKysrKysrKysr KysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAyMzUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvZHJtX21tX3NlbGZ0ZXN0cy5oIGIvZHJpdmVycy9n cHUvZHJtL3NlbGZ0ZXN0cy9kcm1fbW1fc2VsZnRlc3RzLmgKaW5kZXggNjkzZDg1Njc3ZTdmLi43 MjdjNmQ3MjU1ZTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvZHJtX21t X3NlbGZ0ZXN0cy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9zZWxmdGVzdHMvZHJtX21tX3NlbGZ0 ZXN0cy5oCkBAIC05LDMgKzksNCBAQCBzZWxmdGVzdChzYW5pdHljaGVjaywgaWd0X3Nhbml0eWNo ZWNrKSAvKiBrZWVwIGZpcnN0IChzZWxmY2hlY2sgZm9yIGlndCkgKi8KIHNlbGZ0ZXN0KGluaXQs IGlndF9pbml0KQogc2VsZnRlc3QoZGVidWcsIGlndF9kZWJ1ZykKIHNlbGZ0ZXN0KHJlc2VydmUs IGlndF9yZXNlcnZlKQorc2VsZnRlc3QoaW5zZXJ0LCBpZ3RfaW5zZXJ0KQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy90ZXN0LWRybV9tbS5jIGIvZHJpdmVycy9ncHUvZHJt L3NlbGZ0ZXN0cy90ZXN0LWRybV9tbS5jCmluZGV4IDc4OWE4MTBkNjZhYS4uZmViNTk4NWFiZGMy IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL3Rlc3QtZHJtX21tLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy90ZXN0LWRybV9tbS5jCkBAIC0yMSw2ICsyMSwy MyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHJhbmRvbV9zZWVkOwogc3RhdGljIHVuc2lnbmVkIGlu dCBtYXhfaXRlcmF0aW9ucyA9IDgxOTI7CiBzdGF0aWMgdW5zaWduZWQgaW50IG1heF9wcmltZSA9 IDEyODsKIAorZW51bSB7CisJREVGQVVMVCwKKwlUT1BET1dOLAorCUJFU1QsCit9OworCitzdGF0 aWMgY29uc3Qgc3RydWN0IGluc2VydF9tb2RlIHsKKwljb25zdCBjaGFyICpuYW1lOworCXVuc2ln bmVkIGludCBzZWFyY2hfZmxhZ3M7CisJdW5zaWduZWQgaW50IGNyZWF0ZV9mbGFnczsKK30gaW5z ZXJ0X21vZGVzW10gPSB7CisJW0RFRkFVTFRdID0geyAiZGVmYXVsdCIsIERSTV9NTV9TRUFSQ0hf REVGQVVMVCwgRFJNX01NX0NSRUFURV9ERUZBVUxUIH0sCisJW1RPUERPV05dID0geyAidG9wLWRv d24iLCBEUk1fTU1fU0VBUkNIX0JFTE9XLCBEUk1fTU1fQ1JFQVRFX1RPUCB9LAorCVtCRVNUXSA9 IHsgImJlc3QiLCBEUk1fTU1fU0VBUkNIX0JFU1QsIERSTV9NTV9DUkVBVEVfREVGQVVMVCB9LAor CXt9Cit9OworCiBzdGF0aWMgaW50IGlndF9zYW5pdHljaGVjayh2b2lkICppZ25vcmVkKQogewog CXByX2luZm8oIiVzIC0gb2shXG4iLCBfX2Z1bmNfXyk7CkBAIC0xMzEsNiArMTQ4LDQ4IEBAIHN0 YXRpYyBib29sIGFzc2VydF9jb250aW51b3VzKGNvbnN0IHN0cnVjdCBkcm1fbW0gKm1tLCB1NjQg c2l6ZSkKIAlyZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIHU2NCBtaXNhbGlnbm1lbnQoc3RydWN0 IGRybV9tbV9ub2RlICpub2RlLCB1NjQgYWxpZ25tZW50KQoreworCXU2NCByZW07CisKKwlpZiAo IWFsaWdubWVudCkKKwkJcmV0dXJuIDA7CisKKwlkaXY2NF91NjRfcmVtKG5vZGUtPnN0YXJ0LCBh bGlnbm1lbnQsICZyZW0pOworCXJldHVybiByZW07Cit9CisKK3N0YXRpYyBib29sIGFzc2VydF9u b2RlKHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSwgc3RydWN0IGRybV9tbSAqbW0sCisJCQl1NjQg c2l6ZSwgdTY0IGFsaWdubWVudCwgdW5zaWduZWQgbG9uZyBjb2xvcikKK3sKKwlib29sIG9rID0g dHJ1ZTsKKworCWlmICghZHJtX21tX25vZGVfYWxsb2NhdGVkKG5vZGUpIHx8IG5vZGUtPm1tICE9 IG1tKSB7CisJCXByX2Vycigibm9kZSBub3QgYWxsb2NhdGVkXG4iKTsKKwkJb2sgPSBmYWxzZTsK Kwl9CisKKwlpZiAobm9kZS0+c2l6ZSAhPSBzaXplKSB7CisJCXByX2Vycigibm9kZSBoYXMgd3Jv bmcgc2l6ZSwgZm91bmQgJWxsdSwgZXhwZWN0ZWQgJWxsdVxuIiwKKwkJICAgICAgIG5vZGUtPnNp emUsIHNpemUpOworCQlvayA9IGZhbHNlOworCX0KKworCWlmIChtaXNhbGlnbm1lbnQobm9kZSwg YWxpZ25tZW50KSkgeworCQlwcl9lcnIoIm5vZGUgaXMgbWlzYWxpbmdlZCwgc3RhcnQgJWxseCBy ZW0gJWxsdSwgZXhwZWN0ZWQgYWxpZ25tZW50ICVsbHVcbiIsCisJCSAgICAgICBub2RlLT5zdGFy dCwgbWlzYWxpZ25tZW50KG5vZGUsIGFsaWdubWVudCksIGFsaWdubWVudCk7CisJCW9rID0gZmFs c2U7CisJfQorCisJaWYgKG5vZGUtPmNvbG9yICE9IGNvbG9yKSB7CisJCXByX2Vycigibm9kZSBo YXMgd3JvbmcgY29sb3IsIGZvdW5kICVsdSwgZXhwZWN0ZWQgJWx1XG4iLAorCQkgICAgICAgbm9k ZS0+Y29sb3IsIGNvbG9yKTsKKwkJb2sgPSBmYWxzZTsKKwl9CisKKwlyZXR1cm4gb2s7Cit9CisK IHN0YXRpYyBpbnQgaWd0X2luaXQodm9pZCAqaWdub3JlZCkKIHsKIAljb25zdCB1bnNpZ25lZCBp bnQgc2l6ZSA9IDQwOTY7CkBAIC00NTEsNiArNTEwLDE4MSBAQCBzdGF0aWMgaW50IGlndF9yZXNl cnZlKHZvaWQgKmlnbm9yZWQpCiAJcmV0dXJuIDA7CiB9CiAKK3N0YXRpYyBib29sIGV4cGVjdF9p bnNlcnQoc3RydWN0IGRybV9tbSAqbW0sIHN0cnVjdCBkcm1fbW1fbm9kZSAqbm9kZSwKKwkJCSAg dTY0IHNpemUsIHU2NCBhbGlnbm1lbnQsIHVuc2lnbmVkIGxvbmcgY29sb3IsCisJCQkgIGNvbnN0 IHN0cnVjdCBpbnNlcnRfbW9kZSAqbW9kZSkKK3sKKwlpbnQgZXJyOworCisJZXJyID0gZHJtX21t X2luc2VydF9ub2RlX2dlbmVyaWMobW0sIG5vZGUsCisJCQkJCSBzaXplLCBhbGlnbm1lbnQsIGNv bG9yLAorCQkJCQkgbW9kZS0+c2VhcmNoX2ZsYWdzLAorCQkJCQkgbW9kZS0+Y3JlYXRlX2ZsYWdz KTsKKwlpZiAoZXJyKSB7CisJCXByX2VycigiaW5zZXJ0IChzaXplPSVsbHUsIGFsaWdubWVudD0l bGx1LCBjb2xvcj0lbHUsIG1vZGU9JXMpIGZhaWxlZCB3aXRoIGVycj0lZFxuIiwKKwkJICAgICAg IHNpemUsIGFsaWdubWVudCwgY29sb3IsIG1vZGUtPm5hbWUsIGVycik7CisJCXJldHVybiBmYWxz ZTsKKwl9CisKKwlpZiAoIWFzc2VydF9ub2RlKG5vZGUsIG1tLCBzaXplLCBhbGlnbm1lbnQsIGNv bG9yKSkgeworCQlkcm1fbW1fcmVtb3ZlX25vZGUobm9kZSk7CisJCXJldHVybiBmYWxzZTsKKwl9 CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIGJvb2wgZXhwZWN0X2luc2VydF9mYWlsKHN0 cnVjdCBkcm1fbW0gKm1tLCB1NjQgc2l6ZSkKK3sKKwlzdHJ1Y3QgZHJtX21tX25vZGUgdG1wID0g e307CisJaW50IGVycjsKKworCWVyciA9IGRybV9tbV9pbnNlcnRfbm9kZShtbSwgJnRtcCwgc2l6 ZSwgMCwgRFJNX01NX1NFQVJDSF9ERUZBVUxUKTsKKwlpZiAobGlrZWx5KGVyciA9PSAtRU5PU1BD KSkKKwkJcmV0dXJuIHRydWU7CisKKwlpZiAoIWVycikgeworCQlwcl9lcnIoImltcG9zc2libGUg aW5zZXJ0IHN1Y2NlZWRlZCwgbm9kZSAlbGx1ICsgJWxsdVxuIiwKKwkJICAgICAgIHRtcC5zdGFy dCwgdG1wLnNpemUpOworCQlkcm1fbW1fcmVtb3ZlX25vZGUoJnRtcCk7CisJfSBlbHNlIHsKKwkJ cHJfZXJyKCJpbXBvc3NpYmxlIGluc2VydCBmYWlsZWQgd2l0aCB3cm9uZyBlcnJvciAlZCBbZXhw ZWN0ZWQgJWRdLCBzaXplICVsbHVcbiIsCisJCSAgICAgICBlcnIsIC1FTk9TUEMsIHNpemUpOwor CX0KKwlyZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBpbnQgX19pZ3RfaW5zZXJ0KHVuc2lnbmVk IGludCBjb3VudCwgdTY0IHNpemUpCit7CisJRFJNX1JORF9TVEFURShwcm5nLCByYW5kb21fc2Vl ZCk7CisJY29uc3Qgc3RydWN0IGluc2VydF9tb2RlICptb2RlOworCXN0cnVjdCBkcm1fbW0gbW07 CisJc3RydWN0IGRybV9tbV9ub2RlICpub2RlcywgKm5vZGUsICpuZXh0OworCXVuc2lnbmVkIGlu dCAqb3JkZXIsIG4sIG0sIG8gPSAwOworCWludCByZXQ7CisKKwkvKiBGaWxsIGEgcmFuZ2Ugd2l0 aCBsb3RzIG9mIG5vZGVzLCBjaGVjayBpdCBkb2Vzbid0IGZhaWwgdG9vIGVhcmx5ICovCisKKwlE Uk1fTU1fQlVHX09OKCFjb3VudCk7CisJRFJNX01NX0JVR19PTighc2l6ZSk7CisKKwlyZXQgPSAt RU5PTUVNOworCW5vZGVzID0gdnphbGxvYyhjb3VudCAqIHNpemVvZigqbm9kZXMpKTsKKwlpZiAo IW5vZGVzKQorCQlnb3RvIGVycjsKKworCW9yZGVyID0gZHJtX3JhbmRvbV9vcmRlcihjb3VudCwg JnBybmcpOworCWlmICghb3JkZXIpCisJCWdvdG8gZXJyX25vZGVzOworCisJcmV0ID0gLUVJTlZB TDsKKwlkcm1fbW1faW5pdCgmbW0sIDAsIGNvdW50ICogc2l6ZSk7CisKKwlmb3IgKG1vZGUgPSBp bnNlcnRfbW9kZXM7IG1vZGUtPm5hbWU7IG1vZGUrKykgeworCQlmb3IgKG4gPSAwOyBuIDwgY291 bnQ7IG4rKykgeworCQkJaWYgKCFleHBlY3RfaW5zZXJ0KCZtbSwgJm5vZGVzW25dLCBzaXplLCAw LCBuLCBtb2RlKSkgeworCQkJCXByX2VycigiJXMgaW5zZXJ0IGZhaWxlZCwgc2l6ZSAlbGx1IHN0 ZXAgJWRcbiIsCisJCQkJICAgICAgIG1vZGUtPm5hbWUsIHNpemUsIG4pOworCQkJCWdvdG8gb3V0 OworCQkJfQorCQl9CisKKwkJLyogQWZ0ZXIgcmFuZG9tIGluc2VydGlvbiB0aGUgbm9kZXMgc2hv dWxkIGJlIGluIG9yZGVyICovCisJCWlmICghYXNzZXJ0X2NvbnRpbnVvdXMoJm1tLCBzaXplKSkK KwkJCWdvdG8gb3V0OworCisJCS8qIFJlcGVhdGVkIHVzZSBzaG91bGQgdGhlbiBmYWlsICovCisJ CWlmICghZXhwZWN0X2luc2VydF9mYWlsKCZtbSwgc2l6ZSkpCisJCQlnb3RvIG91dDsKKworCQkv KiBSZW1vdmUgb25lIGFuZCByZWluc2VydCwgYXMgdGhlIG9ubHkgaG9sZSBpdCBzaG91bGQgcmVm aWxsIGl0c2VsZiAqLworCQlmb3IgKG4gPSAwOyBuIDwgY291bnQ7IG4rKykgeworCQkJdTY0IGFk ZHIgPSBub2Rlc1tuXS5zdGFydDsKKworCQkJZHJtX21tX3JlbW92ZV9ub2RlKCZub2Rlc1tuXSk7 CisJCQlpZiAoIWV4cGVjdF9pbnNlcnQoJm1tLCAmbm9kZXNbbl0sIHNpemUsIDAsIG4sIG1vZGUp KSB7CisJCQkJcHJfZXJyKCIlcyByZWluc2VydCBmYWlsZWQsIHNpemUgJWxsdSBzdGVwICVkXG4i LAorCQkJCSAgICAgICBtb2RlLT5uYW1lLCBzaXplLCBuKTsKKwkJCQlnb3RvIG91dDsKKwkJCX0K KworCQkJaWYgKG5vZGVzW25dLnN0YXJ0ICE9IGFkZHIpIHsKKwkJCQlwcl9lcnIoIiVzIHJlaW5z ZXJ0IG5vZGUgbW92ZWQsIHN0ZXAgJWQsIGV4cGVjdGVkICVsbHgsIGZvdW5kICVsbHhcbiIsCisJ CQkJICAgICAgIG1vZGUtPm5hbWUsIG4sIGFkZHIsIG5vZGVzW25dLnN0YXJ0KTsKKwkJCQlnb3Rv IG91dDsKKwkJCX0KKworCQkJaWYgKCFhc3NlcnRfY29udGludW91cygmbW0sIHNpemUpKQorCQkJ CWdvdG8gb3V0OworCQl9CisKKwkJLyogUmVtb3ZlIHNldmVyYWwsIHJlaW5zZXJ0LCBjaGVjayBm dWxsICovCisJCWZvcl9lYWNoX3ByaW1lX251bWJlcihuLCBtaW4obWF4X3ByaW1lLCBjb3VudCkp IHsKKwkJCWZvciAobSA9IDA7IG0gPCBuOyBtKyspIHsKKwkJCQlub2RlID0gJm5vZGVzW29yZGVy WyhvICsgbSkgJSBjb3VudF1dOworCQkJCWRybV9tbV9yZW1vdmVfbm9kZShub2RlKTsKKwkJCX0K KworCQkJZm9yIChtID0gMDsgbSA8IG47IG0rKykgeworCQkJCW5vZGUgPSAmbm9kZXNbb3JkZXJb KG8gKyBtKSAlIGNvdW50XV07CisJCQkJaWYgKCFleHBlY3RfaW5zZXJ0KCZtbSwgbm9kZSwgc2l6 ZSwgMCwgbiwgbW9kZSkpIHsKKwkJCQkJcHJfZXJyKCIlcyBtdWx0aXBsZSByZWluc2VydCBmYWls ZWQsIHNpemUgJWxsdSBzdGVwICVkXG4iLAorCQkJCQkgICAgICAgbW9kZS0+bmFtZSwgc2l6ZSwg bik7CisJCQkJCWdvdG8gb3V0OworCQkJCX0KKwkJCX0KKworCQkJbyArPSBuOworCisJCQlpZiAo IWFzc2VydF9jb250aW51b3VzKCZtbSwgc2l6ZSkpCisJCQkJZ290byBvdXQ7CisKKwkJCWlmICgh ZXhwZWN0X2luc2VydF9mYWlsKCZtbSwgc2l6ZSkpCisJCQkJZ290byBvdXQ7CisJCX0KKworCQlk cm1fbW1fZm9yX2VhY2hfbm9kZV9zYWZlKG5vZGUsIG5leHQsICZtbSkKKwkJCWRybV9tbV9yZW1v dmVfbm9kZShub2RlKTsKKwkJRFJNX01NX0JVR19PTighZHJtX21tX2NsZWFuKCZtbSkpOworCX0K KworCXJldCA9IDA7CitvdXQ6CisJZHJtX21tX2Zvcl9lYWNoX25vZGVfc2FmZShub2RlLCBuZXh0 LCAmbW0pCisJCWRybV9tbV9yZW1vdmVfbm9kZShub2RlKTsKKwlkcm1fbW1fdGFrZWRvd24oJm1t KTsKKwlrZnJlZShvcmRlcik7CitlcnJfbm9kZXM6CisJdmZyZWUobm9kZXMpOworZXJyOgorCXJl dHVybiByZXQ7Cit9CisKK3N0YXRpYyBpbnQgaWd0X2luc2VydCh2b2lkICppZ25vcmVkKQorewor CWNvbnN0IHVuc2lnbmVkIGludCBjb3VudCA9IG1pbl90KHVuc2lnbmVkIGludCwgQklUKDEwKSwg bWF4X2l0ZXJhdGlvbnMpOworCXVuc2lnbmVkIGludCBuOworCWludCByZXQ7CisKKwlmb3JfZWFj aF9wcmltZV9udW1iZXJfZnJvbShuLCAxLCA1NCkgeworCQl1NjQgc2l6ZSA9IEJJVF9VTEwobik7 CisKKwkJcmV0ID0gX19pZ3RfaW5zZXJ0KGNvdW50LCBzaXplIC0gMSk7CisJCWlmIChyZXQpCisJ CQlyZXR1cm4gcmV0OworCisJCXJldCA9IF9faWd0X2luc2VydChjb3VudCwgc2l6ZSk7CisJCWlm IChyZXQpCisJCQlyZXR1cm4gcmV0OworCisJCXJldCA9IF9faWd0X2luc2VydChjb3VudCwgc2l6 ZSArIDEpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwl9CisKKwlyZXR1cm4gMDsKK30K KwogI2luY2x1ZGUgImRybV9zZWxmdGVzdC5jIgogCiBzdGF0aWMgaW50IF9faW5pdCB0ZXN0X2Ry bV9tbV9pbml0KHZvaWQpCi0tIAoyLjExLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo=