From mboxrd@z Thu Jan 1 00:00:00 1970 From: John.C.Harrison@Intel.com Subject: [PATCH] drm/i915: Reserve space improvements Date: Wed, 24 Jun 2015 18:03:28 +0100 Message-ID: <1435165408-15470-1-git-send-email-John.C.Harrison@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 78ACF6EBD4 for ; Wed, 24 Jun 2015 10:03:30 -0700 (PDT) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KCkFuIGVhcmxp ZXIgcGF0Y2ggd2FzIGFkZGVkIHRvIHJlc2VydmUgc3BhY2UgaW4gdGhlIHJpbmcgYnVmZmVyIGZv ciB0aGUKY29tbWFuZHMgaXNzdWVkIGR1cmluZyAnYWRkX3JlcXVlc3QoKScuIFRoZSBpbml0aWFs IHZlcnNpb24gd2FzCnBlc3NpbWlzdGljIGluIHRoZSB3YXkgaXQgaGFuZGxlZCBidWZmZXIgd3Jh cHBpbmcgYW5kIHdvdWxkIGNhdXNlCnByZW1hdHVyZSB3cmFwcyBhbmQgdGh1cyB3YXN0ZSByaW5n IHNwYWNlLgoKVGhpcyBwYXRjaCB1cGRhdGVzIHRoZSBjb2RlIHRvIGJldHRlciBoYW5kbGUgdGhl IHdyYXAgY2FzZS4gSXQgbm8KbG9uZ2VyIGVuZm9yY2VzIHRoYXQgdGhlIHNwYWNlIGJlaW5nIGFz a2VkIGZvciBhbmQgdGhlIHJlc2VydmVkIHNwYWNlCmFyZSBhIHNpbmdsZSBjb250aWd1b3VzIGJs b2NrLiBJbnN0ZWFkLCBpdCBhbGxvd3MgdGhlIHJlc2VydmUgdG8gYmUgb24KdGhlIGZhciBlbmQg b2YgYSB3cmFwIG9wZXJhdGlvbi4gSXQgc3RpbGwgZ3VhcmFudGVlcyB0aGF0IHRoZSBzcGFjZSBp cwphdmFpbGFibGUgc28gd2hlbiB0aGUgd3JhcCBvY2N1cnMsIG5vIHdhaXQgd2lsbCBoYXBwZW4u IFRodXMgdGhlIHdyYXAKY2Fubm90IGZhaWwgd2hpY2ggaXMgdGhlIHdob2xlIHBvaW50IG9mIHRo ZSBleGVyY2lzZS4KCkFsc28gZml4ZWQgYSBtZXJnZSBmYWlsdXJlIHdpdGggc29tZSBjb21tZW50 cyBmcm9tIHRoZSBvcmlnaW5hbCBwYXRjaC4KCkZvcjogVklaLTUxMTUKQ0M6IERhbmllbCBWZXR0 ZXIgPGRhbmllbEBmZndsbC5jaD4KU2lnbmVkLW9mZi1ieTogSm9obiBIYXJyaXNvbiA8Sm9obi5D LkhhcnJpc29uQEludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMu YyAgICAgICAgfCA1NCArKysrKysrKysrKysrLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3JpbmdidWZmZXIuYyB8IDczICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0t LS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5oIHwgIDQgKy0KIDMg ZmlsZXMgY2hhbmdlZCwgNzkgaW5zZXJ0aW9ucygrKSwgNTIgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9scmMuYwppbmRleCBiMzZlMDY0Li5lOTk4YTU0IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9scmMuYwpAQCAtNjYzLDEyICs2NjMsMTIgQEAgc3RhdGljIGludCBsb2dpY2FsX3Jpbmdf d2FpdF9mb3Jfc3BhY2Uoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiAJdW5zaWdu ZWQgc3BhY2U7CiAJaW50IHJldDsKIAotCS8qIFRoZSB3aG9sZSBwb2ludCBvZiByZXNlcnZpbmcg c3BhY2UgaXMgdG8gbm90IHdhaXQhICovCi0JV0FSTl9PTihyaW5nYnVmLT5yZXNlcnZlZF9pbl91 c2UpOwotCiAJaWYgKGludGVsX3Jpbmdfc3BhY2UocmluZ2J1ZikgPj0gYnl0ZXMpCiAJCXJldHVy biAwOwogCisJLyogVGhlIHdob2xlIHBvaW50IG9mIHJlc2VydmluZyBzcGFjZSBpcyB0byBub3Qg d2FpdCEgKi8KKwlXQVJOX09OKHJpbmdidWYtPnJlc2VydmVkX2luX3VzZSk7CisKIAlsaXN0X2Zv cl9lYWNoX2VudHJ5KHRhcmdldCwgJnJpbmctPnJlcXVlc3RfbGlzdCwgbGlzdCkgewogCQkvKgog CQkgKiBUaGUgcmVxdWVzdCBxdWV1ZSBpcyBwZXItZW5naW5lLCBzbyBjYW4gY29udGFpbiByZXF1 ZXN0cwpAQCAtNzI0LDEyICs3MjQsMTMgQEAgc3RhdGljIGludCBsb2dpY2FsX3Jpbmdfd3JhcF9i dWZmZXIoc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEpCiAJdWludDMyX3QgX19pb21l bSAqdmlydDsKIAlpbnQgcmVtID0gcmluZ2J1Zi0+c2l6ZSAtIHJpbmdidWYtPnRhaWw7CiAKLQkv KiBDYW4ndCB3cmFwIGlmIHNwYWNlIGhhcyBhbHJlYWR5IGJlZW4gcmVzZXJ2ZWQhICovCi0JV0FS Tl9PTihyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpOwotCiAJaWYgKHJpbmdidWYtPnNwYWNlIDwg cmVtKSB7Ci0JCWludCByZXQgPSBsb2dpY2FsX3Jpbmdfd2FpdF9mb3Jfc3BhY2UocmVxLCByZW0p OworCQlpbnQgcmV0OworCisJCS8qIENhbid0IHdhaXQgaWYgc3BhY2UgaGFzIGFscmVhZHkgYmVl biByZXNlcnZlZCEgKi8KKwkJV0FSTl9PTihyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpOwogCisJ CXJldCA9IGxvZ2ljYWxfcmluZ193YWl0X2Zvcl9zcGFjZShyZXEsIHJlbSk7CiAJCWlmIChyZXQp CiAJCQlyZXR1cm4gcmV0OwogCX0KQEAgLTc0OCwzMSArNzQ5LDM2IEBAIHN0YXRpYyBpbnQgbG9n aWNhbF9yaW5nX3dyYXBfYnVmZmVyKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQog c3RhdGljIGludCBsb2dpY2FsX3JpbmdfcHJlcGFyZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcSwgaW50IGJ5dGVzKQogewogCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVm ID0gcmVxLT5yaW5nYnVmOwotCWludCByZXQ7Ci0KLQkvKgotCSAqIEFkZCBvbiB0aGUgcmVzZXJ2 ZWQgc2l6ZSB0byB0aGUgcmVxdWVzdCB0byBtYWtlIHN1cmUgdGhhdCBhZnRlcgotCSAqIHRoZSBp bnRlbmRlZCBjb21tYW5kcyBoYXZlIGJlZW4gZW1pdHRlZCwgdGhlcmUgaXMgZ3VhcmFudGVlZCB0 bwotCSAqIHN0aWxsIGJlIGVub3VnaCBmcmVlIHNwYWNlIHRvIHNlbmQgdGhlbSB0byB0aGUgaGFy ZHdhcmUuCi0JICovCi0JaWYgKCFyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpCi0JCWJ5dGVzICs9 IHJpbmdidWYtPnJlc2VydmVkX3NpemU7CisJaW50IHJldCwgbWF4X2J5dGVzOwogCiAJaWYgKHVu bGlrZWx5KHJpbmdidWYtPnRhaWwgKyBieXRlcyA+IHJpbmdidWYtPmVmZmVjdGl2ZV9zaXplKSkg ewogCQlyZXQgPSBsb2dpY2FsX3Jpbmdfd3JhcF9idWZmZXIocmVxKTsKIAkJaWYgKHVubGlrZWx5 KHJldCkpCiAJCQlyZXR1cm4gcmV0OworCX0KIAotCQlpZihyaW5nYnVmLT5yZXNlcnZlZF9zaXpl KSB7Ci0JCQl1aW50MzJfdCBzaXplID0gcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZTsKKwkvKgorCSAq IEFkZCBvbiB0aGUgcmVzZXJ2ZWQgc2l6ZSB0byB0aGUgcmVxdWVzdCB0byBtYWtlIHN1cmUgdGhh dCBhZnRlcgorCSAqIHRoZSBpbnRlbmRlZCBjb21tYW5kcyBoYXZlIGJlZW4gZW1pdHRlZCwgdGhl cmUgaXMgZ3VhcmFudGVlZCB0bworCSAqIHN0aWxsIGJlIGVub3VnaCBmcmVlIHNwYWNlIHRvIHNl bmQgdGhlbSB0byB0aGUgaGFyZHdhcmUuCisJICovCisJbWF4X2J5dGVzID0gYnl0ZXMgKyByaW5n YnVmLT5yZXNlcnZlZF9zaXplOwogCi0JCQlpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX2NhbmNl bChyaW5nYnVmKTsKLQkJCWludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfcmVzZXJ2ZShyaW5nYnVm LCBzaXplKTsKLQkJfQotCX0KKwlpZiAodW5saWtlbHkocmluZ2J1Zi0+c3BhY2UgPCBtYXhfYnl0 ZXMpKSB7CisJCS8qCisJCSAqIEJ5dGVzIGlzIGd1YXJhbnRlZWQgdG8gZml0IHdpdGhpbiB0aGUg dGFpbCBvZiB0aGUgYnVmZmVyLAorCQkgKiBidXQgdGhlIHJlc2VydmVkIHNwYWNlIG1heSBwdXNo IGl0IG9mZiB0aGUgZW5kLiBJZiBzbyB0aGVuCisJCSAqIG5lZWQgdG8gd2FpdCBmb3IgdGhlIHdo b2xlIG9mIHRoZSB0YWlsIHBsdXMgdGhlIHJlc2VydmVkCisJCSAqIHNpemUuIFRoYXQgc2hvdWxk IGd1YXJhbnRlZSB0aGF0IHRoZSBhY3R1YWwgcmVxdWVzdAorCQkgKiAoYnl0ZXMpIHdpbGwgZml0 IGJldHdlZW4gaGVyZSBhbmQgdGhlIGVuZCBhbmQgdGhlIHJlc2VydmVkCisJCSAqIHVzYWdlIHdp bGwgZml0IGVpdGhlciBpbiB0aGUgc2FtZSBvciBhdCB0aGUgc3RhcnQuIEVpdGhlcgorCQkgKiB3 YXksIGlmIGEgd3JhcCBvY2N1cnMgaXQgd2lsbCBub3QgaW52b2x2ZSBhIHdhaXQgYW5kIHRodXMK KwkJICogY2Fubm90IGZhaWwuCisJCSAqLworCQlpZiAodW5saWtlbHkocmluZ2J1Zi0+dGFpbCAr IG1heF9ieXRlcyArIEk5MTVfUklOR19GUkVFX1NQQUNFID4gcmluZ2J1Zi0+ZWZmZWN0aXZlX3Np emUpKQorCQkJbWF4X2J5dGVzID0gcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZSArIEk5MTVfUklOR19G UkVFX1NQQUNFICsgcmluZ2J1Zi0+c2l6ZSAtIHJpbmdidWYtPnRhaWw7CiAKLQlpZiAodW5saWtl bHkocmluZ2J1Zi0+c3BhY2UgPCBieXRlcykpIHsKLQkJcmV0ID0gbG9naWNhbF9yaW5nX3dhaXRf Zm9yX3NwYWNlKHJlcSwgYnl0ZXMpOworCQlyZXQgPSBsb2dpY2FsX3Jpbmdfd2FpdF9mb3Jfc3Bh Y2UocmVxLCBtYXhfYnl0ZXMpOwogCQlpZiAodW5saWtlbHkocmV0KSkKIAkJCXJldHVybiByZXQ7 CiAJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCmluZGV4IGFmN2MxMmUu LjdjNWI0YzIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMKQEAgLTIx MjEsMTIgKzIxMjEsMTIgQEAgc3RhdGljIGludCByaW5nX3dhaXRfZm9yX3NwYWNlKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKnJpbmcsIGludCBuKQogCXVuc2lnbmVkIHNwYWNlOwogCWludCByZXQ7 CiAKLQkvKiBUaGUgd2hvbGUgcG9pbnQgb2YgcmVzZXJ2aW5nIHNwYWNlIGlzIHRvIG5vdCB3YWl0 ISAqLwotCVdBUk5fT04ocmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKTsKLQogCWlmIChpbnRlbF9y aW5nX3NwYWNlKHJpbmdidWYpID49IG4pCiAJCXJldHVybiAwOwogCisJLyogVGhlIHdob2xlIHBv aW50IG9mIHJlc2VydmluZyBzcGFjZSBpcyB0byBub3Qgd2FpdCEgKi8KKwlXQVJOX09OKHJpbmdi dWYtPnJlc2VydmVkX2luX3VzZSk7CisKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5KHJlcXVlc3QsICZy aW5nLT5yZXF1ZXN0X2xpc3QsIGxpc3QpIHsKIAkJc3BhY2UgPSBfX2ludGVsX3Jpbmdfc3BhY2Uo cmVxdWVzdC0+cG9zdGZpeCwgcmluZ2J1Zi0+dGFpbCwKIAkJCQkJICAgcmluZ2J1Zi0+c2l6ZSk7 CkBAIC0yMTUxLDExICsyMTUxLDEzIEBAIHN0YXRpYyBpbnQgaW50ZWxfd3JhcF9yaW5nX2J1ZmZl cihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQogCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVy ICpyaW5nYnVmID0gcmluZy0+YnVmZmVyOwogCWludCByZW0gPSByaW5nYnVmLT5zaXplIC0gcmlu Z2J1Zi0+dGFpbDsKIAotCS8qIENhbid0IHdyYXAgaWYgc3BhY2UgaGFzIGFscmVhZHkgYmVlbiBy ZXNlcnZlZCEgKi8KLQlXQVJOX09OKHJpbmdidWYtPnJlc2VydmVkX2luX3VzZSk7Ci0KIAlpZiAo cmluZ2J1Zi0+c3BhY2UgPCByZW0pIHsKLQkJaW50IHJldCA9IHJpbmdfd2FpdF9mb3Jfc3BhY2Uo cmluZywgcmVtKTsKKwkJaW50IHJldDsKKworCQkvKiBDYW4ndCB3YWl0IGlmIHNwYWNlIGhhcyBh bHJlYWR5IGJlZW4gcmVzZXJ2ZWQhICovCisJCVdBUk5fT04ocmluZ2J1Zi0+cmVzZXJ2ZWRfaW5f dXNlKTsKKworCQlyZXQgPSByaW5nX3dhaXRfZm9yX3NwYWNlKHJpbmcsIHJlbSk7CiAJCWlmIChy ZXQpCiAJCQlyZXR1cm4gcmV0OwogCX0KQEAgLTIyMzgsOSArMjI0MCwyMSBAQCB2b2lkIGludGVs X3JpbmdfcmVzZXJ2ZWRfc3BhY2VfdXNlKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVm KQogdm9pZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX2VuZChzdHJ1Y3QgaW50ZWxfcmluZ2J1 ZmZlciAqcmluZ2J1ZikKIHsKIAlXQVJOX09OKCFyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpOwot CVdBUk4ocmluZ2J1Zi0+dGFpbCA+IHJpbmdidWYtPnJlc2VydmVkX3RhaWwgKyByaW5nYnVmLT5y ZXNlcnZlZF9zaXplLAotCSAgICAgInJlcXVlc3QgcmVzZXJ2ZWQgc2l6ZSB0b28gc21hbGw6ICVk IHZzICVkIVxuIiwKLQkgICAgIHJpbmdidWYtPnRhaWwgLSByaW5nYnVmLT5yZXNlcnZlZF90YWls LCByaW5nYnVmLT5yZXNlcnZlZF9zaXplKTsKKwlpZiAocmluZ2J1Zi0+dGFpbCA+IHJpbmdidWYt PnJlc2VydmVkX3RhaWwpIHsKKwkJV0FSTihyaW5nYnVmLT50YWlsID4gcmluZ2J1Zi0+cmVzZXJ2 ZWRfdGFpbCArIHJpbmdidWYtPnJlc2VydmVkX3NpemUsCisJCSAgICAgInJlcXVlc3QgcmVzZXJ2 ZWQgc2l6ZSB0b28gc21hbGw6ICVkIHZzICVkIVxuIiwKKwkJICAgICByaW5nYnVmLT50YWlsIC0g cmluZ2J1Zi0+cmVzZXJ2ZWRfdGFpbCwgcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZSk7CisJfSBlbHNl IHsKKwkJLyoKKwkJICogVGhlIHJpbmcgd2FzIHdyYXBwZWQgd2hpbGUgdGhlIHJlc2VydmVkIHNw YWNlIHdhcyBpbiB1c2UuCisJCSAqIFRoYXQgbWVhbnMgdGhhdCBzb21lIHVua25vd24gYW1vdW50 IG9mIHRoZSByaW5nIHRhaWwgd2FzCisJCSAqIG5vLW9wIGZpbGxlZCBhbmQgc2tpcHBlZC4gVGh1 cyBzaW1wbHkgYWRkaW5nIHRoZSByaW5nIHNpemUKKwkJICogdG8gdGhlIHRhaWwgYW5kIGRvaW5n IHRoZSBhYm92ZSBzcGFjZSBjaGVjayB3aWxsIG5vdCB3b3JrLgorCQkgKiBSYXRoZXIgdGhhbiBh dHRlbXB0IHRvIHRyYWNrIGhvdyBtdWNoIHRhaWwgd2FzIHNraXBwZWQsCisJCSAqIGl0IGlzIG11 Y2ggc2ltcGxlciB0byBzYXkgdGhhdCBhbHNvIHNraXBwaW5nIHRoZSBzYW5pdHkKKwkJICogY2hl Y2sgZXZlcnkgb25jZSBpbiBhIHdoaWxlIGlzIG5vdCBhIGJpZyBpc3N1ZS4KKwkJICovCisJfQog CiAJcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZSAgID0gMDsKIAlyaW5nYnVmLT5yZXNlcnZlZF9pbl91 c2UgPSBmYWxzZTsKQEAgLTIyNDksMzEgKzIyNjMsMzYgQEAgdm9pZCBpbnRlbF9yaW5nX3Jlc2Vy dmVkX3NwYWNlX2VuZChzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKIHN0YXRpYyBp bnQgX19pbnRlbF9yaW5nX3ByZXBhcmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgaW50 IGJ5dGVzKQogewogCXN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmID0gcmluZy0+YnVm ZmVyOwotCWludCByZXQ7Ci0KLQkvKgotCSAqIEFkZCBvbiB0aGUgcmVzZXJ2ZWQgc2l6ZSB0byB0 aGUgcmVxdWVzdCB0byBtYWtlIHN1cmUgdGhhdCBhZnRlcgotCSAqIHRoZSBpbnRlbmRlZCBjb21t YW5kcyBoYXZlIGJlZW4gZW1pdHRlZCwgdGhlcmUgaXMgZ3VhcmFudGVlZCB0bwotCSAqIHN0aWxs IGJlIGVub3VnaCBmcmVlIHNwYWNlIHRvIHNlbmQgdGhlbSB0byB0aGUgaGFyZHdhcmUuCi0JICov Ci0JaWYgKCFyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpCi0JCWJ5dGVzICs9IHJpbmdidWYtPnJl c2VydmVkX3NpemU7CisJaW50IHJldCwgbWF4X2J5dGVzOwogCiAJaWYgKHVubGlrZWx5KHJpbmdi dWYtPnRhaWwgKyBieXRlcyA+IHJpbmdidWYtPmVmZmVjdGl2ZV9zaXplKSkgewogCQlyZXQgPSBp bnRlbF93cmFwX3JpbmdfYnVmZmVyKHJpbmcpOwogCQlpZiAodW5saWtlbHkocmV0KSkKIAkJCXJl dHVybiByZXQ7CisJfQogCi0JCWlmKHJpbmdidWYtPnJlc2VydmVkX3NpemUpIHsKLQkJCXVpbnQz Ml90IHNpemUgPSByaW5nYnVmLT5yZXNlcnZlZF9zaXplOworCS8qCisJICogQWRkIG9uIHRoZSBy ZXNlcnZlZCBzaXplIHRvIHRoZSByZXF1ZXN0IHRvIG1ha2Ugc3VyZSB0aGF0IGFmdGVyCisJICog dGhlIGludGVuZGVkIGNvbW1hbmRzIGhhdmUgYmVlbiBlbWl0dGVkLCB0aGVyZSBpcyBndWFyYW50 ZWVkIHRvCisJICogc3RpbGwgYmUgZW5vdWdoIGZyZWUgc3BhY2UgdG8gc2VuZCB0aGVtIHRvIHRo ZSBoYXJkd2FyZS4KKwkgKi8KKwltYXhfYnl0ZXMgPSBieXRlcyArIHJpbmdidWYtPnJlc2VydmVk X3NpemU7CiAKLQkJCWludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfY2FuY2VsKHJpbmdidWYpOwot CQkJaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9yZXNlcnZlKHJpbmdidWYsIHNpemUpOwotCQl9 Ci0JfQorCWlmICh1bmxpa2VseShyaW5nYnVmLT5zcGFjZSA8IG1heF9ieXRlcykpIHsKKwkJLyoK KwkJICogQnl0ZXMgaXMgZ3VhcmFudGVlZCB0byBmaXQgd2l0aGluIHRoZSB0YWlsIG9mIHRoZSBi dWZmZXIsCisJCSAqIGJ1dCB0aGUgcmVzZXJ2ZWQgc3BhY2UgbWF5IHB1c2ggaXQgb2ZmIHRoZSBl bmQuIElmIHNvIHRoZW4KKwkJICogbmVlZCB0byB3YWl0IGZvciB0aGUgd2hvbGUgb2YgdGhlIHRh aWwgcGx1cyB0aGUgcmVzZXJ2ZWQKKwkJICogc2l6ZS4gVGhhdCBzaG91bGQgZ3VhcmFudGVlIHRo YXQgdGhlIGFjdHVhbCByZXF1ZXN0CisJCSAqIChieXRlcykgd2lsbCBmaXQgYmV0d2VlbiBoZXJl IGFuZCB0aGUgZW5kIGFuZCB0aGUgcmVzZXJ2ZWQKKwkJICogdXNhZ2Ugd2lsbCBmaXQgZWl0aGVy IGluIHRoZSBzYW1lIG9yIGF0IHRoZSBzdGFydC4gRWl0aGVyCisJCSAqIHdheSwgaWYgYSB3cmFw IG9jY3VycyBpdCB3aWxsIG5vdCBpbnZvbHZlIGEgd2FpdCBhbmQgdGh1cworCQkgKiBjYW5ub3Qg ZmFpbC4KKwkJICovCisJCWlmICh1bmxpa2VseShyaW5nYnVmLT50YWlsICsgbWF4X2J5dGVzID4g cmluZ2J1Zi0+ZWZmZWN0aXZlX3NpemUpKQorCQkJbWF4X2J5dGVzID0gcmluZ2J1Zi0+cmVzZXJ2 ZWRfc2l6ZSArIEk5MTVfUklOR19GUkVFX1NQQUNFICsgcmluZ2J1Zi0+c2l6ZSAtIHJpbmdidWYt PnRhaWw7CiAKLQlpZiAodW5saWtlbHkocmluZ2J1Zi0+c3BhY2UgPCBieXRlcykpIHsKLQkJcmV0 ID0gcmluZ193YWl0X2Zvcl9zcGFjZShyaW5nLCBieXRlcyk7CisJCXJldCA9IHJpbmdfd2FpdF9m b3Jfc3BhY2UocmluZywgbWF4X2J5dGVzKTsKIAkJaWYgKHVubGlrZWx5KHJldCkpCiAJCQlyZXR1 cm4gcmV0OwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAppbmRleCAw ZTJiYmM2Li4zMDRjYWM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y aW5nYnVmZmVyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5o CkBAIC00NzMsNyArNDczLDYgQEAgc3RhdGljIGlubGluZSB1MzIgaW50ZWxfcmluZ19nZXRfdGFp bChzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKICAqIHdpbGwgYWx3YXlzIGhhdmUg c3VmZmljaWVudCByb29tIHRvIGRvIGl0cyBzdHVmZi4gVGhlIHJlcXVlc3QgY3JlYXRpb24KICAq IGNvZGUgY2FsbHMgdGhpcyBhdXRvbWF0aWNhbGx5LgogICovCi1pbnQgaW50ZWxfcmluZ19yZXNl cnZlX3NwYWNlKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCk7CiB2b2lkIGlu dGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfcmVzZXJ2ZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAq cmluZ2J1ZiwgaW50IHNpemUpOwogLyogQ2FuY2VsIHRoZSByZXNlcnZhdGlvbiwgZS5nLiBiZWNh dXNlIHRoZSByZXF1ZXN0IGlzIGJlaW5nIGRpc2NhcmRlZC4gKi8KIHZvaWQgaW50ZWxfcmluZ19y ZXNlcnZlZF9zcGFjZV9jYW5jZWwoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpOwpA QCAtNDgyLDQgKzQ4MSw3IEBAIHZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV91c2Uoc3Ry dWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpOwogLyogRmluaXNoIHdpdGggdGhlIHJlc2Vy dmVkIHNwYWNlIC0gZm9yIHVzZSBieSBpOTE1X2FkZF9yZXF1ZXN0KCkgb25seS4gKi8KIHZvaWQg aW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9lbmQoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJp bmdidWYpOwogCisvKiBMZWdhY3kgcmluZ2J1ZmZlciBzcGVjaWZpYyBwb3J0aW9uIG9mIHJlc2Vy dmF0aW9uIGNvZGU6ICovCitpbnQgaW50ZWxfcmluZ19yZXNlcnZlX3NwYWNlKHN0cnVjdCBkcm1f aTkxNV9nZW1fcmVxdWVzdCAqcmVxdWVzdCk7CisKICNlbmRpZiAvKiBfSU5URUxfUklOR0JVRkZF Ul9IXyAqLwotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==