From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH 2/6] drm: Introduce drm_mode_object_{get,put}() Date: Wed, 8 Feb 2017 19:24:04 +0100 Message-ID: <20170208182408.5442-3-thierry.reding@gmail.com> References: <20170208182408.5442-1-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x242.google.com (mail-wm0-x242.google.com [IPv6:2a00:1450:400c:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id D59E66E961 for ; Wed, 8 Feb 2017 18:24:15 +0000 (UTC) Received: by mail-wm0-x242.google.com with SMTP id c85so34599116wmi.1 for ; Wed, 08 Feb 2017 10:24:15 -0800 (PST) In-Reply-To: <20170208182408.5442-1-thierry.reding@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 Cc: Daniel Vetter List-Id: dri-devel@lists.freedesktop.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KCkZvciBjb25zaXN0ZW5j eSB3aXRoIG90aGVyIHJlZmVyZW5jZSBjb3VudGluZyBBUElzIGluIHRoZSBrZXJuZWwsIGFkZApk cm1fbW9kZV9vYmplY3RfZ2V0KCkgYW5kIGRybV9tb2RlX29iamVjdF9wdXQoKSB0byByZWZlcmVu Y2UgY291bnQgRFJNCm1vZGUgb2JqZWN0cy4KCkNvbXBhdGliaWxpdHkgYWxpYXNlcyBhcmUgYWRk ZWQgdG8ga2VlcCBleGlzdGluZyBjb2RlIHdvcmtpbmcuIFRvIGhlbHAKc3BlZWQgdXAgdGhlIHRy YW5zaXRpb24sIGFsbCB0aGUgaW5zdGFuY2VzIG9mIHRoZSBvbGQgZnVuY3Rpb25zIGluIHRoZQpE Uk0gY29yZSBhcmUgYWxyZWFkeSByZXBsYWNlZCBpbiB0aGlzIGNvbW1pdC4KCkEgc2VtYW50aWMg cGF0Y2ggaXMgcHJvdmlkZWQgdGhhdCBjYW4gYmUgdXNlZCB0byBjb252ZXJ0IGFsbCBkcml2ZXJz IHRvCnRoZSBuZXcgaGVscGVycy4KClNpZ25lZC1vZmYtYnk6IFRoaWVycnkgUmVkaW5nIDx0cmVk aW5nQG52aWRpYS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyAgICAgICAg ICAgICB8IDE0ICsrKysrLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX21vZGVfb2JqZWN0LmMg ICAgICAgIHwgMjYgKysrKysrKysrKy0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fcHJv cGVydHkuYyAgICAgICAgICAgfCAgNiArKy0tLQogaW5jbHVkZS9kcm0vZHJtX21vZGVfb2JqZWN0 LmggICAgICAgICAgICB8IDM2ICsrKysrKysrKysrKysrKysrKysrKystLS0tLQogc2NyaXB0cy9j b2NjaW5lbGxlL2FwaS9kcm0tZ2V0LXB1dC5jb2NjaSB8IDQyICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCiA1IGZpbGVzIGNoYW5nZWQsIDk1IGluc2VydGlvbnMoKyksIDI5IGRlbGV0 aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNjcmlwdHMvY29jY2luZWxsZS9hcGkvZHJtLWdl dC1wdXQuY29jY2kKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwppbmRleCBhNTY3MzEwN2RiMjYuLjJiYjBhNzU5 ZThlYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCkBAIC0yMTIyLDEzICsyMTIyLDEzIEBAIGludCBkcm1f bW9kZV9hdG9taWNfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJfQogCiAJCWlmICgh b2JqLT5wcm9wZXJ0aWVzKSB7Ci0JCQlkcm1fbW9kZV9vYmplY3RfdW5yZWZlcmVuY2Uob2JqKTsK KwkJCWRybV9tb2RlX29iamVjdF9wdXQob2JqKTsKIAkJCXJldCA9IC1FTk9FTlQ7CiAJCQlnb3Rv IG91dDsKIAkJfQogCiAJCWlmIChnZXRfdXNlcihjb3VudF9wcm9wcywgY291bnRfcHJvcHNfcHRy ICsgY29waWVkX29ianMpKSB7Ci0JCQlkcm1fbW9kZV9vYmplY3RfdW5yZWZlcmVuY2Uob2JqKTsK KwkJCWRybV9tb2RlX29iamVjdF9wdXQob2JqKTsKIAkJCXJldCA9IC1FRkFVTFQ7CiAJCQlnb3Rv IG91dDsKIAkJfQpAQCAtMjE0MSwxNCArMjE0MSwxNCBAQCBpbnQgZHJtX21vZGVfYXRvbWljX2lv Y3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9w OwogCiAJCQlpZiAoZ2V0X3VzZXIocHJvcF9pZCwgcHJvcHNfcHRyICsgY29waWVkX3Byb3BzKSkg ewotCQkJCWRybV9tb2RlX29iamVjdF91bnJlZmVyZW5jZShvYmopOworCQkJCWRybV9tb2RlX29i amVjdF9wdXQob2JqKTsKIAkJCQlyZXQgPSAtRUZBVUxUOwogCQkJCWdvdG8gb3V0OwogCQkJfQog CiAJCQlwcm9wID0gZHJtX21vZGVfb2JqX2ZpbmRfcHJvcF9pZChvYmosIHByb3BfaWQpOwogCQkJ aWYgKCFwcm9wKSB7Ci0JCQkJZHJtX21vZGVfb2JqZWN0X3VucmVmZXJlbmNlKG9iaik7CisJCQkJ ZHJtX21vZGVfb2JqZWN0X3B1dChvYmopOwogCQkJCXJldCA9IC1FTk9FTlQ7CiAJCQkJZ290byBv dXQ7CiAJCQl9CkBAIC0yMTU2LDE0ICsyMTU2LDE0IEBAIGludCBkcm1fbW9kZV9hdG9taWNfaW9j dGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCWlmIChjb3B5X2Zyb21fdXNlcigmcHJvcF92 YWx1ZSwKIAkJCQkJICAgcHJvcF92YWx1ZXNfcHRyICsgY29waWVkX3Byb3BzLAogCQkJCQkgICBz aXplb2YocHJvcF92YWx1ZSkpKSB7Ci0JCQkJZHJtX21vZGVfb2JqZWN0X3VucmVmZXJlbmNlKG9i aik7CisJCQkJZHJtX21vZGVfb2JqZWN0X3B1dChvYmopOwogCQkJCXJldCA9IC1FRkFVTFQ7CiAJ CQkJZ290byBvdXQ7CiAJCQl9CiAKIAkJCXJldCA9IGF0b21pY19zZXRfcHJvcChzdGF0ZSwgb2Jq LCBwcm9wLCBwcm9wX3ZhbHVlKTsKIAkJCWlmIChyZXQpIHsKLQkJCQlkcm1fbW9kZV9vYmplY3Rf dW5yZWZlcmVuY2Uob2JqKTsKKwkJCQlkcm1fbW9kZV9vYmplY3RfcHV0KG9iaik7CiAJCQkJZ290 byBvdXQ7CiAJCQl9CiAKQEAgLTIxNzYsNyArMjE3Niw3IEBAIGludCBkcm1fbW9kZV9hdG9taWNf aW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAkJCXBsYW5lX21hc2sgfD0gKDEgPDwgZHJt X3BsYW5lX2luZGV4KHBsYW5lKSk7CiAJCQlwbGFuZS0+b2xkX2ZiID0gcGxhbmUtPmZiOwogCQl9 Ci0JCWRybV9tb2RlX29iamVjdF91bnJlZmVyZW5jZShvYmopOworCQlkcm1fbW9kZV9vYmplY3Rf cHV0KG9iaik7CiAJfQogCiAJcmV0ID0gcHJlcGFyZV9jcnRjX3NpZ25hbGluZyhkZXYsIHN0YXRl LCBhcmcsIGZpbGVfcHJpdiwgJmZlbmNlX3N0YXRlLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2RybV9tb2RlX29iamVjdC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX29iamVjdC5j CmluZGV4IDNiNDA1ZGJmMWI4ZC4uZGE5YTlhZGJjYzk4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vZHJtX21vZGVfb2JqZWN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9tb2RlX29i amVjdC5jCkBAIC0xMzMsNyArMTMzLDcgQEAgc3RydWN0IGRybV9tb2RlX29iamVjdCAqX19kcm1f bW9kZV9vYmplY3RfZmluZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogICoKICAqIFRoaXMgZnVu Y3Rpb24gaXMgdXNlZCB0byBsb29rIHVwIGEgbW9kZXNldCBvYmplY3QuIEl0IHdpbGwgYWNxdWly ZSBhCiAgKiByZWZlcmVuY2UgZm9yIHJlZmVyZW5jZSBjb3VudGVkIG9iamVjdHMuIFRoaXMgcmVm ZXJlbmNlIG11c3QgYmUgZHJvcHBlZCBhZ2FpbgotICogYnkgY2FsbGluZCBkcm1fbW9kZV9vYmpl Y3RfdW5yZWZlcmVuY2UoKS4KKyAqIGJ5IGNhbGxpbmQgZHJtX21vZGVfb2JqZWN0X3B1dCgpLgog ICovCiBzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpkcm1fbW9kZV9vYmplY3RfZmluZChzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAogCQl1aW50MzJfdCBpZCwgdWludDMyX3QgdHlwZSkKQEAgLTE0Niwz OCArMTQ2LDM4IEBAIHN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKmRybV9tb2RlX29iamVjdF9maW5k KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiBFWFBPUlRfU1lNQk9MKGRybV9tb2RlX29iamVjdF9m aW5kKTsKIAogLyoqCi0gKiBkcm1fbW9kZV9vYmplY3RfdW5yZWZlcmVuY2UgLSBkZWNyIHRoZSBv YmplY3QgcmVmY250Ci0gKiBAb2JqOiBtb2RlX29iamVjdAorICogZHJtX21vZGVfb2JqZWN0X3B1 dCAtIHJlbGVhc2UgYSBtb2RlIG9iamVjdCByZWZlcmVuY2UKKyAqIEBvYmo6IERSTSBtb2RlIG9i amVjdAogICoKICAqIFRoaXMgZnVuY3Rpb24gZGVjcmVtZW50cyB0aGUgb2JqZWN0J3MgcmVmY291 bnQgaWYgaXQgaXMgYSByZWZjb3VudGVkIG1vZGVzZXQKICAqIG9iamVjdC4gSXQgaXMgYSBuby1v cCBvbiBhbnkgb3RoZXIgb2JqZWN0LiBUaGlzIGlzIHVzZWQgdG8gZHJvcCByZWZlcmVuY2VzCi0g KiBhY3F1aXJlZCB3aXRoIGRybV9tb2RlX29iamVjdF9yZWZlcmVuY2UoKS4KKyAqIGFjcXVpcmVk IHdpdGggZHJtX21vZGVfb2JqZWN0X2dldCgpLgogICovCi12b2lkIGRybV9tb2RlX29iamVjdF91 bnJlZmVyZW5jZShzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpvYmopCit2b2lkIGRybV9tb2RlX29i amVjdF9wdXQoc3RydWN0IGRybV9tb2RlX29iamVjdCAqb2JqKQogewogCWlmIChvYmotPmZyZWVf Y2IpIHsKIAkJRFJNX0RFQlVHKCJPQkogSUQ6ICVkICglZClcbiIsIG9iai0+aWQsIGtyZWZfcmVh ZCgmb2JqLT5yZWZjb3VudCkpOwogCQlrcmVmX3B1dCgmb2JqLT5yZWZjb3VudCwgb2JqLT5mcmVl X2NiKTsKIAl9CiB9Ci1FWFBPUlRfU1lNQk9MKGRybV9tb2RlX29iamVjdF91bnJlZmVyZW5jZSk7 CitFWFBPUlRfU1lNQk9MKGRybV9tb2RlX29iamVjdF9wdXQpOwogCiAvKioKLSAqIGRybV9tb2Rl X29iamVjdF9yZWZlcmVuY2UgLSBpbmNyIHRoZSBvYmplY3QgcmVmY250Ci0gKiBAb2JqOiBtb2Rl X29iamVjdAorICogZHJtX21vZGVfb2JqZWN0X2dldCAtIGFjcXVpcmUgYSBtb2RlIG9iamVjdCBy ZWZlcmVuY2UKKyAqIEBvYmo6IERSTSBtb2RlIG9iamVjdAogICoKICAqIFRoaXMgZnVuY3Rpb24g aW5jcmVtZW50cyB0aGUgb2JqZWN0J3MgcmVmY291bnQgaWYgaXQgaXMgYSByZWZjb3VudGVkIG1v ZGVzZXQKICAqIG9iamVjdC4gSXQgaXMgYSBuby1vcCBvbiBhbnkgb3RoZXIgb2JqZWN0LiBSZWZl cmVuY2VzIHNob3VsZCBiZSBkcm9wcGVkIGFnYWluCi0gKiBieSBjYWxsaW5nIGRybV9tb2RlX29i amVjdF91bnJlZmVyZW5jZSgpLgorICogYnkgY2FsbGluZyBkcm1fbW9kZV9vYmplY3RfcHV0KCku CiAgKi8KLXZvaWQgZHJtX21vZGVfb2JqZWN0X3JlZmVyZW5jZShzdHJ1Y3QgZHJtX21vZGVfb2Jq ZWN0ICpvYmopCit2b2lkIGRybV9tb2RlX29iamVjdF9nZXQoc3RydWN0IGRybV9tb2RlX29iamVj dCAqb2JqKQogewogCWlmIChvYmotPmZyZWVfY2IpIHsKIAkJRFJNX0RFQlVHKCJPQkogSUQ6ICVk ICglZClcbiIsIG9iai0+aWQsIGtyZWZfcmVhZCgmb2JqLT5yZWZjb3VudCkpOwogCQlrcmVmX2dl dCgmb2JqLT5yZWZjb3VudCk7CiAJfQogfQotRVhQT1JUX1NZTUJPTChkcm1fbW9kZV9vYmplY3Rf cmVmZXJlbmNlKTsKK0VYUE9SVF9TWU1CT0woZHJtX21vZGVfb2JqZWN0X2dldCk7CiAKIC8qKgog ICogZHJtX29iamVjdF9hdHRhY2hfcHJvcGVydHkgLSBhdHRhY2ggYSBwcm9wZXJ0eSB0byBhIG1v ZGVzZXQgb2JqZWN0CkBAIC0zNjMsNyArMzYzLDcgQEAgaW50IGRybV9tb2RlX29ial9nZXRfcHJv cGVydGllc19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAogCQkJJmFy Zy0+Y291bnRfcHJvcHMpOwogCiBvdXRfdW5yZWY6Ci0JZHJtX21vZGVfb2JqZWN0X3VucmVmZXJl bmNlKG9iaik7CisJZHJtX21vZGVfb2JqZWN0X3B1dChvYmopOwogb3V0OgogCWRybV9tb2Rlc2V0 X3VubG9ja19hbGwoZGV2KTsKIAlyZXR1cm4gcmV0OwpAQCAtNDI4LDcgKzQyOCw3IEBAIGludCBk cm1fbW9kZV9vYmpfc2V0X3Byb3BlcnR5X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZv aWQgKmRhdGEsCiAJZHJtX3Byb3BlcnR5X2NoYW5nZV92YWxpZF9wdXQocHJvcGVydHksIHJlZik7 CiAKIG91dF91bnJlZjoKLQlkcm1fbW9kZV9vYmplY3RfdW5yZWZlcmVuY2UoYXJnX29iaik7CisJ ZHJtX21vZGVfb2JqZWN0X3B1dChhcmdfb2JqKTsKIG91dDoKIAlkcm1fbW9kZXNldF91bmxvY2tf YWxsKGRldik7CiAJcmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f cHJvcGVydHkuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJvcGVydHkuYwppbmRleCA0MTFlNDcw MzY5YzAuLjE1YWYwZDQyZThiZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9wcm9w ZXJ0eS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fcHJvcGVydHkuYwpAQCAtNTk3LDcgKzU5 Nyw3IEBAIHZvaWQgZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNlX2Jsb2Ioc3RydWN0IGRybV9wcm9w ZXJ0eV9ibG9iICpibG9iKQogCWlmICghYmxvYikKIAkJcmV0dXJuOwogCi0JZHJtX21vZGVfb2Jq ZWN0X3VucmVmZXJlbmNlKCZibG9iLT5iYXNlKTsKKwlkcm1fbW9kZV9vYmplY3RfcHV0KCZibG9i LT5iYXNlKTsKIH0KIEVYUE9SVF9TWU1CT0woZHJtX3Byb3BlcnR5X3VucmVmZXJlbmNlX2Jsb2Ip OwogCkBAIC02MjUsNyArNjI1LDcgQEAgdm9pZCBkcm1fcHJvcGVydHlfZGVzdHJveV91c2VyX2Js b2JzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAgKi8KIHN0cnVjdCBkcm1fcHJvcGVydHlfYmxv YiAqZHJtX3Byb3BlcnR5X3JlZmVyZW5jZV9ibG9iKHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAq YmxvYikKIHsKLQlkcm1fbW9kZV9vYmplY3RfcmVmZXJlbmNlKCZibG9iLT5iYXNlKTsKKwlkcm1f bW9kZV9vYmplY3RfZ2V0KCZibG9iLT5iYXNlKTsKIAlyZXR1cm4gYmxvYjsKIH0KIEVYUE9SVF9T WU1CT0woZHJtX3Byb3BlcnR5X3JlZmVyZW5jZV9ibG9iKTsKQEAgLTkwNiw3ICs5MDYsNyBAQCB2 b2lkIGRybV9wcm9wZXJ0eV9jaGFuZ2VfdmFsaWRfcHV0KHN0cnVjdCBkcm1fcHJvcGVydHkgKnBy b3BlcnR5LAogCQlyZXR1cm47CiAKIAlpZiAoZHJtX3Byb3BlcnR5X3R5cGVfaXMocHJvcGVydHks IERSTV9NT0RFX1BST1BfT0JKRUNUKSkgewotCQlkcm1fbW9kZV9vYmplY3RfdW5yZWZlcmVuY2Uo cmVmKTsKKwkJZHJtX21vZGVfb2JqZWN0X3B1dChyZWYpOwogCX0gZWxzZSBpZiAoZHJtX3Byb3Bl cnR5X3R5cGVfaXMocHJvcGVydHksIERSTV9NT0RFX1BST1BfQkxPQikpCiAJCWRybV9wcm9wZXJ0 eV91bnJlZmVyZW5jZV9ibG9iKG9ial90b19ibG9iKHJlZikpOwogfQpkaWZmIC0tZ2l0IGEvaW5j bHVkZS9kcm0vZHJtX21vZGVfb2JqZWN0LmggYi9pbmNsdWRlL2RybS9kcm1fbW9kZV9vYmplY3Qu aAppbmRleCAyYzAxN2FkZjZkNzQuLmE3NjdiNGEzMGE2ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9k cm0vZHJtX21vZGVfb2JqZWN0LmgKKysrIGIvaW5jbHVkZS9kcm0vZHJtX21vZGVfb2JqZWN0LmgK QEAgLTQ1LDEwICs0NSwxMCBAQCBzdHJ1Y3QgZHJtX2RldmljZTsKICAqICAgZHJtX29iamVjdF9h dHRhY2hfcHJvcGVydHkoKSBiZWZvcmUgdGhlIG9iamVjdCBpcyB2aXNpYmxlIHRvIHVzZXJzcGFj ZS4KICAqCiAgKiAtIEZvciBvYmplY3RzIHdpdGggZHluYW1pYyBsaWZldGltZXMgKGFzIGluZGlj YXRlZCBieSBhIG5vbi1OVUxMIEBmcmVlX2NiKSBpdAotICogICBwcm92aWRlcyByZWZlcmVuY2Ug Y291bnRpbmcgdGhyb3VnaCBkcm1fbW9kZV9vYmplY3RfcmVmZXJlbmNlKCkgYW5kCi0gKiAgIGRy bV9tb2RlX29iamVjdF91bnJlZmVyZW5jZSgpLiBUaGlzIGlzIHVzZWQgYnkgJmRybV9mcmFtZWJ1 ZmZlciwKLSAqICAgJmRybV9jb25uZWN0b3IgYW5kICZkcm1fcHJvcGVydHlfYmxvYi4gVGhlc2Ug b2JqZWN0cyBwcm92aWRlIHNwZWNpYWxpemVkCi0gKiAgIHJlZmVyZW5jZSBjb3VudGluZyB3cmFw cGVycy4KKyAqICAgcHJvdmlkZXMgcmVmZXJlbmNlIGNvdW50aW5nIHRocm91Z2ggZHJtX21vZGVf b2JqZWN0X2dldCgpIGFuZAorICogICBkcm1fbW9kZV9vYmplY3RfcHV0KCkuIFRoaXMgaXMgdXNl ZCBieSAmZHJtX2ZyYW1lYnVmZmVyLCAmZHJtX2Nvbm5lY3RvcgorICogICBhbmQgJmRybV9wcm9w ZXJ0eV9ibG9iLiBUaGVzZSBvYmplY3RzIHByb3ZpZGUgc3BlY2lhbGl6ZWQgcmVmZXJlbmNlCisg KiAgIGNvdW50aW5nIHdyYXBwZXJzLgogICovCiBzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0IHsKIAl1 aW50MzJfdCBpZDsKQEAgLTExNCw4ICsxMTQsMzIgQEAgc3RydWN0IGRybV9vYmplY3RfcHJvcGVy dGllcyB7CiAKIHN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKmRybV9tb2RlX29iamVjdF9maW5kKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJCQkJCSAgICAgdWludDMyX3QgaWQsIHVpbnQzMl90IHR5 cGUpOwotdm9pZCBkcm1fbW9kZV9vYmplY3RfcmVmZXJlbmNlKHN0cnVjdCBkcm1fbW9kZV9vYmpl Y3QgKm9iaik7Ci12b2lkIGRybV9tb2RlX29iamVjdF91bnJlZmVyZW5jZShzdHJ1Y3QgZHJtX21v ZGVfb2JqZWN0ICpvYmopOwordm9pZCBkcm1fbW9kZV9vYmplY3RfZ2V0KHN0cnVjdCBkcm1fbW9k ZV9vYmplY3QgKm9iaik7Cit2b2lkIGRybV9tb2RlX29iamVjdF9wdXQoc3RydWN0IGRybV9tb2Rl X29iamVjdCAqb2JqKTsKKworLyoqCisgKiBkcm1fbW9kZV9vYmplY3RfcmVmZXJlbmNlIC0gYWNx dWlyZSBhIG1vZGUgb2JqZWN0IHJlZmVyZW5jZQorICogQG9iajogRFJNIG1vZGUgb2JqZWN0Cisg KgorICogVGhpcyBpcyBhIGNvbXBhdGliaWxpdHkgYWxpYXMgZm9yIGRybV9tb2RlX29iamVjdF9n ZXQoKSBhbmQgc2hvdWxkIG5vdCBiZQorICogdXNlZCBieSBuZXcgY29kZS4KKyAqLworc3RhdGlj IGlubGluZSB2b2lkIGRybV9tb2RlX29iamVjdF9yZWZlcmVuY2Uoc3RydWN0IGRybV9tb2RlX29i amVjdCAqb2JqKQoreworCWRybV9tb2RlX29iamVjdF9nZXQob2JqKTsKK30KKworLyoqCisgKiBk cm1fbW9kZV9vYmplY3RfdW5yZWZlcmVuY2UgLSByZWxlYXNlIGEgbW9kZSBvYmplY3QgcmVmZXJl bmNlCisgKiBAb2JqOiBEUk0gbW9kZSBvYmplY3QKKyAqCisgKiBUaGlzIGlzIGEgY29tcGF0aWJp bGl0eSBhbGlhcyBmb3IgZHJtX21vZGVfb2JqZWN0X3B1dCgpIGFuZCBzaG91bGQgbm90IGJlCisg KiB1c2VkIGJ5IG5ldyBjb2RlLgorICovCitzdGF0aWMgaW5saW5lIHZvaWQgZHJtX21vZGVfb2Jq ZWN0X3VucmVmZXJlbmNlKHN0cnVjdCBkcm1fbW9kZV9vYmplY3QgKm9iaikKK3sKKwlkcm1fbW9k ZV9vYmplY3RfcHV0KG9iaik7Cit9CiAKIGludCBkcm1fb2JqZWN0X3Byb3BlcnR5X3NldF92YWx1 ZShzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpvYmosCiAJCQkJICBzdHJ1Y3QgZHJtX3Byb3BlcnR5 ICpwcm9wZXJ0eSwKZGlmZiAtLWdpdCBhL3NjcmlwdHMvY29jY2luZWxsZS9hcGkvZHJtLWdldC1w dXQuY29jY2kgYi9zY3JpcHRzL2NvY2NpbmVsbGUvYXBpL2RybS1nZXQtcHV0LmNvY2NpCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYTM3NDI0NDdjOTgxCi0tLSAvZGV2 L251bGwKKysrIGIvc2NyaXB0cy9jb2NjaW5lbGxlL2FwaS9kcm0tZ2V0LXB1dC5jb2NjaQpAQCAt MCwwICsxLDQyIEBACisvLy8KKy8vLyBVc2UgZHJtXypfZ2V0KCkgYW5kIGRybV8qX3B1dCgpIGhl bHBlcnMgaW5zdGVhZCBvZiBkcm1fKl9yZWZlcmVuY2UoKSBhbmQKKy8vLyBkcm1fKl91bnJlZmVy ZW5jZSgpIGhlbHBlcnMuCisvLy8KKy8vIENvbmZpZGVuY2U6IEhpZ2gKKy8vIENvcHlyaWdodDog KEMpIDIwMTcgTlZJRElBIENvcnBvcmF0aW9uCisvLyBPcHRpb25zOiAtLW5vLWluY2x1ZGVzIC0t aW5jbHVkZS1oZWFkZXJzCisvLworCit2aXJ0dWFsIHBhdGNoCit2aXJ0dWFsIHJlcG9ydAorCitA ZGVwZW5kcyBvbiBwYXRjaEAKK2V4cHJlc3Npb24gb2JqZWN0OworQEAKKworKAorLSBkcm1fbW9k ZV9vYmplY3RfcmVmZXJlbmNlKG9iamVjdCkKKysgZHJtX21vZGVfb2JqZWN0X2dldChvYmplY3Qp Cit8CistIGRybV9tb2RlX29iamVjdF91bnJlZmVyZW5jZShvYmplY3QpCisrIGRybV9tb2RlX29i amVjdF9wdXQob2JqZWN0KQorKQorCitAciBkZXBlbmRzIG9uIHJlcG9ydEAKK2V4cHJlc3Npb24g b2JqZWN0OworcG9zaXRpb24gcDsKK0BACisKKygKK2RybV9tb2RlX29iamVjdF91bnJlZmVyZW5j ZUBwKG9iamVjdCkKK3wKK2RybV9tb2RlX29iamVjdF9yZWZlcmVuY2VAcChvYmplY3QpCispCisK K0BzY3JpcHQ6cHl0aG9uIGRlcGVuZHMgb24gcmVwb3J0QAorb2JqZWN0IDw8IHIub2JqZWN0Owor cCA8PCByLnA7CitAQAorCittc2c9IldBUk5JTkc6IHVzZSBnZXQvcHV0IGhlbHBlcnMgdG8gcmVm ZXJlbmNlIGFuZCBkZXJlZmVyZW5jZSAlcyIgJSAob2JqZWN0KQorY29jY2lsaWIucmVwb3J0LnBy aW50X3JlcG9ydChwWzBdLCBtc2cpCi0tIAoyLjExLjEKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVs QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=