From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gustavo Padovan Subject: [RFC v3 1/8] drm/atomic: initial support for asynchronous plane update Date: Fri, 12 May 2017 16:10:47 -0300 Message-ID: <20170512191054.10074-2-gustavo@padovan.org> References: <20170512191054.10074-1-gustavo@padovan.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qt0-f194.google.com (mail-qt0-f194.google.com [209.85.216.194]) by gabe.freedesktop.org (Postfix) with ESMTPS id D0F97891A0 for ; Fri, 12 May 2017 19:11:02 +0000 (UTC) Received: by mail-qt0-f194.google.com with SMTP id a46so7934213qte.0 for ; Fri, 12 May 2017 12:11:02 -0700 (PDT) In-Reply-To: <20170512191054.10074-1-gustavo@padovan.org> 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 Cc: Gustavo Padovan , Daniel Vetter List-Id: dri-devel@lists.freedesktop.org RnJvbTogR3VzdGF2byBQYWRvdmFuIDxndXN0YXZvLnBhZG92YW5AY29sbGFib3JhLmNvbT4KCklu IHNvbWUgY2FzZXMsIGxpa2UgY3Vyc29yIHVwZGF0ZXMsIGl0IGlzIGludGVyZXN0aW5nIHRvIHVw ZGF0ZSB0aGUKcGxhbmUgaW4gYW4gYXN5bmNocm9ub3VzIGZhc2hpb24gdG8gYXZvaWQgYmlnIGRl bGF5cy4gVGhlIGN1cnJlbnQgcXVldWVkCnVwZGF0ZSBjb3VsZCBiZSBzdGlsbCB3YWl0aW5nIGZv ciBhIGZlbmNlIHRvIHNpZ25hbCBhbmQgdGh1cyBibG9jayBhbnkKc3Vic2VxdWVudCB1cGRhdGUg dW50aWwgaXRzIHNjYW4gb3V0LiBJbiBjYXNlcyBsaWtlIHRoaXMgaWYgd2UgdXBkYXRlIHRoZQpj dXJzb3Igc3luY2hyb25vdXNseSB0aHJvdWdoIHRoZSBhdG9taWMgQVBJIGl0IHdpbGwgY2F1c2Ug c2lnbmlmaWNhbnQKZGVsYXlzIHRoYXQgd291bGQgZXZlbiBiZSBub3RpY2VkIGJ5IHRoZSBmaW5h bCB1c2VyLgoKVGhpcyBwYXRjaCBjcmVhdGVzIGEgZmFzdCBwYXRoIHRvIGp1bXAgYWhlYWQgdGhl IGN1cnJlbnQgcXVldWVkIHN0YXRlIGFuZApkbyBzaW5nbGUgcGxhbmVzIHVwZGF0ZXMgd2l0aG91 dCBnb2luZyB0aHJvdWdoIGFsbCBhdG9taWMgc3RlcHMgaW4KZHJtX2F0b21pY19oZWxwZXJfY29t bWl0KCkuIFdlIHRha2UgdGhpcyBwYXRoIGZvciBsZWdhY3kgY3Vyc29yIHVwZGF0ZXMuCgpGb3Ig bm93IG9ubHkgc2luZ2xlIHBsYW5lIHVwZGF0ZXMgYXJlIHN1cHBvcnRlZCwgYnV0IHdlIHBsYW4g dG8gc3VwcG9ydAptdWx0aXBsZSBwbGFuZXMgdXBkYXRlcyBhbmQgYXN5bmMgUGFnZUZsaXBzIHRo cm91Z2ggdGhpcyBpbnRlcmZhY2UgYXMgd2VsbAppbiB0aGUgbmVhciBmdXR1cmUuCgp2MzoKCS0g Zml4IGl0ZXJhdGlvbiBvbiB0aGUgd3JvbmcgY3J0YyBzdGF0ZQoJLSBwdXQgYmFjayBjb2RlIHRv IGZvcmJpZCB1cGRhdGVzIGlmIHRoZXJlIGlzIGEgcXVldWVkIHVwZGF0ZSBmb3IKCXRoZSBzYW1l IHBsYW5lIChWaWxsZSBTeXJqw6Rsw6QpCgktIG1vdmUgc2l6ZSBjaGVja3MgYmFjayB0byBkcml2 ZXJzIChWaWxsZSBTeXJqw6Rsw6QpCgktIG1vdmUgQVNZTkNfVVBEQVRFIGZsYWcgYWRkaXRpb24g dG8gaXRzIG93biBwYXRjaCAoVmlsbGUgU3lyasOkbMOkKQoKdjI6CgktIGFsbG93IHVwZGF0ZXMg ZXZlbiBpZiB0aGVyZSBpcyBhIHF1ZXVlZCB1cGRhdGUgZm9yIHRoZSBzYW1lCglwbGFuZS4KICAg ICAgICAtIGZpeGVzIG9uIHRoZSBkb2N1bWVudGF0aW9uIChFbWlsIFZlbGlrb3YpCiAgICAgICAg LSB1bmNvbmRpdGlvbmFsbHkgY2FsbCAtPmF0b21pY19hc3luY191cGRhdGUgKEVtaWwgVmVsaWtv dikKICAgICAgICAtIGNoZWNrIGZvciAtPmF0b21pY19hc3luY191cGRhdGUgZWFybGllciAoRGFu aWVsIFZldHRlcikKICAgICAgICAtIG1ha2UgLT5hdG9taWNfYXN5bmNfY2hlY2soKSB0aGUgbGFz dCBzdGVwIChEYW5pZWwgVmV0dGVyKQogICAgICAgIC0gYWRkIEFTWU5DX1VQREFURSBmbGFnIChF cmljIEFuaG9sdCkKICAgICAgICAtIHVwZGF0ZSBzdGF0ZSBpbiBjb3JlIGFmdGVyIC0+YXRvbWlj X2FzeW5jX3VwZGF0ZSAoRXJpYyBBbmhvbHQpCgktIHVwZGF0ZSBkb2NzIChFcmljIEFuaG9sdCkK CkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGludGVsLmNvbT4KQ2M6IFJvYiBDbGFy ayA8cm9iZGNsYXJrQGdtYWlsLmNvbT4KQ2M6IEVyaWMgQW5ob2x0IDxlcmljQGFuaG9sdC5uZXQ+ ClNpZ25lZC1vZmYtYnk6IEd1c3Rhdm8gUGFkb3ZhbiA8Z3VzdGF2by5wYWRvdmFuQGNvbGxhYm9y YS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyAgICAgICAgICAgICB8IDY1 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pY19oZWxwZXIuYyAgICAgIHwgMzUgKysrKysrKysrKysrKysrKysKIGluY2x1ZGUvZHJtL2Ry bV9hdG9taWMuaCAgICAgICAgICAgICAgICAgfCAgMiArCiBpbmNsdWRlL2RybS9kcm1fYXRvbWlj X2hlbHBlci5oICAgICAgICAgIHwgIDIgKwogaW5jbHVkZS9kcm0vZHJtX21vZGVzZXRfaGVscGVy X3Z0YWJsZXMuaCB8IDQ4ICsrKysrKysrKysrKysrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQs IDE1MiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKaW5kZXggYmU2Mjc3NC4uMjU5YTc1 OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pYy5jCkBAIC02MzEsNiArNjMxLDY4IEBAIHN0YXRpYyBpbnQgZHJt X2F0b21pY19jcnRjX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlyZXR1cm4gMDsKIH0K IAorc3RhdGljIGJvb2wgZHJtX2F0b21pY19hc3luY19jaGVjayhzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUpCit7CisJc3RydWN0IGRybV9jcnRjICpjcnRjOworCXN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2NydGNfY29tbWl0ICpjb21taXQ7CisJ c3RydWN0IGRybV9wbGFuZSAqX19wbGFuZSwgKnBsYW5lID0gTlVMTDsKKwlzdHJ1Y3QgZHJtX3Bs YW5lX3N0YXRlICpfX3BsYW5lX3N0YXRlLCAqcGxhbmVfc3RhdGUgPSBOVUxMOworCWNvbnN0IHN0 cnVjdCBkcm1fcGxhbmVfaGVscGVyX2Z1bmNzICpmdW5jczsKKwlpbnQgaSwgaiwgbl9wbGFuZXMg PSAwOworCisJZm9yX2VhY2hfbmV3X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3Rh dGUsIGkpIHsKKwkJaWYgKGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUp KQorCQkJcmV0dXJuIGZhbHNlOworCX0KKworCWZvcl9lYWNoX25ld19wbGFuZV9pbl9zdGF0ZShz dGF0ZSwgX19wbGFuZSwgX19wbGFuZV9zdGF0ZSwgaSkgeworCQluX3BsYW5lcysrOworCQlwbGFu ZSA9IF9fcGxhbmU7CisJCXBsYW5lX3N0YXRlID0gX19wbGFuZV9zdGF0ZTsKKwl9CisKKwkvKiBG SVhNRTogd2Ugc3VwcG9ydCBvbmx5IHNpbmdsZSBwbGFuZSB1cGRhdGVzIGZvciBub3cgKi8KKwlp ZiAoIXBsYW5lIHx8IG5fcGxhbmVzICE9IDEpCisJCXJldHVybiBmYWxzZTsKKworCWlmICghcGxh bmUtPnN0YXRlLT5jcnRjKQorCQlyZXR1cm4gZmFsc2U7CisKKwlmdW5jcyA9IHBsYW5lLT5oZWxw ZXJfcHJpdmF0ZTsKKwlpZiAoIWZ1bmNzLT5hdG9taWNfYXN5bmNfdXBkYXRlKQorCQlyZXR1cm4g ZmFsc2U7CisKKwlpZiAocGxhbmVfc3RhdGUtPmZlbmNlKQorCQlyZXR1cm4gZmFsc2U7CisKKwlm b3JfZWFjaF9uZXdfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewor CQlpZiAocGxhbmUtPmNydGMgIT0gY3J0YykKKwkJCWNvbnRpbnVlOworCisJCXNwaW5fbG9jaygm Y3J0Yy0+Y29tbWl0X2xvY2spOworCQljb21taXQgPSBsaXN0X2ZpcnN0X2VudHJ5X29yX251bGwo JmNydGMtPmNvbW1pdF9saXN0LAorCQkJCQkJICBzdHJ1Y3QgZHJtX2NydGNfY29tbWl0LAorCQkJ CQkJICBjb21taXRfZW50cnkpOworCQlpZiAoIWNvbW1pdCkgeworCQkJc3Bpbl91bmxvY2soJmNy dGMtPmNvbW1pdF9sb2NrKTsKKwkJCWNvbnRpbnVlOworCQl9CisJCXNwaW5fdW5sb2NrKCZjcnRj LT5jb21taXRfbG9jayk7CisKKwkJaWYgKCFjcnRjLT5zdGF0ZS0+c3RhdGUpCisJCQljb250aW51 ZTsKKworCQlmb3JfZWFjaF9wbGFuZV9pbl9zdGF0ZShjcnRjLT5zdGF0ZS0+c3RhdGUsIF9fcGxh bmUsCisJCQkJCV9fcGxhbmVfc3RhdGUsIGopIHsKKwkJCWlmIChfX3BsYW5lID09IHBsYW5lKQor CQkJCXJldHVybiBmYWxzZTsKKwkJfQorCX0KKworCXJldHVybiAhZnVuY3MtPmF0b21pY19hc3lu Y19jaGVjayhwbGFuZSwgcGxhbmVfc3RhdGUpOworfQorCiBzdGF0aWMgdm9pZCBkcm1fYXRvbWlj X2NydGNfcHJpbnRfc3RhdGUoc3RydWN0IGRybV9wcmludGVyICpwLAogCQljb25zdCBzdHJ1Y3Qg ZHJtX2NydGNfc3RhdGUgKnN0YXRlKQogewpAQCAtMTU5MSw2ICsxNjUzLDkgQEAgaW50IGRybV9h dG9taWNfY2hlY2tfb25seShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCX0KIAl9 CiAKKwlpZiAoc3RhdGUtPmxlZ2FjeV9jdXJzb3JfdXBkYXRlKQorCQlzdGF0ZS0+YXN5bmNfdXBk YXRlID0gZHJtX2F0b21pY19hc3luY19jaGVjayhzdGF0ZSk7CisKIAlyZXR1cm4gcmV0OwogfQog RVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2NoZWNrX29ubHkpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y19oZWxwZXIuYwppbmRleCA1YTNjOWMwLi5hOGVmZGZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y19oZWxwZXIuYwpAQCAtMTIzNSw2ICsxMjM1LDMwIEBAIHN0YXRpYyB2b2lkIGNvbW1pdF93b3Jr KHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIH0KIAogLyoqCisgKiBkcm1fYXRvbWljX2hlbHBl cl9hc3luY19jb21taXQgLSBjb21taXQgc3RhdGUgYXN5bmNocm9ub3VzbHkKKyAqCisgKiBUaGlz IGZ1bmN0aW9uIGNvbW1pdHMgYSBzdGF0ZSBhc3luY2hyb25vdXNseSwgaS5lLiwgbm90IHZibGFu aworICogc3luY2hyb25pemVkLiBJdCBzaG91bGQgYmUgdXNlZCBvbiBhIHN0YXRlIG9ubHkgd2hl bgorICogZHJtX2F0b21pY19hc3luY19jaGVjaygpIHN1Y2NlZWRzLiBBc3luYyBjb21taXRzIGFy ZSBub3Qgc3VwcG9zZWQgdG8gc3dhcAorICogdGhlIHN0YXRlcyBsaWtlIG5vcm1hbCBzeW5jIGNv bW1pdHMsIGJ1dCBqdXN0IGRvIGluLXBsYWNlIGNoYW5nZXMgb24gdGhlCisgKiBjdXJyZW50IHN0 YXRlLgorICovCit2b2lkIGRybV9hdG9taWNfaGVscGVyX2FzeW5jX2NvbW1pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAorCQkJCSAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCit7 CisJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CisJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqcGxh bmVfc3RhdGU7CisJY29uc3Qgc3RydWN0IGRybV9wbGFuZV9oZWxwZXJfZnVuY3MgKmZ1bmNzOwor CWludCBpOworCisJZm9yX2VhY2hfbmV3X3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFuZSwgcGxh bmVfc3RhdGUsIGkpIHsKKwkJZnVuY3MgPSBwbGFuZS0+aGVscGVyX3ByaXZhdGU7CisJCWZ1bmNz LT5hdG9taWNfYXN5bmNfdXBkYXRlKHBsYW5lLCBwbGFuZV9zdGF0ZSk7CisJfQorfQorRVhQT1JU X1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9hc3luY19jb21taXQpOworCisvKioKICAqIGRybV9h dG9taWNfaGVscGVyX2NvbW1pdCAtIGNvbW1pdCB2YWxpZGF0ZWQgc3RhdGUgb2JqZWN0CiAgKiBA ZGV2OiBEUk0gZGV2aWNlCiAgKiBAc3RhdGU6IHRoZSBkcml2ZXIgc3RhdGUgb2JqZWN0CkBAIC0x MjU4LDYgKzEyODIsMTcgQEAgaW50IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAogewogCWludCByZXQ7CiAKKwlpZiAoc3RhdGUtPmFzeW5jX3VwZGF0ZSkg eworCQlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9wcmVwYXJlX3BsYW5lcyhkZXYsIHN0YXRlKTsK KwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisKKwkJZHJtX2F0b21pY19oZWxwZXJfYXN5bmNf Y29tbWl0KGRldiwgc3RhdGUpOworCQlkcm1fYXRvbWljX2hlbHBlcl9jbGVhbnVwX3BsYW5lcyhk ZXYsIHN0YXRlKTsKKworCQlyZXR1cm4gMDsKKwl9CisKIAlyZXQgPSBkcm1fYXRvbWljX2hlbHBl cl9zZXR1cF9jb21taXQoc3RhdGUsIG5vbmJsb2NrKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0 OwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oIGIvaW5jbHVkZS9kcm0vZHJt X2F0b21pYy5oCmluZGV4IDc4OGRhZjcuLjcwY2EyNzkgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJt L2RybV9hdG9taWMuaAorKysgYi9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmgKQEAgLTE2MCw2ICsx NjAsNyBAQCBzdHJ1Y3QgX19kcm1fY29ubm5lY3RvcnNfc3RhdGUgewogICogQGRldjogcGFyZW50 IERSTSBkZXZpY2UKICAqIEBhbGxvd19tb2Rlc2V0OiBhbGxvdyBmdWxsIG1vZGVzZXQKICAqIEBs ZWdhY3lfY3Vyc29yX3VwZGF0ZTogaGludCB0byBlbmZvcmNlIGxlZ2FjeSBjdXJzb3IgSU9DVEwg c2VtYW50aWNzCisgKiBAYXN5bmNfdXBkYXRlOiBoaW50IGZvciBhc3luY2hyb25vdXMgcGxhbmUg dXBkYXRlCiAgKiBAcGxhbmVzOiBwb2ludGVyIHRvIGFycmF5IG9mIHN0cnVjdHVyZXMgd2l0aCBw ZXItcGxhbmUgZGF0YQogICogQGNydGNzOiBwb2ludGVyIHRvIGFycmF5IG9mIENSVEMgcG9pbnRl cnMKICAqIEBudW1fY29ubmVjdG9yOiBzaXplIG9mIHRoZSBAY29ubmVjdG9ycyBhbmQgQGNvbm5l Y3Rvcl9zdGF0ZXMgYXJyYXlzCkBAIC0xNzIsNiArMTczLDcgQEAgc3RydWN0IGRybV9hdG9taWNf c3RhdGUgewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXY7CiAJYm9vbCBhbGxvd19tb2Rlc2V0IDog MTsKIAlib29sIGxlZ2FjeV9jdXJzb3JfdXBkYXRlIDogMTsKKwlib29sIGFzeW5jX3VwZGF0ZSA6 IDE7CiAJc3RydWN0IF9fZHJtX3BsYW5lc19zdGF0ZSAqcGxhbmVzOwogCXN0cnVjdCBfX2RybV9j cnRjc19zdGF0ZSAqY3J0Y3M7CiAJaW50IG51bV9jb25uZWN0b3I7CmRpZmYgLS1naXQgYS9pbmNs dWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxw ZXIuaAppbmRleCBmMGE4Njc4Li44NTcxYjUxIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1f YXRvbWljX2hlbHBlci5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWNfaGVscGVyLmgKQEAg LTQ0LDYgKzQ0LDggQEAgdm9pZCBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRfdGFpbChzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwogaW50IGRybV9hdG9taWNfaGVscGVyX2NvbW1pdChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq c3RhdGUsCiAJCQkgICAgIGJvb2wgbm9uYmxvY2spOwordm9pZCBkcm1fYXRvbWljX2hlbHBlcl9h c3luY19jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKKwkJCQkgICAgc3RydWN0IGRybV9h dG9taWNfc3RhdGUgKnN0YXRlKTsKIAogaW50IGRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX2Zl bmNlcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJCQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUsCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fbW9kZXNldF9oZWxwZXJfdnRh Ymxlcy5oIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVzZXRfaGVscGVyX3Z0YWJsZXMuaAppbmRleCBj MDFjMzI4Li43OTY0YTc4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS9kcm1fbW9kZXNldF9oZWxw ZXJfdnRhYmxlcy5oCisrKyBiL2luY2x1ZGUvZHJtL2RybV9tb2Rlc2V0X2hlbHBlcl92dGFibGVz LmgKQEAgLTEwNDgsNiArMTA0OCw1NCBAQCBzdHJ1Y3QgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyB7 CiAJICovCiAJdm9pZCAoKmF0b21pY19kaXNhYmxlKShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwK IAkJCSAgICAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUpOworCisJLyoqCisJ ICogQGF0b21pY19hc3luY19jaGVjazoKKwkgKgorCSAqIERyaXZlcnMgc2hvdWxkIHNldCB0aGlz IGZ1bmN0aW9uIHBvaW50ZXIgdG8gY2hlY2sgaWYgdGhlIHBsYW5lIHN0YXRlCisJICogY2FuIGJl IHVwZGF0ZWQgaW4gYSBhc3luYyBmYXNoaW9uLiBIZXJlIGFzeW5jIG1lYW5zICJub3QgdmJsYW5r CisJICogc3luY2hyb25pemVkIi4KKwkgKgorCSAqIFRoaXMgaG9vayBpcyBjYWxsZWQgYnkgZHJt X2F0b21pY19hc3luY19jaGVjaygpIHRvIGVzdGFibGlzaCBpZiBhCisJICogZ2l2ZW4gdXBkYXRl IGNhbiBiZSBjb21taXR0ZWQgYXN5bmNocm9ub3VzbHksIHRoYXQgaXMsIGlmIGl0IGNhbgorCSAq IGp1bXAgYWhlYWQgdGhlIHN0YXRlIGN1cnJlbnRseSBxdWV1ZWQgZm9yIHVwZGF0ZS4KKwkgKgor CSAqIFJFVFVSTlM6CisJICoKKwkgKiBSZXR1cm4gMCBvbiBzdWNjZXNzIGFuZCBhbnkgZXJyb3Ig cmV0dXJuZWQgaW5kaWNhdGVzIHRoYXQgdGhlIHVwZGF0ZQorCSAqIGNhbiBub3QgYmUgYXBwbGll ZCBpbiBhc3luY2hyb25vdXMgbWFubmVyLgorCSAqLworCWludCAoKmF0b21pY19hc3luY19jaGVj aykoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJCQkJICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRl ICpzdGF0ZSk7CisKKwkvKioKKwkgKiBAYXRvbWljX2FzeW5jX3VwZGF0ZToKKwkgKgorCSAqIERy aXZlcnMgc2hvdWxkIHNldCB0aGlzIGZ1bmN0aW9uIHBvaW50ZXIgdG8gcGVyZm9ybSBhc3luY2hy b25vdXMKKwkgKiB1cGRhdGVzIG9mIHBsYW5lcywgdGhhdCBpcywganVtcCBhaGVhZCB0aGUgY3Vy cmVudGx5IHF1ZXVlZAorCSAqIHN0YXRlIGZvciBhbmQgdXBkYXRlIHRoZSBwbGFuZS4gSGVyZSBh c3luYyBtZWFucyAibm90IHZibGFuaworCSAqIHN5bmNocm9uaXplZCIuCisJICoKKwkgKiBUaGlz IGhvb2sgaXMgY2FsbGVkIGJ5IGRybV9hdG9taWNfaGVscGVyX2FzeW5jX2NvbW1pdCgpLgorCSAq CisJICogQW4gYXN5bmMgdXBkYXRlIHdpbGwgaGFwcGVuIG9uIGxlZ2FjeSBjdXJzb3IgdXBkYXRl cy4KKwkgKgorCSAqIE5vdGUgdGhhdCB1bmxpa2UgJmRybV9wbGFuZV9oZWxwZXJfZnVuY3MuYXRv bWljX3VwZGF0ZSB0aGlzIGhvb2sKKwkgKiB0YWtlcyB0aGUgbmV3ICZkcm1fcGxhbmVfc3RhdGUg YXMgcGFyYW1ldGVyLiBXaGVuIGRvaW5nIGFzeW5jX3VwZGF0ZQorCSAqIGRyaXZlcnMgc2hvdWxk bid0IHJlcGxhY2UgdGhlICZkcm1fcGxhbmVfc3RhdGUgYnV0IHVwZGF0ZSB0aGUKKwkgKiBjdXJy ZW50IG9uZSB3aXRoIHRoZSBuZXcgcGxhbmUgY29uZmlndXJhdGlvbnMgaW4gdGhlIG5ldworCSAq IHBsYW5lX3N0YXRlLgorCSAqCisJICogRklYTUU6CisJICogIC0gSXQgb25seSB3b3JrcyBmb3Ig c2luZ2xlIHBsYW5lIHVwZGF0ZXMKKwkgKiAgLSBBc3luYyBQYWdlZmxpcHMgYXJlIG5vdCBzdXBw b3J0ZWQgeWV0CisJICogIC0gU29tZSBobSBtaWdodCBzdGlsbCBzY2FuIG91dCB0aGUgb2xkIGJ1 ZmZlciB1bnRpbCB0aGUgbmV4dAorCSAqICB2YmxhbmssIGhvd2V2ZXIgd2UgbGV0IGdvIG9mIHRo ZSBmYiByZWZlcmVuY2VzIGFzIHNvb24gYXMKKwkgKiAgd2UgcnVuIHRoaXMgaG9vay4gRm9yIG5v dyBkcml2ZXJzIG11c3QgaW1wbGVtZW50IHRoZWlyIG93biB3b3JrZXJzCisJICogIGZvciBkZWZl cmluZyBpZiBuZWVkZWQsIHVudGlsIGEgY29tbW9uIHNvbHV0aW9uIGlzIGNyZWF0ZWQuCisJICov CisJdm9pZCAoKmF0b21pY19hc3luY191cGRhdGUpKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAor CQkJCSAgICBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpuZXdfc3RhdGUpOwogfTsKIAogLyoqCi0t IAoyLjkuMwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==