From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Hellstrom Subject: [PATCH -next 04/11] drm/vmwgfx: Avoid pinning fbdev framebuffers Date: Thu, 22 Mar 2018 11:23:45 +0100 Message-ID: <20180322102352.2881-4-thellstrom@vmware.com> References: <20180322102352.2881-1-thellstrom@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0085.outbound.protection.outlook.com [104.47.40.85]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6F3396EBCA for ; Thu, 22 Mar 2018 10:24:41 +0000 (UTC) In-Reply-To: <20180322102352.2881-1-thellstrom@vmware.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, linux-graphics-maintainer@vmware.com List-Id: dri-devel@lists.freedesktop.org ZmJkZXYgZnJhbWVidWZmZXJzIHdlcmUgcHJldmlvdXNseSBwaW5uZWQgdG8gYmUgYWJsZSB0byBr ZWVwIHRoZW0gbWFwcGVkCmFjcm9zcyB1cGRhdGVzLgoKVGhpcyBjb21taXQgaW50cm9kdWNlcyBh IG1lY2hhbmlzbSB0aGF0IGluc3RlYWQgcmV2YWxpZGF0ZXMgdGhlIG1hcCBvbgplYWNoIHVwZGF0 ZSwga2VlcGluZyB0aGUgbWFwIGNhY2hlZCBhY3Jvc3MgdXBkYXRlcy4gVGhlIGNhY2hlZCBtYXAg aXMgdG9ybgpkb3duIGlmIHRoZSB1bmRlcmx5aW5nIHBhZ2VzIGNoYW5nZS4gVHlwaWNhbGx5IG9u IGJ1ZmZlciBvYmplY3QgbW92ZXMgYW5kCnN3YXBvdXRzLgoKVGhpcyBzaG91bGQgYmUgbmljZXIg dG8gdGhlIHN5c3RlbSB3aGVuIHdlIGhhdmUgcmVzb3VyY2UgY29udGVudGlvbi4KClRlc3Rpbmcg ZG9uZTogQmFzaWMgZmJkZXYgZnVuY3Rpb25hbGl0eSB1bmRlciBGZWRvcmEgMjcuCgpTaWduZWQt b2ZmLWJ5OiBUaG9tYXMgSGVsbHN0cm9tIDx0aGVsbHN0cm9tQHZtd2FyZS5jb20+ClNpZ25lZC1v ZmYtYnk6IFNpbmNsYWlyIFllaCA8c3llaEB2bXdhcmUuY29tPgpSZXZpZXdlZC1ieTogQnJpYW4g UGF1bCA8YnJpYW5wQHZtd2FyZS5jb20+ClJldmlld2VkLWJ5OiBEZWVwYWsgUmF3YXQgPGRyYXdh dEB2bXdhcmUuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2J1ZmZlci5j ICAgfCAgMSArCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kbWFidWYuYyAgIHwgNTEg KysrKysrKysrKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9k cnYuaCAgICAgIHwgIDUgKysrCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mYi5jICAg ICAgIHwgNjcgKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2Ry bS92bXdnZngvdm13Z2Z4X3Jlc291cmNlLmMgfCAyMyArKysrKysrKysrKwogNSBmaWxlcyBjaGFu Z2VkLCA5OCBpbnNlcnRpb25zKCspLCA0OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9idWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdn Zngvdm13Z2Z4X2J1ZmZlci5jCmluZGV4IGRkZjcxYmVmNTM1OS4uMjExMTFmZDA5MWY5IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9idWZmZXIuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9idWZmZXIuYwpAQCAtODY0LDYgKzg2NCw3IEBAIHN0 YXRpYyB2b2lkIHZtd19tb3ZlX25vdGlmeShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAog ICovCiBzdGF0aWMgdm9pZCB2bXdfc3dhcF9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0 ICpibykKIHsKKwl2bXdfcmVzb3VyY2Vfc3dhcF9ub3RpZnkoYm8pOwogCSh2b2lkKSB0dG1fYm9f d2FpdChibywgZmFsc2UsIGZhbHNlKTsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfZG1hYnVmLmMgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9k bWFidWYuYwppbmRleCBkNDVkMmNhZmZhNWEuLmQ1OWQ5ZGQxNmViYyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZG1hYnVmLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfZG1hYnVmLmMKQEAgLTMyMywzICszMjMsNTQgQEAgdm9pZCB2bXdfYm9f cGluX3Jlc2VydmVkKHN0cnVjdCB2bXdfZG1hX2J1ZmZlciAqdmJvLCBib29sIHBpbikKIAogCUJV R19PTihyZXQgIT0gMCB8fCBiby0+bWVtLm1lbV90eXBlICE9IG9sZF9tZW1fdHlwZSk7CiB9CisK KworLyoKKyAqIHZtd19kbWFfYnVmZmVyX3VubWFwIC0gVGVhciBkb3duIGEgY2FjaGVkIGJ1ZmZl ciBvYmplY3QgbWFwLgorICoKKyAqIEB2Ym86IFRoZSBidWZmZXIgb2JqZWN0IHdob3NlIG1hcCB3 ZSBhcmUgdGVhcmluZyBkb3duLgorICoKKyAqIFRoaXMgZnVuY3Rpb24gdGVhcnMgZG93biBhIGNh Y2hlZCBtYXAgc2V0IHVwIHVzaW5nCisgKiB2bXdfZG1hX2J1ZmZlcl9tYXBfYW5kX2NhY2hlKCku CisgKi8KK3ZvaWQgdm13X2RtYV9idWZmZXJfdW5tYXAoc3RydWN0IHZtd19kbWFfYnVmZmVyICp2 Ym8pCit7CisJaWYgKHZiby0+bWFwLmJvID09IE5VTEwpCisJCXJldHVybjsKKworCXR0bV9ib19r dW5tYXAoJnZiby0+bWFwKTsKK30KKworCisvKgorICogdm13X2RtYV9idWZmZXJfbWFwX2FuZF9j YWNoZSAtIE1hcCBhIGJ1ZmZlciBvYmplY3QgYW5kIGNhY2hlIHRoZSBtYXAKKyAqCisgKiBAdmJv OiBUaGUgYnVmZmVyIG9iamVjdCB0byBtYXAKKyAqIFJldHVybjogQSBrZXJuZWwgdmlydHVhbCBh ZGRyZXNzIG9yIE5VTEwgaWYgbWFwcGluZyBmYWlsZWQuCisgKgorICogVGhpcyBmdW5jdGlvbiBt YXBzIGEgYnVmZmVyIG9iamVjdCBpbnRvIHRoZSBrZXJuZWwgYWRkcmVzcyBzcGFjZSwgb3IKKyAq IHJldHVybnMgdGhlIHZpcnR1YWwga2VybmVsIGFkZHJlc3Mgb2YgYW4gYWxyZWFkeSBleGlzdGlu ZyBtYXAuIFRoZSB2aXJ0dWFsCisgKiBhZGRyZXNzIHJlbWFpbnMgdmFsaWQgYXMgbG9uZyBhcyB0 aGUgYnVmZmVyIG9iamVjdCBpcyBwaW5uZWQgb3IgcmVzZXJ2ZWQuCisgKiBUaGUgY2FjaGVkIG1h cCBpcyB0b3JuIGRvd24gb24gZWl0aGVyCisgKiAxKSBCdWZmZXIgb2JqZWN0IG1vdmUKKyAqIDIp IEJ1ZmZlciBvYmplY3Qgc3dhcG91dAorICogMykgQnVmZmVyIG9iamVjdCBkZXN0cnVjdGlvbgor ICoKKyAqLwordm9pZCAqdm13X2RtYV9idWZmZXJfbWFwX2FuZF9jYWNoZShzdHJ1Y3Qgdm13X2Rt YV9idWZmZXIgKnZibykKK3sKKwlzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvID0gJnZiby0+ YmFzZTsKKwlib29sIG5vdF91c2VkOworCXZvaWQgKnZpcnR1YWw7CisJaW50IHJldDsKKworCXZp cnR1YWwgPSB0dG1fa21hcF9vYmpfdmlydHVhbCgmdmJvLT5tYXAsICZub3RfdXNlZCk7CisJaWYg KHZpcnR1YWwpCisJCXJldHVybiB2aXJ0dWFsOworCisJcmV0ID0gdHRtX2JvX2ttYXAoYm8sIDAs IGJvLT5udW1fcGFnZXMsICZ2Ym8tPm1hcCk7CisJaWYgKHJldCkKKwkJRFJNX0VSUk9SKCJCdWZm ZXIgb2JqZWN0IG1hcCBmYWlsZWQ6ICVkLlxuIiwgcmV0KTsKKworCXJldHVybiB0dG1fa21hcF9v YmpfdmlydHVhbCgmdmJvLT5tYXAsICZub3RfdXNlZCk7Cit9CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2Rydi5oCmluZGV4IDkzNjhiY2I0OTJhYS4uM2E1NDc2ZGY3ZDg0IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3Ztd2dmeF9kcnYuaApAQCAtOTIsNiArOTIsOCBAQCBzdHJ1Y3Qgdm13X2RtYV9idWZm ZXIgewogCXMzMiBwaW5fY291bnQ7CiAJLyogTm90IHJlZi1jb3VudGVkLiAgUHJvdGVjdGVkIGJ5 IGJpbmRpbmdfbXV0ZXggKi8KIAlzdHJ1Y3Qgdm13X3Jlc291cmNlICpkeF9xdWVyeV9jdHg7CisJ LyogUHJvdGVjdGVkIGJ5IHJlc2VydmF0aW9uICovCisJc3RydWN0IHR0bV9ib19rbWFwX29iaiBt YXA7CiB9OwogCiAvKioKQEAgLTY3Myw2ICs2NzUsNyBAQCBleHRlcm4gdm9pZCB2bXdfcmVzb3Vy Y2VfbW92ZV9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkJCQkgICAgIHN0 cnVjdCB0dG1fbWVtX3JlZyAqbWVtKTsKIGV4dGVybiB2b2lkIHZtd19xdWVyeV9tb3ZlX25vdGlm eShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQkJCSAgc3RydWN0IHR0bV9tZW1fcmVn ICptZW0pOworZXh0ZXJuIHZvaWQgdm13X3Jlc291cmNlX3N3YXBfbm90aWZ5KHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqYm8pOwogZXh0ZXJuIGludCB2bXdfcXVlcnlfcmVhZGJhY2tfYWxsKHN0 cnVjdCB2bXdfZG1hX2J1ZmZlciAqZHhfcXVlcnlfbW9iKTsKIGV4dGVybiB2b2lkIHZtd19mZW5j ZV9zaW5nbGVfYm8oc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAkJCQlzdHJ1Y3Qgdm13 X2ZlbmNlX29iaiAqZmVuY2UpOwpAQCAtNzAxLDYgKzcwNCw4IEBAIGV4dGVybiBpbnQgdm13X2Rt YWJ1Zl91bnBpbihzdHJ1Y3Qgdm13X3ByaXZhdGUgKnZtd19wcml2LAogZXh0ZXJuIHZvaWQgdm13 X2JvX2dldF9ndWVzdF9wdHIoY29uc3Qgc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpidWYsCiAJ CQkJIFNWR0FHdWVzdFB0ciAqcHRyKTsKIGV4dGVybiB2b2lkIHZtd19ib19waW5fcmVzZXJ2ZWQo c3RydWN0IHZtd19kbWFfYnVmZmVyICpibywgYm9vbCBwaW4pOworZXh0ZXJuIHZvaWQgKnZtd19k bWFfYnVmZmVyX21hcF9hbmRfY2FjaGUoc3RydWN0IHZtd19kbWFfYnVmZmVyICp2Ym8pOworZXh0 ZXJuIHZvaWQgdm13X2RtYV9idWZmZXJfdW5tYXAoc3RydWN0IHZtd19kbWFfYnVmZmVyICp2Ym8p OwogCiAvKioKICAqIE1pc2MgSW9jdGwgZnVuY3Rpb25hbGl0eSAtIHZtd2dmeF9pb2N0bC5jCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mYi5jIGIvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC92bXdnZnhfZmIuYwppbmRleCBkMjNhMThhYWU0NzYuLmZiNGU1OWVlMjZj NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmIuYworKysgYi9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mYi5jCkBAIC00Myw4ICs0Myw2IEBAIHN0cnVj dCB2bXdfZmJfcGFyIHsKIAogCXN0cnVjdCBtdXRleCBib19tdXRleDsKIAlzdHJ1Y3Qgdm13X2Rt YV9idWZmZXIgKnZtd19ibzsKLQlzdHJ1Y3QgdHRtX2JvX2ttYXBfb2JqIG1hcDsKLQl2b2lkICpi b19wdHI7CiAJdW5zaWduZWQgYm9fc2l6ZTsKIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpzZXRf ZmI7CiAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKnNldF9tb2RlOwpAQCAtMTc0LDExICsxNzIs MTMgQEAgc3RhdGljIHZvaWQgdm13X2ZiX2RpcnR5X2ZsdXNoKHN0cnVjdCB3b3JrX3N0cnVjdCAq d29yaykKIAlzdHJ1Y3Qgdm13X3ByaXZhdGUgKnZtd19wcml2ID0gcGFyLT52bXdfcHJpdjsKIAlz dHJ1Y3QgZmJfaW5mbyAqaW5mbyA9IHZtd19wcml2LT5mYl9pbmZvOwogCXVuc2lnbmVkIGxvbmcg aXJxX2ZsYWdzOwotCXMzMiBkc3RfeDEsIGRzdF94MiwgZHN0X3kxLCBkc3RfeTIsIHcsIGg7CisJ czMyIGRzdF94MSwgZHN0X3gyLCBkc3RfeTEsIGRzdF95MiwgdyA9IDAsIGggPSAwOwogCXUzMiBj cHAsIG1heF94LCBtYXhfeTsKIAlzdHJ1Y3QgZHJtX2NsaXBfcmVjdCBjbGlwOwogCXN0cnVjdCBk cm1fZnJhbWVidWZmZXIgKmN1cl9mYjsKIAl1OCAqc3JjX3B0ciwgKmRzdF9wdHI7CisJc3RydWN0 IHZtd19kbWFfYnVmZmVyICp2Ym8gPSBwYXItPnZtd19ibzsKKwl2b2lkICp2aXJ0dWFsOwogCiAJ aWYgKHZtd19wcml2LT5zdXNwZW5kZWQpCiAJCXJldHVybjsKQEAgLTE4OCwxMCArMTg4LDE2IEBA IHN0YXRpYyB2b2lkIHZtd19mYl9kaXJ0eV9mbHVzaChzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmsp CiAJaWYgKCFjdXJfZmIpCiAJCWdvdG8gb3V0X3VubG9jazsKIAorCSh2b2lkKSB0dG1fcmVhZF9s b2NrKCZ2bXdfcHJpdi0+cmVzZXJ2YXRpb25fc2VtLCBmYWxzZSk7CisJKHZvaWQpIHR0bV9ib19y ZXNlcnZlKCZ2Ym8tPmJhc2UsIGZhbHNlLCBmYWxzZSwgTlVMTCk7CisJdmlydHVhbCA9IHZtd19k bWFfYnVmZmVyX21hcF9hbmRfY2FjaGUodmJvKTsKKwlpZiAoIXZpcnR1YWwpCisJCWdvdG8gb3V0 X3VucmVzZXJ2ZTsKKwogCXNwaW5fbG9ja19pcnFzYXZlKCZwYXItPmRpcnR5LmxvY2ssIGlycV9m bGFncyk7CiAJaWYgKCFwYXItPmRpcnR5LmFjdGl2ZSkgewogCQlzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZwYXItPmRpcnR5LmxvY2ssIGlycV9mbGFncyk7Ci0JCWdvdG8gb3V0X3VubG9jazsKKwkJ Z290byBvdXRfdW5yZXNlcnZlOwogCX0KIAogCS8qCkBAIC0yMjEsNyArMjI3LDcgQEAgc3RhdGlj IHZvaWQgdm13X2ZiX2RpcnR5X2ZsdXNoKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZwYXItPmRpcnR5LmxvY2ssIGlycV9mbGFncyk7CiAKIAlpZiAo dyAmJiBoKSB7Ci0JCWRzdF9wdHIgPSAodTggKilwYXItPmJvX3B0ciAgKworCQlkc3RfcHRyID0g KHU4ICopdmlydHVhbCAgKwogCQkJKGRzdF95MSAqIHBhci0+c2V0X2ZiLT5waXRjaGVzWzBdICsg ZHN0X3gxICogY3BwKTsKIAkJc3JjX3B0ciA9ICh1OCAqKXBhci0+dm1hbGxvYyArCiAJCQkoKGRz dF95MSArIHBhci0+ZmJfeSkgKiBpbmZvLT5maXgubGluZV9sZW5ndGggKwpAQCAtMjM3LDcgKzI0 MywxMiBAQCBzdGF0aWMgdm9pZCB2bXdfZmJfZGlydHlfZmx1c2goc3RydWN0IHdvcmtfc3RydWN0 ICp3b3JrKQogCQljbGlwLngyID0gZHN0X3gyOwogCQljbGlwLnkxID0gZHN0X3kxOwogCQljbGlw LnkyID0gZHN0X3kyOworCX0KIAorb3V0X3VucmVzZXJ2ZToKKwl0dG1fYm9fdW5yZXNlcnZlKCZ2 Ym8tPmJhc2UpOworCXR0bV9yZWFkX3VubG9jaygmdm13X3ByaXYtPnJlc2VydmF0aW9uX3NlbSk7 CisJaWYgKHcgJiYgaCkgewogCQlXQVJOX09OX09OQ0UocGFyLT5zZXRfZmItPmZ1bmNzLT5kaXJ0 eShjdXJfZmIsIE5VTEwsIDAsIDAsCiAJCQkJCQkgICAgICAgJmNsaXAsIDEpKTsKIAkJdm13X2Zp Zm9fZmx1c2godm13X3ByaXYsIGZhbHNlKTsKQEAgLTUwNCwxOCArNTE1LDggQEAgc3RhdGljIGlu dCB2bXdfZmJfa21zX2RldGFjaChzdHJ1Y3Qgdm13X2ZiX3BhciAqcGFyLAogCQlwYXItPnNldF9m YiA9IE5VTEw7CiAJfQogCi0JaWYgKHBhci0+dm13X2JvICYmIGRldGFjaF9ibykgewotCQlzdHJ1 Y3Qgdm13X3ByaXZhdGUgKnZtd19wcml2ID0gcGFyLT52bXdfcHJpdjsKLQotCQlpZiAocGFyLT5i b19wdHIpIHsKLQkJCXR0bV9ib19rdW5tYXAoJnBhci0+bWFwKTsKLQkJCXBhci0+Ym9fcHRyID0g TlVMTDsKLQkJfQotCQlpZiAodW5yZWZfYm8pCi0JCQl2bXdfZG1hYnVmX3VucmVmZXJlbmNlKCZw YXItPnZtd19ibyk7Ci0JCWVsc2UgaWYgKHZtd19wcml2LT5hY3RpdmVfZGlzcGxheV91bml0ICE9 IHZtd19kdV9sZWdhY3kpCi0JCQl2bXdfZG1hYnVmX3VucGluKHBhci0+dm13X3ByaXYsIHBhci0+ dm13X2JvLCBmYWxzZSk7Ci0JfQorCWlmIChwYXItPnZtd19ibyAmJiBkZXRhY2hfYm8gJiYgdW5y ZWZfYm8pCisJCXZtd19kbWFidWZfdW5yZWZlcmVuY2UoJnBhci0+dm13X2JvKTsKIAogCXJldHVy biAwOwogfQpAQCAtNjM2LDM4ICs2MzcsNiBAQCBzdGF0aWMgaW50IHZtd19mYl9zZXRfcGFyKHN0 cnVjdCBmYl9pbmZvICppbmZvKQogCWlmIChyZXQpCiAJCWdvdG8gb3V0X3VubG9jazsKIAotCWlm ICghcGFyLT5ib19wdHIpIHsKLQkJc3RydWN0IHZtd19mcmFtZWJ1ZmZlciAqdmZiID0gdm13X2Zy YW1lYnVmZmVyX3RvX3ZmYihzZXQuZmIpOwotCi0JCS8qCi0JCSAqIFBpbiBiZWZvcmUgbWFwcGlu Zy4gU2luY2Ugd2UgZG9uJ3Qga25vdyBpbiB3aGF0IHBsYWNlbWVudAotCQkgKiB0byBwaW4sIGNh bGwgaW50byBLTVMgdG8gZG8gaXQgZm9yIHVzLiAgTERVIGRvZXNuJ3QgcmVxdWlyZQotCQkgKiBh ZGRpdGlvbmFsIHBpbm5pbmcgYmVjYXVzZSBzZXRfY29uZmlnKCkgd291bGQndmUgcGlubmVkCi0J CSAqIGl0IGFscmVhZHkKLQkJICovCi0JCWlmICh2bXdfcHJpdi0+YWN0aXZlX2Rpc3BsYXlfdW5p dCAhPSB2bXdfZHVfbGVnYWN5KSB7Ci0JCQlyZXQgPSB2ZmItPnBpbih2ZmIpOwotCQkJaWYgKHJl dCkgewotCQkJCURSTV9FUlJPUigiQ291bGQgbm90IHBpbiB0aGUgZmJkZXYgIgotCQkJCQkgICJm cmFtZWJ1ZmZlci5cbiIpOwotCQkJCWdvdG8gb3V0X3VubG9jazsKLQkJCX0KLQkJfQotCi0JCXJl dCA9IHR0bV9ib19rbWFwKCZwYXItPnZtd19iby0+YmFzZSwgMCwKLQkJCQkgIHBhci0+dm13X2Jv LT5iYXNlLm51bV9wYWdlcywgJnBhci0+bWFwKTsKLQkJaWYgKHJldCkgewotCQkJaWYgKHZtd19w cml2LT5hY3RpdmVfZGlzcGxheV91bml0ICE9IHZtd19kdV9sZWdhY3kpCi0JCQkJdmZiLT51bnBp bih2ZmIpOwotCi0JCQlEUk1fRVJST1IoIkNvdWxkIG5vdCBtYXAgdGhlIGZiZGV2IGZyYW1lYnVm ZmVyLlxuIik7Ci0JCQlnb3RvIG91dF91bmxvY2s7Ci0JCX0KLQotCQlwYXItPmJvX3B0ciA9IHR0 bV9rbWFwX29ial92aXJ0dWFsKCZwYXItPm1hcCwgJnBhci0+Ym9faW93cml0ZSk7Ci0JfQotCi0K IAl2bXdfZmJfZGlydHlfbWFyayhwYXIsIHBhci0+ZmJfeCwgcGFyLT5mYl95LAogCQkJICBwYXIt PnNldF9mYi0+d2lkdGgsIHBhci0+c2V0X2ZiLT5oZWlnaHQpOwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNvdXJjZS5jIGIvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfcmVzb3VyY2UuYwppbmRleCA5ZTEwMTQ1MGNjNGQuLjZiM2E5NDJiMThkZiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfcmVzb3VyY2UuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9yZXNvdXJjZS5jCkBAIC0zNTQsNiArMzU0 LDcgQEAgdm9pZCB2bXdfZG1hYnVmX2JvX2ZyZWUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpi bykKIHsKIAlzdHJ1Y3Qgdm13X2RtYV9idWZmZXIgKnZtd19ibyA9IHZtd19kbWFfYnVmZmVyKGJv KTsKIAorCXZtd19kbWFfYnVmZmVyX3VubWFwKHZtd19ibyk7CiAJa2ZyZWUodm13X2JvKTsKIH0K IApAQCAtMzYxLDYgKzM2Miw3IEBAIHN0YXRpYyB2b2lkIHZtd191c2VyX2RtYWJ1Zl9kZXN0cm95 KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCiB7CiAJc3RydWN0IHZtd191c2VyX2RtYV9i dWZmZXIgKnZtd191c2VyX2JvID0gdm13X3VzZXJfZG1hX2J1ZmZlcihibyk7CiAKKwl2bXdfZG1h X2J1ZmZlcl91bm1hcCgmdm13X3VzZXJfYm8tPmRtYSk7CiAJdHRtX3ByaW1lX29iamVjdF9rZnJl ZSh2bXdfdXNlcl9ibywgcHJpbWUpOwogfQogCkBAIC0xMjM5LDYgKzEyNDEsMTIgQEAgdm9pZCB2 bXdfcmVzb3VyY2VfbW92ZV9ub3RpZnkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIAog CWRtYV9idWYgPSBjb250YWluZXJfb2YoYm8sIHN0cnVjdCB2bXdfZG1hX2J1ZmZlciwgYmFzZSk7 CiAKKwkvKgorCSAqIEtpbGwgYW55IGNhY2hlZCBrZXJuZWwgbWFwcyBiZWZvcmUgbW92ZS4gQW4g b3B0aW1pemF0aW9uIGNvdWxkCisJICogYmUgdG8gZG8gdGhpcyBpZmYgc291cmNlIG9yIGRlc3Rp bmF0aW9uIG1lbW9yeSB0eXBlIGlzIFZSQU0uCisJICovCisJdm13X2RtYV9idWZmZXJfdW5tYXAo ZG1hX2J1Zik7CisKIAlpZiAobWVtLT5tZW1fdHlwZSAhPSBWTVdfUExfTU9CKSB7CiAJCXN0cnVj dCB2bXdfcmVzb3VyY2UgKnJlcywgKm47CiAJCXN0cnVjdCB0dG1fdmFsaWRhdGVfYnVmZmVyIHZh bF9idWY7CkBAIC0xMjYyLDYgKzEyNzAsMjEgQEAgdm9pZCB2bXdfcmVzb3VyY2VfbW92ZV9ub3Rp Znkoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKIH0KIAogCisvKioKKyAqIHZtd19yZXNv dXJjZV9zd2FwX25vdGlmeSAtIHN3YXBvdXQgbm90aWZ5IGNhbGxiYWNrLgorICoKKyAqIEBibzog VGhlIGJ1ZmZlciBvYmplY3QgdG8gYmUgc3dhcHBlZCBvdXQuCisgKi8KK3ZvaWQgdm13X3Jlc291 cmNlX3N3YXBfbm90aWZ5KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCit7CisJaWYgKGJv LT5kZXN0cm95ICE9IHZtd19kbWFidWZfYm9fZnJlZSAmJgorCSAgICBiby0+ZGVzdHJveSAhPSB2 bXdfdXNlcl9kbWFidWZfZGVzdHJveSkKKwkJcmV0dXJuOworCisJLyogS2lsbCBhbnkgY2FjaGVk IGtlcm5lbCBtYXBzIGJlZm9yZSBzd2Fwb3V0ICovCisJdm13X2RtYV9idWZmZXJfdW5tYXAodm13 X2RtYV9idWZmZXIoYm8pKTsKK30KKwogCiAvKioKICAqIHZtd19xdWVyeV9yZWFkYmFja19hbGwg LSBSZWFkIGJhY2sgY2FjaGVkIHF1ZXJ5IHN0YXRlcwotLSAKMi4xNC4zCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0 CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK