From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [PATCH v2 07/28] drm/i915: Remove 'outstanding_lazy_seqno' Date: Fri, 14 Nov 2014 12:18:58 +0000 Message-ID: <1415967559-17074-8-git-send-email-John.C.Harrison@Intel.com> References: <1415967559-17074-1-git-send-email-John.C.Harrison@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 67EB66EDC7 for ; Fri, 14 Nov 2014 04:19:29 -0800 (PST) In-Reply-To: <1415967559-17074-1-git-send-email-John.C.Harrison@Intel.com> 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 RnJvbTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KClRoZSBPTFMg dmFsdWUgaXMgbm93IG9ic29sZXRlLiBFeGFjdGx5IHRoZSBzYW1lIHZhbHVlIGlzIGd1YXJhdGVl ZCB0byBiZSBhbHdheXMKYXZhaWxhYmxlIGFzIFBMUi0+c2Vxbm8uIFRodXMgaXQgaXMgc2FmZSB0 byByZW1vdmUgdGhlIE9MUyBjb21wbGV0ZWx5LiBBbmQgYWxzbwp0byByZW5hbWUgdGhlIFBMUiB0 byBPTFIgdG8ga2VlcCB0aGUgJ291dHN0YW5kaW5nIGxhenkgLi4uJyBuYW1pbmcgY29udmVudGlv bgp2YWxpZC4KCkZvcjogVklaLTQzNzcKU2lnbmVkLW9mZi1ieTogSm9obiBIYXJyaXNvbiA8Sm9o bi5DLkhhcnJpc29uQEludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bS5jICAgICAgICAgICAgfCAgIDEzICsrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2V4ZWNidWZmZXIuYyB8ICAgIDQgKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMgICAgICAgfCAgICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu YyAgICAgICAgICAgfCAgIDI2ICsrKysrLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9yaW5nYnVmZmVyLmMgICAgfCAgIDUyICsrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0K IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCAgICB8ICAgMTMgKystLS0t LQogNiBmaWxlcyBjaGFuZ2VkLCA0OSBpbnNlcnRpb25zKCspLCA2MiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW0uYwppbmRleCA0ZGJmZWUzLi5mYzAzZTIxIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtLmMKQEAgLTExODksNyArMTE4OSw3IEBAIGk5MTVfZ2VtX2NoZWNrX29scihzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLCB1MzIgc2Vxbm8pCiAJQlVHX09OKCFtdXRleF9pc19s b2NrZWQoJnJpbmctPmRldi0+c3RydWN0X211dGV4KSk7CiAKIAlyZXQgPSAwOwotCWlmIChzZXFu byA9PSByaW5nLT5vdXRzdGFuZGluZ19sYXp5X3NlcW5vKQorCWlmIChzZXFubyA9PSBpOTE1X2dl bV9yZXF1ZXN0X2dldF9zZXFubyhyaW5nLT5vdXRzdGFuZGluZ19sYXp5X3JlcXVlc3QpKQogCQly ZXQgPSBpOTE1X2FkZF9yZXF1ZXN0KHJpbmcsIE5VTEwpOwogCiAJcmV0dXJuIHJldDsKQEAgLTI0 MjYsNyArMjQyNiw3IEBAIGludCBfX2k5MTVfYWRkX3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqcmluZywKIAl1MzIgcmVxdWVzdF9yaW5nX3Bvc2l0aW9uLCByZXF1ZXN0X3N0YXJ0Owog CWludCByZXQ7CiAKLQlyZXF1ZXN0ID0gcmluZy0+cHJlYWxsb2NhdGVkX2xhenlfcmVxdWVzdDsK KwlyZXF1ZXN0ID0gcmluZy0+b3V0c3RhbmRpbmdfbGF6eV9yZXF1ZXN0OwogCWlmIChXQVJOX09O KHJlcXVlc3QgPT0gTlVMTCkpCiAJCXJldHVybiAtRU5PTUVNOwogCkBAIC0yNDcxLDcgKzI0NzEs NiBAQCBpbnQgX19pOTE1X2FkZF9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcs CiAJCQlyZXR1cm4gcmV0OwogCX0KIAotCXJlcXVlc3QtPnNlcW5vID0gaW50ZWxfcmluZ19nZXRf c2Vxbm8ocmluZyk7CiAJcmVxdWVzdC0+cmluZyA9IHJpbmc7CiAJcmVxdWVzdC0+aGVhZCA9IHJl cXVlc3Rfc3RhcnQ7CiAJcmVxdWVzdC0+dGFpbCA9IHJlcXVlc3RfcmluZ19wb3NpdGlvbjsKQEAg LTI1MDgsOCArMjUwNyw3IEBAIGludCBfX2k5MTVfYWRkX3JlcXVlc3Qoc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqcmluZywKIAl9CiAKIAl0cmFjZV9pOTE1X2dlbV9yZXF1ZXN0X2FkZChyaW5nLCBy ZXF1ZXN0LT5zZXFubyk7Ci0JcmluZy0+b3V0c3RhbmRpbmdfbGF6eV9zZXFubyA9IDA7Ci0Jcmlu Zy0+cHJlYWxsb2NhdGVkX2xhenlfcmVxdWVzdCA9IE5VTEw7CisJcmluZy0+b3V0c3RhbmRpbmdf bGF6eV9yZXF1ZXN0ID0gTlVMTDsKIAogCWlmICghZGV2X3ByaXYtPnVtcy5tbV9zdXNwZW5kZWQp IHsKIAkJaTkxNV9xdWV1ZV9oYW5nY2hlY2socmluZy0+ZGV2KTsKQEAgLTI2ODIsOSArMjY4MCw4 IEBAIHN0YXRpYyB2b2lkIGk5MTVfZ2VtX3Jlc2V0X3JpbmdfY2xlYW51cChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCWtmcmVlKHN1Ym1pdF9yZXEpOwogCX0KIAotCS8qIFRo ZXNlIG1heSBub3QgaGF2ZSBiZWVuIGZsdXNoIGJlZm9yZSB0aGUgcmVzZXQsIGRvIHNvIG5vdyAq LwotCWk5MTVfZ2VtX3JlcXVlc3RfYXNzaWduKCZyaW5nLT5wcmVhbGxvY2F0ZWRfbGF6eV9yZXF1 ZXN0LCBOVUxMKTsKLQlyaW5nLT5vdXRzdGFuZGluZ19sYXp5X3NlcW5vID0gMDsKKwkvKiBUaGlz IG1heSBub3QgaGF2ZSBiZWVuIGZsdXNoZWQgYmVmb3JlIHRoZSByZXNldCwgc28gY2xlYW4gaXQg bm93ICovCisJaTkxNV9nZW1fcmVxdWVzdF9hc3NpZ24oJnJpbmctPm91dHN0YW5kaW5nX2xhenlf cmVxdWVzdCwgTlVMTCk7CiB9CiAKIHZvaWQgaTkxNV9nZW1fcmVzdG9yZV9mZW5jZXMoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX2V4ZWNidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZm ZXIuYwppbmRleCAwOTRkYjE4Li44MTIzY2I1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fZXhlY2J1ZmZlci5jCkBAIC0xMTY3LDcgKzExNjcsOSBAQCBpOTE1X2dlbV9yaW5nYnVm ZmVyX3N1Ym1pc3Npb24oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9maWxlICpm aWxlLAogCQkJcmV0dXJuIHJldDsKIAl9CiAKLQl0cmFjZV9pOTE1X2dlbV9yaW5nX2Rpc3BhdGNo KHJpbmcsIGludGVsX3JpbmdfZ2V0X3NlcW5vKHJpbmcpLCBmbGFncyk7CisJdHJhY2VfaTkxNV9n ZW1fcmluZ19kaXNwYXRjaChyaW5nLAorCQkgICAgaTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8o aW50ZWxfcmluZ19nZXRfcmVxdWVzdChyaW5nKSksCisJCSAgICBmbGFncyk7CiAKIAlpOTE1X2dl bV9leGVjYnVmZmVyX21vdmVfdG9fYWN0aXZlKHZtYXMsIHJpbmcpOwogCWk5MTVfZ2VtX2V4ZWNi dWZmZXJfcmV0aXJlX2NvbW1hbmRzKGRldiwgZmlsZSwgcmluZywgYmF0Y2hfb2JqKTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCA2MGI2NjJhLi45YjdlOTkzIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC05NjYxLDcgKzk2NjEsOCBAQCBzdGF0aWMg aW50IGludGVsX2NydGNfcGFnZV9mbGlwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJaWYgKHJl dCkKIAkJCWdvdG8gY2xlYW51cF91bnBpbjsKIAotCQl3b3JrLT5mbGlwX3F1ZXVlZF9zZXFubyA9 IGludGVsX3JpbmdfZ2V0X3NlcW5vKHJpbmcpOworCQl3b3JrLT5mbGlwX3F1ZXVlZF9zZXFubyA9 CisJCSAgICBpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhpbnRlbF9yaW5nX2dldF9yZXF1ZXN0 KHJpbmcpKTsKIAkJd29yay0+ZmxpcF9xdWV1ZWRfcmluZyA9IHJpbmc7CiAJfQogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2xyYy5jCmluZGV4IDBhZTY5MjUuLmI1NWRjYjAgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5jCkBAIC03OTEsMjIgKzc5MSwxNCBAQCB2b2lkIGludGVsX2xvZ2ljYWxfcmluZ19h ZHZhbmNlX2FuZF9zdWJtaXQoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCiAJZXhl Y2xpc3RzX2NvbnRleHRfcXVldWUocmluZywgY3R4LCByaW5nYnVmLT50YWlsKTsKIH0KIAotc3Rh dGljIGludCBsb2dpY2FsX3JpbmdfYWxsb2Nfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2luZV9jcyAq cmluZywKLQkJCQkgICAgc3RydWN0IGludGVsX2NvbnRleHQgKmN0eCkKK3N0YXRpYyBpbnQgbG9n aWNhbF9yaW5nX2FsbG9jX3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKKwkJ CQkgICAgICBzdHJ1Y3QgaW50ZWxfY29udGV4dCAqY3R4KQogewogCXN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxdWVzdDsKIAlpbnQgcmV0OwogCi0JLyogWFhYOiBUaGUgYWltIGlzIHRv IHJlcGxhY2Ugc2Vxbm8gdmFsdWVzIHdpdGggcmVxdWVzdCBzdHJ1Y3R1cmVzLgotCSAqIEEgc3Rl cCBhbG9uZyB0aGUgd2F5IGlzIHRvIHN3aXRjaCB0byB1c2luZyB0aGUgUExSIGluIHByZWZlcmVu Y2UKLQkgKiB0byB0aGUgT0xTLiBUaGF0IHJlcXVpcmVzIHRoZSBQTFIgdG8gb25seSBiZSB2YWxp ZCB3aGVuIHRoZSBPTFMgaXMKLQkgKiBhbHNvIHZhbGlkLiBJLmUuLCB0aGUgdHdvIG11c3QgYmUg a2VwdCBpbiBzdGVwLiAqLwotCi0JaWYgKHJpbmctPm91dHN0YW5kaW5nX2xhenlfc2Vxbm8pIHsK LQkJV0FSTl9PTihyaW5nLT5wcmVhbGxvY2F0ZWRfbGF6eV9yZXF1ZXN0ID09IE5VTEwpOworCWlm IChyaW5nLT5vdXRzdGFuZGluZ19sYXp5X3JlcXVlc3QpCiAJCXJldHVybiAwOwotCX0KLQlXQVJO X09OKHJpbmctPnByZWFsbG9jYXRlZF9sYXp5X3JlcXVlc3QgIT0gTlVMTCk7CiAKIAlyZXF1ZXN0 ID0ga21hbGxvYyhzaXplb2YoKnJlcXVlc3QpLCBHRlBfS0VSTkVMKTsKIAlpZiAocmVxdWVzdCA9 PSBOVUxMKQpAQCAtODE0LDcgKzgwNiw3IEBAIHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX2FsbG9j X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAKIAlrcmVmX2luaXQoJnJlcXVl c3QtPnJlZik7CiAKLQlyZXQgPSBpOTE1X2dlbV9nZXRfc2Vxbm8ocmluZy0+ZGV2LCAmcmluZy0+ b3V0c3RhbmRpbmdfbGF6eV9zZXFubyk7CisJcmV0ID0gaTkxNV9nZW1fZ2V0X3NlcW5vKHJpbmct PmRldiwgJnJlcXVlc3QtPnNlcW5vKTsKIAlpZiAocmV0KSB7CiAJCWtmcmVlKHJlcXVlc3QpOwog CQlyZXR1cm4gcmV0OwpAQCAtODI3LDcgKzgxOSw3IEBAIHN0YXRpYyBpbnQgbG9naWNhbF9yaW5n X2FsbG9jX3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsCiAJcmVxdWVzdC0+Y3R4 ID0gY3R4OwogCWk5MTVfZ2VtX2NvbnRleHRfcmVmZXJlbmNlKHJlcXVlc3QtPmN0eCk7CiAKLQly aW5nLT5wcmVhbGxvY2F0ZWRfbGF6eV9yZXF1ZXN0ID0gcmVxdWVzdDsKKwlyaW5nLT5vdXRzdGFu ZGluZ19sYXp5X3JlcXVlc3QgPSByZXF1ZXN0OwogCXJldHVybiAwOwogfQogCkBAIC05OTUsNyAr OTg3LDcgQEAgaW50IGludGVsX2xvZ2ljYWxfcmluZ19iZWdpbihzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqcmluZ2J1ZiwgaW50IG51bV9kd29yZHMpCiAJCXJldHVybiByZXQ7CiAKIAkvKiBQcmVh bGxvY2F0ZSB0aGUgb2xyIGJlZm9yZSB0b3VjaGluZyB0aGUgcmluZyAqLwotCXJldCA9IGxvZ2lj YWxfcmluZ19hbGxvY19zZXFubyhyaW5nLCByaW5nYnVmLT5GSVhNRV9scmNfY3R4KTsKKwlyZXQg PSBsb2dpY2FsX3JpbmdfYWxsb2NfcmVxdWVzdChyaW5nLCByaW5nYnVmLT5GSVhNRV9scmNfY3R4 KTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCkBAIC0xMjQ4LDcgKzEyNDAsOCBAQCBzdGF0 aWMgaW50IGdlbjhfZW1pdF9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVm KQogCQkJCShyaW5nLT5zdGF0dXNfcGFnZS5nZnhfYWRkciArCiAJCQkJKEk5MTVfR0VNX0hXU19J TkRFWCA8PCBNSV9TVE9SRV9EV09SRF9JTkRFWF9TSElGVCkpKTsKIAlpbnRlbF9sb2dpY2FsX3Jp bmdfZW1pdChyaW5nYnVmLCAwKTsKLQlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBy aW5nLT5vdXRzdGFuZGluZ19sYXp5X3NlcW5vKTsKKwlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChy aW5nYnVmLAorCQlpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhyaW5nLT5vdXRzdGFuZGluZ19s YXp5X3JlcXVlc3QpKTsKIAlpbnRlbF9sb2dpY2FsX3JpbmdfZW1pdChyaW5nYnVmLCBNSV9VU0VS X0lOVEVSUlVQVCk7CiAJaW50ZWxfbG9naWNhbF9yaW5nX2VtaXQocmluZ2J1ZiwgTUlfTk9PUCk7 CiAJaW50ZWxfbG9naWNhbF9yaW5nX2FkdmFuY2VfYW5kX3N1Ym1pdChyaW5nYnVmKTsKQEAgLTEy NzMsOCArMTI2Niw3IEBAIHZvaWQgaW50ZWxfbG9naWNhbF9yaW5nX2NsZWFudXAoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZykKIAogCWludGVsX2xvZ2ljYWxfcmluZ19zdG9wKHJpbmcpOwog CVdBUk5fT04oKEk5MTVfUkVBRF9NT0RFKHJpbmcpICYgTU9ERV9JRExFKSA9PSAwKTsKLQlpOTE1 X2dlbV9yZXF1ZXN0X2Fzc2lnbigmcmluZy0+cHJlYWxsb2NhdGVkX2xhenlfcmVxdWVzdCwgTlVM TCk7Ci0JcmluZy0+b3V0c3RhbmRpbmdfbGF6eV9zZXFubyA9IDA7CisJaTkxNV9nZW1fcmVxdWVz dF9hc3NpZ24oJnJpbmctPm91dHN0YW5kaW5nX2xhenlfcmVxdWVzdCwgTlVMTCk7CiAKIAlpZiAo cmluZy0+Y2xlYW51cCkKIAkJcmluZy0+Y2xlYW51cChyaW5nKTsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3JpbmdidWZmZXIuYwppbmRleCA3NzUyNzkxLi5mMzcyNWRhIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCkBAIC05MTUsMTcgKzkxNSwyMCBAQCBzdGF0aWMg aW50IGdlbjhfcmNzX3NpZ25hbChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpzaWduYWxsZXIsCiAJ CXJldHVybiByZXQ7CiAKIAlmb3JfZWFjaF9yaW5nKHdhaXRlciwgZGV2X3ByaXYsIGkpIHsKKwkJ dTMyIHNlcW5vOwogCQl1NjQgZ3R0X29mZnNldCA9IHNpZ25hbGxlci0+c2VtYXBob3JlLnNpZ25h bF9nZ3R0W2ldOwogCQlpZiAoZ3R0X29mZnNldCA9PSBNSV9TRU1BUEhPUkVfU1lOQ19JTlZBTElE KQogCQkJY29udGludWU7CiAKKwkJc2Vxbm8gPSBpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubygK KwkJCQkJICAgc2lnbmFsbGVyLT5vdXRzdGFuZGluZ19sYXp5X3JlcXVlc3QpOwogCQlpbnRlbF9y aW5nX2VtaXQoc2lnbmFsbGVyLCBHRlhfT1BfUElQRV9DT05UUk9MKDYpKTsKIAkJaW50ZWxfcmlu Z19lbWl0KHNpZ25hbGxlciwgUElQRV9DT05UUk9MX0dMT0JBTF9HVFRfSVZCIHwKIAkJCQkJICAg UElQRV9DT05UUk9MX1FXX1dSSVRFIHwKIAkJCQkJICAgUElQRV9DT05UUk9MX0ZMVVNIX0VOQUJM RSk7CiAJCWludGVsX3JpbmdfZW1pdChzaWduYWxsZXIsIGxvd2VyXzMyX2JpdHMoZ3R0X29mZnNl dCkpOwogCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCB1cHBlcl8zMl9iaXRzKGd0dF9vZmZz ZXQpKTsKLQkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgc2lnbmFsbGVyLT5vdXRzdGFuZGlu Z19sYXp5X3NlcW5vKTsKKwkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgc2Vxbm8pOwogCQlp bnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCAwKTsKIAkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxl ciwgTUlfU0VNQVBIT1JFX1NJR05BTCB8CiAJCQkJCSAgIE1JX1NFTUFQSE9SRV9UQVJHRVQod2Fp dGVyLT5pZCkpOwpAQCAtOTUzLDE2ICs5NTYsMTkgQEAgc3RhdGljIGludCBnZW44X3hjc19zaWdu YWwoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqc2lnbmFsbGVyLAogCQlyZXR1cm4gcmV0OwogCiAJ Zm9yX2VhY2hfcmluZyh3YWl0ZXIsIGRldl9wcml2LCBpKSB7CisJCXUzMiBzZXFubzsKIAkJdTY0 IGd0dF9vZmZzZXQgPSBzaWduYWxsZXItPnNlbWFwaG9yZS5zaWduYWxfZ2d0dFtpXTsKIAkJaWYg KGd0dF9vZmZzZXQgPT0gTUlfU0VNQVBIT1JFX1NZTkNfSU5WQUxJRCkKIAkJCWNvbnRpbnVlOwog CisJCXNlcW5vID0gaTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8oCisJCQkJCSAgIHNpZ25hbGxl ci0+b3V0c3RhbmRpbmdfbGF6eV9yZXF1ZXN0KTsKIAkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxl ciwgKE1JX0ZMVVNIX0RXICsgMSkgfAogCQkJCQkgICBNSV9GTFVTSF9EV19PUF9TVE9SRURXKTsK IAkJaW50ZWxfcmluZ19lbWl0KHNpZ25hbGxlciwgbG93ZXJfMzJfYml0cyhndHRfb2Zmc2V0KSB8 CiAJCQkJCSAgIE1JX0ZMVVNIX0RXX1VTRV9HVFQpOwogCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFs bGVyLCB1cHBlcl8zMl9iaXRzKGd0dF9vZmZzZXQpKTsKLQkJaW50ZWxfcmluZ19lbWl0KHNpZ25h bGxlciwgc2lnbmFsbGVyLT5vdXRzdGFuZGluZ19sYXp5X3NlcW5vKTsKKwkJaW50ZWxfcmluZ19l bWl0KHNpZ25hbGxlciwgc2Vxbm8pOwogCQlpbnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCBNSV9T RU1BUEhPUkVfU0lHTkFMIHwKIAkJCQkJICAgTUlfU0VNQVBIT1JFX1RBUkdFVCh3YWl0ZXItPmlk KSk7CiAJCWludGVsX3JpbmdfZW1pdChzaWduYWxsZXIsIDApOwpAQCAtOTkxLDkgKzk5NywxMSBA QCBzdGF0aWMgaW50IGdlbjZfc2lnbmFsKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnNpZ25hbGxl ciwKIAlmb3JfZWFjaF9yaW5nKHVzZWxlc3MsIGRldl9wcml2LCBpKSB7CiAJCXUzMiBtYm94X3Jl ZyA9IHNpZ25hbGxlci0+c2VtYXBob3JlLm1ib3guc2lnbmFsW2ldOwogCQlpZiAobWJveF9yZWcg IT0gR0VONl9OT1NZTkMpIHsKKwkJCXUzMiBzZXFubyA9IGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3Nl cW5vKAorCQkJCQkgICBzaWduYWxsZXItPm91dHN0YW5kaW5nX2xhenlfcmVxdWVzdCk7CiAJCQlp bnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCBNSV9MT0FEX1JFR0lTVEVSX0lNTSgxKSk7CiAJCQlp bnRlbF9yaW5nX2VtaXQoc2lnbmFsbGVyLCBtYm94X3JlZyk7Ci0JCQlpbnRlbF9yaW5nX2VtaXQo c2lnbmFsbGVyLCBzaWduYWxsZXItPm91dHN0YW5kaW5nX2xhenlfc2Vxbm8pOworCQkJaW50ZWxf cmluZ19lbWl0KHNpZ25hbGxlciwgc2Vxbm8pOwogCQl9CiAJfQogCkBAIC0xMDI4LDcgKzEwMzYs OCBAQCBnZW42X2FkZF9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCiAKIAlp bnRlbF9yaW5nX2VtaXQocmluZywgTUlfU1RPUkVfRFdPUkRfSU5ERVgpOwogCWludGVsX3Jpbmdf ZW1pdChyaW5nLCBJOTE1X0dFTV9IV1NfSU5ERVggPDwgTUlfU1RPUkVfRFdPUkRfSU5ERVhfU0hJ RlQpOwotCWludGVsX3JpbmdfZW1pdChyaW5nLCByaW5nLT5vdXRzdGFuZGluZ19sYXp5X3NlcW5v KTsKKwlpbnRlbF9yaW5nX2VtaXQocmluZywKKwkJICAgIGk5MTVfZ2VtX3JlcXVlc3RfZ2V0X3Nl cW5vKHJpbmctPm91dHN0YW5kaW5nX2xhenlfcmVxdWVzdCkpOwogCWludGVsX3JpbmdfZW1pdChy aW5nLCBNSV9VU0VSX0lOVEVSUlVQVCk7CiAJX19pbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7CiAK QEAgLTExNDYsNyArMTE1NSw4IEBAIHBjX3JlbmRlcl9hZGRfcmVxdWVzdChzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nKQogCQkJUElQRV9DT05UUk9MX1dSSVRFX0ZMVVNIIHwKIAkJCVBJUEVf Q09OVFJPTF9URVhUVVJFX0NBQ0hFX0lOVkFMSURBVEUpOwogCWludGVsX3JpbmdfZW1pdChyaW5n LCByaW5nLT5zY3JhdGNoLmd0dF9vZmZzZXQgfCBQSVBFX0NPTlRST0xfR0xPQkFMX0dUVCk7Ci0J aW50ZWxfcmluZ19lbWl0KHJpbmcsIHJpbmctPm91dHN0YW5kaW5nX2xhenlfc2Vxbm8pOworCWlu dGVsX3JpbmdfZW1pdChyaW5nLAorCQkgICAgaTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8ocmlu Zy0+b3V0c3RhbmRpbmdfbGF6eV9yZXF1ZXN0KSk7CiAJaW50ZWxfcmluZ19lbWl0KHJpbmcsIDAp OwogCVBJUEVfQ09OVFJPTF9GTFVTSChyaW5nLCBzY3JhdGNoX2FkZHIpOwogCXNjcmF0Y2hfYWRk ciArPSAyICogQ0FDSEVMSU5FX0JZVEVTOyAvKiB3cml0ZSB0byBzZXBhcmF0ZSBjYWNoZWxpbmVz ICovCkBAIC0xMTY1LDcgKzExNzUsOCBAQCBwY19yZW5kZXJfYWRkX3JlcXVlc3Qoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqcmluZykKIAkJCVBJUEVfQ09OVFJPTF9URVhUVVJFX0NBQ0hFX0lOVkFM SURBVEUgfAogCQkJUElQRV9DT05UUk9MX05PVElGWSk7CiAJaW50ZWxfcmluZ19lbWl0KHJpbmcs IHJpbmctPnNjcmF0Y2guZ3R0X29mZnNldCB8IFBJUEVfQ09OVFJPTF9HTE9CQUxfR1RUKTsKLQlp bnRlbF9yaW5nX2VtaXQocmluZywgcmluZy0+b3V0c3RhbmRpbmdfbGF6eV9zZXFubyk7CisJaW50 ZWxfcmluZ19lbWl0KHJpbmcsCisJCSAgICBpOTE1X2dlbV9yZXF1ZXN0X2dldF9zZXFubyhyaW5n LT5vdXRzdGFuZGluZ19sYXp5X3JlcXVlc3QpKTsKIAlpbnRlbF9yaW5nX2VtaXQocmluZywgMCk7 CiAJX19pbnRlbF9yaW5nX2FkdmFuY2UocmluZyk7CiAKQEAgLTE0MDUsNyArMTQxNiw4IEBAIGk5 eHhfYWRkX3JlcXVlc3Qoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKIAogCWludGVsX3Jp bmdfZW1pdChyaW5nLCBNSV9TVE9SRV9EV09SRF9JTkRFWCk7CiAJaW50ZWxfcmluZ19lbWl0KHJp bmcsIEk5MTVfR0VNX0hXU19JTkRFWCA8PCBNSV9TVE9SRV9EV09SRF9JTkRFWF9TSElGVCk7Ci0J aW50ZWxfcmluZ19lbWl0KHJpbmcsIHJpbmctPm91dHN0YW5kaW5nX2xhenlfc2Vxbm8pOworCWlu dGVsX3JpbmdfZW1pdChyaW5nLAorCQkgICAgaTkxNV9nZW1fcmVxdWVzdF9nZXRfc2Vxbm8ocmlu Zy0+b3V0c3RhbmRpbmdfbGF6eV9yZXF1ZXN0KSk7CiAJaW50ZWxfcmluZ19lbWl0KHJpbmcsIE1J X1VTRVJfSU5URVJSVVBUKTsKIAlfX2ludGVsX3JpbmdfYWR2YW5jZShyaW5nKTsKIApAQCAtMTg1 OSw4ICsxODcxLDcgQEAgdm9pZCBpbnRlbF9jbGVhbnVwX3JpbmdfYnVmZmVyKHN0cnVjdCBpbnRl bF9lbmdpbmVfY3MgKnJpbmcpCiAJV0FSTl9PTighSVNfR0VOMihyaW5nLT5kZXYpICYmIChJOTE1 X1JFQURfTU9ERShyaW5nKSAmIE1PREVfSURMRSkgPT0gMCk7CiAKIAlpbnRlbF9kZXN0cm95X3Jp bmdidWZmZXJfb2JqKHJpbmdidWYpOwotCWk5MTVfZ2VtX3JlcXVlc3RfYXNzaWduKCZyaW5nLT5w cmVhbGxvY2F0ZWRfbGF6eV9yZXF1ZXN0LCBOVUxMKTsKLQlyaW5nLT5vdXRzdGFuZGluZ19sYXp5 X3NlcW5vID0gMDsKKwlpOTE1X2dlbV9yZXF1ZXN0X2Fzc2lnbigmcmluZy0+b3V0c3RhbmRpbmdf bGF6eV9yZXF1ZXN0LCBOVUxMKTsKIAogCWlmIChyaW5nLT5jbGVhbnVwKQogCQlyaW5nLT5jbGVh bnVwKHJpbmcpOwpAQCAtMjAwMCw3ICsyMDExLDcgQEAgaW50IGludGVsX3JpbmdfaWRsZShzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogCWludCByZXQ7CiAKIAkvKiBXZSBuZWVkIHRvIGFk ZCBhbnkgcmVxdWVzdHMgcmVxdWlyZWQgdG8gZmx1c2ggdGhlIG9iamVjdHMgYW5kIHJpbmcgKi8K LQlpZiAocmluZy0+b3V0c3RhbmRpbmdfbGF6eV9zZXFubykgeworCWlmIChyaW5nLT5vdXRzdGFu ZGluZ19sYXp5X3JlcXVlc3QpIHsKIAkJcmV0ID0gaTkxNV9hZGRfcmVxdWVzdChyaW5nLCBOVUxM KTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CkBAIC0yMDE4LDIyICsyMDI5LDEzIEBAIGlu dCBpbnRlbF9yaW5nX2lkbGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZykKIH0KIAogc3Rh dGljIGludAotaW50ZWxfcmluZ19hbGxvY19zZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpy aW5nKQoraW50ZWxfcmluZ19hbGxvY19yZXF1ZXN0KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bmcpCiB7CiAJaW50IHJldDsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3Q7 CiAKLQkvKiBYWFg6IFRoZSBhaW0gaXMgdG8gcmVwbGFjZSBzZXFubyB2YWx1ZXMgd2l0aCByZXF1 ZXN0IHN0cnVjdHVyZXMuCi0JICogQSBzdGVwIGFsb25nIHRoZSB3YXkgaXMgdG8gc3dpdGNoIHRv IHVzaW5nIHRoZSBQTFIgaW4gcHJlZmVyZW5jZQotCSAqIHRvIHRoZSBPTFMuIFRoYXQgcmVxdWly ZXMgdGhlIFBMUiB0byBvbmx5IGJlIHZhbGlkIHdoZW4gdGhlIE9MUwotCSAqIGlzIGFsc28gdmFs aWQuIEkuZS4sIHRoZSB0d28gbXVzdCBiZSBrZXB0IGluIHN0ZXAuICovCi0KLQlpZiAocmluZy0+ b3V0c3RhbmRpbmdfbGF6eV9zZXFubykgewotCQlXQVJOX09OKHJpbmctPnByZWFsbG9jYXRlZF9s YXp5X3JlcXVlc3QgPT0gTlVMTCk7CisJaWYgKHJpbmctPm91dHN0YW5kaW5nX2xhenlfcmVxdWVz dCkKIAkJcmV0dXJuIDA7Ci0JfQotCi0JV0FSTl9PTihyaW5nLT5wcmVhbGxvY2F0ZWRfbGF6eV9y ZXF1ZXN0ICE9IE5VTEwpOwogCiAJcmVxdWVzdCA9IGttYWxsb2Moc2l6ZW9mKCpyZXF1ZXN0KSwg R0ZQX0tFUk5FTCk7CiAJaWYgKHJlcXVlc3QgPT0gTlVMTCkKQEAgLTIwNDEsMTMgKzIwNDMsMTMg QEAgaW50ZWxfcmluZ19hbGxvY19zZXFubyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQog CiAJa3JlZl9pbml0KCZyZXF1ZXN0LT5yZWYpOwogCi0JcmV0ID0gaTkxNV9nZW1fZ2V0X3NlcW5v KHJpbmctPmRldiwgJnJpbmctPm91dHN0YW5kaW5nX2xhenlfc2Vxbm8pOworCXJldCA9IGk5MTVf Z2VtX2dldF9zZXFubyhyaW5nLT5kZXYsICZyZXF1ZXN0LT5zZXFubyk7CiAJaWYgKHJldCkgewog CQlrZnJlZShyZXF1ZXN0KTsKIAkJcmV0dXJuIHJldDsKIAl9CiAKLQlyaW5nLT5wcmVhbGxvY2F0 ZWRfbGF6eV9yZXF1ZXN0ID0gcmVxdWVzdDsKKwlyaW5nLT5vdXRzdGFuZGluZ19sYXp5X3JlcXVl c3QgPSByZXF1ZXN0OwogCXJldHVybiAwOwogfQogCkBAIC0yMDg4LDcgKzIwOTAsNyBAQCBpbnQg aW50ZWxfcmluZ19iZWdpbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAogCQlyZXR1cm4g cmV0OwogCiAJLyogUHJlYWxsb2NhdGUgdGhlIG9sciBiZWZvcmUgdG91Y2hpbmcgdGhlIHJpbmcg Ki8KLQlyZXQgPSBpbnRlbF9yaW5nX2FsbG9jX3NlcW5vKHJpbmcpOworCXJldCA9IGludGVsX3Jp bmdfYWxsb2NfcmVxdWVzdChyaW5nKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCkBAIC0y MTIzLDcgKzIxMjUsNyBAQCB2b2lkIGludGVsX3JpbmdfaW5pdF9zZXFubyhzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICpyaW5nLCB1MzIgc2Vxbm8pCiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHJp bmctPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9w cml2YXRlOwogCi0JQlVHX09OKHJpbmctPm91dHN0YW5kaW5nX2xhenlfc2Vxbm8pOworCUJVR19P TihyaW5nLT5vdXRzdGFuZGluZ19sYXp5X3JlcXVlc3QpOwogCiAJaWYgKElOVEVMX0lORk8oZGV2 KS0+Z2VuID09IDYgfHwgSU5URUxfSU5GTyhkZXYpLT5nZW4gPT0gNykgewogCQlJOTE1X1dSSVRF KFJJTkdfU1lOQ18wKHJpbmctPm1taW9fYmFzZSksIDApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcmluZ2J1ZmZlci5oCmluZGV4IDgxNDBlYTQuLjgyNGY1ODg0IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oCkBAIC0yNjYsOCArMjY2LDcgQEAgc3RydWN0ICBpbnRl bF9lbmdpbmVfY3MgewogCS8qKgogCSAqIERvIHdlIGhhdmUgc29tZSBub3QgeWV0IGVtaXR0ZWQg cmVxdWVzdHMgb3V0c3RhbmRpbmc/CiAJICovCi0Jc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0 ICpwcmVhbGxvY2F0ZWRfbGF6eV9yZXF1ZXN0OwotCXUzMiBvdXRzdGFuZGluZ19sYXp5X3NlcW5v OworCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqb3V0c3RhbmRpbmdfbGF6eV9yZXF1ZXN0 OwogCWJvb2wgZ3B1X2NhY2hlc19kaXJ0eTsKIAlib29sIGZiY19kaXJ0eTsKIApAQCAtNDMyLDE3 ICs0MzEsMTEgQEAgc3RhdGljIGlubGluZSB1MzIgaW50ZWxfcmluZ19nZXRfdGFpbChzdHJ1Y3Qg aW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKIAlyZXR1cm4gcmluZ2J1Zi0+dGFpbDsKIH0KIAot c3RhdGljIGlubGluZSB1MzIgaW50ZWxfcmluZ19nZXRfc2Vxbm8oc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqcmluZykKLXsKLQlCVUdfT04ocmluZy0+b3V0c3RhbmRpbmdfbGF6eV9zZXFubyA9PSAw KTsKLQlyZXR1cm4gcmluZy0+b3V0c3RhbmRpbmdfbGF6eV9zZXFubzsKLX0KLQogc3RhdGljIGlu bGluZSBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKgogaW50ZWxfcmluZ19nZXRfcmVxdWVz dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogewotCUJVR19PTihyaW5nLT5wcmVhbGxv Y2F0ZWRfbGF6eV9yZXF1ZXN0ID09IE5VTEwpOwotCXJldHVybiByaW5nLT5wcmVhbGxvY2F0ZWRf bGF6eV9yZXF1ZXN0OworCUJVR19PTihyaW5nLT5vdXRzdGFuZGluZ19sYXp5X3JlcXVlc3QgPT0g TlVMTCk7CisJcmV0dXJuIHJpbmctPm91dHN0YW5kaW5nX2xhenlfcmVxdWVzdDsKIH0KIAogc3Rh dGljIGlubGluZSB2b2lkIGk5MTVfdHJhY2VfaXJxX2dldChzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nLCB1MzIgc2Vxbm8pCi0tIAoxLjcuOS41CgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=