From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 4/4] drm/i915: Track ggtt fence reservations under its own mutex Date: Thu, 13 Jun 2019 07:20:21 +0100 Message-ID: <20190613062021.27094-4-chris@chris-wilson.co.uk> References: <20190613062021.27094-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from fireflyinternet.com (mail.fireflyinternet.com [109.228.58.192]) by gabe.freedesktop.org (Postfix) with ESMTPS id BF67D8926E for ; Thu, 13 Jun 2019 06:20:28 +0000 (UTC) In-Reply-To: <20190613062021.27094-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 List-Id: intel-gfx@lists.freedesktop.org V2UgY2FuIHJlZHVjZSB0aGUgbG9ja2luZyBmb3IgZmVuY2UgcmVnaXN0ZXJzIGZyb20gdGhlIGRl di0+c3RydWN0X211dGV4CnRvIGEgbG9jYWwgbXV0ZXguIFdlIGNvdWxkIGludHJvZHVjZSBhIG11 dGV4IGZvciB0aGUgc29sZSBwdXJwb3NlIG9mCnRyYWNraW5nIHRoZSBmZW5jZSBhY3F1aXNpdGlv biwgZXhjZXB0IHRoZXJlIGlzIGEgbGl0dGxlIGJpdCBvZiBvdmVybGFwCndpdGggdGhlIGZhdWx0 IHRyYWNraW5nLCBzbyB1c2UgdGhlIGk5MTVfZ2d0dC5tdXRleCBhcyBpdCBjb3ZlcnMgYm90aC4K ClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgpD YzogTWlrYSBLdW9wcGFsYSA8bWlrYS5rdW9wcGFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfaGFuZ2NoZWNrLmMgfCAgIDcgKysKIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2d2dC9hcGVydHVyZV9nbS5jICAgICAgIHwgIDEwICstCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgICAgICAgICB8ICAgNSArLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fZmVuY2VfcmVnLmMgICAgfCAxMDggKysrKysrKysrKysrLS0t LS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZmVuY2VfcmVnLmggICAgfCAgIDIg Ky0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmggICAgICAgICAgICAgIHwgICA0ICst CiA2IGZpbGVzIGNoYW5nZWQsIDg3IGluc2VydGlvbnMoKyksIDQ5IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X2hhbmdjaGVjay5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfaGFuZ2NoZWNrLmMKaW5kZXggNDUzNzlh NjNlMDEzLi4zNzUyZDMxNzI1NDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L3NlbGZ0ZXN0X2hhbmdjaGVjay5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L3NlbGZ0 ZXN0X2hhbmdjaGVjay5jCkBAIC0xMTY1LDcgKzExNjUsMTQgQEAgc3RhdGljIGludCBldmljdF9m ZW5jZSh2b2lkICpkYXRhKQogCQlnb3RvIG91dF91bmxvY2s7CiAJfQogCisJZXJyID0gaTkxNV92 bWFfcGluKGFyZy0+dm1hLCAwLCAwLCBQSU5fR0xPQkFMIHwgUElOX01BUFBBQkxFKTsKKwlpZiAo ZXJyKSB7CisJCXByX2VycigiVW5hYmxlIHRvIHBpbiB2bWEgZm9yIFktdGlsZWQgZmVuY2U7IGVy cjolZFxuIiwgZXJyKTsKKwkJZ290byBvdXRfdW5sb2NrOworCX0KKwogCWVyciA9IGk5MTVfdm1h X3Bpbl9mZW5jZShhcmctPnZtYSk7CisJaTkxNV92bWFfdW5waW4oYXJnLT52bWEpOwogCWlmIChl cnIpIHsKIAkJcHJfZXJyKCJVbmFibGUgdG8gcGluIFktdGlsZWQgZmVuY2U7IGVycjolZFxuIiwg ZXJyKTsKIAkJZ290byBvdXRfdW5sb2NrOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3Z0L2FwZXJ0dXJlX2dtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndnQvYXBlcnR1cmVf Z20uYwppbmRleCA0MDk4OTAyYmZhZWIuLjJiZDlkY2ViZDQ4YyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3Z0L2FwZXJ0dXJlX2dtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3Z0L2FwZXJ0dXJlX2dtLmMKQEAgLTE3MiwxNCArMTcyLDE0IEBAIHN0YXRpYyB2b2lkIGZy ZWVfdmdwdV9mZW5jZShzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSkKIAogCWludGVsX3J1bnRpbWVf cG1fZ2V0KGRldl9wcml2KTsKIAotCW11dGV4X2xvY2soJmRldl9wcml2LT5kcm0uc3RydWN0X211 dGV4KTsKKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+Z2d0dC52bS5tdXRleCk7CiAJX2NsZWFyX3Zn cHVfZmVuY2UodmdwdSk7CiAJZm9yIChpID0gMDsgaSA8IHZncHVfZmVuY2Vfc3oodmdwdSk7IGkr KykgewogCQlyZWcgPSB2Z3B1LT5mZW5jZS5yZWdzW2ldOwogCQlpOTE1X3VucmVzZXJ2ZV9mZW5j ZShyZWcpOwogCQl2Z3B1LT5mZW5jZS5yZWdzW2ldID0gTlVMTDsKIAl9Ci0JbXV0ZXhfdW5sb2Nr KCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCk7CisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ Z2d0dC52bS5tdXRleCk7CiAKIAlpbnRlbF9ydW50aW1lX3BtX3B1dF91bmNoZWNrZWQoZGV2X3By aXYpOwogfQpAQCAtMTk0LDcgKzE5NCw3IEBAIHN0YXRpYyBpbnQgYWxsb2NfdmdwdV9mZW5jZShz dHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSkKIAlpbnRlbF9ydW50aW1lX3BtX2dldChkZXZfcHJpdik7 CiAKIAkvKiBSZXF1ZXN0IGZlbmNlcyBmcm9tIGhvc3QgKi8KLQltdXRleF9sb2NrKCZkZXZfcHJp di0+ZHJtLnN0cnVjdF9tdXRleCk7CisJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmdndHQudm0ubXV0 ZXgpOwogCiAJZm9yIChpID0gMDsgaSA8IHZncHVfZmVuY2Vfc3oodmdwdSk7IGkrKykgewogCQly ZWcgPSBpOTE1X3Jlc2VydmVfZmVuY2UoZGV2X3ByaXYpOwpAQCAtMjA2LDcgKzIwNiw3IEBAIHN0 YXRpYyBpbnQgYWxsb2NfdmdwdV9mZW5jZShzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSkKIAogCV9j bGVhcl92Z3B1X2ZlbmNlKHZncHUpOwogCi0JbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJtLnN0 cnVjdF9tdXRleCk7CisJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+Z2d0dC52bS5tdXRleCk7CiAJ aW50ZWxfcnVudGltZV9wbV9wdXRfdW5jaGVja2VkKGRldl9wcml2KTsKIAlyZXR1cm4gMDsKIG91 dF9mcmVlX2ZlbmNlOgpAQCAtMjE5LDcgKzIxOSw3IEBAIHN0YXRpYyBpbnQgYWxsb2NfdmdwdV9m ZW5jZShzdHJ1Y3QgaW50ZWxfdmdwdSAqdmdwdSkKIAkJaTkxNV91bnJlc2VydmVfZmVuY2UocmVn KTsKIAkJdmdwdS0+ZmVuY2UucmVnc1tpXSA9IE5VTEw7CiAJfQotCW11dGV4X3VubG9jaygmZGV2 X3ByaXYtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmdndHQu dm0ubXV0ZXgpOwogCWludGVsX3J1bnRpbWVfcG1fcHV0X3VuY2hlY2tlZChkZXZfcHJpdik7CiAJ cmV0dXJuIC1FTk9TUEM7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCmluZGV4IDMy Mzg2MzUwNDExMS4uN2E1NGYyZDQzMmFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu YwpAQCAtNzEwLDEwICs3MTAsMTEgQEAgc3RhdGljIGludCBpOTE1X2dlbV9mZW5jZV9yZWdzX2lu Zm8oc3RydWN0IHNlcV9maWxlICptLCB2b2lkICpkYXRhKQogCiAJcmN1X3JlYWRfbG9jaygpOwog CWZvciAoaSA9IDA7IGkgPCBpOTE1LT5nZ3R0Lm51bV9mZW5jZXM7IGkrKykgewotCQlzdHJ1Y3Qg aTkxNV92bWEgKnZtYSA9IGk5MTUtPmdndHQuZmVuY2VfcmVnc1tpXS52bWE7CisJCXN0cnVjdCBp OTE1X2ZlbmNlX3JlZyAqcmVnID0gJmk5MTUtPmdndHQuZmVuY2VfcmVnc1tpXTsKKwkJc3RydWN0 IGk5MTVfdm1hICp2bWEgPSByZWctPnZtYTsKIAogCQlzZXFfcHJpbnRmKG0sICJGZW5jZSAlZCwg cGluIGNvdW50ID0gJWQsIG9iamVjdCA9ICIsCi0JCQkgICBpLCBpOTE1LT5nZ3R0LmZlbmNlX3Jl Z3NbaV0ucGluX2NvdW50KTsKKwkJCSAgIGksIGF0b21pY19yZWFkKCZyZWctPnBpbl9jb3VudCkp OwogCQlpZiAoIXZtYSkKIAkJCXNlcV9wdXRzKG0sICJ1bnVzZWQiKTsKIAkJZWxzZQpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZmVuY2VfcmVnLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZV9yZWcuYwppbmRleCAxYzk0NjY2NzZjYWYuLjI0 YmRmZmFjNjM4MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZmVu Y2VfcmVnLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZmVuY2VfcmVnLmMK QEAgLTMwMSwxNSArMzAxLDI0IEBAIHN0YXRpYyBpbnQgZmVuY2VfdXBkYXRlKHN0cnVjdCBpOTE1 X2ZlbmNlX3JlZyAqZmVuY2UsCiAgKi8KIGludCBpOTE1X3ZtYV9wdXRfZmVuY2Uoc3RydWN0IGk5 MTVfdm1hICp2bWEpCiB7CisJc3RydWN0IGk5MTVfZ2d0dCAqZ2d0dCA9IGk5MTVfdm1fdG9fZ2d0 dCh2bWEtPnZtKTsKIAlzdHJ1Y3QgaTkxNV9mZW5jZV9yZWcgKmZlbmNlID0gdm1hLT5mZW5jZTsK KwlpbnQgZXJyOwogCiAJaWYgKCFmZW5jZSkKIAkJcmV0dXJuIDA7CiAKLQlpZiAoZmVuY2UtPnBp bl9jb3VudCkKKwlpZiAoYXRvbWljX3JlYWQoJmZlbmNlLT5waW5fY291bnQpKQogCQlyZXR1cm4g LUVCVVNZOwogCi0JcmV0dXJuIGZlbmNlX3VwZGF0ZShmZW5jZSwgTlVMTCk7CisJZXJyID0gbXV0 ZXhfbG9ja19pbnRlcnJ1cHRpYmxlKCZnZ3R0LT52bS5tdXRleCk7CisJaWYgKGVycikKKwkJcmV0 dXJuIGVycjsKKworCWVyciA9IGZlbmNlX3VwZGF0ZShmZW5jZSwgTlVMTCk7CisJbXV0ZXhfdW5s b2NrKCZnZ3R0LT52bS5tdXRleCk7CisKKwlyZXR1cm4gZXJyOwogfQogCiBzdGF0aWMgc3RydWN0 IGk5MTVfZmVuY2VfcmVnICpmZW5jZV9maW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1 KQpAQCAtMzE5LDcgKzMyOCw3IEBAIHN0YXRpYyBzdHJ1Y3QgaTkxNV9mZW5jZV9yZWcgKmZlbmNl X2ZpbmQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUpCiAJbGlzdF9mb3JfZWFjaF9lbnRy eShmZW5jZSwgJmk5MTUtPmdndHQuZmVuY2VfbGlzdCwgbGluaykgewogCQlHRU1fQlVHX09OKGZl bmNlLT52bWEgJiYgZmVuY2UtPnZtYS0+ZmVuY2UgIT0gZmVuY2UpOwogCi0JCWlmIChmZW5jZS0+ cGluX2NvdW50KQorCQlpZiAoYXRvbWljX3JlYWQoJmZlbmNlLT5waW5fY291bnQpKQogCQkJY29u dGludWU7CiAKIAkJcmV0dXJuIGZlbmNlOwpAQCAtMzMyLDYgKzM0MSw0OCBAQCBzdGF0aWMgc3Ry dWN0IGk5MTVfZmVuY2VfcmVnICpmZW5jZV9maW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1KQogCXJldHVybiBFUlJfUFRSKC1FREVBRExLKTsKIH0KIAorc3RhdGljIGludCBfX2k5MTVf dm1hX3Bpbl9mZW5jZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKK3sKKwlzdHJ1Y3QgaTkxNV9nZ3R0 ICpnZ3R0ID0gaTkxNV92bV90b19nZ3R0KHZtYS0+dm0pOworCXN0cnVjdCBpOTE1X2ZlbmNlX3Jl ZyAqZmVuY2U7CisJc3RydWN0IGk5MTVfdm1hICpzZXQgPSBpOTE1X2dlbV9vYmplY3RfaXNfdGls ZWQodm1hLT5vYmopID8gdm1hIDogTlVMTDsKKwlpbnQgZXJyOworCisJLyogSnVzdCB1cGRhdGUg b3VyIHBsYWNlIGluIHRoZSBMUlUgaWYgb3VyIGZlbmNlIGlzIGdldHRpbmcgcmV1c2VkLiAqLwor CWlmICh2bWEtPmZlbmNlKSB7CisJCWZlbmNlID0gdm1hLT5mZW5jZTsKKwkJR0VNX0JVR19PTihm ZW5jZS0+dm1hICE9IHZtYSk7CisJCWF0b21pY19pbmMoJmZlbmNlLT5waW5fY291bnQpOworCQlp ZiAoIWZlbmNlLT5kaXJ0eSkgeworCQkJbGlzdF9tb3ZlX3RhaWwoJmZlbmNlLT5saW5rLCAmZ2d0 dC0+ZmVuY2VfbGlzdCk7CisJCQlyZXR1cm4gMDsKKwkJfQorCX0gZWxzZSBpZiAoc2V0KSB7CisJ CWZlbmNlID0gZmVuY2VfZmluZCh2bWEtPnZtLT5pOTE1KTsKKwkJaWYgKElTX0VSUihmZW5jZSkp CisJCQlyZXR1cm4gUFRSX0VSUihmZW5jZSk7CisKKwkJR0VNX0JVR19PTihhdG9taWNfcmVhZCgm ZmVuY2UtPnBpbl9jb3VudCkpOworCQlhdG9taWNfaW5jKCZmZW5jZS0+cGluX2NvdW50KTsKKwl9 IGVsc2UgeworCQlyZXR1cm4gMDsKKwl9CisKKwllcnIgPSBmZW5jZV91cGRhdGUoZmVuY2UsIHNl dCk7CisJaWYgKGVycikKKwkJZ290byBvdXRfdW5waW47CisKKwlHRU1fQlVHX09OKGZlbmNlLT52 bWEgIT0gc2V0KTsKKwlHRU1fQlVHX09OKHZtYS0+ZmVuY2UgIT0gKHNldCA/IGZlbmNlIDogTlVM TCkpOworCisJaWYgKHNldCkKKwkJcmV0dXJuIDA7CisKK291dF91bnBpbjoKKwlhdG9taWNfZGVj KCZmZW5jZS0+cGluX2NvdW50KTsKKwlyZXR1cm4gZXJyOworfQorCiAvKioKICAqIGk5MTVfdm1h X3Bpbl9mZW5jZSAtIHNldCB1cCBmZW5jaW5nIGZvciBhIHZtYQogICogQHZtYTogdm1hIHRvIG1h cCB0aHJvdWdoIGEgZmVuY2UgcmVnCkBAIC0zNTIsOCArNDAzLDYgQEAgc3RhdGljIHN0cnVjdCBp OTE1X2ZlbmNlX3JlZyAqZmVuY2VfZmluZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkK ICAqLwogaW50IGk5MTVfdm1hX3Bpbl9mZW5jZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSkKIHsKLQlz dHJ1Y3QgaTkxNV9mZW5jZV9yZWcgKmZlbmNlOwotCXN0cnVjdCBpOTE1X3ZtYSAqc2V0ID0gaTkx NV9nZW1fb2JqZWN0X2lzX3RpbGVkKHZtYS0+b2JqKSA/IHZtYSA6IE5VTEw7CiAJaW50IGVycjsK IAogCS8qCkBAIC0zNjEsMzkgKzQxMCwxNiBAQCBpbnQgaTkxNV92bWFfcGluX2ZlbmNlKHN0cnVj dCBpOTE1X3ZtYSAqdm1hKQogCSAqIG11c3Qga2VlcCB0aGUgZGV2aWNlIGF3YWtlIHdoaWxzdCB1 c2luZyB0aGUgZmVuY2UuCiAJICovCiAJYXNzZXJ0X3JwbV93YWtlbG9ja19oZWxkKHZtYS0+dm0t Pmk5MTUpOworCUdFTV9CVUdfT04oIWk5MTVfdm1hX2lzX3Bpbm5lZCh2bWEpKTsKKwlHRU1fQlVH X09OKCFpOTE1X3ZtYV9pc19nZ3R0KHZtYSkpOwogCi0JLyogSnVzdCB1cGRhdGUgb3VyIHBsYWNl IGluIHRoZSBMUlUgaWYgb3VyIGZlbmNlIGlzIGdldHRpbmcgcmV1c2VkLiAqLwotCWlmICh2bWEt PmZlbmNlKSB7Ci0JCWZlbmNlID0gdm1hLT5mZW5jZTsKLQkJR0VNX0JVR19PTihmZW5jZS0+dm1h ICE9IHZtYSk7Ci0JCWZlbmNlLT5waW5fY291bnQrKzsKLQkJaWYgKCFmZW5jZS0+ZGlydHkpIHsK LQkJCWxpc3RfbW92ZV90YWlsKCZmZW5jZS0+bGluaywKLQkJCQkgICAgICAgJmZlbmNlLT5pOTE1 LT5nZ3R0LmZlbmNlX2xpc3QpOwotCQkJcmV0dXJuIDA7Ci0JCX0KLQl9IGVsc2UgaWYgKHNldCkg ewotCQlmZW5jZSA9IGZlbmNlX2ZpbmQodm1hLT52bS0+aTkxNSk7Ci0JCWlmIChJU19FUlIoZmVu Y2UpKQotCQkJcmV0dXJuIFBUUl9FUlIoZmVuY2UpOwotCi0JCUdFTV9CVUdfT04oZmVuY2UtPnBp bl9jb3VudCk7Ci0JCWZlbmNlLT5waW5fY291bnQrKzsKLQl9IGVsc2UKLQkJcmV0dXJuIDA7Ci0K LQllcnIgPSBmZW5jZV91cGRhdGUoZmVuY2UsIHNldCk7CisJZXJyID0gbXV0ZXhfbG9ja19pbnRl cnJ1cHRpYmxlKCZ2bWEtPnZtLT5tdXRleCk7CiAJaWYgKGVycikKLQkJZ290byBvdXRfdW5waW47 CisJCXJldHVybiBlcnI7CiAKLQlHRU1fQlVHX09OKGZlbmNlLT52bWEgIT0gc2V0KTsKLQlHRU1f QlVHX09OKHZtYS0+ZmVuY2UgIT0gKHNldCA/IGZlbmNlIDogTlVMTCkpOwotCi0JaWYgKHNldCkK LQkJcmV0dXJuIDA7CisJZXJyID0gX19pOTE1X3ZtYV9waW5fZmVuY2Uodm1hKTsKKwltdXRleF91 bmxvY2soJnZtYS0+dm0tPm11dGV4KTsKIAotb3V0X3VucGluOgotCWZlbmNlLT5waW5fY291bnQt LTsKIAlyZXR1cm4gZXJyOwogfQogCkBAIC00MDYsMTYgKzQzMiwxNyBAQCBpbnQgaTkxNV92bWFf cGluX2ZlbmNlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogICovCiBzdHJ1Y3QgaTkxNV9mZW5jZV9y ZWcgKmk5MTVfcmVzZXJ2ZV9mZW5jZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIHsK KwlzdHJ1Y3QgaTkxNV9nZ3R0ICpnZ3R0ID0gJmk5MTUtPmdndHQ7CiAJc3RydWN0IGk5MTVfZmVu Y2VfcmVnICpmZW5jZTsKIAlpbnQgY291bnQ7CiAJaW50IHJldDsKIAotCWxvY2tkZXBfYXNzZXJ0 X2hlbGQoJmk5MTUtPmRybS5zdHJ1Y3RfbXV0ZXgpOworCWxvY2tkZXBfYXNzZXJ0X2hlbGQoJmdn dHQtPnZtLm11dGV4KTsKIAogCS8qIEtlZXAgYXQgbGVhc3Qgb25lIGZlbmNlIGF2YWlsYWJsZSBm b3IgdGhlIGRpc3BsYXkgZW5naW5lLiAqLwogCWNvdW50ID0gMDsKLQlsaXN0X2Zvcl9lYWNoX2Vu dHJ5KGZlbmNlLCAmaTkxNS0+Z2d0dC5mZW5jZV9saXN0LCBsaW5rKQotCQljb3VudCArPSAhZmVu Y2UtPnBpbl9jb3VudDsKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGZlbmNlLCAmZ2d0dC0+ZmVuY2Vf bGlzdCwgbGluaykKKwkJY291bnQgKz0gIWF0b21pY19yZWFkKCZmZW5jZS0+cGluX2NvdW50KTsK IAlpZiAoY291bnQgPD0gMSkKIAkJcmV0dXJuIEVSUl9QVFIoLUVOT1NQQyk7CiAKQEAgLTQzMSw2 ICs0NTgsNyBAQCBzdHJ1Y3QgaTkxNV9mZW5jZV9yZWcgKmk5MTVfcmVzZXJ2ZV9mZW5jZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKIAl9CiAKIAlsaXN0X2RlbCgmZmVuY2UtPmxpbmsp OworCiAJcmV0dXJuIGZlbmNlOwogfQogCkBAIC00NDIsOSArNDcwLDExIEBAIHN0cnVjdCBpOTE1 X2ZlbmNlX3JlZyAqaTkxNV9yZXNlcnZlX2ZlbmNlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1KQogICovCiB2b2lkIGk5MTVfdW5yZXNlcnZlX2ZlbmNlKHN0cnVjdCBpOTE1X2ZlbmNlX3Jl ZyAqZmVuY2UpCiB7Ci0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmZmVuY2UtPmk5MTUtPmRybS5zdHJ1 Y3RfbXV0ZXgpOworCXN0cnVjdCBpOTE1X2dndHQgKmdndHQgPSAmZmVuY2UtPmk5MTUtPmdndHQ7 CisKKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZnZ3R0LT52bS5tdXRleCk7CiAKLQlsaXN0X2FkZCgm ZmVuY2UtPmxpbmssICZmZW5jZS0+aTkxNS0+Z2d0dC5mZW5jZV9saXN0KTsKKwlsaXN0X2FkZCgm ZmVuY2UtPmxpbmssICZnZ3R0LT5mZW5jZV9saXN0KTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtX2ZlbmNlX3JlZy5oCmluZGV4IGQyZGE5ODgyODE3OS4uZDdjNmViZjc4 OWMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZV9yZWcu aAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9mZW5jZV9yZWcuaApAQCAtNDAs NyArNDAsNyBAQCBzdHJ1Y3QgaTkxNV9mZW5jZV9yZWcgewogCXN0cnVjdCBsaXN0X2hlYWQgbGlu azsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKIAlzdHJ1Y3QgaTkxNV92bWEgKnZt YTsKLQlpbnQgcGluX2NvdW50OworCWF0b21pY190IHBpbl9jb3VudDsKIAlpbnQgaWQ7CiAJLyoq CiAJICogV2hldGhlciB0aGUgdGlsaW5nIHBhcmFtZXRlcnMgZm9yIHRoZSBjdXJyZW50bHkKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdm1hLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3ZtYS5oCmluZGV4IDRiNzY5ZGI2NDliZi4uOTA4MTE4YWRlNDQxIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZtYS5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfdm1hLmgKQEAgLTQxOSw4ICs0MTksOCBAQCBpbnQgX19tdXN0X2NoZWNr IGk5MTVfdm1hX3B1dF9mZW5jZShzdHJ1Y3QgaTkxNV92bWEgKnZtYSk7CiAKIHN0YXRpYyBpbmxp bmUgdm9pZCBfX2k5MTVfdm1hX3VucGluX2ZlbmNlKHN0cnVjdCBpOTE1X3ZtYSAqdm1hKQogewot CUdFTV9CVUdfT04odm1hLT5mZW5jZS0+cGluX2NvdW50IDw9IDApOwotCXZtYS0+ZmVuY2UtPnBp bl9jb3VudC0tOworCUdFTV9CVUdfT04oYXRvbWljX3JlYWQoJnZtYS0+ZmVuY2UtPnBpbl9jb3Vu dCkgPD0gMCk7CisJYXRvbWljX2RlYygmdm1hLT5mZW5jZS0+cGluX2NvdW50KTsKIH0KIAogLyoq Ci0tIAoyLjIwLjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eA==