From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Wilson Subject: [PATCH 1/3] drm/i915: Use VMA for scratch page tracking Date: Mon, 8 Aug 2016 09:00:00 +0100 Message-ID: <1470643202-3038-1-git-send-email-chris@chris-wilson.co.uk> References: <1470581141-14432-22-git-send-email-chris@chris-wilson.co.uk> 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 D6E766E34F for ; Mon, 8 Aug 2016 08:00:09 +0000 (UTC) Received: by mail-wm0-x241.google.com with SMTP id i5so13856917wmg.2 for ; Mon, 08 Aug 2016 01:00:09 -0700 (PDT) In-Reply-To: <1470581141-14432-22-git-send-email-chris@chris-wilson.co.uk> 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 U2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0t LQoKQWNjaWRlbnRhbCBzcXVhc2hpbmcgZHVyaW5nIHJlYmFzZS4KLUNocmlzCgotLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYyB8ICAyICstCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jICAgICAgICB8IDE4ICsrKysrLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9y aW5nYnVmZmVyLmMgfCA1NSArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaCB8IDEwICsrLS0tLQogNiBmaWxlcyBj aGFuZ2VkLCA0NiBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKaW5kZXggNWQ0MmZlZTc1NDY0Li4xNWVlZDg5N2I0OTgg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2NvbnRleHQuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmMKQEAgLTY2MCw3ICs2NjAs NyBAQCBtaV9zZXRfY29udGV4dChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwgdTMy IGh3X2ZsYWdzKQogCQkJCQlNSV9TVE9SRV9SRUdJU1RFUl9NRU0gfAogCQkJCQlNSV9TUk1fTFJN X0dMT0JBTF9HVFQpOwogCQkJaW50ZWxfcmluZ19lbWl0X3JlZyhyaW5nLCBsYXN0X3JlZyk7Ci0J CQlpbnRlbF9yaW5nX2VtaXQocmluZywgZW5naW5lLT5zY3JhdGNoLmd0dF9vZmZzZXQpOworCQkJ aW50ZWxfcmluZ19lbWl0KHJpbmcsIGVuZ2luZS0+c2NyYXRjaC0+bm9kZS5zdGFydCk7CiAJCQlp bnRlbF9yaW5nX2VtaXQocmluZywgTUlfTk9PUCk7CiAJCX0KIAkJaW50ZWxfcmluZ19lbWl0KHJp bmcsIE1JX0FSQl9PTl9PRkYgfCBNSV9BUkJfRU5BQkxFKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2dwdV9lcnJvci5jCmluZGV4IDA5YzNhZTBjMjgyYS4uMmQ5M2FmMGJiNzkzIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ3B1X2Vycm9yLmMKQEAgLTEwNzUsNyArMTA3NSw3IEBAIHN0YXRpYyB2 b2lkIGk5MTVfZ2VtX3JlY29yZF9yaW5ncyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCiAJCQlpZiAoSEFTX0JST0tFTl9DU19UTEIoZGV2X3ByaXYpKQogCQkJCWVlLT53YV9iYXRj aGJ1ZmZlciA9CiAJCQkJCWk5MTVfZXJyb3JfZ2d0dF9vYmplY3RfY3JlYXRlKGRldl9wcml2LAot CQkJCQkJCQkgICAgICBlbmdpbmUtPnNjcmF0Y2gub2JqKTsKKwkJCQkJCQkJICAgICAgZW5naW5l LT5zY3JhdGNoLT5vYmopOwogCiAJCQlpZiAocmVxdWVzdC0+Y3R4LT5lbmdpbmVbaV0uc3RhdGUp IHsKIAkJCQllZS0+Y3R4ID0gaTkxNV9lcnJvcl9nZ3R0X29iamVjdF9jcmVhdGUoZGV2X3ByaXYs CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggOWNiZjU0MzFjMWUzLi4zZGVl ZTAzMDZlODIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTExMzI1LDcg KzExMzI1LDcgQEAgc3RhdGljIGludCBpbnRlbF9nZW43X3F1ZXVlX2ZsaXAoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKIAkJCWludGVsX3JpbmdfZW1pdChyaW5nLCBNSV9TVE9SRV9SRUdJU1RFUl9N RU0gfAogCQkJCQkgICAgICBNSV9TUk1fTFJNX0dMT0JBTF9HVFQpOwogCQlpbnRlbF9yaW5nX2Vt aXRfcmVnKHJpbmcsIERFUlJNUik7Ci0JCWludGVsX3JpbmdfZW1pdChyaW5nLCByZXEtPmVuZ2lu ZS0+c2NyYXRjaC5ndHRfb2Zmc2V0ICsgMjU2KTsKKwkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIHJl cS0+ZW5naW5lLT5zY3JhdGNoLT5ub2RlLnN0YXJ0ICsgMjU2KTsKIAkJaWYgKElTX0dFTjgoZGV2 KSkgewogCQkJaW50ZWxfcmluZ19lbWl0KHJpbmcsIDApOwogCQkJaW50ZWxfcmluZ19lbWl0KHJp bmcsIE1JX05PT1ApOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwppbmRleCAxOThkNTliMjcyYjIu LjRkYzc3NzQ3OTExZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJj LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKQEAgLTkxNCw3ICs5MTQs NyBAQCBzdGF0aWMgaW5saW5lIGludCBnZW44X2VtaXRfZmx1c2hfY29oZXJlbnRsM193YShzdHJ1 Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsCiAJd2FfY3R4X2VtaXQoYmF0Y2gsIGluZGV4LCAo TUlfU1RPUkVfUkVHSVNURVJfTUVNX0dFTjggfAogCQkJCSAgIE1JX1NSTV9MUk1fR0xPQkFMX0dU VCkpOwogCXdhX2N0eF9lbWl0X3JlZyhiYXRjaCwgaW5kZXgsIEdFTjhfTDNTUUNSRUc0KTsKLQl3 YV9jdHhfZW1pdChiYXRjaCwgaW5kZXgsIGVuZ2luZS0+c2NyYXRjaC5ndHRfb2Zmc2V0ICsgMjU2 KTsKKwl3YV9jdHhfZW1pdChiYXRjaCwgaW5kZXgsIGVuZ2luZS0+c2NyYXRjaC0+bm9kZS5zdGFy dCArIDI1Nik7CiAJd2FfY3R4X2VtaXQoYmF0Y2gsIGluZGV4LCAwKTsKIAogCXdhX2N0eF9lbWl0 KGJhdGNoLCBpbmRleCwgTUlfTE9BRF9SRUdJU1RFUl9JTU0oMSkpOwpAQCAtOTMyLDcgKzkzMiw3 IEBAIHN0YXRpYyBpbmxpbmUgaW50IGdlbjhfZW1pdF9mbHVzaF9jb2hlcmVudGwzX3dhKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwKIAl3YV9jdHhfZW1pdChiYXRjaCwgaW5kZXgsIChN SV9MT0FEX1JFR0lTVEVSX01FTV9HRU44IHwKIAkJCQkgICBNSV9TUk1fTFJNX0dMT0JBTF9HVFQp KTsKIAl3YV9jdHhfZW1pdF9yZWcoYmF0Y2gsIGluZGV4LCBHRU44X0wzU1FDUkVHNCk7Ci0Jd2Ff Y3R4X2VtaXQoYmF0Y2gsIGluZGV4LCBlbmdpbmUtPnNjcmF0Y2guZ3R0X29mZnNldCArIDI1Nik7 CisJd2FfY3R4X2VtaXQoYmF0Y2gsIGluZGV4LCBlbmdpbmUtPnNjcmF0Y2gtPm5vZGUuc3RhcnQg KyAyNTYpOwogCXdhX2N0eF9lbWl0KGJhdGNoLCBpbmRleCwgMCk7CiAKIAlyZXR1cm4gaW5kZXg7 CkBAIC05OTMsNyArOTkzLDcgQEAgc3RhdGljIGludCBnZW44X2luaXRfaW5kaXJlY3RjdHhfYmIo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAogCiAJLyogV2FDbGVhclNsbVNwYWNlQXRD b250ZXh0U3dpdGNoOmJkdyxjaHYgKi8KIAkvKiBBY3R1YWwgc2NyYXRjaCBsb2NhdGlvbiBpcyBh dCAxMjggYnl0ZXMgb2Zmc2V0ICovCi0Jc2NyYXRjaF9hZGRyID0gZW5naW5lLT5zY3JhdGNoLmd0 dF9vZmZzZXQgKyAyKkNBQ0hFTElORV9CWVRFUzsKKwlzY3JhdGNoX2FkZHIgPSBlbmdpbmUtPnNj cmF0Y2gtPm5vZGUuc3RhcnQgKyAyKkNBQ0hFTElORV9CWVRFUzsKIAogCXdhX2N0eF9lbWl0KGJh dGNoLCBpbmRleCwgR0ZYX09QX1BJUEVfQ09OVFJPTCg2KSk7CiAJd2FfY3R4X2VtaXQoYmF0Y2gs IGluZGV4LCAoUElQRV9DT05UUk9MX0ZMVVNIX0wzIHwKQEAgLTEwNzIsOCArMTA3Miw4IEBAIHN0 YXRpYyBpbnQgZ2VuOV9pbml0X2luZGlyZWN0Y3R4X2JiKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSwKIAkvKiBXYUNsZWFyU2xtU3BhY2VBdENvbnRleHRTd2l0Y2g6a2JsICovCiAJLyog QWN0dWFsIHNjcmF0Y2ggbG9jYXRpb24gaXMgYXQgMTI4IGJ5dGVzIG9mZnNldCAqLwogCWlmIChJ U19LQkxfUkVWSUQoZGV2X3ByaXYsIDAsIEtCTF9SRVZJRF9BMCkpIHsKLQkJdWludDMyX3Qgc2Ny YXRjaF9hZGRyCi0JCQk9IGVuZ2luZS0+c2NyYXRjaC5ndHRfb2Zmc2V0ICsgMipDQUNIRUxJTkVf QllURVM7CisJCXVpbnQzMl90IHNjcmF0Y2hfYWRkciA9CisJCQllbmdpbmUtPnNjcmF0Y2gtPm5v ZGUuc3RhcnQgKyAyKkNBQ0hFTElORV9CWVRFUzsKIAogCQl3YV9jdHhfZW1pdChiYXRjaCwgaW5k ZXgsIEdGWF9PUF9QSVBFX0NPTlRST0woNikpOwogCQl3YV9jdHhfZW1pdChiYXRjaCwgaW5kZXgs IChQSVBFX0NPTlRST0xfRkxVU0hfTDMgfApAQCAtMTIxNSw3ICsxMjE1LDcgQEAgc3RhdGljIGlu dCBpbnRlbF9pbml0X3dvcmthcm91bmRfYmIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5l KQogCX0KIAogCS8qIHNvbWUgV0EgcGVyZm9ybSB3cml0ZXMgdG8gc2NyYXRjaCBwYWdlLCBlbnN1 cmUgaXQgaXMgdmFsaWQgKi8KLQlpZiAoZW5naW5lLT5zY3JhdGNoLm9iaiA9PSBOVUxMKSB7CisJ aWYgKCFlbmdpbmUtPnNjcmF0Y2gpIHsKIAkJRFJNX0VSUk9SKCJzY3JhdGNoIHBhZ2Ugbm90IGFs bG9jYXRlZCBmb3IgJXNcbiIsIGVuZ2luZS0+bmFtZSk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0K QEAgLTE0ODMsNyArMTQ4Myw3IEBAIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X2ZsdXNoX3JlbmRlcihz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QsCiB7CiAJc3RydWN0IGludGVsX3Jp bmcgKnJpbmcgPSByZXF1ZXN0LT5yaW5nOwogCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSA9IHJlcXVlc3QtPmVuZ2luZTsKLQl1MzIgc2NyYXRjaF9hZGRyID0gZW5naW5lLT5zY3JhdGNo Lmd0dF9vZmZzZXQgKyAyICogQ0FDSEVMSU5FX0JZVEVTOworCXUzMiBzY3JhdGNoX2FkZHIgPSBl bmdpbmUtPnNjcmF0Y2gtPm5vZGUuc3RhcnQgKyAyICogQ0FDSEVMSU5FX0JZVEVTOwogCWJvb2wg dmZfZmx1c2hfd2EgPSBmYWxzZSwgZGNfZmx1c2hfd2EgPSBmYWxzZTsKIAl1MzIgZmxhZ3MgPSAw OwogCWludCByZXQ7CkBAIC0xODQ0LDExICsxODQ0LDExIEBAIGludCBsb2dpY2FsX3JlbmRlcl9y aW5nX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCWVsc2UKIAkJZW5naW5l LT5pbml0X2h3ID0gZ2VuOF9pbml0X3JlbmRlcl9yaW5nOwogCWVuZ2luZS0+aW5pdF9jb250ZXh0 ID0gZ2VuOF9pbml0X3Jjc19jb250ZXh0OwotCWVuZ2luZS0+Y2xlYW51cCA9IGludGVsX2Zpbmlf cGlwZV9jb250cm9sOworCWVuZ2luZS0+Y2xlYW51cCA9IGludGVsX2VuZ2luZV9jbGVhbnVwX3Nj cmF0Y2g7CiAJZW5naW5lLT5lbWl0X2ZsdXNoID0gZ2VuOF9lbWl0X2ZsdXNoX3JlbmRlcjsKIAll bmdpbmUtPmVtaXRfcmVxdWVzdCA9IGdlbjhfZW1pdF9yZXF1ZXN0X3JlbmRlcjsKIAotCXJldCA9 IGludGVsX2luaXRfcGlwZV9jb250cm9sKGVuZ2luZSwgNDA5Nik7CisJcmV0ID0gaW50ZWxfZW5n aW5lX2NyZWF0ZV9zY3JhdGNoKGVuZ2luZSwgNDA5Nik7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJl dDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCmluZGV4IGNmZjk5MzVm ZTM2Zi4uZjY4NGZlZjg5NWMxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZl ci5jCkBAIC0xNzYsNyArMTc2LDcgQEAgaW50ZWxfZW1pdF9wb3N0X3N5bmNfbm9uemVyb19mbHVz aChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKIHsKIAlzdHJ1Y3QgaW50ZWxfcmlu ZyAqcmluZyA9IHJlcS0+cmluZzsKIAl1MzIgc2NyYXRjaF9hZGRyID0KLQkJcmVxLT5lbmdpbmUt PnNjcmF0Y2guZ3R0X29mZnNldCArIDIgKiBDQUNIRUxJTkVfQllURVM7CisJCXJlcS0+ZW5naW5l LT5zY3JhdGNoLT5ub2RlLnN0YXJ0ICsgMiAqIENBQ0hFTElORV9CWVRFUzsKIAlpbnQgcmV0Owog CiAJcmV0ID0gaW50ZWxfcmluZ19iZWdpbihyZXEsIDYpOwpAQCAtMjEyLDcgKzIxMiw3IEBAIGdl bjZfcmVuZGVyX3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXEsIHUz MiBtb2RlKQogewogCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcmVxLT5yaW5nOwogCXUzMiBz Y3JhdGNoX2FkZHIgPQotCQlyZXEtPmVuZ2luZS0+c2NyYXRjaC5ndHRfb2Zmc2V0ICsgMiAqIENB Q0hFTElORV9CWVRFUzsKKwkJcmVxLT5lbmdpbmUtPnNjcmF0Y2gtPm5vZGUuc3RhcnQgKyAyICog Q0FDSEVMSU5FX0JZVEVTOwogCXUzMiBmbGFncyA9IDA7CiAJaW50IHJldDsKIApAQCAtMjg2LDcg KzI4Niw3IEBAIGdlbjdfcmVuZGVyX3JpbmdfZmx1c2goc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1 ZXN0ICpyZXEsIHUzMiBtb2RlKQogewogCXN0cnVjdCBpbnRlbF9yaW5nICpyaW5nID0gcmVxLT5y aW5nOwogCXUzMiBzY3JhdGNoX2FkZHIgPQotCQlyZXEtPmVuZ2luZS0+c2NyYXRjaC5ndHRfb2Zm c2V0ICsgMiAqIENBQ0hFTElORV9CWVRFUzsKKwkJcmVxLT5lbmdpbmUtPnNjcmF0Y2gtPm5vZGUu c3RhcnQgKyAyICogQ0FDSEVMSU5FX0JZVEVTOwogCXUzMiBmbGFncyA9IDA7CiAJaW50IHJldDsK IApAQCAtMzcwLDcgKzM3MCw4IEBAIGdlbjhfZW1pdF9waXBlX2NvbnRyb2woc3RydWN0IGRybV9p OTE1X2dlbV9yZXF1ZXN0ICpyZXEsCiBzdGF0aWMgaW50CiBnZW44X3JlbmRlcl9yaW5nX2ZsdXNo KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLCB1MzIgbW9kZSkKIHsKLQl1MzIgc2Ny YXRjaF9hZGRyID0gcmVxLT5lbmdpbmUtPnNjcmF0Y2guZ3R0X29mZnNldCArIDIgKiBDQUNIRUxJ TkVfQllURVM7CisJdTMyIHNjcmF0Y2hfYWRkciA9CisJCXJlcS0+ZW5naW5lLT5zY3JhdGNoLT5u b2RlLnN0YXJ0ICsgMiAqIENBQ0hFTElORV9CWVRFUzsKIAl1MzIgZmxhZ3MgPSAwOwogCWludCBy ZXQ7CiAKQEAgLTYxMiw0NSArNjEzLDUxIEBAIG91dDoKIAlyZXR1cm4gcmV0OwogfQogCi12b2lk IGludGVsX2ZpbmlfcGlwZV9jb250cm9sKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK K3ZvaWQgaW50ZWxfZW5naW5lX2NsZWFudXBfc2NyYXRjaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICplbmdpbmUpCiB7Ci0JaWYgKGVuZ2luZS0+c2NyYXRjaC5vYmogPT0gTlVMTCkKKwlzdHJ1Y3Qg aTkxNV92bWEgKnZtYTsKKworCXZtYSA9IG51bGxpZnkoJmVuZ2luZS0+c2NyYXRjaCk7CisJaWYg KCF2bWEpCiAJCXJldHVybjsKIAotCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGVuZ2luZS0+ c2NyYXRjaC5vYmopOwotCWk5MTVfZ2VtX29iamVjdF9wdXQoZW5naW5lLT5zY3JhdGNoLm9iaik7 Ci0JZW5naW5lLT5zY3JhdGNoLm9iaiA9IE5VTEw7CisJaTkxNV92bWFfdW5waW4odm1hKTsKKwlp OTE1X2dlbV9vYmplY3RfcHV0KHZtYS0+b2JqKTsKIH0KIAotaW50IGludGVsX2luaXRfcGlwZV9j b250cm9sKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50IHNpemUpCitpbnQgaW50 ZWxfZW5naW5lX2NyZWF0ZV9zY3JhdGNoKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwg aW50IHNpemUpCiB7CiAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKKwlzdHJ1Y3Qg aTkxNV92bWEgKnZtYTsKIAlpbnQgcmV0OwogCi0JV0FSTl9PTihlbmdpbmUtPnNjcmF0Y2gub2Jq KTsKKwlXQVJOX09OKGVuZ2luZS0+c2NyYXRjaCk7CiAKIAlvYmogPSBpOTE1X2dlbV9vYmplY3Rf Y3JlYXRlX3N0b2xlbigmZW5naW5lLT5pOTE1LT5kcm0sIHNpemUpOwogCWlmICghb2JqKQogCQlv YmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlKCZlbmdpbmUtPmk5MTUtPmRybSwgc2l6ZSk7CiAJ aWYgKElTX0VSUihvYmopKSB7CiAJCURSTV9FUlJPUigiRmFpbGVkIHRvIGFsbG9jYXRlIHNjcmF0 Y2ggcGFnZVxuIik7Ci0JCXJldCA9IFBUUl9FUlIob2JqKTsKLQkJZ290byBlcnI7CisJCXJldHVy biBQVFJfRVJSKG9iaik7CiAJfQogCi0JcmV0ID0gaTkxNV9nZW1fb2JqZWN0X2dndHRfcGluKG9i aiwgTlVMTCwgMCwgNDA5NiwgUElOX0hJR0gpOworCXZtYSA9IGk5MTVfdm1hX2NyZWF0ZShvYmos ICZlbmdpbmUtPmk5MTUtPmdndHQuYmFzZSwgTlVMTCk7CisJaWYgKElTX0VSUih2bWEpKSB7CisJ CXJldCA9IFBUUl9FUlIodm1hKTsKKwkJZ290byBlcnJfdW5yZWY7CisJfQorCisJcmV0ID0gaTkx NV92bWFfcGluKHZtYSwgMCwgNDA5NiwgUElOX0dMT0JBTCB8IFBJTl9ISUdIKTsKIAlpZiAocmV0 KQogCQlnb3RvIGVycl91bnJlZjsKIAotCWVuZ2luZS0+c2NyYXRjaC5vYmogPSBvYmo7Ci0JZW5n aW5lLT5zY3JhdGNoLmd0dF9vZmZzZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9vZmZzZXQob2JqKTsK LQlEUk1fREVCVUdfRFJJVkVSKCIlcyBwaXBlIGNvbnRyb2wgb2Zmc2V0OiAweCUwOHhcbiIsCi0J CQkgZW5naW5lLT5uYW1lLCBlbmdpbmUtPnNjcmF0Y2guZ3R0X29mZnNldCk7CisJZW5naW5lLT5z Y3JhdGNoID0gdm1hOworCURSTV9ERUJVR19EUklWRVIoIiVzIHBpcGUgY29udHJvbCBvZmZzZXQ6 IDB4JTA4bGx4XG4iLAorCQkJIGVuZ2luZS0+bmFtZSwgdm1hLT5ub2RlLnN0YXJ0KTsKIAlyZXR1 cm4gMDsKIAogZXJyX3VucmVmOgotCWk5MTVfZ2VtX29iamVjdF9wdXQoZW5naW5lLT5zY3JhdGNo Lm9iaik7Ci1lcnI6CisJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOwogCXJldHVybiByZXQ7CiB9 CiAKQEAgLTEzMDUsNyArMTMxMiw3IEBAIHN0YXRpYyB2b2lkIHJlbmRlcl9yaW5nX2NsZWFudXAo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQogCQlkZXZfcHJpdi0+c2VtYXBob3JlX29i aiA9IE5VTEw7CiAJfQogCi0JaW50ZWxfZmluaV9waXBlX2NvbnRyb2woZW5naW5lKTsKKwlpbnRl bF9lbmdpbmVfY2xlYW51cF9zY3JhdGNoKGVuZ2luZSk7CiB9CiAKIHN0YXRpYyBpbnQgZ2VuOF9y Y3Nfc2lnbmFsKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxKQpAQCAtMTc2Myw3ICsx NzcwLDcgQEAgaTgzMF9lbWl0X2JiX3N0YXJ0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAq cmVxLAogCQkgICB1bnNpZ25lZCBpbnQgZGlzcGF0Y2hfZmxhZ3MpCiB7CiAJc3RydWN0IGludGVs X3JpbmcgKnJpbmcgPSByZXEtPnJpbmc7Ci0JdTMyIGNzX29mZnNldCA9IHJlcS0+ZW5naW5lLT5z Y3JhdGNoLmd0dF9vZmZzZXQ7CisJdTMyIGNzX29mZnNldCA9IHJlcS0+ZW5naW5lLT5zY3JhdGNo LT5ub2RlLnN0YXJ0OwogCWludCByZXQ7CiAKIAlyZXQgPSBpbnRlbF9yaW5nX2JlZ2luKHJlcSwg Nik7CkBAIC0yNzkwLDExICsyNzk3LDExIEBAIGludCBpbnRlbF9pbml0X3JlbmRlcl9yaW5nX2J1 ZmZlcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCiAJCXJldHVybiByZXQ7CiAKIAlp ZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA2KSB7Ci0JCXJldCA9IGludGVsX2luaXRfcGlwZV9j b250cm9sKGVuZ2luZSwgNDA5Nik7CisJCXJldCA9IGludGVsX2VuZ2luZV9jcmVhdGVfc2NyYXRj aChlbmdpbmUsIDQwOTYpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAl9IGVsc2UgaWYg KEhBU19CUk9LRU5fQ1NfVExCKGRldl9wcml2KSkgewotCQlyZXQgPSBpbnRlbF9pbml0X3BpcGVf Y29udHJvbChlbmdpbmUsIEk4MzBfV0FfU0laRSk7CisJCXJldCA9IGludGVsX2VuZ2luZV9jcmVh dGVfc2NyYXRjaChlbmdpbmUsIEk4MzBfV0FfU0laRSk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4g cmV0OwogCX0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAppbmRleCAzNWUy Yjg3YWIxN2EuLjZhMjM2YzRjM2Y4OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuaApAQCAtMTk4LDYgKzE5OCw3IEBAIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgewogCiAJ c3RydWN0IGludGVsX2h3X3N0YXR1c19wYWdlIHN0YXR1c19wYWdlOwogCXN0cnVjdCBpOTE1X2N0 eF93b3JrYXJvdW5kcyB3YV9jdHg7CisJc3RydWN0IGk5MTVfdm1hICpzY3JhdGNoOwogCiAJdTMy ICAgICAgICAgICAgIGlycV9rZWVwX21hc2s7IC8qIGFsd2F5cyBrZWVwIHRoZXNlIGludGVycnVw dHMgKi8KIAl1MzIJCWlycV9lbmFibGVfbWFzazsgLyogYml0bWFzayB0byBlbmFibGUgcmluZyBp bnRlcnJ1cHQgKi8KQEAgLTMyMCwxMSArMzIxLDYgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7 CiAKIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2hhbmdjaGVjayBoYW5nY2hlY2s7CiAKLQlzdHJ1Y3Qg ewotCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwotCQl1MzIgZ3R0X29mZnNldDsK LQl9IHNjcmF0Y2g7Ci0KIAlib29sIG5lZWRzX2NtZF9wYXJzZXI7CiAKIAkvKgpAQCAtNDc2LDgg KzQ3Miw4IEBAIHZvaWQgaW50ZWxfcmluZ191cGRhdGVfc3BhY2Uoc3RydWN0IGludGVsX3Jpbmcg KnJpbmcpOwogCiB2b2lkIGludGVsX2VuZ2luZV9pbml0X3NlcW5vKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSwgdTMyIHNlcW5vKTsKIAotaW50IGludGVsX2luaXRfcGlwZV9jb250cm9s KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSwgaW50IHNpemUpOwotdm9pZCBpbnRlbF9m aW5pX3BpcGVfY29udHJvbChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpOworaW50IGlu dGVsX2VuZ2luZV9jcmVhdGVfc2NyYXRjaChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUs IGludCBzaXplKTsKK3ZvaWQgaW50ZWxfZW5naW5lX2NsZWFudXBfc2NyYXRjaChzdHJ1Y3QgaW50 ZWxfZW5naW5lX2NzICplbmdpbmUpOwogCiB2b2lkIGludGVsX2VuZ2luZV9zZXR1cF9jb21tb24o c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKIGludCBpbnRlbF9lbmdpbmVfaW5pdF9j b21tb24oc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKLS0gCjIuOC4xCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK