From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH] drm: Convert prime dma-buf <-> handle to rhashtable Date: Thu, 22 Sep 2016 15:43:28 +0100 Message-ID: <20160922144328.28432-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: 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: intel-gfx@lists.freedesktop.org Q3VycmVudGx5IHdlIHVzZSBhIGxpbmVhciB3YWxrIHRvIGxvb2t1cCBhIGhhbmRsZSBhbmQgcmV0 dXJuIGEgZG1hLWJ1ZiwKYW5kIHZpY2UgdmVyc2EuIEEgbG9uZyBvdmVyZHVlIFRPRE8gdGFzayBp cyB0byBjb252ZXJ0IHRoYXQgdG8gYQpoYXNodGFibGUuIFNpbmNlIHRoZSBpbml0aWFsIGltcGxl bWVudGF0aW9uIG9mIGRtYS1idWYvcHJpbWUsIHdlIG5vdwpoYXZlIHJlc2l6ZWFibGUgaGFzaHRh YmxlcyB3ZSBjYW4gdXNlIChhbmQgbm93IGEgZnV0dXJlIHRhc2sgaXMgdG8gUkNVCmVuYWJsZSB0 aGUgbG9va3VwISkuCgpCdWd6aWxsYTogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93 X2J1Zy5jZ2k/aWQ9OTQ2MzEKU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJp cy13aWxzb24uY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jIHwgOTQgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tCiBpbmNsdWRlL2RybS9k cm1QLmggICAgICAgICAgfCAgNSArKy0KIDIgZmlsZXMgY2hhbmdlZCwgNzcgaW5zZXJ0aW9ucygr KSwgMjIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcmlt ZS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jCmluZGV4IDc4MDU4OWI0MjBhNC4uYWQw NzdkZWY2NjBkIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX3ByaW1lLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9wcmltZS5jCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRl IDxsaW51eC9leHBvcnQuaD4KICNpbmNsdWRlIDxsaW51eC9kbWEtYnVmLmg+CisjaW5jbHVkZSA8 bGludXgvcmhhc2h0YWJsZS5oPgogI2luY2x1ZGUgPGRybS9kcm1QLmg+CiAjaW5jbHVkZSA8ZHJt L2RybV9nZW0uaD4KIApAQCAtNjEsOSArNjIsMTEgQEAKICAqLwogCiBzdHJ1Y3QgZHJtX3ByaW1l X21lbWJlciB7Ci0Jc3RydWN0IGxpc3RfaGVhZCBlbnRyeTsKIAlzdHJ1Y3QgZG1hX2J1ZiAqZG1h X2J1ZjsKIAl1aW50MzJfdCBoYW5kbGU7CisKKwlzdHJ1Y3Qgcmhhc2hfaGVhZCBkbWFfYnVmX3Jo dDsKKwlzdHJ1Y3Qgcmhhc2hfaGVhZCBoYW5kbGVfcmh0OwogfTsKIAogc3RydWN0IGRybV9wcmlt ZV9hdHRhY2htZW50IHsKQEAgLTcxLDEwICs3NCwzMSBAQCBzdHJ1Y3QgZHJtX3ByaW1lX2F0dGFj aG1lbnQgewogCWVudW0gZG1hX2RhdGFfZGlyZWN0aW9uIGRpcjsKIH07CiAKK3N0YXRpYyBjb25z dCBzdHJ1Y3Qgcmhhc2h0YWJsZV9wYXJhbXMgZG1hX2J1Zl9wYXJhbXMgPSB7CisJLmhlYWRfb2Zm c2V0ID0gb2Zmc2V0b2Yoc3RydWN0IGRybV9wcmltZV9tZW1iZXIsIGRtYV9idWZfcmh0KSwKKwku a2V5X2xlbiA9IHNpemVvZihzdHJ1Y3QgZG1hX2J1ZiAqKSwKKwkua2V5X29mZnNldCA9IG9mZnNl dG9mKHN0cnVjdCBkcm1fcHJpbWVfbWVtYmVyLCBkbWFfYnVmKSwKKwkuaGFzaGZuID0gamhhc2gs CisJLm51bGxzX2Jhc2UgPSAxdSA8PCBSSFRfQkFTRV9TSElGVCwKKwkuYXV0b21hdGljX3Nocmlu a2luZyA9IHRydWUsCisJLm5lbGVtX2hpbnQgPSAyLAorfTsKKworc3RhdGljIGNvbnN0IHN0cnVj dCByaGFzaHRhYmxlX3BhcmFtcyBoYW5kbGVfcGFyYW1zID0geworCS5oZWFkX29mZnNldCA9IG9m ZnNldG9mKHN0cnVjdCBkcm1fcHJpbWVfbWVtYmVyLCBoYW5kbGVfcmh0KSwKKwkua2V5X2xlbiA9 IHNpemVvZih1aW50MzJfdCksCisJLmtleV9vZmZzZXQgPSBvZmZzZXRvZihzdHJ1Y3QgZHJtX3By aW1lX21lbWJlciwgaGFuZGxlKSwKKwkuaGFzaGZuID0gamhhc2gsCisJLm51bGxzX2Jhc2UgPSAx dSA8PCBSSFRfQkFTRV9TSElGVCwKKwkuYXV0b21hdGljX3Nocmlua2luZyA9IHRydWUsCisJLm5l bGVtX2hpbnQgPSAyLAorfTsKKwogc3RhdGljIGludCBkcm1fcHJpbWVfYWRkX2J1Zl9oYW5kbGUo c3RydWN0IGRybV9wcmltZV9maWxlX3ByaXZhdGUgKnByaW1lX2Zwcml2LAogCQkJCSAgICBzdHJ1 Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwgdWludDMyX3QgaGFuZGxlKQogewogCXN0cnVjdCBkcm1fcHJp bWVfbWVtYmVyICptZW1iZXI7CisJaW50IGVycjsKIAogCW1lbWJlciA9IGttYWxsb2Moc2l6ZW9m KCptZW1iZXIpLCBHRlBfS0VSTkVMKTsKIAlpZiAoIW1lbWJlcikKQEAgLTgzLDggKzEwNywyOCBA QCBzdGF0aWMgaW50IGRybV9wcmltZV9hZGRfYnVmX2hhbmRsZShzdHJ1Y3QgZHJtX3ByaW1lX2Zp bGVfcHJpdmF0ZSAqcHJpbWVfZnByaXYsCiAJZ2V0X2RtYV9idWYoZG1hX2J1Zik7CiAJbWVtYmVy LT5kbWFfYnVmID0gZG1hX2J1ZjsKIAltZW1iZXItPmhhbmRsZSA9IGhhbmRsZTsKLQlsaXN0X2Fk ZCgmbWVtYmVyLT5lbnRyeSwgJnByaW1lX2Zwcml2LT5oZWFkKTsKKworCWVyciA9IHJoYXNodGFi bGVfaW5zZXJ0X2Zhc3QoJnByaW1lX2Zwcml2LT5kbWFfYnVmcywKKwkJCQkgICAgICZtZW1iZXIt PmRtYV9idWZfcmh0LAorCQkJCSAgICAgZG1hX2J1Zl9wYXJhbXMpOworCWlmIChlcnIpCisJCWdv dG8gZXJyX2RtYV9idWY7CisKKwllcnIgPSByaGFzaHRhYmxlX2luc2VydF9mYXN0KCZwcmltZV9m cHJpdi0+aGFuZGxlcywKKwkJCQkgICAgICZtZW1iZXItPmhhbmRsZV9yaHQsCisJCQkJICAgICBo YW5kbGVfcGFyYW1zKTsKKwlpZiAoZXJyKQorCQlnb3RvIGVycl9kbWFfcmh0OworCiAJcmV0dXJu IDA7CisKK2Vycl9kbWFfcmh0OgorCXJoYXNodGFibGVfcmVtb3ZlX2Zhc3QoJnByaW1lX2Zwcml2 LT5kbWFfYnVmcywKKwkJCSAgICAgICAmbWVtYmVyLT5kbWFfYnVmX3JodCwKKwkJCSAgICAgICBk bWFfYnVmX3BhcmFtcyk7CitlcnJfZG1hX2J1ZjoKKwlkbWFfYnVmX3B1dChkbWFfYnVmKTsKKwly ZXR1cm4gZXJyOwogfQogCiBzdGF0aWMgc3RydWN0IGRtYV9idWYgKmRybV9wcmltZV9sb29rdXBf YnVmX2J5X2hhbmRsZShzdHJ1Y3QgZHJtX3ByaW1lX2ZpbGVfcHJpdmF0ZSAqcHJpbWVfZnByaXYs CkBAIC05MiwxMCArMTM2LDEwIEBAIHN0YXRpYyBzdHJ1Y3QgZG1hX2J1ZiAqZHJtX3ByaW1lX2xv b2t1cF9idWZfYnlfaGFuZGxlKHN0cnVjdCBkcm1fcHJpbWVfZmlsZV9wcml2CiB7CiAJc3RydWN0 IGRybV9wcmltZV9tZW1iZXIgKm1lbWJlcjsKIAotCWxpc3RfZm9yX2VhY2hfZW50cnkobWVtYmVy LCAmcHJpbWVfZnByaXYtPmhlYWQsIGVudHJ5KSB7Ci0JCWlmIChtZW1iZXItPmhhbmRsZSA9PSBo YW5kbGUpCi0JCQlyZXR1cm4gbWVtYmVyLT5kbWFfYnVmOwotCX0KKwltZW1iZXIgPSByaGFzaHRh YmxlX2xvb2t1cF9mYXN0KCZwcmltZV9mcHJpdi0+aGFuZGxlcywKKwkJCQkJJmhhbmRsZSwgaGFu ZGxlX3BhcmFtcyk7CisJaWYgKG1lbWJlcikKKwkJcmV0dXJuIG1lbWJlci0+ZG1hX2J1ZjsKIAog CXJldHVybiBOVUxMOwogfQpAQCAtMTA2LDEyICsxNTAsMTMgQEAgc3RhdGljIGludCBkcm1fcHJp bWVfbG9va3VwX2J1Zl9oYW5kbGUoc3RydWN0IGRybV9wcmltZV9maWxlX3ByaXZhdGUgKnByaW1l X2ZwcmkKIHsKIAlzdHJ1Y3QgZHJtX3ByaW1lX21lbWJlciAqbWVtYmVyOwogCi0JbGlzdF9mb3Jf ZWFjaF9lbnRyeShtZW1iZXIsICZwcmltZV9mcHJpdi0+aGVhZCwgZW50cnkpIHsKLQkJaWYgKG1l bWJlci0+ZG1hX2J1ZiA9PSBkbWFfYnVmKSB7Ci0JCQkqaGFuZGxlID0gbWVtYmVyLT5oYW5kbGU7 Ci0JCQlyZXR1cm4gMDsKLQkJfQorCW1lbWJlciA9IHJoYXNodGFibGVfbG9va3VwX2Zhc3QoJnBy aW1lX2Zwcml2LT5kbWFfYnVmcywKKwkJCQkJJmRtYV9idWYsIGRtYV9idWZfcGFyYW1zKTsKKwlp ZiAobWVtYmVyKSB7CisJCSpoYW5kbGUgPSBtZW1iZXItPmhhbmRsZTsKKwkJcmV0dXJuIDA7CiAJ fQorCiAJcmV0dXJuIC1FTk9FTlQ7CiB9CiAKQEAgLTE2NiwxNCArMjExLDIxIEBAIHN0YXRpYyB2 b2lkIGRybV9nZW1fbWFwX2RldGFjaChzdHJ1Y3QgZG1hX2J1ZiAqZG1hX2J1ZiwKIHZvaWQgZHJt X3ByaW1lX3JlbW92ZV9idWZfaGFuZGxlX2xvY2tlZChzdHJ1Y3QgZHJtX3ByaW1lX2ZpbGVfcHJp dmF0ZSAqcHJpbWVfZnByaXYsCiAJCQkJCXN0cnVjdCBkbWFfYnVmICpkbWFfYnVmKQogewotCXN0 cnVjdCBkcm1fcHJpbWVfbWVtYmVyICptZW1iZXIsICpzYWZlOworCXN0cnVjdCBkcm1fcHJpbWVf bWVtYmVyICptZW1iZXI7CiAKLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUobWVtYmVyLCBzYWZl LCAmcHJpbWVfZnByaXYtPmhlYWQsIGVudHJ5KSB7Ci0JCWlmIChtZW1iZXItPmRtYV9idWYgPT0g ZG1hX2J1ZikgewotCQkJZG1hX2J1Zl9wdXQoZG1hX2J1Zik7Ci0JCQlsaXN0X2RlbCgmbWVtYmVy LT5lbnRyeSk7Ci0JCQlrZnJlZShtZW1iZXIpOwotCQl9CisJbWVtYmVyID0gcmhhc2h0YWJsZV9s b29rdXBfZmFzdCgmcHJpbWVfZnByaXYtPmRtYV9idWZzLAorCQkJCQkmZG1hX2J1ZiwgZG1hX2J1 Zl9wYXJhbXMpOworCWlmIChtZW1iZXIpIHsKKwkJcmhhc2h0YWJsZV9yZW1vdmVfZmFzdCgmcHJp bWVfZnByaXYtPmRtYV9idWZzLAorCQkJCSAgICAgICAmbWVtYmVyLT5kbWFfYnVmX3JodCwKKwkJ CQkgICAgICAgZG1hX2J1Zl9wYXJhbXMpOworCisJCXJoYXNodGFibGVfcmVtb3ZlX2Zhc3QoJnBy aW1lX2Zwcml2LT5oYW5kbGVzLAorCQkJCSAgICAgICAmbWVtYmVyLT5oYW5kbGVfcmh0LAorCQkJ CSAgICAgICBoYW5kbGVfcGFyYW1zKTsKKworCQlkbWFfYnVmX3B1dChkbWFfYnVmKTsKKwkJa2Zy ZWUobWVtYmVyKTsKIAl9CiB9CiAKQEAgLTc1OSwxMiArODExLDE0IEBAIEVYUE9SVF9TWU1CT0wo ZHJtX3ByaW1lX2dlbV9kZXN0cm95KTsKIAogdm9pZCBkcm1fcHJpbWVfaW5pdF9maWxlX3ByaXZh dGUoc3RydWN0IGRybV9wcmltZV9maWxlX3ByaXZhdGUgKnByaW1lX2Zwcml2KQogewotCUlOSVRf TElTVF9IRUFEKCZwcmltZV9mcHJpdi0+aGVhZCk7CiAJbXV0ZXhfaW5pdCgmcHJpbWVfZnByaXYt PmxvY2spOworCXJoYXNodGFibGVfaW5pdCgmcHJpbWVfZnByaXYtPmRtYV9idWZzLCAmZG1hX2J1 Zl9wYXJhbXMpOworCXJoYXNodGFibGVfaW5pdCgmcHJpbWVfZnByaXYtPmhhbmRsZXMsICZoYW5k bGVfcGFyYW1zKTsKIH0KIAogdm9pZCBkcm1fcHJpbWVfZGVzdHJveV9maWxlX3ByaXZhdGUoc3Ry dWN0IGRybV9wcmltZV9maWxlX3ByaXZhdGUgKnByaW1lX2Zwcml2KQogewogCS8qIGJ5IG5vdyBk cm1fZ2VtX3JlbGVhc2Ugc2hvdWxkJ3ZlIG1hZGUgc3VyZSB0aGUgbGlzdCBpcyBlbXB0eSAqLwot CVdBUk5fT04oIWxpc3RfZW1wdHkoJnByaW1lX2Zwcml2LT5oZWFkKSk7CisJcmhhc2h0YWJsZV9k ZXN0cm95KCZwcmltZV9mcHJpdi0+ZG1hX2J1ZnMpOworCXJoYXNodGFibGVfZGVzdHJveSgmcHJp bWVfZnByaXYtPmhhbmRsZXMpOwogfQpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtUC5oIGIv aW5jbHVkZS9kcm0vZHJtUC5oCmluZGV4IGM1M2RjOTA5NDJlMC4uNjk2NmZiMDMwZDBmIDEwMDY0 NAotLS0gYS9pbmNsdWRlL2RybS9kcm1QLmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtUC5oCkBAIC01 MSw2ICs1MSw3IEBACiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CiAjaW5jbHVk ZSA8bGludXgvcG9sbC5oPgogI2luY2x1ZGUgPGxpbnV4L3JhdGVsaW1pdC5oPgorI2luY2x1ZGUg PGxpbnV4L3JoYXNodGFibGUuaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogI2luY2x1ZGUg PGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgpAQCAtMzcxLDEwICszNzIs MTAgQEAgc3RydWN0IGRybV9wZW5kaW5nX2V2ZW50IHsKIAkJICAgICAgd2UgZGVsaXZlciB0aGUg ZXZlbnQsIGZvciB0cmFjaW5nIG9ubHkgKi8KIH07CiAKLS8qIGluaXRpYWwgaW1wbGVtZW50YXRv biB1c2luZyBhIGxpbmtlZCBsaXN0IC0gdG9kbyBoYXNodGFiICovCiBzdHJ1Y3QgZHJtX3ByaW1l X2ZpbGVfcHJpdmF0ZSB7Ci0Jc3RydWN0IGxpc3RfaGVhZCBoZWFkOwogCXN0cnVjdCBtdXRleCBs b2NrOworCXN0cnVjdCByaGFzaHRhYmxlIGRtYV9idWZzOworCXN0cnVjdCByaGFzaHRhYmxlIGhh bmRsZXM7CiB9OwogCiAvKiogRmlsZSBwcml2YXRlIGRhdGEgKi8KLS0gCjIuOS4zCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK