From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oded Gabbay Subject: [PATCH 03/11] drm/amdkfd: Add static user-mode queues support Date: Thu, 21 May 2015 00:29:00 +0300 Message-ID: <1432157348-26686-4-git-send-email-oded.gabbay@gmail.com> References: <1432157348-26686-1-git-send-email-oded.gabbay@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f171.google.com (mail-wi0-f171.google.com [209.85.212.171]) by gabe.freedesktop.org (Postfix) with ESMTP id C92416E763 for ; Wed, 20 May 2015 14:29:23 -0700 (PDT) Received: by wizk4 with SMTP id k4so169657653wiz.1 for ; Wed, 20 May 2015 14:29:23 -0700 (PDT) In-Reply-To: <1432157348-26686-1-git-send-email-oded.gabbay@gmail.com> 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, alexdeucher@gmail.com List-Id: dri-devel@lists.freedesktop.org RnJvbTogWWFpciBTaGFjaGFyIDx5YWlyLnNoYWNoYXJAYW1kLmNvbT4KClRoaXMgcGF0Y2ggYWRk cyBzdXBwb3J0IGZvciBzdGF0aWMgdXNlci1tb2RlIHF1ZXVlcyBpbiBRQ00uClF1ZXVlcyB3aGlj aCBhcmUgZGVzaWduYXRlZCBhcyBzdGF0aWMgY2FuIE5PVCBiZSBwcmVlbXB0ZWQgYnkKdGhlIENQ IG1pY3JvY29kZSB3aGVuIGl0IGlzIGV4ZWN1dGluZyBpdHMgc2NoZWR1bGluZyBhbGdvcml0aG0u CgpUaGlzIGlzIG5lZWRlZCBmb3Igc3VwcG9ydGluZyB0aGUgZGVidWdnZXIgZmVhdHVyZSwgYmVj YXVzZSB3ZQpjYW4ndCBhbGxvdyB0aGUgQ1AgdG8gcHJlZW1wdCBxdWV1ZXMgd2hpY2ggYXJlIGN1 cnJlbnRseSBiZWluZyBkZWJ1Z2dlZC4KClRoZSBudW1iZXIgb2YgcXVldWVzIHRoYXQgY2FuIGJl IGRlc2lnbmF0ZWQgYXMgc3RhdGljIGlzIGxpbWl0ZWQgYnkgdGhlCm51bWJlciBvZiBIUURzIChI YXJkd2FyZSBRdWV1ZSBEZXNjcmlwdG9ycykuCgpTaWduZWQtb2ZmLWJ5OiBZYWlyIFNoYWNoYXIg PHlhaXIuc2hhY2hhckBhbWQuY29tPgpTaWduZWQtb2ZmLWJ5OiBPZGVkIEdhYmJheSA8b2RlZC5n YWJiYXlAZ21haWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9kZXZp Y2UuYyAgICAgICAgICAgIHwgIDIgKwogLi4uL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGV2aWNl X3F1ZXVlX21hbmFnZXIuYyAgfCAzOCArKysrKysrKysrKysrKy0tLS0KIC4uLi9ncHUvZHJtL2Ft ZC9hbWRrZmQva2ZkX2RldmljZV9xdWV1ZV9tYW5hZ2VyLmggIHwgIDYgKysrCiBkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGtmZC9rZmRfcGFja2V0X21hbmFnZXIuYyAgICB8IDQ2ICsrKysrKysrKysr KysrKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wbTRfaGVhZGVycy5o ICAgICAgIHwgIDYgKystCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcHJpdi5oICAg ICAgICAgICAgICB8ICAyICsKIC4uLi9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3Byb2Nlc3NfcXVl dWVfbWFuYWdlci5jIHwgMTYgKysrKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgOTcgaW5zZXJ0aW9u cygrKSwgMTkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRrZmQva2ZkX2RldmljZS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2Rldmlj ZS5jCmluZGV4IDUyY2FiMGYuLmYxZjg2ZGIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1ka2ZkL2tmZF9kZXZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9r ZmRfZGV2aWNlLmMKQEAgLTMzLDYgKzMzLDggQEAKIHN0YXRpYyBjb25zdCBzdHJ1Y3Qga2ZkX2Rl dmljZV9pbmZvIGthdmVyaV9kZXZpY2VfaW5mbyA9IHsKIAkuYXNpY19mYW1pbHkgPSBDSElQX0tB VkVSSSwKIAkubWF4X3Bhc2lkX2JpdHMgPSAxNiwKKwkvKiBtYXggbnVtIG9mIHF1ZXVlcyBmb3Ig S1YuVE9ETyBzaG91bGQgYmUgYSBkeW5hbWljIHZhbHVlICovCisJLm1heF9ub19vZl9ocWQJPSAy NCwKIAkuaWhfcmluZ19lbnRyeV9zaXplID0gNCAqIHNpemVvZih1aW50MzJfdCksCiAJLmV2ZW50 X2ludGVycnVwdF9jbGFzcyA9ICZldmVudF9pbnRlcnJ1cHRfY2xhc3NfY2lrLAogCS5tcWRfc2l6 ZV9hbGlnbmVkID0gTVFEX1NJWkVfQUxJR05FRApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2FtZC9hbWRrZmQva2ZkX2RldmljZV9xdWV1ZV9tYW5hZ2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGtmZC9rZmRfZGV2aWNlX3F1ZXVlX21hbmFnZXIuYwppbmRleCA0ZTIxNWJkLi5hNWRj ODIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGV2aWNlX3F1 ZXVlX21hbmFnZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfZGV2aWNl X3F1ZXVlX21hbmFnZXIuYwpAQCAtNDUsNyArNDUsOCBAQCBzdGF0aWMgaW50IGNyZWF0ZV9jb21w dXRlX3F1ZXVlX25vY3BzY2goc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sCiAJCQkJ CXN0cnVjdCBxY21fcHJvY2Vzc19kZXZpY2UgKnFwZCk7CiAKIHN0YXRpYyBpbnQgZXhlY3V0ZV9x dWV1ZXNfY3BzY2goc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sIGJvb2wgbG9jayk7 Ci1zdGF0aWMgaW50IGRlc3Ryb3lfcXVldWVzX2Nwc2NoKHN0cnVjdCBkZXZpY2VfcXVldWVfbWFu YWdlciAqZHFtLCBib29sIGxvY2spOworc3RhdGljIGludCBkZXN0cm95X3F1ZXVlc19jcHNjaChz dHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSwKKwkJCQlib29sIHByZWVtcHRfc3RhdGlj X3F1ZXVlcywgYm9vbCBsb2NrKTsKIAogc3RhdGljIGludCBjcmVhdGVfc2RtYV9xdWV1ZV9ub2Nw c2NoKHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLAogCQkJCQlzdHJ1Y3QgcXVldWUg KnEsCkBAIC03NzUsNyArNzc2LDcgQEAgc3RhdGljIGludCBzdG9wX2Nwc2NoKHN0cnVjdCBkZXZp Y2VfcXVldWVfbWFuYWdlciAqZHFtKQogCiAJQlVHX09OKCFkcW0pOwogCi0JZGVzdHJveV9xdWV1 ZXNfY3BzY2goZHFtLCB0cnVlKTsKKwlkZXN0cm95X3F1ZXVlc19jcHNjaChkcW0sIHRydWUsIHRy dWUpOwogCiAJbGlzdF9mb3JfZWFjaF9lbnRyeShub2RlLCAmZHFtLT5xdWV1ZXMsIGxpc3QpIHsK IAkJcGRkID0gcXBkX3RvX3BkZChub2RlLT5xcGQpOwpAQCAtODI5LDcgKzgzMCw4IEBAIHN0YXRp YyB2b2lkIGRlc3Ryb3lfa2VybmVsX3F1ZXVlX2Nwc2NoKHN0cnVjdCBkZXZpY2VfcXVldWVfbWFu YWdlciAqZHFtLAogCXByX2RlYnVnKCJrZmQ6IEluICVzXG4iLCBfX2Z1bmNfXyk7CiAKIAltdXRl eF9sb2NrKCZkcW0tPmxvY2spOwotCWRlc3Ryb3lfcXVldWVzX2Nwc2NoKGRxbSwgZmFsc2UpOwor CS8qIGhlcmUgd2UgYWN0dWFsbHkgcHJlZW1wdCB0aGUgRElRICovCisJZGVzdHJveV9xdWV1ZXNf Y3BzY2goZHFtLCB0cnVlLCBmYWxzZSk7CiAJbGlzdF9kZWwoJmtxLT5saXN0KTsKIAlkcW0tPnF1 ZXVlX2NvdW50LS07CiAJcXBkLT5pc19kZWJ1ZyA9IGZhbHNlOwpAQCAtOTM1LDEzICs5MzcsMTUg QEAgc3RhdGljIGludCBkZXN0cm95X3NkbWFfcXVldWVzKHN0cnVjdCBkZXZpY2VfcXVldWVfbWFu YWdlciAqZHFtLAogCQkJCXVuc2lnbmVkIGludCBzZG1hX2VuZ2luZSkKIHsKIAlyZXR1cm4gcG1f c2VuZF91bm1hcF9xdWV1ZSgmZHFtLT5wYWNrZXRzLCBLRkRfUVVFVUVfVFlQRV9TRE1BLAotCQkJ S0ZEX1BSRUVNUFRfVFlQRV9GSUxURVJfQUxMX1FVRVVFUywgMCwgZmFsc2UsCisJCQlLRkRfUFJF RU1QVF9UWVBFX0ZJTFRFUl9EWU5BTUlDX1FVRVVFUywgMCwgZmFsc2UsCiAJCQlzZG1hX2VuZ2lu ZSk7CiB9CiAKLXN0YXRpYyBpbnQgZGVzdHJveV9xdWV1ZXNfY3BzY2goc3RydWN0IGRldmljZV9x dWV1ZV9tYW5hZ2VyICpkcW0sIGJvb2wgbG9jaykKK3N0YXRpYyBpbnQgZGVzdHJveV9xdWV1ZXNf Y3BzY2goc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sCisJCQkJYm9vbCBwcmVlbXB0 X3N0YXRpY19xdWV1ZXMsIGJvb2wgbG9jaykKIHsKIAlpbnQgcmV0dmFsOworCWVudW0ga2ZkX3By ZWVtcHRfdHlwZV9maWx0ZXIgcHJlZW1wdF90eXBlOwogCiAJQlVHX09OKCFkcW0pOwogCkBAIC05 NjAsOCArOTY0LDEyIEBAIHN0YXRpYyBpbnQgZGVzdHJveV9xdWV1ZXNfY3BzY2goc3RydWN0IGRl dmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0sIGJvb2wgbG9jaykKIAkJZGVzdHJveV9zZG1hX3F1ZXVl cyhkcW0sIDEpOwogCX0KIAorCXByZWVtcHRfdHlwZSA9IHByZWVtcHRfc3RhdGljX3F1ZXVlcyA/ CisJCQlLRkRfUFJFRU1QVF9UWVBFX0ZJTFRFUl9BTExfUVVFVUVTIDoKKwkJCUtGRF9QUkVFTVBU X1RZUEVfRklMVEVSX0RZTkFNSUNfUVVFVUVTOworCiAJcmV0dmFsID0gcG1fc2VuZF91bm1hcF9x dWV1ZSgmZHFtLT5wYWNrZXRzLCBLRkRfUVVFVUVfVFlQRV9DT01QVVRFLAotCQkJS0ZEX1BSRUVN UFRfVFlQRV9GSUxURVJfQUxMX1FVRVVFUywgMCwgZmFsc2UsIDApOworCQkJcHJlZW1wdF90eXBl LCAwLCBmYWxzZSwgMCk7CiAJaWYgKHJldHZhbCAhPSAwKQogCQlnb3RvIG91dDsKIApAQCAtOTg5 LDcgKzk5Nyw3IEBAIHN0YXRpYyBpbnQgZXhlY3V0ZV9xdWV1ZXNfY3BzY2goc3RydWN0IGRldmlj ZV9xdWV1ZV9tYW5hZ2VyICpkcW0sIGJvb2wgbG9jaykKIAlpZiAobG9jaykKIAkJbXV0ZXhfbG9j aygmZHFtLT5sb2NrKTsKIAotCXJldHZhbCA9IGRlc3Ryb3lfcXVldWVzX2Nwc2NoKGRxbSwgZmFs c2UpOworCXJldHZhbCA9IGRlc3Ryb3lfcXVldWVzX2Nwc2NoKGRxbSwgZmFsc2UsIGZhbHNlKTsK IAlpZiAocmV0dmFsICE9IDApIHsKIAkJcHJfZXJyKCJrZmQ6IHRoZSBjcCBtaWdodCBiZSBpbiBh biB1bnJlY292ZXJhYmxlIHN0YXRlIGR1ZSB0byBhbiB1bnN1Y2Nlc3NmdWwgcXVldWVzIHByZWVt cHRpb24iKTsKIAkJZ290byBvdXQ7CkBAIC0xMDI0LDEzICsxMDMyLDI3IEBAIHN0YXRpYyBpbnQg ZGVzdHJveV9xdWV1ZV9jcHNjaChzdHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSwKIHsK IAlpbnQgcmV0dmFsOwogCXN0cnVjdCBtcWRfbWFuYWdlciAqbXFkOworCWJvb2wgcHJlZW1wdF9h bGxfcXVldWVzOwogCiAJQlVHX09OKCFkcW0gfHwgIXFwZCB8fCAhcSk7CiAKKwlwcmVlbXB0X2Fs bF9xdWV1ZXMgPSBmYWxzZTsKKwogCXJldHZhbCA9IDA7CiAKIAkvKiByZW1vdmUgcXVldWUgZnJv bSBsaXN0IHRvIHByZXZlbnQgcmVzY2hlZHVsaW5nIGFmdGVyIHByZWVtcHRpb24gKi8KIAltdXRl eF9sb2NrKCZkcW0tPmxvY2spOworCisJaWYgKHFwZC0+aXNfZGVidWcpIHsKKwkJLyoKKwkJICog ZXJyb3IsIGN1cnJlbnRseSB3ZSBkbyBub3QgYWxsb3cgdG8gZGVzdHJveSBhIHF1ZXVlCisJCSAq IG9mIGEgY3VycmVudGx5IGRlYnVnZ2VkIHByb2Nlc3MKKwkJICovCisJCXJldHZhbCA9IC1FQlVT WTsKKwkJZ290byBmYWlsZWRfdHJ5X2Rlc3Ryb3lfZGVidWdnZWRfcXVldWU7CisKKwl9CisKIAlt cWQgPSBkcW0tPm9wcy5nZXRfbXFkX21hbmFnZXIoZHFtLAogCQkJZ2V0X21xZF90eXBlX2Zyb21f cXVldWVfdHlwZShxLT5wcm9wZXJ0aWVzLnR5cGUpKTsKIAlpZiAoIW1xZCkgewpAQCAtMTA2Miw2 ICsxMDg0LDggQEAgc3RhdGljIGludCBkZXN0cm95X3F1ZXVlX2Nwc2NoKHN0cnVjdCBkZXZpY2Vf cXVldWVfbWFuYWdlciAqZHFtLAogCXJldHVybiAwOwogCiBmYWlsZWQ6CitmYWlsZWRfdHJ5X2Rl c3Ryb3lfZGVidWdnZWRfcXVldWU6CisKIAltdXRleF91bmxvY2soJmRxbS0+bG9jayk7CiAJcmV0 dXJuIHJldHZhbDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tm ZF9kZXZpY2VfcXVldWVfbWFuYWdlci5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2Zk X2RldmljZV9xdWV1ZV9tYW5hZ2VyLmgKaW5kZXggNTcyNzhlMi4uZWM0MDM2YSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZV9xdWV1ZV9tYW5hZ2VyLmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX2RldmljZV9xdWV1ZV9tYW5hZ2Vy LmgKQEAgLTg4LDkgKzg4LDExIEBAIHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlcl9vcHMgewog CQkJCXN0cnVjdCBxdWV1ZSAqcSwKIAkJCQlzdHJ1Y3QgcWNtX3Byb2Nlc3NfZGV2aWNlICpxcGQs CiAJCQkJaW50ICphbGxvY2F0ZV92bWlkKTsKKwogCWludAkoKmRlc3Ryb3lfcXVldWUpKHN0cnVj dCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLAogCQkJCXN0cnVjdCBxY21fcHJvY2Vzc19kZXZp Y2UgKnFwZCwKIAkJCQlzdHJ1Y3QgcXVldWUgKnEpOworCiAJaW50CSgqdXBkYXRlX3F1ZXVlKShz dHJ1Y3QgZGV2aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSwKIAkJCQlzdHJ1Y3QgcXVldWUgKnEpOwog CkBAIC0xMDAsOCArMTAyLDEwIEBAIHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlcl9vcHMgewog CiAJaW50CSgqcmVnaXN0ZXJfcHJvY2Vzcykoc3RydWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpk cW0sCiAJCQkJCXN0cnVjdCBxY21fcHJvY2Vzc19kZXZpY2UgKnFwZCk7CisKIAlpbnQJKCp1bnJl Z2lzdGVyX3Byb2Nlc3MpKHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLAogCQkJCQlz dHJ1Y3QgcWNtX3Byb2Nlc3NfZGV2aWNlICpxcGQpOworCiAJaW50CSgqaW5pdGlhbGl6ZSkoc3Ry dWN0IGRldmljZV9xdWV1ZV9tYW5hZ2VyICpkcW0pOwogCWludAkoKnN0YXJ0KShzdHJ1Y3QgZGV2 aWNlX3F1ZXVlX21hbmFnZXIgKmRxbSk7CiAJaW50CSgqc3RvcCkoc3RydWN0IGRldmljZV9xdWV1 ZV9tYW5hZ2VyICpkcW0pOwpAQCAtMTA5LDkgKzExMywxMSBAQCBzdHJ1Y3QgZGV2aWNlX3F1ZXVl X21hbmFnZXJfb3BzIHsKIAlpbnQJKCpjcmVhdGVfa2VybmVsX3F1ZXVlKShzdHJ1Y3QgZGV2aWNl X3F1ZXVlX21hbmFnZXIgKmRxbSwKIAkJCQkJc3RydWN0IGtlcm5lbF9xdWV1ZSAqa3EsCiAJCQkJ CXN0cnVjdCBxY21fcHJvY2Vzc19kZXZpY2UgKnFwZCk7CisKIAl2b2lkCSgqZGVzdHJveV9rZXJu ZWxfcXVldWUpKHN0cnVjdCBkZXZpY2VfcXVldWVfbWFuYWdlciAqZHFtLAogCQkJCQlzdHJ1Y3Qg a2VybmVsX3F1ZXVlICprcSwKIAkJCQkJc3RydWN0IHFjbV9wcm9jZXNzX2RldmljZSAqcXBkKTsK KwogCWJvb2wJKCpzZXRfY2FjaGVfbWVtb3J5X3BvbGljeSkoc3RydWN0IGRldmljZV9xdWV1ZV9t YW5hZ2VyICpkcW0sCiAJCQkJCSAgIHN0cnVjdCBxY21fcHJvY2Vzc19kZXZpY2UgKnFwZCwKIAkJ CQkJICAgZW51bSBjYWNoZV9wb2xpY3kgZGVmYXVsdF9wb2xpY3ksCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcGFja2V0X21hbmFnZXIuYyBiL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1ka2ZkL2tmZF9wYWNrZXRfbWFuYWdlci5jCmluZGV4IGUyNTMzZDguLjk5YjZk MjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wYWNrZXRfbWFu YWdlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wYWNrZXRfbWFuYWdl ci5jCkBAIC0xNjMsNyArMTYzLDcgQEAgc3RhdGljIGludCBwbV9jcmVhdGVfbWFwX3Byb2Nlc3Mo c3RydWN0IHBhY2tldF9tYW5hZ2VyICpwbSwgdWludDMyX3QgKmJ1ZmZlciwKIAludW1fcXVldWVz ID0gMDsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KGN1ciwgJnFwZC0+cXVldWVzX2xpc3QsIGxpc3Qp CiAJCW51bV9xdWV1ZXMrKzsKLQlwYWNrZXQtPmJpdGZpZWxkczEwLm51bV9xdWV1ZXMgPSBudW1f cXVldWVzOworCXBhY2tldC0+Yml0ZmllbGRzMTAubnVtX3F1ZXVlcyA9IChxcGQtPmlzX2RlYnVn KSA/IDAgOiBudW1fcXVldWVzOwogCiAJcGFja2V0LT5zaF9tZW1fY29uZmlnID0gcXBkLT5zaF9t ZW1fY29uZmlnOwogCXBhY2tldC0+c2hfbWVtX2Jhc2VzID0gcXBkLT5zaF9tZW1fYmFzZXM7CkBA IC0xNzcsOSArMTc3LDEwIEBAIHN0YXRpYyBpbnQgcG1fY3JlYXRlX21hcF9wcm9jZXNzKHN0cnVj dCBwYWNrZXRfbWFuYWdlciAqcG0sIHVpbnQzMl90ICpidWZmZXIsCiB9CiAKIHN0YXRpYyBpbnQg cG1fY3JlYXRlX21hcF9xdWV1ZShzdHJ1Y3QgcGFja2V0X21hbmFnZXIgKnBtLCB1aW50MzJfdCAq YnVmZmVyLAotCQkJCXN0cnVjdCBxdWV1ZSAqcSkKKwkJCQlzdHJ1Y3QgcXVldWUgKnEsIGJvb2wg aXNfc3RhdGljKQogewogCXN0cnVjdCBwbTRfbWFwX3F1ZXVlcyAqcGFja2V0OworCWJvb2wgdXNl X3N0YXRpYyA9IGlzX3N0YXRpYzsKIAogCUJVR19PTighcG0gfHwgIWJ1ZmZlciB8fCAhcSk7CiAK QEAgLTIwOSw2ICsyMTAsNyBAQCBzdGF0aWMgaW50IHBtX2NyZWF0ZV9tYXBfcXVldWUoc3RydWN0 IHBhY2tldF9tYW5hZ2VyICpwbSwgdWludDMyX3QgKmJ1ZmZlciwKIAljYXNlIEtGRF9RVUVVRV9U WVBFX1NETUE6CiAJCXBhY2tldC0+Yml0ZmllbGRzMi5lbmdpbmVfc2VsID0KIAkJCQllbmdpbmVf c2VsX19tZXNfbWFwX3F1ZXVlc19fc2RtYTA7CisJCXVzZV9zdGF0aWMgPSBmYWxzZTsgLyogbm8g c3RhdGljIHF1ZXVlcyB1bmRlciBTRE1BICovCiAJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCUJVRygp OwpAQCAtMjE4LDYgKzIyMCw5IEBAIHN0YXRpYyBpbnQgcG1fY3JlYXRlX21hcF9xdWV1ZShzdHJ1 Y3QgcGFja2V0X21hbmFnZXIgKnBtLCB1aW50MzJfdCAqYnVmZmVyLAogCXBhY2tldC0+bWVzX21h cF9xdWV1ZXNfb3JkaW5hbHNbMF0uYml0ZmllbGRzMy5kb29yYmVsbF9vZmZzZXQgPQogCQkJcS0+ cHJvcGVydGllcy5kb29yYmVsbF9vZmY7CiAKKwlwYWNrZXQtPm1lc19tYXBfcXVldWVzX29yZGlu YWxzWzBdLmJpdGZpZWxkczMuaXNfc3RhdGljID0KKwkJCSh1c2Vfc3RhdGljID09IHRydWUpID8g MSA6IDA7CisKIAlwYWNrZXQtPm1lc19tYXBfcXVldWVzX29yZGluYWxzWzBdLm1xZF9hZGRyX2xv ID0KIAkJCWxvd2VyXzMyX2JpdHMocS0+Z2FydF9tcWRfYWRkcik7CiAKQEAgLTI3MSw5ICsyNzYs MTEgQEAgc3RhdGljIGludCBwbV9jcmVhdGVfcnVubGlzdF9pYihzdHJ1Y3QgcGFja2V0X21hbmFn ZXIgKnBtLAogCQkJcG1fcmVsZWFzZV9pYihwbSk7CiAJCQlyZXR1cm4gLUVOT01FTTsKIAkJfQor CiAJCXJldHZhbCA9IHBtX2NyZWF0ZV9tYXBfcHJvY2VzcyhwbSwgJnJsX2J1ZmZlcltybF93cHRy XSwgcXBkKTsKIAkJaWYgKHJldHZhbCAhPSAwKQogCQkJcmV0dXJuIHJldHZhbDsKKwogCQlwcm9j Y2Vzc2VzX21hcHBlZCsrOwogCQlpbmNfd3B0cigmcmxfd3B0ciwgc2l6ZW9mKHN0cnVjdCBwbTRf bWFwX3Byb2Nlc3MpLAogCQkJCWFsbG9jX3NpemVfYnl0ZXMpOwpAQCAtMjgxLDIzICsyODgsMzYg QEAgc3RhdGljIGludCBwbV9jcmVhdGVfcnVubGlzdF9pYihzdHJ1Y3QgcGFja2V0X21hbmFnZXIg KnBtLAogCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGtxLCAmcXBkLT5wcml2X3F1ZXVlX2xpc3QsIGxp c3QpIHsKIAkJCWlmIChrcS0+cXVldWUtPnByb3BlcnRpZXMuaXNfYWN0aXZlICE9IHRydWUpCiAJ CQkJY29udGludWU7CisKKwkJCXByX2RlYnVnKCJrZmQ6IHN0YXRpY19xdWV1ZSwgbWFwcGluZyBr ZXJuZWwgcSAlZCwgaXMgZGVidWcgc3RhdHVzICVkXG4iLAorCQkJCWtxLT5xdWV1ZS0+cXVldWUs IHFwZC0+aXNfZGVidWcpOworCiAJCQlyZXR2YWwgPSBwbV9jcmVhdGVfbWFwX3F1ZXVlKHBtLCAm cmxfYnVmZmVyW3JsX3dwdHJdLAotCQkJCQkJCWtxLT5xdWV1ZSk7CisJCQkJCQlrcS0+cXVldWUs IHFwZC0+aXNfZGVidWcpOwogCQkJaWYgKHJldHZhbCAhPSAwKQogCQkJCXJldHVybiByZXR2YWw7 Ci0JCQlpbmNfd3B0cigmcmxfd3B0ciwgc2l6ZW9mKHN0cnVjdCBwbTRfbWFwX3F1ZXVlcyksCi0J CQkJCWFsbG9jX3NpemVfYnl0ZXMpOworCisJCQlpbmNfd3B0cigmcmxfd3B0ciwKKwkJCQlzaXpl b2Yoc3RydWN0IHBtNF9tYXBfcXVldWVzKSwKKwkJCQlhbGxvY19zaXplX2J5dGVzKTsKIAkJfQog CiAJCWxpc3RfZm9yX2VhY2hfZW50cnkocSwgJnFwZC0+cXVldWVzX2xpc3QsIGxpc3QpIHsKIAkJ CWlmIChxLT5wcm9wZXJ0aWVzLmlzX2FjdGl2ZSAhPSB0cnVlKQogCQkJCWNvbnRpbnVlOwotCQkJ cmV0dmFsID0gcG1fY3JlYXRlX21hcF9xdWV1ZShwbSwKLQkJCQkJCSZybF9idWZmZXJbcmxfd3B0 cl0sIHEpOworCisJCQlwcl9kZWJ1Zygia2ZkOiBzdGF0aWNfcXVldWUsIG1hcHBpbmcgdXNlciBx dWV1ZSAlZCwgaXMgZGVidWcgc3RhdHVzICVkXG4iLAorCQkJCXEtPnF1ZXVlLCBxcGQtPmlzX2Rl YnVnKTsKKworCQkJcmV0dmFsID0gcG1fY3JlYXRlX21hcF9xdWV1ZShwbSwgJnJsX2J1ZmZlclty bF93cHRyXSwKKwkJCQkJCXEsICBxcGQtPmlzX2RlYnVnKTsKKwogCQkJaWYgKHJldHZhbCAhPSAw KQogCQkJCXJldHVybiByZXR2YWw7Ci0JCQlpbmNfd3B0cigmcmxfd3B0ciwgc2l6ZW9mKHN0cnVj dCBwbTRfbWFwX3F1ZXVlcyksCi0JCQkJCWFsbG9jX3NpemVfYnl0ZXMpOworCisJCQlpbmNfd3B0 cigmcmxfd3B0ciwKKwkJCQlzaXplb2Yoc3RydWN0IHBtNF9tYXBfcXVldWVzKSwKKwkJCQlhbGxv Y19zaXplX2J5dGVzKTsKIAkJfQogCX0KIApAQCAtNDg4LDcgKzUwOCw4IEBAIGludCBwbV9zZW5k X3VubWFwX3F1ZXVlKHN0cnVjdCBwYWNrZXRfbWFuYWdlciAqcG0sIGVudW0ga2ZkX3F1ZXVlX3R5 cGUgdHlwZSwKIAogCXBhY2tldCA9IChzdHJ1Y3QgcG00X3VubWFwX3F1ZXVlcyAqKWJ1ZmZlcjsK IAltZW1zZXQoYnVmZmVyLCAwLCBzaXplb2Yoc3RydWN0IHBtNF91bm1hcF9xdWV1ZXMpKTsKLQor CXByX2RlYnVnKCJrZmQ6IHN0YXRpY19xdWV1ZTogdW5tYXBwaW5nIHF1ZXVlczogbW9kZSBpcyAl ZCAsIHJlc2V0IGlzICVkICwgdHlwZSBpcyAlZFxuIiwKKwkJbW9kZSwgcmVzZXQsIHR5cGUpOwog CXBhY2tldC0+aGVhZGVyLnUzMmFsbCA9IGJ1aWxkX3BtNF9oZWFkZXIoSVRfVU5NQVBfUVVFVUVT LAogCQkJCQlzaXplb2Yoc3RydWN0IHBtNF91bm1hcF9xdWV1ZXMpKTsKIAlzd2l0Y2ggKHR5cGUp IHsKQEAgLTUyOSw2ICs1NTAsMTEgQEAgaW50IHBtX3NlbmRfdW5tYXBfcXVldWUoc3RydWN0IHBh Y2tldF9tYW5hZ2VyICpwbSwgZW51bSBrZmRfcXVldWVfdHlwZSB0eXBlLAogCQlwYWNrZXQtPmJp dGZpZWxkczIucXVldWVfc2VsID0KIAkJCQlxdWV1ZV9zZWxfX21lc191bm1hcF9xdWV1ZXNfX3Bl cmZvcm1fcmVxdWVzdF9vbl9hbGxfYWN0aXZlX3F1ZXVlczsKIAkJYnJlYWs7CisJY2FzZSBLRkRf UFJFRU1QVF9UWVBFX0ZJTFRFUl9EWU5BTUlDX1FVRVVFUzoKKwkJLyogaW4gdGhpcyBjYXNlLCB3 ZSBkbyBub3QgcHJlZW1wdCBzdGF0aWMgcXVldWVzICovCisJCXBhY2tldC0+Yml0ZmllbGRzMi5x dWV1ZV9zZWwgPQorCQkJCXF1ZXVlX3NlbF9fbWVzX3VubWFwX3F1ZXVlc19fcGVyZm9ybV9yZXF1 ZXN0X29uX2R5bmFtaWNfcXVldWVzX29ubHk7CisJCWJyZWFrOwogCWRlZmF1bHQ6CiAJCUJVRygp OwogCQlicmVhazsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9w bTRfaGVhZGVycy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2ZkX3BtNF9oZWFkZXJz LmgKaW5kZXggMDcxYWQ1Ny4uNWIzOTNmMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRrZmQva2ZkX3BtNF9oZWFkZXJzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRr ZmQva2ZkX3BtNF9oZWFkZXJzLmgKQEAgLTIzNyw3ICsyMzcsOCBAQCBzdHJ1Y3QgcG00X21hcF9x dWV1ZXMgewogCXN0cnVjdCB7CiAJCXVuaW9uIHsKIAkJCXN0cnVjdCB7Ci0JCQkJdWludDMyX3Qg cmVzZXJ2ZWQ1OjI7CisJCQkJdWludDMyX3QgaXNfc3RhdGljOjE7CisJCQkJdWludDMyX3QgcmVz ZXJ2ZWQ1OjE7CiAJCQkJdWludDMyX3QgZG9vcmJlbGxfb2Zmc2V0OjIxOwogCQkJCXVpbnQzMl90 IHJlc2VydmVkNjozOwogCQkJCXVpbnQzMl90IHF1ZXVlOjY7CkBAIC0zMjgsNyArMzI5LDggQEAg ZW51bSB1bm1hcF9xdWV1ZXNfYWN0aW9uX2VudW0gewogZW51bSB1bm1hcF9xdWV1ZXNfcXVldWVf c2VsX2VudW0gewogCXF1ZXVlX3NlbF9fbWVzX3VubWFwX3F1ZXVlc19fcGVyZm9ybV9yZXF1ZXN0 X29uX3NwZWNpZmllZF9xdWV1ZXMgPSAwLAogCXF1ZXVlX3NlbF9fbWVzX3VubWFwX3F1ZXVlc19f cGVyZm9ybV9yZXF1ZXN0X29uX3Bhc2lkX3F1ZXVlcyA9IDEsCi0JcXVldWVfc2VsX19tZXNfdW5t YXBfcXVldWVzX19wZXJmb3JtX3JlcXVlc3Rfb25fYWxsX2FjdGl2ZV9xdWV1ZXMgPSAyCisJcXVl dWVfc2VsX19tZXNfdW5tYXBfcXVldWVzX19wZXJmb3JtX3JlcXVlc3Rfb25fYWxsX2FjdGl2ZV9x dWV1ZXMgPSAyLAorCXF1ZXVlX3NlbF9fbWVzX3VubWFwX3F1ZXVlc19fcGVyZm9ybV9yZXF1ZXN0 X29uX2R5bmFtaWNfcXVldWVzX29ubHkgPSAzCiB9OwogCiBlbnVtIHVubWFwX3F1ZXVlc19lbmdp bmVfc2VsX2VudW0gewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2Zk X3ByaXYuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wcml2LmgKaW5kZXggOGZk NmZiNi4uOGU5OWQyYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQva2Zk X3ByaXYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcHJpdi5oCkBAIC0x MjgsNiArMTI4LDcgQEAgc3RydWN0IGtmZF9kZXZpY2VfaW5mbyB7CiAJdW5zaWduZWQgaW50IGFz aWNfZmFtaWx5OwogCWNvbnN0IHN0cnVjdCBrZmRfZXZlbnRfaW50ZXJydXB0X2NsYXNzICpldmVu dF9pbnRlcnJ1cHRfY2xhc3M7CiAJdW5zaWduZWQgaW50IG1heF9wYXNpZF9iaXRzOworCXVuc2ln bmVkIGludCBtYXhfbm9fb2ZfaHFkOwogCXNpemVfdCBpaF9yaW5nX2VudHJ5X3NpemU7CiAJdWlu dDhfdCBudW1fb2Zfd2F0Y2hfcG9pbnRzOwogCXVpbnQxNl90IG1xZF9zaXplX2FsaWduZWQ7CkBA IC0yMzAsNiArMjMxLDcgQEAgc3RydWN0IGRldmljZSAqa2ZkX2NoYXJkZXYodm9pZCk7CiBlbnVt IGtmZF9wcmVlbXB0X3R5cGVfZmlsdGVyIHsKIAlLRkRfUFJFRU1QVF9UWVBFX0ZJTFRFUl9TSU5H TEVfUVVFVUUsCiAJS0ZEX1BSRUVNUFRfVFlQRV9GSUxURVJfQUxMX1FVRVVFUywKKwlLRkRfUFJF RU1QVF9UWVBFX0ZJTFRFUl9EWU5BTUlDX1FVRVVFUywKIAlLRkRfUFJFRU1QVF9UWVBFX0ZJTFRF Ul9CWV9QQVNJRAogfTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQv a2ZkX3Byb2Nlc3NfcXVldWVfbWFuYWdlci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRrZmQv a2ZkX3Byb2Nlc3NfcXVldWVfbWFuYWdlci5jCmluZGV4IDUzMGI4MmMuLjg1YjdmZWMgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1ka2ZkL2tmZF9wcm9jZXNzX3F1ZXVlX21hbmFn ZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGtmZC9rZmRfcHJvY2Vzc19xdWV1ZV9t YW5hZ2VyLmMKQEAgLTE1OCw2ICsxNTgsOCBAQCBpbnQgcHFtX2NyZWF0ZV9xdWV1ZShzdHJ1Y3Qg cHJvY2Vzc19xdWV1ZV9tYW5hZ2VyICpwcW0sCiAJc3RydWN0IHF1ZXVlICpxOwogCXN0cnVjdCBw cm9jZXNzX3F1ZXVlX25vZGUgKnBxbjsKIAlzdHJ1Y3Qga2VybmVsX3F1ZXVlICprcTsKKwlpbnQg bnVtX3F1ZXVlcyA9IDA7CisJc3RydWN0IHF1ZXVlICpjdXI7CiAKIAlCVUdfT04oIXBxbSB8fCAh ZGV2IHx8ICFwcm9wZXJ0aWVzIHx8ICFxaWQpOwogCkBAIC0xNzIsNiArMTc0LDIwIEBAIGludCBw cW1fY3JlYXRlX3F1ZXVlKHN0cnVjdCBwcm9jZXNzX3F1ZXVlX21hbmFnZXIgKnBxbSwKIAkJcmV0 dXJuIC0xOwogCX0KIAorCS8qCisJICogZm9yIGRlYnVnIHByb2Nlc3MsIHZlcmlmeSB0aGF0IGl0 IGlzIHdpdGhpbiB0aGUgc3RhdGljIHF1ZXVlcyBsaW1pdAorCSAqIGN1cnJlbnRseSBsaW1pdCBp cyBzZXQgdG8gaGFsZiBvZiB0aGUgdG90YWwgYXZhaWwgSFFEIHNsb3RzCisJICogSWYgd2UgYXJl IGp1c3QgYWJvdXQgdG8gY3JlYXRlIERJUSwgdGhlIGlzX2RlYnVnIGZsYWcgaXMgbm90IHNldCB5 ZXQKKwkgKiBIZW5jZSB3ZSBhbHNvIGNoZWNrIHRoZSB0eXBlIGFzIHdlbGwKKwkgKi8KKwlpZiAo KHBkZC0+cXBkLmlzX2RlYnVnKSB8fAorCQkodHlwZSA9PSBLRkRfUVVFVUVfVFlQRV9ESVEpKSB7 CisJCWxpc3RfZm9yX2VhY2hfZW50cnkoY3VyLCAmcGRkLT5xcGQucXVldWVzX2xpc3QsIGxpc3Qp CisJCQludW1fcXVldWVzKys7CisJCWlmIChudW1fcXVldWVzID49IGRldi0+ZGV2aWNlX2luZm8t Pm1heF9ub19vZl9ocWQvMikKKwkJCXJldHVybiAoLUVOT1NQQyk7CisJfQorCiAJcmV0dmFsID0g ZmluZF9hdmFpbGFibGVfcXVldWVfc2xvdChwcW0sIHFpZCk7CiAJaWYgKHJldHZhbCAhPSAwKQog CQlyZXR1cm4gcmV0dmFsOwotLSAKMi4xLjAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVsCg==