From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= Subject: [PATCH v5 06/11] drm/fb-helper: Prepare to move out commit code Date: Mon, 6 May 2019 20:01:34 +0200 Message-ID: <20190506180139.6913-7-noralf@tronnes.org> References: <20190506180139.6913-1-noralf@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190506180139.6913-1-noralf@tronnes.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: dri-devel@lists.freedesktop.org Cc: intel-gfx@lists.freedesktop.org, =?UTF-8?q?Noralf=20Tr=C3=B8nnes?= List-Id: dri-devel@lists.freedesktop.org VGhpcyBtYWtlcyB0aGUgbmVjZXNzYXJ5IGNoYW5nZXMgc28gdGhlIGNvbW1pdCBjb2RlIGNhbiBi ZSBtb3ZlZCBvdXQgdG8KZHJtX2NsaWVudCBhcy1pcyBpbiB0aGUgbmV4dCBwYXRjaC4gSXQncyBz cGxpdCB1cCB0byBlYXNlIHJldmlldy4KClNpZ25lZC1vZmYtYnk6IE5vcmFsZiBUcsO4bm5lcyA8 bm9yYWxmQHRyb25uZXMub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMg fCAxMjIgKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA4 MSBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2ZiX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwpp bmRleCA2NjM3ODU4YmY1MzAuLjYxN2U4NmQwMTBmYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2RybV9mYl9oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2ZiX2hlbHBlci5j CkBAIC0zODgsOSArMzg4LDIwIEBAIGludCBkcm1fZmJfaGVscGVyX2RlYnVnX2xlYXZlKHN0cnVj dCBmYl9pbmZvICppbmZvKQogfQogRVhQT1JUX1NZTUJPTChkcm1fZmJfaGVscGVyX2RlYnVnX2xl YXZlKTsKIAotLyogQ2hlY2sgaWYgdGhlIHBsYW5lIGNhbiBodyByb3RhdGUgdG8gbWF0Y2ggcGFu ZWwgb3JpZW50YXRpb24gKi8KLXN0YXRpYyBib29sIGRybV9mYl9oZWxwZXJfcGFuZWxfcm90YXRp b24oc3RydWN0IGRybV9tb2RlX3NldCAqbW9kZXNldCwKLQkJCQkJIHVuc2lnbmVkIGludCAqcm90 YXRpb24pCisvKioKKyAqIGRybV9jbGllbnRfcGFuZWxfcm90YXRpb24oKSAtIENoZWNrIHBhbmVs IG9yaWVudGF0aW9uCisgKiBAbW9kZXNldDogRFJNIG1vZGVzZXQKKyAqIEByb3RhdGlvbjogUmV0 dXJuZWQgcm90YXRpb24gdmFsdWUKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGNoZWNrcyBpZiB0aGUg cHJpbWFyeSBwbGFuZSBpbiBAbW9kZXNldCBjYW4gaHcgcm90YXRlIHRvIG1hdGNoCisgKiB0aGUg cGFuZWwgb3JpZW50YXRpb24gb24gaXRzIGNvbm5lY3Rvci4KKyAqCisgKiBOb3RlOiBDdXJyZW50 bHkgb25seSAwIGFuZCAxODAgZGVncmVlcyBhcmUgc3VwcG9ydGVkLgorICoKKyAqIFJldHVybjoK KyAqIFRydWUgaWYgdGhlIHBsYW5lIGNhbiBkbyB0aGUgcm90YXRpb24sIGZhbHNlIG90aGVyd2lz ZS4KKyAqLworYm9vbCBkcm1fY2xpZW50X3BhbmVsX3JvdGF0aW9uKHN0cnVjdCBkcm1fbW9kZV9z ZXQgKm1vZGVzZXQsIHVuc2lnbmVkIGludCAqcm90YXRpb24pCiB7CiAJc3RydWN0IGRybV9jb25u ZWN0b3IgKmNvbm5lY3RvciA9IG1vZGVzZXQtPmNvbm5lY3RvcnNbMF07CiAJc3RydWN0IGRybV9w bGFuZSAqcGxhbmUgPSBtb2Rlc2V0LT5jcnRjLT5wcmltYXJ5OwpAQCAtNDMxLDEwICs0NDIsOSBA QCBzdGF0aWMgYm9vbCBkcm1fZmJfaGVscGVyX3BhbmVsX3JvdGF0aW9uKHN0cnVjdCBkcm1fbW9k ZV9zZXQgKm1vZGVzZXQsCiAJcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBpbnQgcmVzdG9yZV9m YmRldl9tb2RlX2F0b21pYyhzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLCBib29sIGFj dGl2ZSkKK3N0YXRpYyBpbnQgZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9hdG9taWMoc3RydWN0 IGRybV9jbGllbnRfZGV2ICpjbGllbnQsIGJvb2wgYWN0aXZlKQogewotCXN0cnVjdCBkcm1fY2xp ZW50X2RldiAqY2xpZW50ID0gJmZiX2hlbHBlci0+Y2xpZW50OwotCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBmYl9oZWxwZXItPmRldjsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY2xpZW50 LT5kZXY7CiAJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGU7CiAJc3RydWN0IGRy bV9wbGFuZSAqcGxhbmU7CiAJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlOwpAQCAtNDc0 LDcgKzQ4NCw3IEBAIHN0YXRpYyBpbnQgcmVzdG9yZV9mYmRldl9tb2RlX2F0b21pYyhzdHJ1Y3Qg ZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLCBib29sIGFjdGl2CiAJCXN0cnVjdCBkcm1fcGxhbmUg KnByaW1hcnkgPSBtb2RlX3NldC0+Y3J0Yy0+cHJpbWFyeTsKIAkJdW5zaWduZWQgaW50IHJvdGF0 aW9uOwogCi0JCWlmIChkcm1fZmJfaGVscGVyX3BhbmVsX3JvdGF0aW9uKG1vZGVfc2V0LCAmcm90 YXRpb24pKSB7CisJCWlmIChkcm1fY2xpZW50X3BhbmVsX3JvdGF0aW9uKG1vZGVfc2V0LCAmcm90 YXRpb24pKSB7CiAJCQkvKiBDYW5ub3QgZmFpbCBhcyB3ZSd2ZSBhbHJlYWR5IGdvdHRlbiB0aGUg cGxhbmUgc3RhdGUgYWJvdmUgKi8KIAkJCXBsYW5lX3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3 X3BsYW5lX3N0YXRlKHN0YXRlLCBwcmltYXJ5KTsKIAkJCXBsYW5lX3N0YXRlLT5yb3RhdGlvbiA9 IHJvdGF0aW9uOwpAQCAtNTE2LDE1ICs1MjYsMTQgQEAgc3RhdGljIGludCByZXN0b3JlX2ZiZGV2 X21vZGVfYXRvbWljKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIsIGJvb2wgYWN0aXYK IAlnb3RvIHJldHJ5OwogfQogCi1zdGF0aWMgaW50IHJlc3RvcmVfZmJkZXZfbW9kZV9sZWdhY3ko c3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcikKK3N0YXRpYyBpbnQgZHJtX2NsaWVudF9t b2Rlc2V0X2NvbW1pdF9sZWdhY3koc3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQpCiB7Ci0J c3RydWN0IGRybV9jbGllbnRfZGV2ICpjbGllbnQgPSAmZmJfaGVscGVyLT5jbGllbnQ7Ci0Jc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGZiX2hlbHBlci0+ZGV2OworCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBjbGllbnQtPmRldjsKIAlzdHJ1Y3QgZHJtX21vZGVfc2V0ICptb2RlX3NldDsKIAlz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKIAlpbnQgcmV0ID0gMDsKIAotCWRybV9tb2Rlc2V0X2xv Y2tfYWxsKGZiX2hlbHBlci0+ZGV2KTsKKwlkcm1fbW9kZXNldF9sb2NrX2FsbChkZXYpOwogCWRy bV9mb3JfZWFjaF9wbGFuZShwbGFuZSwgZGV2KSB7CiAJCWlmIChwbGFuZS0+dHlwZSAhPSBEUk1f UExBTkVfVFlQRV9QUklNQVJZKQogCQkJZHJtX3BsYW5lX2ZvcmNlX2Rpc2FibGUocGxhbmUpOwpA QCAtNTUzLDM1ICs1NjIsNTMgQEAgc3RhdGljIGludCByZXN0b3JlX2ZiZGV2X21vZGVfbGVnYWN5 KHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIpCiAJCQlnb3RvIG91dDsKIAl9CiBvdXQ6 Ci0JZHJtX21vZGVzZXRfdW5sb2NrX2FsbChmYl9oZWxwZXItPmRldik7CisJZHJtX21vZGVzZXRf dW5sb2NrX2FsbChkZXYpOwogCiAJcmV0dXJuIHJldDsKIH0KIAotc3RhdGljIGludCByZXN0b3Jl X2ZiZGV2X21vZGVfZm9yY2Uoc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlcikKKy8qKgor ICogZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9mb3JjZSgpIC0gRm9yY2UgY29tbWl0IENSVEMg Y29uZmlndXJhdGlvbgorICogQGNsaWVudDogRFJNIGNsaWVudAorICoKKyAqIENvbW1pdCBtb2Rl c2V0IGNvbmZpZ3VyYXRpb24gdG8gY3J0Y3Mgd2l0aG91dCBjaGVja2luZyBpZiB0aGVyZSBpcyBh IERSTSBtYXN0ZXIuCisgKgorICogUmV0dXJuczoKKyAqIFplcm8gb24gc3VjY2VzcyBvciBuZWdh dGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2ludCBkcm1fY2xpZW50X21vZGVzZXRf Y29tbWl0X2ZvcmNlKHN0cnVjdCBkcm1fY2xpZW50X2RldiAqY2xpZW50KQogewotCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBmYl9oZWxwZXItPmRldjsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gY2xpZW50LT5kZXY7CiAJaW50IHJldDsKIAotCW11dGV4X2xvY2soJmZiX2hlbHBlci0+Y2xp ZW50Lm1vZGVzZXRfbXV0ZXgpOworCW11dGV4X2xvY2soJmNsaWVudC0+bW9kZXNldF9tdXRleCk7 CiAJaWYgKGRybV9kcnZfdXNlc19hdG9taWNfbW9kZXNldChkZXYpKQotCQlyZXQgPSByZXN0b3Jl X2ZiZGV2X21vZGVfYXRvbWljKGZiX2hlbHBlciwgdHJ1ZSk7CisJCXJldCA9IGRybV9jbGllbnRf bW9kZXNldF9jb21taXRfYXRvbWljKGNsaWVudCwgdHJ1ZSk7CiAJZWxzZQotCQlyZXQgPSByZXN0 b3JlX2ZiZGV2X21vZGVfbGVnYWN5KGZiX2hlbHBlcik7Ci0JbXV0ZXhfdW5sb2NrKCZmYl9oZWxw ZXItPmNsaWVudC5tb2Rlc2V0X211dGV4KTsKKwkJcmV0ID0gZHJtX2NsaWVudF9tb2Rlc2V0X2Nv bW1pdF9sZWdhY3koY2xpZW50KTsKKwltdXRleF91bmxvY2soJmNsaWVudC0+bW9kZXNldF9tdXRl eCk7CiAKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMgaW50IHJlc3RvcmVfZmJkZXZfbW9kZShz dHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKQorLyoqCisgKiBkcm1fY2xpZW50X21vZGVz ZXRfY29tbWl0KCkgLSBDb21taXQgQ1JUQyBjb25maWd1cmF0aW9uCisgKiBAY2xpZW50OiBEUk0g Y2xpZW50CisgKgorICogQ29tbWl0IG1vZGVzZXQgY29uZmlndXJhdGlvbiB0byBjcnRjcy4KKyAq CisgKiBSZXR1cm5zOgorICogWmVybyBvbiBzdWNjZXNzIG9yIG5lZ2F0aXZlIGVycm9yIGNvZGUg b24gZmFpbHVyZS4KKyAqLworaW50IGRybV9jbGllbnRfbW9kZXNldF9jb21taXQoc3RydWN0IGRy bV9jbGllbnRfZGV2ICpjbGllbnQpCiB7Ci0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGZiX2hl bHBlci0+ZGV2OworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjbGllbnQtPmRldjsKIAlpbnQg cmV0OwogCiAJaWYgKCFkcm1fbWFzdGVyX2ludGVybmFsX2FjcXVpcmUoZGV2KSkKIAkJcmV0dXJu IC1FQlVTWTsKIAotCXJldCA9IHJlc3RvcmVfZmJkZXZfbW9kZV9mb3JjZShmYl9oZWxwZXIpOwor CXJldCA9IGRybV9jbGllbnRfbW9kZXNldF9jb21taXRfZm9yY2UoY2xpZW50KTsKIAogCWRybV9t YXN0ZXJfaW50ZXJuYWxfcmVsZWFzZShkZXYpOwogCkBAIC02MjEsNyArNjQ4LDcgQEAgaW50IGRy bV9mYl9oZWxwZXJfcmVzdG9yZV9mYmRldl9tb2RlX3VubG9ja2VkKHN0cnVjdCBkcm1fZmJfaGVs cGVyICpmYl9oZWxwZXIpCiAJICogU28gZmlyc3QgdGhlc2UgdGVzdHMgbmVlZCB0byBiZSBmaXhl ZCBzbyB0aGV5IGRyb3AgbWFzdGVyIG9yIGRvbid0CiAJICogaGF2ZSBhbiBmZCBvcGVuLgogCSAq LwotCXJldCA9IHJlc3RvcmVfZmJkZXZfbW9kZV9mb3JjZShmYl9oZWxwZXIpOworCXJldCA9IGRy bV9jbGllbnRfbW9kZXNldF9jb21taXRfZm9yY2UoJmZiX2hlbHBlci0+Y2xpZW50KTsKIAogCWRv X2RlbGF5ZWQgPSBmYl9oZWxwZXItPmRlbGF5ZWRfaG90cGx1ZzsKIAlpZiAoZG9fZGVsYXllZCkK QEAgLTY1NSw3ICs2ODIsNyBAQCBzdGF0aWMgYm9vbCBkcm1fZmJfaGVscGVyX2ZvcmNlX2tlcm5l bF9tb2RlKHZvaWQpCiAJCQljb250aW51ZTsKIAogCQltdXRleF9sb2NrKCZoZWxwZXItPmxvY2sp OwotCQlyZXQgPSByZXN0b3JlX2ZiZGV2X21vZGVfZm9yY2UoaGVscGVyKTsKKwkJcmV0ID0gZHJt X2NsaWVudF9tb2Rlc2V0X2NvbW1pdF9mb3JjZSgmaGVscGVyLT5jbGllbnQpOwogCQlpZiAocmV0 KQogCQkJZXJyb3IgPSB0cnVlOwogCQltdXRleF91bmxvY2soJmhlbHBlci0+bG9jayk7CkBAIC02 ODcsMTAgKzcxNCw5IEBAIHN0YXRpYyBzdHJ1Y3Qgc3lzcnFfa2V5X29wIHN5c3JxX2RybV9mYl9o ZWxwZXJfcmVzdG9yZV9vcCA9IHsKIHN0YXRpYyBzdHJ1Y3Qgc3lzcnFfa2V5X29wIHN5c3JxX2Ry bV9mYl9oZWxwZXJfcmVzdG9yZV9vcCA9IHsgfTsKICNlbmRpZgogCi1zdGF0aWMgdm9pZCBkcG1z X2xlZ2FjeShzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyLCBpbnQgZHBtc19tb2RlKQor c3RhdGljIHZvaWQgZHJtX2NsaWVudF9tb2Rlc2V0X2RwbXNfbGVnYWN5KHN0cnVjdCBkcm1fY2xp ZW50X2RldiAqY2xpZW50LCBpbnQgZHBtc19tb2RlKQogewotCXN0cnVjdCBkcm1fY2xpZW50X2Rl diAqY2xpZW50ID0gJmZiX2hlbHBlci0+Y2xpZW50OwotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBmYl9oZWxwZXItPmRldjsKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY2xpZW50LT5kZXY7 CiAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKIAlzdHJ1Y3QgZHJtX21vZGVfc2V0 ICptb2Rlc2V0OwogCWludCBqOwpAQCAtNzEwLDI4ICs3MzYsNDIgQEAgc3RhdGljIHZvaWQgZHBt c19sZWdhY3koc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciwgaW50IGRwbXNfbW9kZSkK IAlkcm1fbW9kZXNldF91bmxvY2tfYWxsKGRldik7CiB9CiAKLXN0YXRpYyB2b2lkIGRybV9mYl9o ZWxwZXJfZHBtcyhzdHJ1Y3QgZmJfaW5mbyAqaW5mbywgaW50IGRwbXNfbW9kZSkKKy8qKgorICog ZHJtX2NsaWVudF9tb2Rlc2V0X2RwbXMoKSAtIFNldCBEUE1TIG1vZGUKKyAqIEBjbGllbnQ6IERS TSBjbGllbnQKKyAqIEBtb2RlOiBEUE1TIG1vZGUKKyAqCisgKiBOb3RlOiBGb3IgYXRvbWljIGRy aXZlcnMgQG1vZGUgaXMgcmVkdWNlZCB0byBvbi9vZmYuCisgKgorICogUmV0dXJuczoKKyAqIFpl cm8gb24gc3VjY2VzcyBvciBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisgKi8KK2lu dCBkcm1fY2xpZW50X21vZGVzZXRfZHBtcyhzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCwg aW50IG1vZGUpCiB7Ci0Jc3RydWN0IGRybV9mYl9oZWxwZXIgKmZiX2hlbHBlciA9IGluZm8tPnBh cjsKLQlzdHJ1Y3QgZHJtX2NsaWVudF9kZXYgKmNsaWVudCA9ICZmYl9oZWxwZXItPmNsaWVudDsK LQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZmJfaGVscGVyLT5kZXY7CisJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGNsaWVudC0+ZGV2OworCWludCByZXQgPSAwOwogCi0JLyoKLQkgKiBGb3Ig ZWFjaCBDUlRDIGluIHRoaXMgZmIsIHR1cm4gdGhlIGNvbm5lY3RvcnMgb24vb2ZmLgotCSAqLwot CW11dGV4X2xvY2soJmZiX2hlbHBlci0+bG9jayk7CiAJaWYgKCFkcm1fbWFzdGVyX2ludGVybmFs X2FjcXVpcmUoZGV2KSkKLQkJZ290byB1bmxvY2s7CisJCXJldHVybiAtRUJVU1k7CiAKIAltdXRl eF9sb2NrKCZjbGllbnQtPm1vZGVzZXRfbXV0ZXgpOwogCWlmIChkcm1fZHJ2X3VzZXNfYXRvbWlj X21vZGVzZXQoZGV2KSkKLQkJcmVzdG9yZV9mYmRldl9tb2RlX2F0b21pYyhmYl9oZWxwZXIsIGRw bXNfbW9kZSA9PSBEUk1fTU9ERV9EUE1TX09OKTsKKwkJcmV0ID0gZHJtX2NsaWVudF9tb2Rlc2V0 X2NvbW1pdF9hdG9taWMoY2xpZW50LCBtb2RlID09IERSTV9NT0RFX0RQTVNfT04pOwogCWVsc2UK LQkJZHBtc19sZWdhY3koZmJfaGVscGVyLCBkcG1zX21vZGUpOworCQlkcm1fY2xpZW50X21vZGVz ZXRfZHBtc19sZWdhY3koY2xpZW50LCBtb2RlKTsKIAltdXRleF91bmxvY2soJmNsaWVudC0+bW9k ZXNldF9tdXRleCk7CiAKIAlkcm1fbWFzdGVyX2ludGVybmFsX3JlbGVhc2UoZGV2KTsKLXVubG9j azoKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIGRybV9mYl9oZWxwZXJfZHBtcyhz dHJ1Y3QgZmJfaW5mbyAqaW5mbywgaW50IGRwbXNfbW9kZSkKK3sKKwlzdHJ1Y3QgZHJtX2ZiX2hl bHBlciAqZmJfaGVscGVyID0gaW5mby0+cGFyOworCisJbXV0ZXhfbG9jaygmZmJfaGVscGVyLT5s b2NrKTsKKwlkcm1fY2xpZW50X21vZGVzZXRfZHBtcygmZmJfaGVscGVyLT5jbGllbnQsIGRwbXNf bW9kZSk7CiAJbXV0ZXhfdW5sb2NrKCZmYl9oZWxwZXItPmxvY2spOwogfQogCkBAIC0xODA1LDcg KzE4NDUsNyBAQCBzdGF0aWMgaW50IHBhbl9kaXNwbGF5X2F0b21pYyhzdHJ1Y3QgZmJfdmFyX3Nj cmVlbmluZm8gKnZhciwKIAogCXBhbl9zZXQoZmJfaGVscGVyLCB2YXItPnhvZmZzZXQsIHZhci0+ eW9mZnNldCk7CiAKLQlyZXQgPSByZXN0b3JlX2ZiZGV2X21vZGVfZm9yY2UoZmJfaGVscGVyKTsK KwlyZXQgPSBkcm1fY2xpZW50X21vZGVzZXRfY29tbWl0X2ZvcmNlKCZmYl9oZWxwZXItPmNsaWVu dCk7CiAJaWYgKCFyZXQpIHsKIAkJaW5mby0+dmFyLnhvZmZzZXQgPSB2YXItPnhvZmZzZXQ7CiAJ CWluZm8tPnZhci55b2Zmc2V0ID0gdmFyLT55b2Zmc2V0OwpAQCAtMjAzMSw3ICsyMDcxLDcgQEAg c3RhdGljIGludCBkcm1fZmJfaGVscGVyX3NpbmdsZV9mYl9wcm9iZShzdHJ1Y3QgZHJtX2ZiX2hl bHBlciAqZmJfaGVscGVyLAogCiAJCS8qIEZpcnN0IHRpbWU6IGRpc2FibGUgYWxsIGNydGMncy4u ICovCiAJCWlmICghZmJfaGVscGVyLT5kZWZlcnJlZF9zZXR1cCkKLQkJCXJlc3RvcmVfZmJkZXZf bW9kZShmYl9oZWxwZXIpOworCQkJZHJtX2NsaWVudF9tb2Rlc2V0X2NvbW1pdChjbGllbnQpOwog CQlyZXR1cm4gLUVBR0FJTjsKIAl9CiAKQEAgLTI4MDUsNyArMjg0NSw3IEBAIHN0YXRpYyB2b2lk IGRybV9zZXR1cF9jcnRjc19mYihzdHJ1Y3QgZHJtX2ZiX2hlbHBlciAqZmJfaGVscGVyKQogCiAJ CW1vZGVzZXQtPmZiID0gZmJfaGVscGVyLT5mYjsKIAotCQlpZiAoZHJtX2ZiX2hlbHBlcl9wYW5l bF9yb3RhdGlvbihtb2Rlc2V0LCAmcm90YXRpb24pKQorCQlpZiAoZHJtX2NsaWVudF9wYW5lbF9y b3RhdGlvbihtb2Rlc2V0LCAmcm90YXRpb24pKQogCQkJLyogUm90YXRpbmcgaW4gaGFyZHdhcmUs IGZiY29uIHNob3VsZCBub3Qgcm90YXRlICovCiAJCQlzd19yb3RhdGlvbnMgfD0gRFJNX01PREVf Uk9UQVRFXzA7CiAJCWVsc2UKLS0gCjIuMjAuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4