From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Dawson Subject: [PATCH] drm/radeon: Avoid double gpu reset by adding a timeout on IB ring tests. Date: Sun, 7 Feb 2016 16:51:12 -0500 Message-ID: <1454881872-23969-1-git-send-email-matthew@mjdsystems.ca> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from scadrial.mjdsystems.ca (scadrial.mjdsystems.ca [198.100.154.185]) by gabe.freedesktop.org (Postfix) with ESMTP id 940496E0F4 for ; Sun, 7 Feb 2016 13:51:23 -0800 (PST) Received: from ring00.mjdsystems.ca (CPE00045a5ba0db-CM84948cd6c6a0.cpe.net.cable.rogers.com [99.229.22.8]) by scadrial.mjdsystems.ca (Postfix) with ESMTPSA id 5F70810293B5 for ; Sun, 7 Feb 2016 16:51:22 -0500 (EST) 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 List-Id: dri-devel@lists.freedesktop.org V2hlbiB0aGUgcmFkZW9uIGRyaXZlciByZXNldHMgYSBncHUsIGl0IGF0dGVtcHRzIHRvIHRlc3Qg d2hldGhlciBhbGwgdGhlCnJpbmdzIGNhbiBzdWNjZXNzZnVsbHkgaGFuZGxlIGFuIElCLiAgSWYg dGhlc2UgcmluZ3MgZmFpbCB0byByZXNwb25kLCB0aGUKcHJvY2VzcyB3aWxsIHdhaXQgZm9yZXZl ci4gIEFub3RoZXIgZ3B1IHJlc2V0IGNhbid0IGhhcHBlbiBhdCB0aGlzIHBvaW50LAphcyB0aGUg Y3VycmVudCByZXNldCBob2xkcyBhIGxvY2sgcmVxdWlyZWQgdG8gZG8gc28uICBJbnN0ZWFkLCBt YWtlIGFsbAp0aGUgSUIgdGVzdHMgcnVuIHdpdGggYSB0aW1lb3V0LCBzbyB0aGUgc3lzdGVtIGNh biBhdHRlbXB0IHRvIHJlY292ZXIKaW4gdGhpcyBjYXNlLgoKV2hpbGUgdGhpcyBkb2Vzbid0IGZp eCB0aGUgdW5kZXJseWluZyBpc3N1ZSB3aXRoIGNhcmQgcmVzZXRzIGZhaWxpbmcsIGl0CmdpdmVz IHRoZSBzeXN0ZW0gYSBoaWdoZXIgY2hhbmNlIG9mIHJlY292ZXJpbmcuICBUaGVzZSB0aW1lb3V0 cyBoYXZlIGJlZW4KY29uZmlybWVkIHRvIGhlbHAgYm90aCBhIFRhdGhpIGFuZCBIYXdhaWkgY2Fy ZCByZWNvdmVyIGFmdGVyIGEgZ3B1IHJlc2V0LgoKVGhpcyBhbHNvIGFkZHMgYSBuZXcgZnVuY3Rp b24sIHJhZGVvbl9mZW5jZV93YWl0X3RpbWVvdXQsIHRoYXQgYmVoYXZlcyBsaWtlCmZlbmNlX3dh aXRfdGltZW91dC4gIEl0IGlzIHVzZWQgaW5zdGVhZCBvZiBmZW5jZV93YWl0X3RpbWVvdXQgYXMg aXQgY29udGludWVzCnRvIHdvcmsgZHVyaW5nIGEgcmVzZXQuICByYWRlb25fZmVuY2Vfd2FpdCBp cyBjaGFuZ2VkIHRvIGJlIGltcGxlbWVudGVkCnVzaW5nIHRoaXMgZnVuY3Rpb24uCgpWMjoKIC0g Q2hhbmdlZCB0aGUgdGltZW91dCB0byAxcywgYXMgdGhlIGRlZmF1bHQgMTBzIGZyb20gcmFkZW9u X3dhaXRfdGltZW91dCB3YXMKdG9vIGxvbmcuICBBIHRpbWVvdXQgb2YgMTAwbXMgd2FzIHRlc3Rl ZCBhbmQgZm91bmQgdG8gYmUgdG9vIHNob3J0LgogLSBDaGFuZ2VkIHJhZGVvbl9mZW5jZV93YWl0 X3RpbWVvdXQgdG8gYmVoYXZlIG1vcmUgbGlrZSBmZW5jZV93YWl0X3RpbWVvdXQuCgpTaWduZWQt b2ZmLWJ5OiBNYXR0aGV3IERhd3NvbiA8bWF0dGhld0BtamRzeXN0ZW1zLmNhPgotLS0KIGRyaXZl cnMvZ3B1L2RybS9yYWRlb24vY2lrLmMgICAgICAgICAgfCAxMSArKysrKysrKy0tCiBkcml2ZXJz L2dwdS9kcm0vcmFkZW9uL2Npa19zZG1hLmMgICAgIHwgIDkgKysrKysrLS0KIGRyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcjEwMC5jICAgICAgICAgfCAxMCArKysrKysrLS0KIGRyaXZlcnMvZ3B1L2Ry bS9yYWRlb24vcjYwMC5jICAgICAgICAgfCAxMCArKysrKysrLS0KIGRyaXZlcnMvZ3B1L2RybS9y YWRlb24vcjYwMF9kbWEuYyAgICAgfCAgOSArKysrKystLQogZHJpdmVycy9ncHUvZHJtL3JhZGVv bi9yYWRlb24uaCAgICAgICB8ICAyICsrCiBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9m ZW5jZS5jIHwgNDAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0KIGRyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX3ZjZS5jICAgfCAxMSArKysrKysrLS0tCiBkcml2ZXJzL2dw dS9kcm0vcmFkZW9uL3V2ZF92MV8wLmMgICAgIHwgMTAgKysrKysrKy0tCiA5IGZpbGVzIGNoYW5n ZWQsIDg5IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vY2lrLmMgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2Npay5jCmlu ZGV4IDRjMzBkOGMuLjA2MDAxNDAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v Y2lrLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jaWsuYwpAQCAtNDIxOSwxMyArNDIx OSwyMCBAQCBpbnQgY2lrX2liX3Rlc3Qoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVj dCByYWRlb25fcmluZyAqcmluZykKIAkJRFJNX0VSUk9SKCJyYWRlb246IGZhaWxlZCB0byBzY2hl ZHVsZSBpYiAoJWQpLlxuIiwgcik7CiAJCXJldHVybiByOwogCX0KLQlyID0gcmFkZW9uX2ZlbmNl X3dhaXQoaWIuZmVuY2UsIGZhbHNlKTsKLQlpZiAocikgeworCXIgPSByYWRlb25fZmVuY2Vfd2Fp dF90aW1lb3V0KGliLmZlbmNlLCBmYWxzZSwgdXNlY3NfdG9famlmZmllcygKKwkJUkFERU9OX1VT RUNfSUJfVEVTVF9USU1FT1VUKSk7CisJaWYgKHIgPCAwKSB7CiAJCURSTV9FUlJPUigicmFkZW9u OiBmZW5jZSB3YWl0IGZhaWxlZCAoJWQpLlxuIiwgcik7CiAJCXJhZGVvbl9zY3JhdGNoX2ZyZWUo cmRldiwgc2NyYXRjaCk7CiAJCXJhZGVvbl9pYl9mcmVlKHJkZXYsICZpYik7CiAJCXJldHVybiBy OworCX0gZWxzZSBpZiAociA9PSAwKSB7CisJCURSTV9FUlJPUigicmFkZW9uOiBmZW5jZSB3YWl0 IHRpbWVkIG91dC5cbiIpOworCQlyYWRlb25fc2NyYXRjaF9mcmVlKHJkZXYsIHNjcmF0Y2gpOwor CQlyYWRlb25faWJfZnJlZShyZGV2LCAmaWIpOworCQlyZXR1cm4gLUVUSU1FRE9VVDsKIAl9CisJ ciA9IDA7CiAJZm9yIChpID0gMDsgaSA8IHJkZXYtPnVzZWNfdGltZW91dDsgaSsrKSB7CiAJCXRt cCA9IFJSRUczMihzY3JhdGNoKTsKIAkJaWYgKHRtcCA9PSAweERFQURCRUVGKQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9jaWtfc2RtYS5jIGIvZHJpdmVycy9ncHUvZHJtL3Jh ZGVvbi9jaWtfc2RtYS5jCmluZGV4IGQxNmYyZWUuLjljMzUxZGMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vY2lrX3NkbWEuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9u L2Npa19zZG1hLmMKQEAgLTczNywxMSArNzM3LDE2IEBAIGludCBjaWtfc2RtYV9pYl90ZXN0KHN0 cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBzdHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcpCiAJCURS TV9FUlJPUigicmFkZW9uOiBmYWlsZWQgdG8gc2NoZWR1bGUgaWIgKCVkKS5cbiIsIHIpOwogCQly ZXR1cm4gcjsKIAl9Ci0JciA9IHJhZGVvbl9mZW5jZV93YWl0KGliLmZlbmNlLCBmYWxzZSk7Ci0J aWYgKHIpIHsKKwlyID0gcmFkZW9uX2ZlbmNlX3dhaXRfdGltZW91dChpYi5mZW5jZSwgZmFsc2Us IHVzZWNzX3RvX2ppZmZpZXMoCisJCVJBREVPTl9VU0VDX0lCX1RFU1RfVElNRU9VVCkpOworCWlm IChyIDwgMCkgewogCQlEUk1fRVJST1IoInJhZGVvbjogZmVuY2Ugd2FpdCBmYWlsZWQgKCVkKS5c biIsIHIpOwogCQlyZXR1cm4gcjsKKwl9IGVsc2UgaWYgKHIgPT0gMCkgeworCQlEUk1fRVJST1Io InJhZGVvbjogZmVuY2Ugd2FpdCB0aW1lZCBvdXQuXG4iKTsKKwkJcmV0dXJuIC1FVElNRURPVVQ7 CiAJfQorCXIgPSAwOwogCWZvciAoaSA9IDA7IGkgPCByZGV2LT51c2VjX3RpbWVvdXQ7IGkrKykg ewogCQl0bXAgPSBsZTMyX3RvX2NwdShyZGV2LT53Yi53YltpbmRleC80XSk7CiAJCWlmICh0bXAg PT0gMHhERUFEQkVFRikKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjEwMC5j IGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMTAwLmMKaW5kZXggNWVhZTBhOC4uNmU0NzhhMiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yMTAwLmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yMTAwLmMKQEAgLTM3MzIsMTEgKzM3MzIsMTcgQEAgaW50IHIxMDBfaWJf dGVzdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9yaW5nICpyaW5n KQogCQlEUk1fRVJST1IoInJhZGVvbjogZmFpbGVkIHRvIHNjaGVkdWxlIGliICglZCkuXG4iLCBy KTsKIAkJZ290byBmcmVlX2liOwogCX0KLQlyID0gcmFkZW9uX2ZlbmNlX3dhaXQoaWIuZmVuY2Us IGZhbHNlKTsKLQlpZiAocikgeworCXIgPSByYWRlb25fZmVuY2Vfd2FpdF90aW1lb3V0KGliLmZl bmNlLCBmYWxzZSwgdXNlY3NfdG9famlmZmllcygKKwkJUkFERU9OX1VTRUNfSUJfVEVTVF9USU1F T1VUKSk7CisJaWYgKHIgPCAwKSB7CiAJCURSTV9FUlJPUigicmFkZW9uOiBmZW5jZSB3YWl0IGZh aWxlZCAoJWQpLlxuIiwgcik7CiAJCWdvdG8gZnJlZV9pYjsKKwl9IGVsc2UgaWYgKHIgPT0gMCkg eworCQlEUk1fRVJST1IoInJhZGVvbjogZmVuY2Ugd2FpdCB0aW1lZCBvdXQuXG4iKTsKKwkJciA9 IC1FVElNRURPVVQ7CisJCWdvdG8gZnJlZV9pYjsKIAl9CisJciA9IDA7CiAJZm9yIChpID0gMDsg aSA8IHJkZXYtPnVzZWNfdGltZW91dDsgaSsrKSB7CiAJCXRtcCA9IFJSRUczMihzY3JhdGNoKTsK IAkJaWYgKHRtcCA9PSAweERFQURCRUVGKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3I2MDAuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMC5jCmluZGV4IGNjMmZk ZjAuLmVkMTIxMDQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYwMC5jCkBAIC0zMzgxLDExICszMzgxLDE3IEBA IGludCByNjAwX2liX3Rlc3Qoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCByYWRl b25fcmluZyAqcmluZykKIAkJRFJNX0VSUk9SKCJyYWRlb246IGZhaWxlZCB0byBzY2hlZHVsZSBp YiAoJWQpLlxuIiwgcik7CiAJCWdvdG8gZnJlZV9pYjsKIAl9Ci0JciA9IHJhZGVvbl9mZW5jZV93 YWl0KGliLmZlbmNlLCBmYWxzZSk7Ci0JaWYgKHIpIHsKKwlyID0gcmFkZW9uX2ZlbmNlX3dhaXRf dGltZW91dChpYi5mZW5jZSwgZmFsc2UsIHVzZWNzX3RvX2ppZmZpZXMoCisJCVJBREVPTl9VU0VD X0lCX1RFU1RfVElNRU9VVCkpOworCWlmIChyIDwgMCkgewogCQlEUk1fRVJST1IoInJhZGVvbjog ZmVuY2Ugd2FpdCBmYWlsZWQgKCVkKS5cbiIsIHIpOwogCQlnb3RvIGZyZWVfaWI7CisJfSBlbHNl IGlmIChyID09IDApIHsKKwkJRFJNX0VSUk9SKCJyYWRlb246IGZlbmNlIHdhaXQgdGltZWQgb3V0 LlxuIik7CisJCXIgPSAtRVRJTUVET1VUOworCQlnb3RvIGZyZWVfaWI7CiAJfQorCXIgPSAwOwog CWZvciAoaSA9IDA7IGkgPCByZGV2LT51c2VjX3RpbWVvdXQ7IGkrKykgewogCQl0bXAgPSBSUkVH MzIoc2NyYXRjaCk7CiAJCWlmICh0bXAgPT0gMHhERUFEQkVFRikKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcjYwMF9kbWEuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcjYw MF9kbWEuYwppbmRleCBkMmRkMjlhLi5mYjY1ZTZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL3I2MDBfZG1hLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yNjAwX2Rt YS5jCkBAIC0zNjgsMTEgKzM2OCwxNiBAQCBpbnQgcjYwMF9kbWFfaWJfdGVzdChzdHJ1Y3QgcmFk ZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJhZGVvbl9yaW5nICpyaW5nKQogCQlEUk1fRVJST1Io InJhZGVvbjogZmFpbGVkIHRvIHNjaGVkdWxlIGliICglZCkuXG4iLCByKTsKIAkJcmV0dXJuIHI7 CiAJfQotCXIgPSByYWRlb25fZmVuY2Vfd2FpdChpYi5mZW5jZSwgZmFsc2UpOwotCWlmIChyKSB7 CisJciA9IHJhZGVvbl9mZW5jZV93YWl0X3RpbWVvdXQoaWIuZmVuY2UsIGZhbHNlLCB1c2Vjc190 b19qaWZmaWVzKAorCQlSQURFT05fVVNFQ19JQl9URVNUX1RJTUVPVVQpKTsKKwlpZiAociA8IDAp IHsKIAkJRFJNX0VSUk9SKCJyYWRlb246IGZlbmNlIHdhaXQgZmFpbGVkICglZCkuXG4iLCByKTsK IAkJcmV0dXJuIHI7CisJfSBlbHNlIGlmIChyID09IDApIHsKKwkJRFJNX0VSUk9SKCJyYWRlb246 IGZlbmNlIHdhaXQgdGltZWQgb3V0LlxuIik7CisJCXJldHVybiAtRVRJTUVET1VUOwogCX0KKwly ID0gMDsKIAlmb3IgKGkgPSAwOyBpIDwgcmRldi0+dXNlY190aW1lb3V0OyBpKyspIHsKIAkJdG1w ID0gbGUzMl90b19jcHUocmRldi0+d2Iud2JbaW5kZXgvNF0pOwogCQlpZiAodG1wID09IDB4REVB REJFRUYpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb24uaAppbmRleCA3OGE1MWIzLi4wMDdiZTI5IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbi5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uLmgKQEAgLTEyMCw2ICsxMjAsNyBAQCBleHRlcm4gaW50IHJhZGVv bl9tc3Q7CiAgKi8KICNkZWZpbmUgUkFERU9OX01BWF9VU0VDX1RJTUVPVVQJCQkxMDAwMDAJLyog MTAwIG1zICovCiAjZGVmaW5lIFJBREVPTl9GRU5DRV9KSUZGSUVTX1RJTUVPVVQJCShIWiAvIDIp CisjZGVmaW5lIFJBREVPTl9VU0VDX0lCX1RFU1RfVElNRU9VVAkJMTAwMDAwMCAvKiAxcyAqLwog LyogUkFERU9OX0lCX1BPT0xfU0laRSBtdXN0IGJlIGEgcG93ZXIgb2YgMiAqLwogI2RlZmluZSBS QURFT05fSUJfUE9PTF9TSVpFCQkJMTYKICNkZWZpbmUgUkFERU9OX0RFQlVHRlNfTUFYX0NPTVBP TkVOVFMJCTMyCkBAIC0zODIsNiArMzgzLDcgQEAgdm9pZCByYWRlb25fZmVuY2VfZHJpdmVyX2Zv cmNlX2NvbXBsZXRpb24oc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIGludCByaW5nKTsKIGlu dCByYWRlb25fZmVuY2VfZW1pdChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwgc3RydWN0IHJh ZGVvbl9mZW5jZSAqKmZlbmNlLCBpbnQgcmluZyk7CiB2b2lkIHJhZGVvbl9mZW5jZV9wcm9jZXNz KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQgcmluZyk7CiBib29sIHJhZGVvbl9mZW5j ZV9zaWduYWxlZChzdHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZSk7Citsb25nIHJhZGVvbl9mZW5j ZV93YWl0X3RpbWVvdXQoc3RydWN0IHJhZGVvbl9mZW5jZSAqZmVuY2UsIGJvb2wgaW50ZXJydXB0 aWJsZSwgbG9uZyB0aW1lb3V0KTsKIGludCByYWRlb25fZmVuY2Vfd2FpdChzdHJ1Y3QgcmFkZW9u X2ZlbmNlICpmZW5jZSwgYm9vbCBpbnRlcnJ1cHRpYmxlKTsKIGludCByYWRlb25fZmVuY2Vfd2Fp dF9uZXh0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBpbnQgcmluZyk7CiBpbnQgcmFkZW9u X2ZlbmNlX3dhaXRfZW1wdHkoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIGludCByaW5nKTsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ZlbmNlLmMgYi9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9mZW5jZS5jCmluZGV4IDA1ODE1YzQuLjdlZjA3NWEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2ZlbmNlLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fZmVuY2UuYwpAQCAtNTI3LDcgKzUyNyw3IEBA IHN0YXRpYyBsb25nIHJhZGVvbl9mZW5jZV93YWl0X3NlcV90aW1lb3V0KHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2LAogfQogCiAvKioKLSAqIHJhZGVvbl9mZW5jZV93YWl0IC0gd2FpdCBmb3Ig YSBmZW5jZSB0byBzaWduYWwKKyAqIHJhZGVvbl9mZW5jZV93YWl0X3RpbWVvdXQgLSB3YWl0IGZv ciBhIGZlbmNlIHRvIHNpZ25hbCB3aXRoIHRpbWVvdXQKICAqCiAgKiBAZmVuY2U6IHJhZGVvbiBm ZW5jZSBvYmplY3QKICAqIEBpbnRyOiB1c2UgaW50ZXJydXB0aWJsZSBzbGVlcApAQCAtNTM1LDEy ICs1MzUsMTUgQEAgc3RhdGljIGxvbmcgcmFkZW9uX2ZlbmNlX3dhaXRfc2VxX3RpbWVvdXQoc3Ry dWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAgKiBXYWl0IGZvciB0aGUgcmVxdWVzdGVkIGZlbmNl IHRvIHNpZ25hbCAoYWxsIGFzaWNzKS4KICAqIEBpbnRyIHNlbGVjdHMgd2hldGhlciB0byB1c2Ug aW50ZXJydXB0YWJsZSAodHJ1ZSkgb3Igbm9uLWludGVycnVwdGFibGUKICAqIChmYWxzZSkgc2xl ZXAgd2hlbiB3YWl0aW5nIGZvciB0aGUgZmVuY2UuCi0gKiBSZXR1cm5zIDAgaWYgdGhlIGZlbmNl IGhhcyBwYXNzZWQsIGVycm9yIGZvciBhbGwgb3RoZXIgY2FzZXMuCisgKiBAdGltZW91dDogbWF4 aW11bSB0aW1lIHRvIHdhaXQsIG9yIE1BWF9TQ0hFRFVMRV9USU1FT1VUIGZvciBpbmZpbml0ZSB3 YWl0CisgKiBSZXR1cm5zIHJlbWFpbmluZyB0aW1lIGlmIHRoZSBzZXF1ZW5jZSBudW1iZXIgaGFz IHBhc3NlZCwgMCB3aGVuCisgKiB0aGUgd2FpdCB0aW1lb3V0LCBvciBhbiBlcnJvciBmb3IgYWxs IG90aGVyIGNhc2VzLgogICovCi1pbnQgcmFkZW9uX2ZlbmNlX3dhaXQoc3RydWN0IHJhZGVvbl9m ZW5jZSAqZmVuY2UsIGJvb2wgaW50cikKK2xvbmcgcmFkZW9uX2ZlbmNlX3dhaXRfdGltZW91dChz dHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZSwgYm9vbCBpbnRyLCBsb25nIHRpbWVvdXQpCiB7CiAJ dWludDY0X3Qgc2VxW1JBREVPTl9OVU1fUklOR1NdID0ge307CiAJbG9uZyByOworCWludCByX3Np ZzsKIAogCS8qCiAJICogVGhpcyBmdW5jdGlvbiBzaG91bGQgbm90IGJlIGNhbGxlZCBvbiAhcmFk ZW9uIGZlbmNlcy4KQEAgLTU1MiwxNSArNTU1LDM2IEBAIGludCByYWRlb25fZmVuY2Vfd2FpdChz dHJ1Y3QgcmFkZW9uX2ZlbmNlICpmZW5jZSwgYm9vbCBpbnRyKQogCQlyZXR1cm4gZmVuY2Vfd2Fp dCgmZmVuY2UtPmJhc2UsIGludHIpOwogCiAJc2VxW2ZlbmNlLT5yaW5nXSA9IGZlbmNlLT5zZXE7 Ci0JciA9IHJhZGVvbl9mZW5jZV93YWl0X3NlcV90aW1lb3V0KGZlbmNlLT5yZGV2LCBzZXEsIGlu dHIsIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKLQlpZiAociA8IDApIHsKKwlyID0gcmFkZW9uX2Zl bmNlX3dhaXRfc2VxX3RpbWVvdXQoZmVuY2UtPnJkZXYsIHNlcSwgaW50ciwgdGltZW91dCk7CisJ aWYgKHIgPD0gMCkgewogCQlyZXR1cm4gcjsKIAl9CiAKLQlyID0gZmVuY2Vfc2lnbmFsKCZmZW5j ZS0+YmFzZSk7Ci0JaWYgKCFyKQorCXJfc2lnID0gZmVuY2Vfc2lnbmFsKCZmZW5jZS0+YmFzZSk7 CisJaWYgKCFyX3NpZykKIAkJRkVOQ0VfVFJBQ0UoJmZlbmNlLT5iYXNlLCAic2lnbmFsZWQgZnJv bSBmZW5jZV93YWl0XG4iKTsKLQlyZXR1cm4gMDsKKwlyZXR1cm4gcjsKK30KKworLyoqCisgKiBy YWRlb25fZmVuY2Vfd2FpdCAtIHdhaXQgZm9yIGEgZmVuY2UgdG8gc2lnbmFsCisgKgorICogQGZl bmNlOiByYWRlb24gZmVuY2Ugb2JqZWN0CisgKiBAaW50cjogdXNlIGludGVycnVwdGlibGUgc2xl ZXAKKyAqCisgKiBXYWl0IGZvciB0aGUgcmVxdWVzdGVkIGZlbmNlIHRvIHNpZ25hbCAoYWxsIGFz aWNzKS4KKyAqIEBpbnRyIHNlbGVjdHMgd2hldGhlciB0byB1c2UgaW50ZXJydXB0YWJsZSAodHJ1 ZSkgb3Igbm9uLWludGVycnVwdGFibGUKKyAqIChmYWxzZSkgc2xlZXAgd2hlbiB3YWl0aW5nIGZv ciB0aGUgZmVuY2UuCisgKiBSZXR1cm5zIDAgaWYgdGhlIGZlbmNlIGhhcyBwYXNzZWQsIGVycm9y IGZvciBhbGwgb3RoZXIgY2FzZXMuCisgKi8KK2ludCByYWRlb25fZmVuY2Vfd2FpdChzdHJ1Y3Qg cmFkZW9uX2ZlbmNlICpmZW5jZSwgYm9vbCBpbnRyKQoreworCWxvbmcgciA9IHJhZGVvbl9mZW5j ZV93YWl0X3RpbWVvdXQoZmVuY2UsIGludHIsIE1BWF9TQ0hFRFVMRV9USU1FT1VUKTsKKwlpZiAo ciA+IDApIHsKKwkJcmV0dXJuIDA7CisJfSBlbHNlIHsKKwkJcmV0dXJuIHI7CisJfQogfQogCiAv KioKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3ZjZS5jIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdmNlLmMKaW5kZXggN2ViMWFlNy4uNTY2YTFhMCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdmNlLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fdmNlLmMKQEAgLTgxMCwxMSArODEwLDE2IEBAIGlu dCByYWRlb25fdmNlX2liX3Rlc3Qoc3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsIHN0cnVjdCBy YWRlb25fcmluZyAqcmluZykKIAkJZ290byBlcnJvcjsKIAl9CiAKLQlyID0gcmFkZW9uX2ZlbmNl X3dhaXQoZmVuY2UsIGZhbHNlKTsKLQlpZiAocikgeworCXIgPSByYWRlb25fZmVuY2Vfd2FpdF90 aW1lb3V0KGZlbmNlLCBmYWxzZSwgdXNlY3NfdG9famlmZmllcygKKwkJUkFERU9OX1VTRUNfSUJf VEVTVF9USU1FT1VUKSk7CisJaWYgKHIgPCAwKSB7CiAJCURSTV9FUlJPUigicmFkZW9uOiBmZW5j ZSB3YWl0IGZhaWxlZCAoJWQpLlxuIiwgcik7CisJfSBlbHNlIGlmIChyID09IDApIHsKKwkJRFJN X0VSUk9SKCJyYWRlb246IGZlbmNlIHdhaXQgdGltZWQgb3V0LlxuIik7CisJCXIgPSAtRVRJTUVE T1VUOwogCX0gZWxzZSB7Ci0JICAgICAgICBEUk1fSU5GTygiaWIgdGVzdCBvbiByaW5nICVkIHN1 Y2NlZWRlZFxuIiwgcmluZy0+aWR4KTsKKwkJRFJNX0lORk8oImliIHRlc3Qgb24gcmluZyAlZCBz dWNjZWVkZWRcbiIsIHJpbmctPmlkeCk7CisJCXIgPSAwOwogCX0KIGVycm9yOgogCXJhZGVvbl9m ZW5jZV91bnJlZigmZmVuY2UpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi91 dmRfdjFfMC5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi91dmRfdjFfMC5jCmluZGV4IGM2YjFj YmMuLjEyZGRjZmEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vdXZkX3YxXzAu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3V2ZF92MV8wLmMKQEAgLTUyMiwxMSArNTIy LDE3IEBAIGludCB1dmRfdjFfMF9pYl90ZXN0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LCBz dHJ1Y3QgcmFkZW9uX3JpbmcgKnJpbmcpCiAJCWdvdG8gZXJyb3I7CiAJfQogCi0JciA9IHJhZGVv bl9mZW5jZV93YWl0KGZlbmNlLCBmYWxzZSk7Ci0JaWYgKHIpIHsKKwlyID0gcmFkZW9uX2ZlbmNl X3dhaXRfdGltZW91dChmZW5jZSwgZmFsc2UsIHVzZWNzX3RvX2ppZmZpZXMoCisJCVJBREVPTl9V U0VDX0lCX1RFU1RfVElNRU9VVCkpOworCWlmIChyIDwgMCkgewogCQlEUk1fRVJST1IoInJhZGVv bjogZmVuY2Ugd2FpdCBmYWlsZWQgKCVkKS5cbiIsIHIpOwogCQlnb3RvIGVycm9yOworCX0gZWxz ZSBpZiAociA9PSAwKSB7CisJCURSTV9FUlJPUigicmFkZW9uOiBmZW5jZSB3YWl0IHRpbWVkIG91 dC5cbiIpOworCQlyID0gLUVUSU1FRE9VVDsKKwkJZ290byBlcnJvcjsKIAl9CisJciA9IDA7CiAJ RFJNX0lORk8oImliIHRlc3Qgb24gcmluZyAlZCBzdWNjZWVkZWRcbiIsICByaW5nLT5pZHgpOwog ZXJyb3I6CiAJcmFkZW9uX2ZlbmNlX3VucmVmKCZmZW5jZSk7Ci0tIAoyLjcuMAoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcg bGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==