From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Herrmann Subject: [PATCH 2/6] drm: use drm_file to tag vm-bos Date: Thu, 1 Sep 2016 14:48:33 +0200 Message-ID: <20160901124837.680-3-dh.herrmann@gmail.com> References: <20160901124837.680-1-dh.herrmann@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x241.google.com (mail-wm0-x241.google.com [IPv6:2a00:1450:400c:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1F4B76E934 for ; Thu, 1 Sep 2016 12:48:53 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id v143so1899963wmv.1 for ; Thu, 01 Sep 2016 05:48:53 -0700 (PDT) In-Reply-To: <20160901124837.680-1-dh.herrmann@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 UmF0aGVyIHRoYW4gdXNpbmcgInN0cnVjdCBmaWxlKiIsIHVzZSAic3RydWN0IGRybV9maWxlKiIg YXMgdGFnIFZNIHRhZyBmb3IKQk9zLiBUaGlzIHdpbGwgcGF2ZSB0aGUgd2F5IGZvciAic3RydWN0 IGRybV9maWxlKiIgd2l0aG91dCBhbnkgInN0cnVjdApmaWxlKiIgYmFjay1wb2ludGVyLgoKU2ln bmVkLW9mZi1ieTogRGF2aWQgSGVycm1hbm4gPGRoLmhlcnJtYW5uQGdtYWlsLmNvbT4KLS0tCiBk cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfdHRtLmMgfCAgMyArKy0KIGRyaXZlcnMv Z3B1L2RybS9hc3QvYXN0X3R0bS5jICAgICAgICAgICB8ICAzICsrLQogZHJpdmVycy9ncHUvZHJt L2JvY2hzL2JvY2hzX21tLmMgICAgICAgIHwgIDMgKystCiBkcml2ZXJzL2dwdS9kcm0vY2lycnVz L2NpcnJ1c190dG0uYyAgICAgfCAgMyArKy0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fZ2VtLmMgICAg ICAgICAgICAgICB8ICA4ICsrKy0tLS0KIGRyaXZlcnMvZ3B1L2RybS9kcm1fdm1hX21hbmFnZXIu YyAgICAgICB8IDQwICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9n cHUvZHJtL21nYWcyMDAvbWdhZzIwMF90dG0uYyAgIHwgIDMgKystCiBkcml2ZXJzL2dwdS9kcm0v bm91dmVhdS9ub3V2ZWF1X2JvLmMgICAgfCAgMyArKy0KIGRyaXZlcnMvZ3B1L2RybS9xeGwvcXhs X3R0bS5jICAgICAgICAgICB8ICAzICsrLQogZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25f dHRtLmMgICAgIHwgIDMgKystCiBpbmNsdWRlL2RybS9kcm1fdm1hX21hbmFnZXIuaCAgICAgICAg ICAgfCAyMCArKysrKysrKystLS0tLS0tLQogMTEgZmlsZXMgY2hhbmdlZCwgNTEgaW5zZXJ0aW9u cygrKSwgNDEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvYW1kZ3B1X3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X3R0 bS5jCmluZGV4IDliNjFjOGIuLmQ5NzUzNDYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV90dG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfdHRtLmMKQEAgLTIyNSw3ICsyMjUsOCBAQCBzdGF0aWMgaW50IGFtZGdwdV92ZXJpZnlf YWNjZXNzKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIHN0cnVjdCBmaWxlICpmaWxwKQog CiAJaWYgKGFtZGdwdV90dG1fdHRfZ2V0X3VzZXJtbShiby0+dHRtKSkKIAkJcmV0dXJuIC1FUEVS TTsKLQlyZXR1cm4gZHJtX3ZtYV9ub2RlX3ZlcmlmeV9hY2Nlc3MoJnJiby0+Z2VtX2Jhc2Uudm1h X25vZGUsIGZpbHApOworCXJldHVybiBkcm1fdm1hX25vZGVfdmVyaWZ5X2FjY2VzcygmcmJvLT5n ZW1fYmFzZS52bWFfbm9kZSwKKwkJCQkJICBmaWxwLT5wcml2YXRlX2RhdGEpOwogfQogCiBzdGF0 aWMgdm9pZCBhbWRncHVfbW92ZV9udWxsKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXN0L2FzdF90dG0uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9hc3QvYXN0X3R0bS5jCmluZGV4IGIyOWE0MTIuLjYwOGRmNGMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9hc3QvYXN0X3R0bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hc3QvYXN0X3R0 bS5jCkBAIC0xNTAsNyArMTUwLDggQEAgc3RhdGljIGludCBhc3RfYm9fdmVyaWZ5X2FjY2Vzcyhz dHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIHsKIAlzdHJ1 Y3QgYXN0X2JvICphc3RibyA9IGFzdF9ibyhibyk7CiAKLQlyZXR1cm4gZHJtX3ZtYV9ub2RlX3Zl cmlmeV9hY2Nlc3MoJmFzdGJvLT5nZW0udm1hX25vZGUsIGZpbHApOworCXJldHVybiBkcm1fdm1h X25vZGVfdmVyaWZ5X2FjY2VzcygmYXN0Ym8tPmdlbS52bWFfbm9kZSwKKwkJCQkJICBmaWxwLT5w cml2YXRlX2RhdGEpOwogfQogCiBzdGF0aWMgaW50IGFzdF90dG1faW9fbWVtX3Jlc2VydmUoc3Ry dWN0IHR0bV9ib19kZXZpY2UgKmJkZXYsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYm9j aHMvYm9jaHNfbW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Noc19tbS5jCmluZGV4IDVj NTYzOGEuLjI2OWNmY2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Noc19t bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ib2Nocy9ib2Noc19tbS5jCkBAIC0xMjgsNyArMTI4 LDggQEAgc3RhdGljIGludCBib2Noc19ib192ZXJpZnlfYWNjZXNzKHN0cnVjdCB0dG1fYnVmZmVy X29iamVjdCAqYm8sCiB7CiAJc3RydWN0IGJvY2hzX2JvICpib2Noc2JvID0gYm9jaHNfYm8oYm8p OwogCi0JcmV0dXJuIGRybV92bWFfbm9kZV92ZXJpZnlfYWNjZXNzKCZib2Noc2JvLT5nZW0udm1h X25vZGUsIGZpbHApOworCXJldHVybiBkcm1fdm1hX25vZGVfdmVyaWZ5X2FjY2VzcygmYm9jaHNi by0+Z2VtLnZtYV9ub2RlLAorCQkJCQkgIGZpbHAtPnByaXZhdGVfZGF0YSk7CiB9CiAKIHN0YXRp YyBpbnQgYm9jaHNfdHRtX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0dG1fYm9fZGV2aWNlICpiZGV2 LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2NpcnJ1cy9jaXJydXNfdHRtLmMgYi9kcml2 ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c190dG0uYwppbmRleCAxY2M5ZWU2Li5iYjI0MzhkIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c190dG0uYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vY2lycnVzL2NpcnJ1c190dG0uYwpAQCAtMTUwLDcgKzE1MCw4IEBAIHN0YXRp YyBpbnQgY2lycnVzX2JvX3ZlcmlmeV9hY2Nlc3Moc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpi bywgc3RydWN0IGZpbGUgKmZpCiB7CiAJc3RydWN0IGNpcnJ1c19ibyAqY2lycnVzYm8gPSBjaXJy dXNfYm8oYm8pOwogCi0JcmV0dXJuIGRybV92bWFfbm9kZV92ZXJpZnlfYWNjZXNzKCZjaXJydXNi by0+Z2VtLnZtYV9ub2RlLCBmaWxwKTsKKwlyZXR1cm4gZHJtX3ZtYV9ub2RlX3ZlcmlmeV9hY2Nl c3MoJmNpcnJ1c2JvLT5nZW0udm1hX25vZGUsCisJCQkJCSAgZmlscC0+cHJpdmF0ZV9kYXRhKTsK IH0KIAogc3RhdGljIGludCBjaXJydXNfdHRtX2lvX21lbV9yZXNlcnZlKHN0cnVjdCB0dG1fYm9f ZGV2aWNlICpiZGV2LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW0uYyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fZ2VtLmMKaW5kZXggOTEzNGFlMS4uNDY1YmFjZCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2RybV9nZW0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2dl bS5jCkBAIC0yNTcsNyArMjU3LDcgQEAgZHJtX2dlbV9vYmplY3RfcmVsZWFzZV9oYW5kbGUoaW50 IGlkLCB2b2lkICpwdHIsIHZvaWQgKmRhdGEpCiAKIAlpZiAoZHJtX2NvcmVfY2hlY2tfZmVhdHVy ZShkZXYsIERSSVZFUl9QUklNRSkpCiAJCWRybV9nZW1fcmVtb3ZlX3ByaW1lX2hhbmRsZXMob2Jq LCBmaWxlX3ByaXYpOwotCWRybV92bWFfbm9kZV9yZXZva2UoJm9iai0+dm1hX25vZGUsIGZpbGVf cHJpdi0+ZmlscCk7CisJZHJtX3ZtYV9ub2RlX3Jldm9rZSgmb2JqLT52bWFfbm9kZSwgZmlsZV9w cml2KTsKIAogCWlmIChkZXYtPmRyaXZlci0+Z2VtX2Nsb3NlX29iamVjdCkKIAkJZGV2LT5kcml2 ZXItPmdlbV9jbG9zZV9vYmplY3Qob2JqLCBmaWxlX3ByaXYpOwpAQCAtMzcyLDcgKzM3Miw3IEBA IGRybV9nZW1faGFuZGxlX2NyZWF0ZV90YWlsKHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LAog CiAJaGFuZGxlID0gcmV0OwogCi0JcmV0ID0gZHJtX3ZtYV9ub2RlX2FsbG93KCZvYmotPnZtYV9u b2RlLCBmaWxlX3ByaXYtPmZpbHApOworCXJldCA9IGRybV92bWFfbm9kZV9hbGxvdygmb2JqLT52 bWFfbm9kZSwgZmlsZV9wcml2KTsKIAlpZiAocmV0KQogCQlnb3RvIGVycl9yZW1vdmU7CiAKQEAg LTM4Niw3ICszODYsNyBAQCBkcm1fZ2VtX2hhbmRsZV9jcmVhdGVfdGFpbChzdHJ1Y3QgZHJtX2Zp bGUgKmZpbGVfcHJpdiwKIAlyZXR1cm4gMDsKIAogZXJyX3Jldm9rZToKLQlkcm1fdm1hX25vZGVf cmV2b2tlKCZvYmotPnZtYV9ub2RlLCBmaWxlX3ByaXYtPmZpbHApOworCWRybV92bWFfbm9kZV9y ZXZva2UoJm9iai0+dm1hX25vZGUsIGZpbGVfcHJpdik7CiBlcnJfcmVtb3ZlOgogCXNwaW5fbG9j aygmZmlsZV9wcml2LT50YWJsZV9sb2NrKTsKIAlpZHJfcmVtb3ZlKCZmaWxlX3ByaXYtPm9iamVj dF9pZHIsIGhhbmRsZSk7CkBAIC05OTEsNyArOTkxLDcgQEAgaW50IGRybV9nZW1fbW1hcChzdHJ1 Y3QgZmlsZSAqZmlscCwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCiAJaWYgKCFvYmopCiAJ CXJldHVybiAtRUlOVkFMOwogCi0JaWYgKCFkcm1fdm1hX25vZGVfaXNfYWxsb3dlZChub2RlLCBm aWxwKSkgeworCWlmICghZHJtX3ZtYV9ub2RlX2lzX2FsbG93ZWQobm9kZSwgcHJpdikpIHsKIAkJ ZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2VfdW5sb2NrZWQob2JqKTsKIAkJcmV0dXJuIC1FQUND RVM7CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV92bWFfbWFuYWdlci5jIGIv ZHJpdmVycy9ncHUvZHJtL2RybV92bWFfbWFuYWdlci5jCmluZGV4IGYzMDZjODguLmE3ODhhODAg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fdm1hX21hbmFnZXIuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX3ZtYV9tYW5hZ2VyLmMKQEAgLTI1LDcgKzI1LDYgQEAKICNpbmNsdWRl IDxkcm0vZHJtUC5oPgogI2luY2x1ZGUgPGRybS9kcm1fbW0uaD4KICNpbmNsdWRlIDxkcm0vZHJt X3ZtYV9tYW5hZ2VyLmg+Ci0jaW5jbHVkZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9t bS5oPgogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3JidHJlZS5o PgpAQCAtMjc3LDkgKzI3Niw5IEBAIEVYUE9SVF9TWU1CT0woZHJtX3ZtYV9vZmZzZXRfcmVtb3Zl KTsKIC8qKgogICogZHJtX3ZtYV9ub2RlX2FsbG93IC0gQWRkIG9wZW4tZmlsZSB0byBsaXN0IG9m IGFsbG93ZWQgdXNlcnMKICAqIEBub2RlOiBOb2RlIHRvIG1vZGlmeQotICogQGZpbHA6IE9wZW4g ZmlsZSB0byBhZGQKKyAqIEB0YWc6IFRhZyBvZiBmaWxlIHRvIHJlbW92ZQogICoKLSAqIEFkZCBA ZmlscCB0byB0aGUgbGlzdCBvZiBhbGxvd2VkIG9wZW4tZmlsZXMgZm9yIHRoaXMgbm9kZS4gSWYg QGZpbHAgaXMKKyAqIEFkZCBAdGFnIHRvIHRoZSBsaXN0IG9mIGFsbG93ZWQgb3Blbi1maWxlcyBm b3IgdGhpcyBub2RlLiBJZiBAdGFnIGlzCiAgKiBhbHJlYWR5IG9uIHRoaXMgbGlzdCwgdGhlIHJl Zi1jb3VudCBpcyBpbmNyZW1lbnRlZC4KICAqCiAgKiBUaGUgbGlzdCBvZiBhbGxvd2VkLXVzZXJz IGlzIHByZXNlcnZlZCBhY3Jvc3MgZHJtX3ZtYV9vZmZzZXRfYWRkKCkgYW5kCkBAIC0yOTQsNyAr MjkzLDcgQEAgRVhQT1JUX1NZTUJPTChkcm1fdm1hX29mZnNldF9yZW1vdmUpOwogICogUkVUVVJO UzoKICAqIDAgb24gc3VjY2VzcywgbmVnYXRpdmUgZXJyb3IgY29kZSBvbiBpbnRlcm5hbCBmYWls dXJlIChvdXQtb2YtbWVtKQogICovCi1pbnQgZHJtX3ZtYV9ub2RlX2FsbG93KHN0cnVjdCBkcm1f dm1hX29mZnNldF9ub2RlICpub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKK2ludCBkcm1fdm1hX25v ZGVfYWxsb3coc3RydWN0IGRybV92bWFfb2Zmc2V0X25vZGUgKm5vZGUsIHN0cnVjdCBkcm1fZmls ZSAqdGFnKQogewogCXN0cnVjdCByYl9ub2RlICoqaXRlcjsKIAlzdHJ1Y3QgcmJfbm9kZSAqcGFy ZW50ID0gTlVMTDsKQEAgLTMxNSwxMCArMzE0LDEwIEBAIGludCBkcm1fdm1hX25vZGVfYWxsb3co c3RydWN0IGRybV92bWFfb2Zmc2V0X25vZGUgKm5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogCQlw YXJlbnQgPSAqaXRlcjsKIAkJZW50cnkgPSByYl9lbnRyeSgqaXRlciwgc3RydWN0IGRybV92bWFf b2Zmc2V0X2ZpbGUsIHZtX3JiKTsKIAotCQlpZiAoZmlscCA9PSBlbnRyeS0+dm1fZmlscCkgewor CQlpZiAodGFnID09IGVudHJ5LT52bV90YWcpIHsKIAkJCWVudHJ5LT52bV9jb3VudCsrOwogCQkJ Z290byB1bmxvY2s7Ci0JCX0gZWxzZSBpZiAoZmlscCA+IGVudHJ5LT52bV9maWxwKSB7CisJCX0g ZWxzZSBpZiAodGFnID4gZW50cnktPnZtX3RhZykgewogCQkJaXRlciA9ICYoKml0ZXIpLT5yYl9y aWdodDsKIAkJfSBlbHNlIHsKIAkJCWl0ZXIgPSAmKCppdGVyKS0+cmJfbGVmdDsKQEAgLTMzMCw3 ICszMjksNyBAQCBpbnQgZHJtX3ZtYV9ub2RlX2FsbG93KHN0cnVjdCBkcm1fdm1hX29mZnNldF9u b2RlICpub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIAkJZ290byB1bmxvY2s7CiAJfQogCi0JbmV3 LT52bV9maWxwID0gZmlscDsKKwluZXctPnZtX3RhZyA9IHRhZzsKIAluZXctPnZtX2NvdW50ID0g MTsKIAlyYl9saW5rX25vZGUoJm5ldy0+dm1fcmIsIHBhcmVudCwgaXRlcik7CiAJcmJfaW5zZXJ0 X2NvbG9yKCZuZXctPnZtX3JiLCAmbm9kZS0+dm1fZmlsZXMpOwpAQCAtMzQ2LDE3ICszNDUsMTgg QEAgRVhQT1JUX1NZTUJPTChkcm1fdm1hX25vZGVfYWxsb3cpOwogLyoqCiAgKiBkcm1fdm1hX25v ZGVfcmV2b2tlIC0gUmVtb3ZlIG9wZW4tZmlsZSBmcm9tIGxpc3Qgb2YgYWxsb3dlZCB1c2Vycwog ICogQG5vZGU6IE5vZGUgdG8gbW9kaWZ5Ci0gKiBAZmlscDogT3BlbiBmaWxlIHRvIHJlbW92ZQor ICogQHRhZzogVGFnIG9mIGZpbGUgdG8gcmVtb3ZlCiAgKgotICogRGVjcmVtZW50IHRoZSByZWYt Y291bnQgb2YgQGZpbHAgaW4gdGhlIGxpc3Qgb2YgYWxsb3dlZCBvcGVuLWZpbGVzIG9uIEBub2Rl LgotICogSWYgdGhlIHJlZi1jb3VudCBkcm9wcyB0byB6ZXJvLCByZW1vdmUgQGZpbHAgZnJvbSB0 aGUgbGlzdC4gWW91IG11c3QgY2FsbAotICogdGhpcyBvbmNlIGZvciBldmVyeSBkcm1fdm1hX25v ZGVfYWxsb3coKSBvbiBAZmlscC4KKyAqIERlY3JlbWVudCB0aGUgcmVmLWNvdW50IG9mIEB0YWcg aW4gdGhlIGxpc3Qgb2YgYWxsb3dlZCBvcGVuLWZpbGVzIG9uIEBub2RlLgorICogSWYgdGhlIHJl Zi1jb3VudCBkcm9wcyB0byB6ZXJvLCByZW1vdmUgQHRhZyBmcm9tIHRoZSBsaXN0LiBZb3UgbXVz dCBjYWxsCisgKiB0aGlzIG9uY2UgZm9yIGV2ZXJ5IGRybV92bWFfbm9kZV9hbGxvdygpIG9uIEB0 YWcuCiAgKgogICogVGhpcyBpcyBsb2NrZWQgYWdhaW5zdCBjb25jdXJyZW50IGFjY2VzcyBpbnRl cm5hbGx5LgogICoKLSAqIElmIEBmaWxwIGlzIG5vdCBvbiB0aGUgbGlzdCwgbm90aGluZyBpcyBk b25lLgorICogSWYgQHRhZyBpcyBub3Qgb24gdGhlIGxpc3QsIG5vdGhpbmcgaXMgZG9uZS4KICAq Lwotdm9pZCBkcm1fdm1hX25vZGVfcmV2b2tlKHN0cnVjdCBkcm1fdm1hX29mZnNldF9ub2RlICpu b2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKK3ZvaWQgZHJtX3ZtYV9ub2RlX3Jldm9rZShzdHJ1Y3Qg ZHJtX3ZtYV9vZmZzZXRfbm9kZSAqbm9kZSwKKwkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKnRhZykKIHsK IAlzdHJ1Y3QgZHJtX3ZtYV9vZmZzZXRfZmlsZSAqZW50cnk7CiAJc3RydWN0IHJiX25vZGUgKml0 ZXI7CkBAIC0zNjYsMTMgKzM2NiwxMyBAQCB2b2lkIGRybV92bWFfbm9kZV9yZXZva2Uoc3RydWN0 IGRybV92bWFfb2Zmc2V0X25vZGUgKm5vZGUsIHN0cnVjdCBmaWxlICpmaWxwKQogCWl0ZXIgPSBu b2RlLT52bV9maWxlcy5yYl9ub2RlOwogCXdoaWxlIChsaWtlbHkoaXRlcikpIHsKIAkJZW50cnkg PSByYl9lbnRyeShpdGVyLCBzdHJ1Y3QgZHJtX3ZtYV9vZmZzZXRfZmlsZSwgdm1fcmIpOwotCQlp ZiAoZmlscCA9PSBlbnRyeS0+dm1fZmlscCkgeworCQlpZiAodGFnID09IGVudHJ5LT52bV90YWcp IHsKIAkJCWlmICghLS1lbnRyeS0+dm1fY291bnQpIHsKIAkJCQlyYl9lcmFzZSgmZW50cnktPnZt X3JiLCAmbm9kZS0+dm1fZmlsZXMpOwogCQkJCWtmcmVlKGVudHJ5KTsKIAkJCX0KIAkJCWJyZWFr OwotCQl9IGVsc2UgaWYgKGZpbHAgPiBlbnRyeS0+dm1fZmlscCkgeworCQl9IGVsc2UgaWYgKHRh ZyA+IGVudHJ5LT52bV90YWcpIHsKIAkJCWl0ZXIgPSBpdGVyLT5yYl9yaWdodDsKIAkJfSBlbHNl IHsKIAkJCWl0ZXIgPSBpdGVyLT5yYl9sZWZ0OwpAQCAtMzg2LDkgKzM4Niw5IEBAIEVYUE9SVF9T WU1CT0woZHJtX3ZtYV9ub2RlX3Jldm9rZSk7CiAvKioKICAqIGRybV92bWFfbm9kZV9pc19hbGxv d2VkIC0gQ2hlY2sgd2hldGhlciBhbiBvcGVuLWZpbGUgaXMgZ3JhbnRlZCBhY2Nlc3MKICAqIEBu b2RlOiBOb2RlIHRvIGNoZWNrCi0gKiBAZmlscDogT3Blbi1maWxlIHRvIGNoZWNrIGZvcgorICog QHRhZzogVGFnIG9mIGZpbGUgdG8gcmVtb3ZlCiAgKgotICogU2VhcmNoIHRoZSBsaXN0IGluIEBu b2RlIHdoZXRoZXIgQGZpbHAgaXMgY3VycmVudGx5IG9uIHRoZSBsaXN0IG9mIGFsbG93ZWQKKyAq IFNlYXJjaCB0aGUgbGlzdCBpbiBAbm9kZSB3aGV0aGVyIEB0YWcgaXMgY3VycmVudGx5IG9uIHRo ZSBsaXN0IG9mIGFsbG93ZWQKICAqIG9wZW4tZmlsZXMgKHNlZSBkcm1fdm1hX25vZGVfYWxsb3co KSkuCiAgKgogICogVGhpcyBpcyBsb2NrZWQgYWdhaW5zdCBjb25jdXJyZW50IGFjY2VzcyBpbnRl cm5hbGx5LgpAQCAtMzk3LDcgKzM5Nyw3IEBAIEVYUE9SVF9TWU1CT0woZHJtX3ZtYV9ub2RlX3Jl dm9rZSk7CiAgKiB0cnVlIGlmZiBAZmlscCBpcyBvbiB0aGUgbGlzdAogICovCiBib29sIGRybV92 bWFfbm9kZV9pc19hbGxvd2VkKHN0cnVjdCBkcm1fdm1hX29mZnNldF9ub2RlICpub2RlLAotCQkJ ICAgICBzdHJ1Y3QgZmlsZSAqZmlscCkKKwkJCSAgICAgc3RydWN0IGRybV9maWxlICp0YWcpCiB7 CiAJc3RydWN0IGRybV92bWFfb2Zmc2V0X2ZpbGUgKmVudHJ5OwogCXN0cnVjdCByYl9ub2RlICpp dGVyOwpAQCAtNDA3LDkgKzQwNyw5IEBAIGJvb2wgZHJtX3ZtYV9ub2RlX2lzX2FsbG93ZWQoc3Ry dWN0IGRybV92bWFfb2Zmc2V0X25vZGUgKm5vZGUsCiAJaXRlciA9IG5vZGUtPnZtX2ZpbGVzLnJi X25vZGU7CiAJd2hpbGUgKGxpa2VseShpdGVyKSkgewogCQllbnRyeSA9IHJiX2VudHJ5KGl0ZXIs IHN0cnVjdCBkcm1fdm1hX29mZnNldF9maWxlLCB2bV9yYik7Ci0JCWlmIChmaWxwID09IGVudHJ5 LT52bV9maWxwKQorCQlpZiAodGFnID09IGVudHJ5LT52bV90YWcpCiAJCQlicmVhazsKLQkJZWxz ZSBpZiAoZmlscCA+IGVudHJ5LT52bV9maWxwKQorCQllbHNlIGlmICh0YWcgPiBlbnRyeS0+dm1f dGFnKQogCQkJaXRlciA9IGl0ZXItPnJiX3JpZ2h0OwogCQllbHNlCiAJCQlpdGVyID0gaXRlci0+ cmJfbGVmdDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfdHRt LmMgYi9kcml2ZXJzL2dwdS9kcm0vbWdhZzIwMC9tZ2FnMjAwX3R0bS5jCmluZGV4IDY4MjY4ZTUu LjkxOWIzNWYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZ2FnMjAwL21nYWcyMDBfdHRt LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL21nYWcyMDAvbWdhZzIwMF90dG0uYwpAQCAtMTUwLDcg KzE1MCw4IEBAIHN0YXRpYyBpbnQgbWdhZzIwMF9ib192ZXJpZnlfYWNjZXNzKHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqYm8sIHN0cnVjdCBmaWxlICpmCiB7CiAJc3RydWN0IG1nYWcyMDBfYm8g Km1nYWJvID0gbWdhZzIwMF9ibyhibyk7CiAKLQlyZXR1cm4gZHJtX3ZtYV9ub2RlX3ZlcmlmeV9h Y2Nlc3MoJm1nYWJvLT5nZW0udm1hX25vZGUsIGZpbHApOworCXJldHVybiBkcm1fdm1hX25vZGVf dmVyaWZ5X2FjY2VzcygmbWdhYm8tPmdlbS52bWFfbm9kZSwKKwkJCQkJICBmaWxwLT5wcml2YXRl X2RhdGEpOwogfQogCiBzdGF0aWMgaW50IG1nYWcyMDBfdHRtX2lvX21lbV9yZXNlcnZlKHN0cnVj dCB0dG1fYm9fZGV2aWNlICpiZGV2LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZl YXUvbm91dmVhdV9iby5jIGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jCmlu ZGV4IDYxOTAwMzUuLjNhM2UwYjggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1 L25vdXZlYXVfYm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMK QEAgLTEzMTUsNyArMTMxNSw4IEBAIG5vdXZlYXVfYm9fdmVyaWZ5X2FjY2VzcyhzdHJ1Y3QgdHRt X2J1ZmZlcl9vYmplY3QgKmJvLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIHsKIAlzdHJ1Y3Qgbm91dmVh dV9ibyAqbnZibyA9IG5vdXZlYXVfYm8oYm8pOwogCi0JcmV0dXJuIGRybV92bWFfbm9kZV92ZXJp ZnlfYWNjZXNzKCZudmJvLT5nZW0udm1hX25vZGUsIGZpbHApOworCXJldHVybiBkcm1fdm1hX25v ZGVfdmVyaWZ5X2FjY2VzcygmbnZiby0+Z2VtLnZtYV9ub2RlLAorCQkJCQkgIGZpbHAtPnByaXZh dGVfZGF0YSk7CiB9CiAKIHN0YXRpYyBpbnQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9x eGwvcXhsX3R0bS5jIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMKaW5kZXggZDUwYzk2 Ny4uM2Y2ZGVlMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfdHRtLmMKQEAgLTIxMCw3ICsyMTAsOCBAQCBzdGF0 aWMgaW50IHF4bF92ZXJpZnlfYWNjZXNzKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIHN0 cnVjdCBmaWxlICpmaWxwKQogewogCXN0cnVjdCBxeGxfYm8gKnFibyA9IHRvX3F4bF9ibyhibyk7 CiAKLQlyZXR1cm4gZHJtX3ZtYV9ub2RlX3ZlcmlmeV9hY2Nlc3MoJnFiby0+Z2VtX2Jhc2Uudm1h X25vZGUsIGZpbHApOworCXJldHVybiBkcm1fdm1hX25vZGVfdmVyaWZ5X2FjY2VzcygmcWJvLT5n ZW1fYmFzZS52bWFfbm9kZSwKKwkJCQkJICBmaWxwLT5wcml2YXRlX2RhdGEpOwogfQogCiBzdGF0 aWMgaW50IHF4bF90dG1faW9fbWVtX3Jlc2VydmUoc3RydWN0IHR0bV9ib19kZXZpY2UgKmJkZXYs CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl90dG0uYyBiL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3R0bS5jCmluZGV4IDBjMDBlMTkuLmI0MzQxZmEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3R0bS5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX3R0bS5jCkBAIC0yMzcsNyArMjM3LDggQEAgc3RhdGlj IGludCByYWRlb25fdmVyaWZ5X2FjY2VzcyhzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLCBz dHJ1Y3QgZmlsZSAqZmlscCkKIAogCWlmIChyYWRlb25fdHRtX3R0X2hhc191c2VycHRyKGJvLT50 dG0pKQogCQlyZXR1cm4gLUVQRVJNOwotCXJldHVybiBkcm1fdm1hX25vZGVfdmVyaWZ5X2FjY2Vz cygmcmJvLT5nZW1fYmFzZS52bWFfbm9kZSwgZmlscCk7CisJcmV0dXJuIGRybV92bWFfbm9kZV92 ZXJpZnlfYWNjZXNzKCZyYm8tPmdlbV9iYXNlLnZtYV9ub2RlLAorCQkJCQkgIGZpbHAtPnByaXZh dGVfZGF0YSk7CiB9CiAKIHN0YXRpYyB2b2lkIHJhZGVvbl9tb3ZlX251bGwoc3RydWN0IHR0bV9i dWZmZXJfb2JqZWN0ICpibywKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV92bWFfbWFuYWdl ci5oIGIvaW5jbHVkZS9kcm0vZHJtX3ZtYV9tYW5hZ2VyLmgKaW5kZXggMDZlYThlMDcuLjMwNGNk YWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL2RybV92bWFfbWFuYWdlci5oCisrKyBiL2luY2x1 ZGUvZHJtL2RybV92bWFfbWFuYWdlci5oCkBAIC0yNCwxNiArMjQsMTcgQEAKICAqLwogCiAjaW5j bHVkZSA8ZHJtL2RybV9tbS5oPgotI2luY2x1ZGUgPGxpbnV4L2ZzLmg+CiAjaW5jbHVkZSA8bGlu dXgvbW0uaD4KICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KICNpbmNsdWRlIDxsaW51eC9yYnRy ZWUuaD4KICNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgogI2luY2x1ZGUgPGxpbnV4L3R5cGVz Lmg+CiAKK3N0cnVjdCBkcm1fZmlsZTsKKwogc3RydWN0IGRybV92bWFfb2Zmc2V0X2ZpbGUgewog CXN0cnVjdCByYl9ub2RlIHZtX3JiOwotCXN0cnVjdCBmaWxlICp2bV9maWxwOworCXN0cnVjdCBk cm1fZmlsZSAqdm1fdGFnOwogCXVuc2lnbmVkIGxvbmcgdm1fY291bnQ7CiB9OwogCkBAIC02Miwx MCArNjMsMTEgQEAgaW50IGRybV92bWFfb2Zmc2V0X2FkZChzdHJ1Y3QgZHJtX3ZtYV9vZmZzZXRf bWFuYWdlciAqbWdyLAogdm9pZCBkcm1fdm1hX29mZnNldF9yZW1vdmUoc3RydWN0IGRybV92bWFf b2Zmc2V0X21hbmFnZXIgKm1nciwKIAkJCSAgIHN0cnVjdCBkcm1fdm1hX29mZnNldF9ub2RlICpu b2RlKTsKIAotaW50IGRybV92bWFfbm9kZV9hbGxvdyhzdHJ1Y3QgZHJtX3ZtYV9vZmZzZXRfbm9k ZSAqbm9kZSwgc3RydWN0IGZpbGUgKmZpbHApOwotdm9pZCBkcm1fdm1hX25vZGVfcmV2b2tlKHN0 cnVjdCBkcm1fdm1hX29mZnNldF9ub2RlICpub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCk7CitpbnQg ZHJtX3ZtYV9ub2RlX2FsbG93KHN0cnVjdCBkcm1fdm1hX29mZnNldF9ub2RlICpub2RlLCBzdHJ1 Y3QgZHJtX2ZpbGUgKnRhZyk7Cit2b2lkIGRybV92bWFfbm9kZV9yZXZva2Uoc3RydWN0IGRybV92 bWFfb2Zmc2V0X25vZGUgKm5vZGUsCisJCQkgc3RydWN0IGRybV9maWxlICp0YWcpOwogYm9vbCBk cm1fdm1hX25vZGVfaXNfYWxsb3dlZChzdHJ1Y3QgZHJtX3ZtYV9vZmZzZXRfbm9kZSAqbm9kZSwK LQkJCSAgICAgc3RydWN0IGZpbGUgKmZpbHApOworCQkJICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKnRh Zyk7CiAKIC8qKgogICogZHJtX3ZtYV9vZmZzZXRfZXhhY3RfbG9va3VwX2xvY2tlZCgpIC0gTG9v ayB1cCBub2RlIGJ5IGV4YWN0IGFkZHJlc3MKQEAgLTIxNiw5ICsyMTgsOSBAQCBzdGF0aWMgaW5s aW5lIHZvaWQgZHJtX3ZtYV9ub2RlX3VubWFwKHN0cnVjdCBkcm1fdm1hX29mZnNldF9ub2RlICpu b2RlLAogLyoqCiAgKiBkcm1fdm1hX25vZGVfdmVyaWZ5X2FjY2VzcygpIC0gQWNjZXNzIHZlcmlm aWNhdGlvbiBoZWxwZXIgZm9yIFRUTQogICogQG5vZGU6IE9mZnNldCBub2RlCi0gKiBAZmlscDog T3Blbi1maWxlCisgKiBAdGFnOiBUYWcgb2YgZmlsZSB0byBjaGVjawogICoKLSAqIFRoaXMgY2hl Y2tzIHdoZXRoZXIgQGZpbHAgaXMgZ3JhbnRlZCBhY2Nlc3MgdG8gQG5vZGUuIEl0IGlzIHRoZSBz YW1lIGFzCisgKiBUaGlzIGNoZWNrcyB3aGV0aGVyIEB0YWcgaXMgZ3JhbnRlZCBhY2Nlc3MgdG8g QG5vZGUuIEl0IGlzIHRoZSBzYW1lIGFzCiAgKiBkcm1fdm1hX25vZGVfaXNfYWxsb3dlZCgpIGJ1 dCBzdWl0YWJsZSBhcyBkcm9wLWluIGhlbHBlciBmb3IgVFRNCiAgKiB2ZXJpZnlfYWNjZXNzKCkg Y2FsbGJhY2tzLgogICoKQEAgLTIyNiw5ICsyMjgsOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZHJt X3ZtYV9ub2RlX3VubWFwKHN0cnVjdCBkcm1fdm1hX29mZnNldF9ub2RlICpub2RlLAogICogMCBp ZiBhY2Nlc3MgaXMgZ3JhbnRlZCwgLUVBQ0NFUyBvdGhlcndpc2UuCiAgKi8KIHN0YXRpYyBpbmxp bmUgaW50IGRybV92bWFfbm9kZV92ZXJpZnlfYWNjZXNzKHN0cnVjdCBkcm1fdm1hX29mZnNldF9u b2RlICpub2RlLAotCQkJCQkgICAgIHN0cnVjdCBmaWxlICpmaWxwKQorCQkJCQkgICAgIHN0cnVj dCBkcm1fZmlsZSAqdGFnKQogewotCXJldHVybiBkcm1fdm1hX25vZGVfaXNfYWxsb3dlZChub2Rl LCBmaWxwKSA/IDAgOiAtRUFDQ0VTOworCXJldHVybiBkcm1fdm1hX25vZGVfaXNfYWxsb3dlZChu b2RlLCB0YWcpID8gMCA6IC1FQUNDRVM7CiB9CiAKICNlbmRpZiAvKiBfX0RSTV9WTUFfTUFOQUdF Ul9IX18gKi8KLS0gCjIuOS4zCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9k cmktZGV2ZWwK