From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jesse Barnes Subject: =?utf-8?q?=5BPATCH_1/3=5D_drm/i915=3A_add_SNB_and_IVB?= =?utf-8?q?_video_sprite_support?= Date: Tue, 8 Nov 2011 13:19:44 -0800 Message-ID: <1320787186-5508-1-git-send-email-jbarnes@virtuousgeek.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from oproxy9.bluehost.com (oproxy9.bluehost.com [69.89.24.6]) by gabe.freedesktop.org (Postfix) with SMTP id 011BFA0A35 for ; Tue, 8 Nov 2011 13:19:59 -0800 (PST) List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org Errors-To: intel-gfx-bounces+gcfxdi-intel-gfx=m.gmane.org@lists.freedesktop.org To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org VGhlIHZpZGVvIHNwcml0ZXMgc3VwcG9ydCB2YXJpb3VzIHZpZGVvIHN1cmZhY2UgZm9ybWF0cyBu YXRpdmVseSBhbmQgY2FuCmhhbmRsZSBzY2FsaW5nIGFzIHdlbGwuICBTbyBhZGQgc3VwcG9ydCBm b3IgdGhlbSB1c2luZyB0aGUgbmV3IERSTSBjb3JlCnNwcml0ZSBzdXBwb3J0IGZ1bmN0aW9ucy4K ClNpZ25lZC1vZmYtYnk6IEplc3NlIEJhcm5lcyA8amJhcm5lc0B2aXJ0dW91c2dlZWsub3JnPgot LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAgICAgICB8ICAgIDEgKwogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgIHwgIDEyMyArKysrKysrKysrCiBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgIDI5ICsrLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgICAyMiArKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZmIuYyAgICAgIHwgICAgNiArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUu YyAgfCAgNDMxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDYgZmlsZXMgY2hh bmdlZCwgNjAyIGluc2VydGlvbnMoKyksIDEwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmls ZQppbmRleCAwYWU2YTdjLi44MDhiMjU1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9NYWtlZmlsZQorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpAQCAtMjgsNiAr MjgsNyBAQCBpOTE1LXkgOj0gaTkxNV9kcnYubyBpOTE1X2RtYS5vIGk5MTVfaXJxLm8gaTkxNV9t ZW0ubyBcCiAJICBpbnRlbF9kdm8ubyBcCiAJICBpbnRlbF9yaW5nYnVmZmVyLm8gXAogCSAgaW50 ZWxfb3ZlcmxheS5vIFwKKwkgIGludGVsX3Nwcml0ZS5vIFwKIAkgIGludGVsX29wcmVnaW9uLm8g XAogCSAgZHZvX2NoN3h4eC5vIFwKIAkgIGR2b19jaDcwMTcubyBcCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaAppbmRleCA1YTA5NDE2Li5iMjI3MGZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKQEAg LTI0NTAsNiArMjQ1MCw4IEBACiAjZGVmaW5lIFdNM19MUF9JTEsJCTB4NDUxMTAKICNkZWZpbmUg IFdNM19MUF9FTgkJKDE8PDMxKQogI2RlZmluZSBXTTFTX0xQX0lMSwkJMHg0NTEyMAorI2RlZmlu ZSBXTTJTX0xQX0lWQgkJMHg0NTEyNAorI2RlZmluZSBXTTNTX0xQX0lWQgkJMHg0NTEyOAogI2Rl ZmluZSAgV00xU19MUF9FTgkJKDE8PDMxKQogCiAvKiBNZW1vcnkgbGF0ZW5jeSB0aW1lciByZWdp c3RlciAqLwpAQCAtMjY2Niw2ICsyNjY4LDEyNyBAQAogI2RlZmluZSBfRFNQQlNVUkYJCTB4NzEx OUMKICNkZWZpbmUgX0RTUEJUSUxFT0ZGCQkweDcxMUE0CiAKKy8qIFNwcml0ZSBBIGNvbnRyb2wg Ki8KKyNkZWZpbmUgX0RWU0FDTlRSCQkweDcyMTgwCisjZGVmaW5lICAgRFZTX0VOQUJMRQkJKDE8 PDMxKQorI2RlZmluZSAgIERWU19HQU1NQV9FTkFCTEUJKDE8PDMwKQorI2RlZmluZSAgIERWU19Q SVhGT1JNQVRfTUFTSwkoMzw8MjUpCisjZGVmaW5lICAgRFZTX0ZPUk1BVF9ZVVY0MjIJKDA8PDI1 KQorI2RlZmluZSAgIERWU19GT1JNQVRfUkdCWDEwMTAxMAkoMTw8MjUpCisjZGVmaW5lICAgRFZT X0ZPUk1BVF9SR0JYODg4CSgyPDwyNSkKKyNkZWZpbmUgICBEVlNfRk9STUFUX1JHQlgxNjE2MTYJ KDM8PDI1KQorI2RlZmluZSAgIERWU19TT1VSQ0VfS0VZCSgxPDwyMikKKyNkZWZpbmUgICBEVlNf UkdCX09SREVSX1JHQlgJKDE8PDIwKQorI2RlZmluZSAgIERWU19ZVVZfQllURV9PUkRFUl9NQVNL ICgzPDwxNikKKyNkZWZpbmUgICBEVlNfWVVWX09SREVSX1lVWVYJKDA8PDE2KQorI2RlZmluZSAg IERWU19ZVVZfT1JERVJfVVlWWQkoMTw8MTYpCisjZGVmaW5lICAgRFZTX1lVVl9PUkRFUl9ZVllV CSgyPDwxNikKKyNkZWZpbmUgICBEVlNfWVVWX09SREVSX1ZZVVkJKDM8PDE2KQorI2RlZmluZSAg IERWU19ERVNUX0tFWQkJKDE8PDIpCisjZGVmaW5lICAgRFZTX1RSSUNLTEVfRkVFRF9ESVNBQkxF ICgxPDwxNCkKKyNkZWZpbmUgICBEVlNfVElMRUQJCSgxPDwxMCkKKyNkZWZpbmUgX0RWU0FTVFJJ REUJCTB4NzIxODgKKyNkZWZpbmUgX0RWU0FQT1MJCTB4NzIxOGMKKyNkZWZpbmUgX0RWU0FTSVpF CQkweDcyMTkwCisjZGVmaW5lIF9EVlNBS0VZVkFMCQkweDcyMTk0CisjZGVmaW5lIF9EVlNBS0VZ TVNLCQkweDcyMTk4CisjZGVmaW5lIF9EVlNBU1VSRgkJMHg3MjE5YworI2RlZmluZSBfRFZTQUtF WU1BWFZBTAkJMHg3MjFhMAorI2RlZmluZSBfRFZTQVRJTEVPRkYJCTB4NzIxYTQKKyNkZWZpbmUg X0RWU0FTVVJGTElWRQkJMHg3MjFhYworI2RlZmluZSBfRFZTQVNDQUxFCQkweDcyMjA0CisjZGVm aW5lICAgRFZTX1NDQUxFX0VOQUJMRQkoMTw8MzEpCisjZGVmaW5lICAgRFZTX0ZJTFRFUl9NQVNL CSgzPDwyOSkKKyNkZWZpbmUgICBEVlNfRklMVEVSX01FRElVTQkoMDw8MjkpCisjZGVmaW5lICAg RFZTX0ZJTFRFUl9FTkhBTkNJTkcJKDE8PDI5KQorI2RlZmluZSAgIERWU19GSUxURVJfU09GVEVO SU5HCSgyPDwyOSkKKyNkZWZpbmUgX0RWU0FHQU1DCQkweDcyMzAwCisKKyNkZWZpbmUgX0RWU0JD TlRSCQkweDczMTgwCisjZGVmaW5lIF9EVlNCU1RSSURFCQkweDczMTg4CisjZGVmaW5lIF9EVlNC UE9TCQkweDczMThjCisjZGVmaW5lIF9EVlNCU0laRQkJMHg3MzE5MAorI2RlZmluZSBfRFZTQktF WVZBTAkJMHg3MzE5NAorI2RlZmluZSBfRFZTQktFWU1TSwkJMHg3MzE5OAorI2RlZmluZSBfRFZT QlNVUkYJCTB4NzMxOWMKKyNkZWZpbmUgX0RWU0JLRVlNQVhWQUwJCTB4NzMxYTAKKyNkZWZpbmUg X0RWU0JUSUxFT0ZGCQkweDczMWE0CisjZGVmaW5lIF9EVlNCU1VSRkxJVkUJCTB4NzMxYWMKKyNk ZWZpbmUgX0RWU0JTQ0FMRQkJMHg3MzIwNAorI2RlZmluZSBfRFZTQkdBTUMJCTB4NzMzMDAKKwor I2RlZmluZSBEVlNDTlRSKHBpcGUpIF9QSVBFKHBpcGUsIF9EVlNBQ05UUiwgX0RWU0JDTlRSKQor I2RlZmluZSBEVlNTVFJJREUocGlwZSkgX1BJUEUocGlwZSwgX0RWU0FTVFJJREUsIF9EVlNCU1RS SURFKQorI2RlZmluZSBEVlNQT1MocGlwZSkgX1BJUEUocGlwZSwgX0RWU0FQT1MsIF9EVlNCUE9T KQorI2RlZmluZSBEVlNTVVJGKHBpcGUpIF9QSVBFKHBpcGUsIF9EVlNBU1VSRiwgX0RWU0JTVVJG KQorI2RlZmluZSBEVlNTSVpFKHBpcGUpIF9QSVBFKHBpcGUsIF9EVlNBU0laRSwgX0RWU0JTSVpF KQorI2RlZmluZSBEVlNTQ0FMRShwaXBlKSBfUElQRShwaXBlLCBfRFZTQVNDQUxFLCBfRFZTQlND QUxFKQorI2RlZmluZSBEVlNUSUxFT0ZGKHBpcGUpIF9QSVBFKHBpcGUsIF9EVlNBVElMRU9GRiwg X0RWU0JUSUxFT0ZGKQorCisjZGVmaW5lIF9TUFJBX0NUTAkJMHg3MDI4MAorI2RlZmluZSAgIFNQ UklURV9FTkFCTEUJCQkoMTw8MzEpCisjZGVmaW5lICAgU1BSSVRFX0dBTU1BX0VOQUJMRQkJKDE8 PDMwKQorI2RlZmluZSAgIFNQUklURV9QSVhGT1JNQVRfTUFTSwkJKDc8PDI1KQorI2RlZmluZSAg IFNQUklURV9GT1JNQVRfWVVWNDIyCQkoMDw8MjUpCisjZGVmaW5lICAgU1BSSVRFX0ZPUk1BVF9S R0JYMTAxMDEwCSgxPDwyNSkKKyNkZWZpbmUgICBTUFJJVEVfRk9STUFUX1JHQlg4ODgJCSgyPDwy NSkKKyNkZWZpbmUgICBTUFJJVEVfRk9STUFUX1JHQlgxNjE2MTYJKDM8PDI1KQorI2RlZmluZSAg IFNQUklURV9GT1JNQVRfWVVWNDQ0CQkoNDw8MjUpCisjZGVmaW5lICAgU1BSSVRFX0ZPUk1BVF9Y QkdSMTAxMDEwCSg1PDwyNSkKKyNkZWZpbmUgICBTUFJJVEVfQ1NDX0VOQUJMRQkJKDE8PDI0KQor I2RlZmluZSAgIFNQUklURV9TT1VSQ0VfS0VZCQkoMTw8MjIpCisjZGVmaW5lICAgU1BSSVRFX1JH Ql9PUkRFUl9SR0JYCQkoMTw8MjApIC8qIG9ubHkgZm9yIDg4OCBhbmQgMTYxNjE2ICovCisjZGVm aW5lICAgU1BSSVRFX1lVVl9UT19SR0JfQ1NDX0RJU0FCTEUJKDE8PDE5KQorI2RlZmluZSAgIFNQ UklURV9ZVVZfQ1NDX0ZPUk1BVF9CVDcwOQkoMTw8MTgpIC8qIDAgaXMgQlQ2MDEgKi8KKyNkZWZp bmUgICBTUFJJVEVfWVVWX0JZVEVfT1JERVJfTUFTSwkoMzw8MTYpCisjZGVmaW5lICAgU1BSSVRF X1lVVl9PUkRFUl9ZVVlWCQkoMDw8MTYpCisjZGVmaW5lICAgU1BSSVRFX1lVVl9PUkRFUl9VWVZZ CQkoMTw8MTYpCisjZGVmaW5lICAgU1BSSVRFX1lVVl9PUkRFUl9ZVllVCQkoMjw8MTYpCisjZGVm aW5lICAgU1BSSVRFX1lVVl9PUkRFUl9WWVVZCQkoMzw8MTYpCisjZGVmaW5lICAgU1BSSVRFX1RS SUNLTEVfRkVFRF9ESVNBQkxFCSgxPDwxNCkKKyNkZWZpbmUgICBTUFJJVEVfSU5UX0dBTU1BX0VO QUJMRQkoMTw8MTMpCisjZGVmaW5lICAgU1BSSVRFX1RJTEVECQkJKDE8PDEwKQorI2RlZmluZSAg IFNQUklURV9ERVNUX0tFWQkJKDE8PDIpCisjZGVmaW5lIF9TUFJBX1NUUklERQkJMHg3MDI4OAor I2RlZmluZSBfU1BSQV9QT1MJCTB4NzAyOGMKKyNkZWZpbmUgX1NQUkFfU0laRQkJMHg3MDI5MAor I2RlZmluZSBfU1BSQV9LRVlWQUwJCTB4NzAyOTQKKyNkZWZpbmUgX1NQUkFfS0VZTVNLCQkweDcw Mjk4CisjZGVmaW5lIF9TUFJBX1NVUkYJCTB4NzAyOWMKKyNkZWZpbmUgX1NQUkFfS0VZTUFYCQkw eDcwMmEwCisjZGVmaW5lIF9TUFJBX1RJTEVPRkYJCTB4NzAyYTQKKyNkZWZpbmUgX1NQUkFfU0NB TEUJCTB4NzAzMDQKKyNkZWZpbmUgICBTUFJJVEVfU0NBTEVfRU5BQkxFCSgxPDwzMSkKKyNkZWZp bmUgICBTUFJJVEVfRklMVEVSX01BU0sJKDM8PDI5KQorI2RlZmluZSAgIFNQUklURV9GSUxURVJf TUVESVVNCSgwPDwyOSkKKyNkZWZpbmUgICBTUFJJVEVfRklMVEVSX0VOSEFOQ0lORwkoMTw8Mjkp CisjZGVmaW5lICAgU1BSSVRFX0ZJTFRFUl9TT0ZURU5JTkcJKDI8PDI5KQorI2RlZmluZSBfU1BS QV9HQU1DCQkweDcwNDAwCisKKyNkZWZpbmUgX1NQUkJfQ1RMCQkweDcxMjgwCisjZGVmaW5lIF9T UFJCX1NUUklERQkJMHg3MTI4OAorI2RlZmluZSBfU1BSQl9QT1MJCTB4NzEyOGMKKyNkZWZpbmUg X1NQUkJfU0laRQkJMHg3MTI5MAorI2RlZmluZSBfU1BSQl9LRVlWQUwJCTB4NzEyOTQKKyNkZWZp bmUgX1NQUkJfS0VZTVNLCQkweDcxMjk4CisjZGVmaW5lIF9TUFJCX1NVUkYJCTB4NzEyOWMKKyNk ZWZpbmUgX1NQUkJfS0VZTUFYCQkweDcxMmEwCisjZGVmaW5lIF9TUFJCX1RJTEVPRkYJCTB4NzEy YTQKKyNkZWZpbmUgX1NQUkJfU0NBTEUJCTB4NzEzMDQKKyNkZWZpbmUgX1NQUkJfR0FNQwkJMHg3 MTQwMAorCisjZGVmaW5lIFNQUkNUTChwaXBlKSBfUElQRShwaXBlLCBfU1BSQV9DVEwsIF9TUFJC X0NUTCkKKyNkZWZpbmUgU1BSU1RSSURFKHBpcGUpIF9QSVBFKHBpcGUsIF9TUFJBX1NUUklERSwg X1NQUkJfU1RSSURFKQorI2RlZmluZSBTUFJQT1MocGlwZSkgX1BJUEUocGlwZSwgX1NQUkFfUE9T LCBfU1BSQl9QT1MpCisjZGVmaW5lIFNQUlNJWkUocGlwZSkgX1BJUEUocGlwZSwgX1NQUkFfU0la RSwgX1NQUkJfU0laRSkKKyNkZWZpbmUgU1BSS0VZVkFMKHBpcGUpIF9QSVBFKHBpcGUsIF9TUFJB X0tFWVZBTCwgX1NQUkJfS0VZVkFMKQorI2RlZmluZSBTUFJLRVlNU0socGlwZSkgX1BJUEUocGlw ZSwgX1NQUkFfS0VZTVNLLCBfU1BSQl9LRVlNU0spCisjZGVmaW5lIFNQUlNVUkYocGlwZSkgX1BJ UEUocGlwZSwgX1NQUkFfU1VSRiwgX1NQUkJfU1VSRikKKyNkZWZpbmUgU1BSS0VZTUFYKHBpcGUp IF9QSVBFKHBpcGUsIF9TUFJBX0tFWU1BWCwgX1NQUkJfS0VZTUFYKQorI2RlZmluZSBTUFJUSUxF T0ZGKHBpcGUpIF9QSVBFKHBpcGUsIF9TUFJBX1RJTEVPRkYsIF9TUFJCX1RJTEVPRkYpCisjZGVm aW5lIFNQUlNDQUxFKHBpcGUpIF9QSVBFKHBpcGUsIF9TUFJBX1NDQUxFLCBfU1BSQl9TQ0FMRSkK KyNkZWZpbmUgU1BSR0FNQyhwaXBlKSBfUElQRShwaXBlLCBfU1BSQV9HQU1DLCBfU1BSQl9HQU1D KQorCiAvKiBWQklPUyByZWdzICovCiAjZGVmaW5lIFZHQUNOVFJMCQkweDcxNDAwCiAjIGRlZmlu ZSBWR0FfRElTUF9ESVNBQkxFCQkJKDEgPDwgMzEpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKaW5kZXggYWFlN2IwMy4uMDkyMjhkZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rp c3BsYXkuYwpAQCAtOTE1LDggKzkxNSw4IEBAIHN0YXRpYyB2b2lkIGFzc2VydF9wYW5lbF91bmxv Y2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJICAgICBwaXBlX25hbWUo cGlwZSkpOwogfQogCi1zdGF0aWMgdm9pZCBhc3NlcnRfcGlwZShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCi0JCQllbnVtIHBpcGUgcGlwZSwgYm9vbCBzdGF0ZSkKK3ZvaWQgYXNz ZXJ0X3BpcGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkgZW51bSBwaXBl IHBpcGUsIGJvb2wgc3RhdGUpCiB7CiAJaW50IHJlZzsKIAl1MzIgdmFsOwpAQCAtOTI5LDggKzky OSw2IEBAIHN0YXRpYyB2b2lkIGFzc2VydF9waXBlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKIAkgICAgICJwaXBlICVjIGFzc2VydGlvbiBmYWlsdXJlIChleHBlY3RlZCAlcywg Y3VycmVudCAlcylcbiIsCiAJICAgICBwaXBlX25hbWUocGlwZSksIHN0YXRlX3N0cmluZyhzdGF0 ZSksIHN0YXRlX3N0cmluZyhjdXJfc3RhdGUpKTsKIH0KLSNkZWZpbmUgYXNzZXJ0X3BpcGVfZW5h YmxlZChkLCBwKSBhc3NlcnRfcGlwZShkLCBwLCB0cnVlKQotI2RlZmluZSBhc3NlcnRfcGlwZV9k aXNhYmxlZChkLCBwKSBhc3NlcnRfcGlwZShkLCBwLCBmYWxzZSkKIAogc3RhdGljIHZvaWQgYXNz ZXJ0X3BsYW5lX2VuYWJsZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJ CSBlbnVtIHBsYW5lIHBsYW5lKQpAQCAtNDQzOSw3ICs0NDM3LDggQEAgc3RhdGljIHZvaWQgaXJv bmxha2VfdXBkYXRlX3dtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCQkgICAgSUxLX0xQMF9D VVJTT1JfTEFURU5DWSwKIAkJCSAgICAmcGxhbmVfd20sICZjdXJzb3Jfd20pKSB7CiAJCUk5MTVf V1JJVEUoV00wX1BJUEVBX0lMSywKLQkJCSAgIChwbGFuZV93bSA8PCBXTTBfUElQRV9QTEFORV9T SElGVCkgfCBjdXJzb3Jfd20pOworCQkJICAgKHBsYW5lX3dtIDw8IFdNMF9QSVBFX1BMQU5FX1NI SUZUKSB8CisJCQkgICAocGxhbmVfd20gPDwgV00wX1BJUEVfU1BSSVRFX1NISUZUKSB8IGN1cnNv cl93bSk7CiAJCURSTV9ERUJVR19LTVMoIkZJRk8gd2F0ZXJtYXJrcyBGb3IgcGlwZSBBIC0iCiAJ CQkgICAgICAiIHBsYW5lICVkLCAiICJjdXJzb3I6ICVkXG4iLAogCQkJICAgICAgcGxhbmVfd20s IGN1cnNvcl93bSk7CkBAIC00NDUzLDcgKzQ0NTIsOCBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV91 cGRhdGVfd20oc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJCSAgICBJTEtfTFAwX0NVUlNPUl9M QVRFTkNZLAogCQkJICAgICZwbGFuZV93bSwgJmN1cnNvcl93bSkpIHsKIAkJSTkxNV9XUklURShX TTBfUElQRUJfSUxLLAotCQkJICAgKHBsYW5lX3dtIDw8IFdNMF9QSVBFX1BMQU5FX1NISUZUKSB8 IGN1cnNvcl93bSk7CisJCQkgICAocGxhbmVfd20gPDwgV00wX1BJUEVfUExBTkVfU0hJRlQpIHwK KwkJCSAgIChwbGFuZV93bSA8PCBXTTBfUElQRV9TUFJJVEVfU0hJRlQpIHwgY3Vyc29yX3dtKTsK IAkJRFJNX0RFQlVHX0tNUygiRklGTyB3YXRlcm1hcmtzIEZvciBwaXBlIEIgLSIKIAkJCSAgICAg ICIgcGxhbmUgJWQsIGN1cnNvcjogJWRcbiIsCiAJCQkgICAgICBwbGFuZV93bSwgY3Vyc29yX3dt KTsKQEAgLTQ1MjEsNyArNDUyMSw4IEBAIHN0YXRpYyB2b2lkIHNhbmR5YnJpZGdlX3VwZGF0ZV93 bShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJICAgICZzYW5keWJyaWRnZV9jdXJzb3Jfd21f aW5mbywgbGF0ZW5jeSwKIAkJCSAgICAmcGxhbmVfd20sICZjdXJzb3Jfd20pKSB7CiAJCUk5MTVf V1JJVEUoV00wX1BJUEVBX0lMSywKLQkJCSAgIChwbGFuZV93bSA8PCBXTTBfUElQRV9QTEFORV9T SElGVCkgfCBjdXJzb3Jfd20pOworCQkJICAgKHBsYW5lX3dtIDw8IFdNMF9QSVBFX1BMQU5FX1NI SUZUKSB8CisJCQkgICAocGxhbmVfd20gPDwgV00wX1BJUEVfU1BSSVRFX1NISUZUKSB8IGN1cnNv cl93bSk7CiAJCURSTV9ERUJVR19LTVMoIkZJRk8gd2F0ZXJtYXJrcyBGb3IgcGlwZSBBIC0iCiAJ CQkgICAgICAiIHBsYW5lICVkLCAiICJjdXJzb3I6ICVkXG4iLAogCQkJICAgICAgcGxhbmVfd20s IGN1cnNvcl93bSk7CkBAIC00NTMzLDcgKzQ1MzQsOCBAQCBzdGF0aWMgdm9pZCBzYW5keWJyaWRn ZV91cGRhdGVfd20oc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJCSAgICAmc2FuZHlicmlkZ2Vf Y3Vyc29yX3dtX2luZm8sIGxhdGVuY3ksCiAJCQkgICAgJnBsYW5lX3dtLCAmY3Vyc29yX3dtKSkg ewogCQlJOTE1X1dSSVRFKFdNMF9QSVBFQl9JTEssCi0JCQkgICAocGxhbmVfd20gPDwgV00wX1BJ UEVfUExBTkVfU0hJRlQpIHwgY3Vyc29yX3dtKTsKKwkJCSAgIChwbGFuZV93bSA8PCBXTTBfUElQ RV9QTEFORV9TSElGVCkgfAorCQkJICAgKHBsYW5lX3dtIDw8IFdNMF9QSVBFX1NQUklURV9TSElG VCkgfCBjdXJzb3Jfd20pOwogCQlEUk1fREVCVUdfS01TKCJGSUZPIHdhdGVybWFya3MgRm9yIHBp cGUgQiAtIgogCQkJICAgICAgIiBwbGFuZSAlZCwgY3Vyc29yOiAlZFxuIiwKIAkJCSAgICAgIHBs YW5lX3dtLCBjdXJzb3Jfd20pOwpAQCAtNDU0Nyw3ICs0NTQ5LDggQEAgc3RhdGljIHZvaWQgc2Fu ZHlicmlkZ2VfdXBkYXRlX3dtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAJCQkgICAgJnNhbmR5 YnJpZGdlX2N1cnNvcl93bV9pbmZvLCBsYXRlbmN5LAogCQkJICAgICZwbGFuZV93bSwgJmN1cnNv cl93bSkpIHsKIAkJSTkxNV9XUklURShXTTBfUElQRUNfSVZCLAotCQkJICAgKHBsYW5lX3dtIDw8 IFdNMF9QSVBFX1BMQU5FX1NISUZUKSB8IGN1cnNvcl93bSk7CisJCQkgICAocGxhbmVfd20gPDwg V00wX1BJUEVfUExBTkVfU0hJRlQpIHwKKwkJCSAgIChwbGFuZV93bSA8PCBXTTBfUElQRV9TUFJJ VEVfU0hJRlQpIHwgY3Vyc29yX3dtKTsKIAkJRFJNX0RFQlVHX0tNUygiRklGTyB3YXRlcm1hcmtz IEZvciBwaXBlIEMgLSIKIAkJCSAgICAgICIgcGxhbmUgJWQsIGN1cnNvcjogJWRcbiIsCiAJCQkg ICAgICBwbGFuZV93bSwgY3Vyc29yX3dtKTsKQEAgLTg2OTMsNyArODY5Niw3IEBAIHN0YXRpYyB2 b2lkIGk5MTVfZGlzYWJsZV92Z2Eoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHZvaWQgaW50ZWxf bW9kZXNldF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlpbnQgaTsKKwlpbnQgaSwg cmV0OwogCiAJZHJtX21vZGVfY29uZmlnX2luaXQoZGV2KTsKIApAQCAtODcyMyw2ICs4NzI2LDEy IEBAIHZvaWQgaW50ZWxfbW9kZXNldF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiAKIAlm b3IgKGkgPSAwOyBpIDwgZGV2X3ByaXYtPm51bV9waXBlOyBpKyspIHsKIAkJaW50ZWxfY3J0Y19p bml0KGRldiwgaSk7CisJCWlmIChIQVNfUENIX1NQTElUKGRldikpIHsKKwkJCXJldCA9IGludGVs X3BsYW5lX2luaXQoZGV2LCBpKTsKKwkJCWlmIChyZXQpCisJCQkJRFJNX0VSUk9SKCJwbGFuZSAl ZCBpbml0IGZhaWxlZDogJWRcbiIsCisJCQkJCSAgaSwgcmV0KTsKKwkJfQogCX0KIAogCS8qIEp1 c3QgZGlzYWJsZSBpdCBvbmNlIGF0IHN0YXJ0dXAgKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK aW5kZXggMjNjNTYyMi4uNjI4NDU2MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTE3 NiwxMCArMTc2LDI2IEBAIHN0cnVjdCBpbnRlbF9jcnRjIHsKIAlib29sIHVzZV9wbGxfYTsKIH07 CiAKK3N0cnVjdCBpbnRlbF9wbGFuZSB7CisJc3RydWN0IGRybV9wbGFuZSBiYXNlOworCWVudW0g cGlwZSBwaXBlOworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJaW50IG1heF9k b3duc2NhbGU7CisJdTMyIGx1dF9yWzEwMjRdLCBsdXRfZ1sxMDI0XSwgbHV0X2JbMTAyNF07CisJ dm9pZCAoKnVwZGF0ZV9wbGFuZSkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJCQkgICAgIHN0 cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLCB1bnNpZ25lZCBsb25nIHN0YXJ0LAorCQkJICAgICBp bnQgY3J0Y194LCBpbnQgY3J0Y195LAorCQkJICAgICB1bnNpZ25lZCBpbnQgY3J0Y193LCB1bnNp Z25lZCBpbnQgY3J0Y19oLAorCQkJICAgICB1aW50MzJfdCB4LCB1aW50MzJfdCB5LAorCQkJICAg ICB1aW50MzJfdCBzcmNfdywgdWludDMyX3Qgc3JjX2gpOworCXZvaWQgKCpkaXNhYmxlX3BsYW5l KShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSk7Cit9OworCiAjZGVmaW5lIHRvX2ludGVsX2NydGMo eCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBpbnRlbF9jcnRjLCBiYXNlKQogI2RlZmluZSB0b19p bnRlbF9jb25uZWN0b3IoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBpbnRlbF9jb25uZWN0b3Is IGJhc2UpCiAjZGVmaW5lIHRvX2ludGVsX2VuY29kZXIoeCkgY29udGFpbmVyX29mKHgsIHN0cnVj dCBpbnRlbF9lbmNvZGVyLCBiYXNlKQogI2RlZmluZSB0b19pbnRlbF9mcmFtZWJ1ZmZlcih4KSBj b250YWluZXJfb2YoeCwgc3RydWN0IGludGVsX2ZyYW1lYnVmZmVyLCBiYXNlKQorI2RlZmluZSB0 b19pbnRlbF9wbGFuZSh4KSBjb250YWluZXJfb2YoeCwgc3RydWN0IGludGVsX3BsYW5lLCBiYXNl KQogCiAjZGVmaW5lIERJUF9IRUFERVJfU0laRQk1CiAKQEAgLTI4OSw2ICszMDUsNyBAQCBpbnRl bF9kcF9zZXRfbV9uKHN0cnVjdCBkcm1fY3J0YyAqY3J0Yywgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKm1vZGUsCiBleHRlcm4gYm9vbCBpbnRlbF9kcGRfaXNfZWRwKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpOwogZXh0ZXJuIHZvaWQgaW50ZWxfZWRwX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9l bmNvZGVyICosIGludCAqLCBpbnQgKik7CiBleHRlcm4gYm9vbCBpbnRlbF9lbmNvZGVyX2lzX3Bj aF9lZHAoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKK2V4dGVybiBpbnQgaW50ZWxfcGxh bmVfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSk7CiAKIC8qIGlu dGVsX3BhbmVsLmMgKi8KIGV4dGVybiB2b2lkIGludGVsX2ZpeGVkX3BhbmVsX21vZGUoc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKmZpeGVkX21vZGUsCkBAIC0zNzksNiArMzk2LDExIEBAIGV4dGVy biBpbnQgaW50ZWxfb3ZlcmxheV9hdHRycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpk YXRhLAogZXh0ZXJuIHZvaWQgaW50ZWxfZmJfb3V0cHV0X3BvbGxfY2hhbmdlZChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KTsKIGV4dGVybiB2b2lkIGludGVsX2ZiX3Jlc3RvcmVfbW9kZShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KTsKIAorZXh0ZXJuIHZvaWQgYXNzZXJ0X3BpcGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUgcGlwZSwKKwkJCWJvb2wgc3RhdGUpOwor I2RlZmluZSBhc3NlcnRfcGlwZV9lbmFibGVkKGQsIHApIGFzc2VydF9waXBlKGQsIHAsIHRydWUp CisjZGVmaW5lIGFzc2VydF9waXBlX2Rpc2FibGVkKGQsIHApIGFzc2VydF9waXBlKGQsIHAsIGZh bHNlKQorCiBleHRlcm4gdm9pZCBpbnRlbF9pbml0X2Nsb2NrX2dhdGluZyhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KTsKIGV4dGVybiB2b2lkIGludGVsX3dyaXRlX2VsZChzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIsCiAJCQkgICAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2ZiLmMKaW5kZXggZGMxZGI0Zi4uMDY4YjA4NiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9mYi5jCkBAIC0yNzAsOCArMjcwLDE0IEBAIHZvaWQgaW50ZWxfZmJfcmVzdG9yZV9tb2Rl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCiB7CiAJaW50IHJldDsKIAlkcm1faTkxNV9wcml2YXRl X3QgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgZHJtX21vZGVfY29uZmln ICpjb25maWcgPSAmZGV2LT5tb2RlX2NvbmZpZzsKKwlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsK IAogCXJldCA9IGRybV9mYl9oZWxwZXJfcmVzdG9yZV9mYmRldl9tb2RlKCZkZXZfcHJpdi0+ZmJk ZXYtPmhlbHBlcik7CiAJaWYgKHJldCkKIAkJRFJNX0RFQlVHKCJmYWlsZWQgdG8gcmVzdG9yZSBj cnRjIG1vZGVcbiIpOworCisJLyogQmUgc3VyZSB0byBzaHV0IG9mZiBhbnkgcGxhbmVzIHRoYXQg bWF5IGJlIGFjdGl2ZSAqLworCWxpc3RfZm9yX2VhY2hfZW50cnkocGxhbmUsICZjb25maWctPnBs YW5lX2xpc3QsIGhlYWQpCisJCXBsYW5lLT5mdW5jcy0+ZGlzYWJsZV9wbGFuZShwbGFuZSk7CiB9 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmE0ZTk3MjEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9zcHJpdGUuYwpAQCAtMCwwICsxLDQzMSBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAy MDExIEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl ZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2Yg dGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNv ZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9u LCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29w eSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFu ZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0 byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRv IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5v dGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBw YXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg cG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJP VklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgor ICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBP RiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB TkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9S IENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9U SEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JU IE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLAorICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04g V0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKKyAq IFNPRlRXQVJFLgorICoKKyAqIEF1dGhvcnM6CisgKiAgIEplc3NlIEJhcm5lcyA8amJhcm5lc0B2 aXJ0dW91c2dlZWsub3JnPgorICoKKyAqIE5ldyBwbGFuZS9zcHJpdGUgaGFuZGxpbmcuCisgKgor ICogVGhlIG9sZGVyIGNoaXBzIGhhZCBhIHNlcGFyYXRlIGludGVyZmFjZSBmb3IgcHJvZ3JhbW1p bmcgcGxhbmUgcmVsYXRlZAorICogcmVnaXN0ZXJzOyBuZXdlciBvbmVzIGFyZSBtdWNoIHNpbXBs ZXIgYW5kIHdlIGNhbiB1c2UgdGhlIG5ldyBEUk0gcGxhbmUKKyAqIHN1cHBvcnQuCisgKi8KKyNp bmNsdWRlICJkcm1QLmgiCisjaW5jbHVkZSAiZHJtX2NydGMuaCIKKyNpbmNsdWRlICJpbnRlbF9k cnYuaCIKKyNpbmNsdWRlICJpOTE1X2RybS5oIgorI2luY2x1ZGUgImk5MTVfZHJ2LmgiCisKKy8q CisgKiBOb3RlIG9uIHJlZmNvdW50aW5nOgorICogV2hlbiB0aGUgdXNlciBjcmVhdGVzIGFuIGZi IGZvciB0aGUgR0VNIG9iamVjdCB0byBiZSB1c2VkIGZvciB0aGUgcGxhbmUsCisgKiBhIHJlZiBp cyB0YWtlbiBvbiB0aGUgb2JqZWN0LiAgSG93ZXZlciwgaWYgdGhlIGFwcGxpY2F0aW9uIGV4aXRz IGJlZm9yZQorICogZGlzYWJsaW5nIHRoZSBwbGFuZSwgdGhlIERSTSBjbG9zZSBoYW5kbGluZyB3 aWxsIGZyZWUgYWxsIHRoZSBmYnMgYW5kCisgKiB1bmxlc3Mgd2UgdGFrZSBhIHJlZiBvbiB0aGUg b2JqZWN0LCBpdCB3aWxsIGJlIGRlc3Ryb3llZCBiZWZvcmUgdGhlCisgKiBwbGFuZSBkaXNhYmxl IGhvb2sgaXMgY2FsbGVkLCBjYXVzaW5nIG9idmlvdXMgdHJvdWJsZSB3aXRoIG91ciBlZmZvcnRz CisgKiB0byBsb29rIHVwIGFuZCB1bnBpbiB0aGUgb2JqZWN0LiAgU28gd2UgdGFrZSBhIHJlZiBh ZnRlciB3ZSBtb3ZlIHRoZQorICogb2JqZWN0IHRvIHRoZSBkaXNwbGF5IHBsYW5lIHNvIGl0IHdv bid0IGJlIGRlc3Ryb3llZCB1bnRpbCBvdXIgZGlzYWJsZQorICogaG9vayBpcyBjYWxsZWQgYW5k IHdlIGRyb3Agb3VyIHByaXZhdGUgcmVmZXJlbmNlLgorICovCisKK3N0YXRpYyB2b2lkCitpdmJf dXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2ZyYW1lYnVm ZmVyICpmYiwKKwkJIHVuc2lnbmVkIGxvbmcgc3RhcnQsIGludCBjcnRjX3gsIGludCBjcnRjX3ks CisJCSB1bnNpZ25lZCBpbnQgY3J0Y193LCB1bnNpZ25lZCBpbnQgY3J0Y19oLAorCQkgdWludDMy X3QgeCwgdWludDMyX3QgeSwKKwkJIHVpbnQzMl90IHNyY193LCB1aW50MzJfdCBzcmNfaCkKK3sK KwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBpbnRlbF9wbGFu ZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7CisJaW50IHBpcGUgPSBpbnRl bF9wbGFuZS0+cGlwZTsKKwl1MzIgc3ByY3RsLCBzcHJzY2FsZSA9IDA7CisJdTMyIHJlZyA9IFNQ UkNUTChwaXBlKTsKKworCXNwcmN0bCA9IEk5MTVfUkVBRChyZWcpOworCisJLyogTWFzayBvdXQg cGl4ZWwgZm9ybWF0IGJpdHMgaW4gY2FzZSB3ZSBjaGFuZ2UgaXQgKi8KKwlzcHJjdGwgJj0gfihT UFJJVEVfREVTVF9LRVkgfCBTUFJJVEVfU09VUkNFX0tFWSk7CisJc3ByY3RsICY9IH5TUFJJVEVf UElYRk9STUFUX01BU0s7CisJc3ByY3RsICY9IH5TUFJJVEVfUkdCX09SREVSX1JHQlg7CisJc3By Y3RsICY9IH5TUFJJVEVfWVVWX0JZVEVfT1JERVJfTUFTSzsKKworCXN3aXRjaCAoZmItPnBpeGVs X2Zvcm1hdCkgeworCWNhc2UgVjRMMl9QSVhfRk1UX0JHUjMyOgorCQlzcHJjdGwgfD0gU1BSSVRF X0ZPUk1BVF9SR0JYODg4OworCQlicmVhazsKKwljYXNlIFY0TDJfUElYX0ZNVF9SR0IzMjoKKwkJ c3ByY3RsIHw9IFNQUklURV9GT1JNQVRfUkdCWDg4OCB8IFNQUklURV9SR0JfT1JERVJfUkdCWDsK KwkJYnJlYWs7CisJY2FzZSBWNEwyX1BJWF9GTVRfWVVZVjoKKwkJc3ByY3RsIHw9IFNQUklURV9G T1JNQVRfWVVWNDIyIHwgU1BSSVRFX1lVVl9PUkRFUl9ZVVlWOworCQlicmVhazsKKwljYXNlIFY0 TDJfUElYX0ZNVF9ZVllVOgorCQlzcHJjdGwgfD0gU1BSSVRFX0ZPUk1BVF9ZVVY0MjIgfCBTUFJJ VEVfWVVWX09SREVSX1lWWVU7CisJCWJyZWFrOworCWNhc2UgVjRMMl9QSVhfRk1UX1VZVlk6CisJ CXNwcmN0bCB8PSBTUFJJVEVfRk9STUFUX1lVVjQyMiB8IFNQUklURV9ZVVZfT1JERVJfVVlWWTsK KwkJYnJlYWs7CisJY2FzZSBWNEwyX1BJWF9GTVRfVllVWToKKwkJc3ByY3RsIHw9IFNQUklURV9G T1JNQVRfWVVWNDIyIHwgU1BSSVRFX1lVVl9PUkRFUl9WWVVZOworCQlicmVhazsKKwlkZWZhdWx0 OgorCQlEUk1fREVCVUdfRFJJVkVSKCJiYWQgcGl4ZWwgZm9ybWF0LCBhc3N1bWluZyBSR0JYODg4 XG4iKTsKKwkJc3ByY3RsIHw9IERWU19GT1JNQVRfUkdCWDg4ODsKKwkJYnJlYWs7CisJfQorCisJ c3ByY3RsIHw9IFNQUklURV9USUxFRDsKKworCS8qIG11c3QgZGlzYWJsZSAqLworCXNwcmN0bCB8 PSBTUFJJVEVfVFJJQ0tMRV9GRUVEX0RJU0FCTEU7CisJc3ByY3RsIHw9IFNQUklURV9FTkFCTEU7 CisKKwkvKiBTaXplcyBhcmUgMCBiYXNlZCAqLworCXNyY193LS07CisJc3JjX2gtLTsKKwljcnRj X3ctLTsKKwljcnRjX2gtLTsKKworCS8qIEFkanVzdCB3YXRlcm1hcmtzIGFzIG5lZWRlZCAqLwor CUk5MTVfV1JJVEUoV00xU19MUF9JTEssIDB4MTAwKTsKKwlJOTE1X1dSSVRFKFdNMlNfTFBfSVZC LCAweDEwMCk7CisJSTkxNV9XUklURShXTTNTX0xQX0lWQiwgMHgxMDApOworCisJaWYgKGNydGNf dyAhPSBzcmNfdyB8fCBjcnRjX2ggIT0gc3JjX2gpCisJCXNwcnNjYWxlID0gU1BSSVRFX1NDQUxF X0VOQUJMRSB8IChzcmNfaCA8PCAxNikgfCBzcmNfdzsKKworCUk5MTVfV1JJVEUoU1BSU1RSSURF KHBpcGUpLCBmYi0+cGl0Y2gpOworCUk5MTVfV1JJVEUoU1BSUE9TKHBpcGUpLCAoY3J0Y195IDw8 IDE2KSB8IGNydGNfeCk7CisJSTkxNV9XUklURShTUFJUSUxFT0ZGKHBpcGUpLCAoeSA8PCAxNikg fCB4KTsKKwlJOTE1X1dSSVRFKFNQUlNJWkUocGlwZSksIChjcnRjX2ggPDwgMTYpIHwgY3J0Y193 KTsKKwlJOTE1X1dSSVRFKFNQUlNDQUxFKHBpcGUpLCBzcHJzY2FsZSk7CisJSTkxNV9XUklURShy ZWcsIHNwcmN0bCk7CisJSTkxNV9XUklURShTUFJTVVJGKHBpcGUpLCBzdGFydCk7CisJUE9TVElO R19SRUFEKFNQUlNVUkYocGlwZSkpOworfQorCitzdGF0aWMgdm9pZAoraXZiX2Rpc2FibGVfcGxh bmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IHBsYW5lLT5kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9faW50ZWxf cGxhbmUocGxhbmUpOworCWludCBwaXBlID0gaW50ZWxfcGxhbmUtPnBpcGU7CisKKwlJOTE1X1dS SVRFKFNQUkNUTChwaXBlKSwgSTkxNV9SRUFEKFNQUkNUTChwaXBlKSkgJiB+U1BSSVRFX0VOQUJM RSk7CisJSTkxNV9XUklURShTUFJTQ0FMRShwaXBlKSwgMCk7CisJSTkxNV9XUklURShTUFJTVVJG KHBpcGUpLCAwKTsKKwlQT1NUSU5HX1JFQUQoU1BSU1VSRihwaXBlKSk7CisJaW50ZWxfd2FpdF9m b3JfdmJsYW5rKGRldiwgcGlwZSk7Cit9CisKK3N0YXRpYyB2b2lkCitzbmJfdXBkYXRlX3BsYW5l KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiwKKwkJ IHVuc2lnbmVkIGxvbmcgc3RhcnQsIGludCBjcnRjX3gsIGludCBjcnRjX3ksCisJCSB1bnNpZ25l ZCBpbnQgY3J0Y193LCB1bnNpZ25lZCBpbnQgY3J0Y19oLAorCQkgdWludDMyX3QgeCwgdWludDMy X3QgeSwKKwkJIHVpbnQzMl90IHNyY193LCB1aW50MzJfdCBzcmNfaCkKK3sKKwlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gcGxhbmUtPmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOworCXN0cnVjdCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxh bmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7CisJaW50IHBpcGUgPSBpbnRlbF9wbGFuZS0+cGlw ZTsKKwl1MzIgZHZzY250ciwgZHZzc2NhbGUgPSAwOworCXUzMiByZWcgPSBEVlNDTlRSKHBpcGUp OworCisJZHZzY250ciA9IEk5MTVfUkVBRChyZWcpOworCisJLyogTWFzayBvdXQgcGl4ZWwgZm9y bWF0IGJpdHMgaW4gY2FzZSB3ZSBjaGFuZ2UgaXQgKi8KKwlkdnNjbnRyICY9IH4oRFZTX0RFU1Rf S0VZIHwgRFZTX1NPVVJDRV9LRVkpOworCWR2c2NudHIgJj0gfkRWU19QSVhGT1JNQVRfTUFTSzsK KwlkdnNjbnRyICY9IH5EVlNfUkdCX09SREVSX1JHQlg7CisJZHZzY250ciAmPSB+RFZTX1lVVl9C WVRFX09SREVSX01BU0s7CisKKwlzd2l0Y2ggKGZiLT5waXhlbF9mb3JtYXQpIHsKKwljYXNlIFY0 TDJfUElYX0ZNVF9CR1IzMjoKKwkJZHZzY250ciB8PSBEVlNfRk9STUFUX1JHQlg4ODg7CisJCWJy ZWFrOworCWNhc2UgVjRMMl9QSVhfRk1UX1JHQjMyOgorCQlkdnNjbnRyIHw9IERWU19GT1JNQVRf UkdCWDg4OCB8IERWU19SR0JfT1JERVJfUkdCWDsKKwkJYnJlYWs7CisJY2FzZSBWNEwyX1BJWF9G TVRfWVVZVjoKKwkJZHZzY250ciB8PSBEVlNfRk9STUFUX1lVVjQyMiB8IERWU19ZVVZfT1JERVJf WVVZVjsKKwkJYnJlYWs7CisJY2FzZSBWNEwyX1BJWF9GTVRfWVZZVToKKwkJZHZzY250ciB8PSBE VlNfRk9STUFUX1lVVjQyMiB8IERWU19ZVVZfT1JERVJfWVZZVTsKKwkJYnJlYWs7CisJY2FzZSBW NEwyX1BJWF9GTVRfVVlWWToKKwkJZHZzY250ciB8PSBEVlNfRk9STUFUX1lVVjQyMiB8IERWU19Z VVZfT1JERVJfVVlWWTsKKwkJYnJlYWs7CisJY2FzZSBWNEwyX1BJWF9GTVRfVllVWToKKwkJZHZz Y250ciB8PSBEVlNfRk9STUFUX1lVVjQyMiB8IERWU19ZVVZfT1JERVJfVllVWTsKKwkJYnJlYWs7 CisJZGVmYXVsdDoKKwkJRFJNX0RFQlVHX0RSSVZFUigiYmFkIHBpeGVsIGZvcm1hdCwgYXNzdW1p bmcgUkdCWDg4OFxuIik7CisJCWR2c2NudHIgfD0gRFZTX0ZPUk1BVF9SR0JYODg4OworCQlicmVh azsKKwl9CisKKwlkdnNjbnRyIHw9IERWU19USUxFRDsKKworCS8qIG11c3QgZGlzYWJsZSAqLwor CWR2c2NudHIgfD0gRFZTX1RSSUNLTEVfRkVFRF9ESVNBQkxFOworCWR2c2NudHIgfD0gRFZTX0VO QUJMRTsKKworCS8qIFNpemVzIGFyZSAwIGJhc2VkICovCisJc3JjX3ctLTsKKwlzcmNfaC0tOwor CWNydGNfdy0tOworCWNydGNfaC0tOworCisJaWYgKGNydGNfdyAhPSBzcmNfdyB8fCBjcnRjX2gg IT0gc3JjX2gpCisJCWR2c3NjYWxlID0gRFZTX1NDQUxFX0VOQUJMRSB8IChzcmNfaCA8PCAxNikg fCBzcmNfdzsKKworCUk5MTVfV1JJVEUoRFZTU1RSSURFKHBpcGUpLCBmYi0+cGl0Y2gpOworCUk5 MTVfV1JJVEUoRFZTUE9TKHBpcGUpLCAoY3J0Y195IDw8IDE2KSB8IGNydGNfeCk7CisJSTkxNV9X UklURShEVlNUSUxFT0ZGKHBpcGUpLCAoeSA8PCAxNikgfCB4KTsKKwlJOTE1X1dSSVRFKERWU1NJ WkUocGlwZSksIChjcnRjX2ggPDwgMTYpIHwgY3J0Y193KTsKKwlJOTE1X1dSSVRFKERWU1NDQUxF KHBpcGUpLCBkdnNzY2FsZSk7CisJSTkxNV9XUklURShyZWcsIGR2c2NudHIpOworCUk5MTVfV1JJ VEUoRFZTU1VSRihwaXBlKSwgc3RhcnQpOworCVBPU1RJTkdfUkVBRChEVlNTVVJGKHBpcGUpKTsK K30KKworc3RhdGljIHZvaWQKK3NuYl9kaXNhYmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwbGFuZS0+ZGV2OworCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CisJc3RydWN0IGlu dGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKKwlpbnQgcGlw ZSA9IGludGVsX3BsYW5lLT5waXBlOworCisJSTkxNV9XUklURShEVlNDTlRSKHBpcGUpLCBJOTE1 X1JFQUQoRFZTQ05UUihwaXBlKSkgJiB+RFZTX0VOQUJMRSk7CisJSTkxNV9XUklURShEVlNTQ0FM RShwaXBlKSwgMCk7CisJSTkxNV9XUklURShEVlNTVVJGKHBpcGUpLCAwKTsKKwlQT1NUSU5HX1JF QUQoRFZTU1VSRihwaXBlKSk7CisJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldiwgcGlwZSk7Cit9 CisKK3N0YXRpYyBpbnQKK2ludGVsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFu ZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAorCQkgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpm YiwgaW50IGNydGNfeCwgaW50IGNydGNfeSwKKwkJICAgdW5zaWduZWQgaW50IGNydGNfdywgdW5z aWduZWQgaW50IGNydGNfaCwKKwkJICAgdWludDMyX3Qgc3JjX3gsIHVpbnQzMl90IHNyY195LAor CQkgICB1aW50MzJfdCBzcmNfdywgdWludDMyX3Qgc3JjX2gpCit7CisJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IHBsYW5lLT5kZXY7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKKwlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRv X2ludGVsX2NydGMoY3J0Yyk7CisJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRv X2ludGVsX3BsYW5lKHBsYW5lKTsKKwlzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmludGVsX2Zi OworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosICpvbGRfb2JqOworCWludCBwaXBl ID0gaW50ZWxfcGxhbmUtPnBpcGU7CisJdW5zaWduZWQgbG9uZyBzdGFydDsKKwlpbnQgcmV0ID0g MDsKKwlpbnQgeCA9IHNyY194ID4+IDE2LCB5ID0gc3JjX3kgPj4gMTY7CisJaW50IHByaW1hcnlf dyA9IGNydGMtPm1vZGUuaGRpc3BsYXksIHByaW1hcnlfaCA9IGNydGMtPm1vZGUudmRpc3BsYXk7 CisJYm9vbCBkaXNhYmxlX3ByaW1hcnkgPSBmYWxzZTsKKworCWludGVsX2ZiID0gdG9faW50ZWxf ZnJhbWVidWZmZXIoZmIpOworCW9iaiA9IGludGVsX2ZiLT5vYmo7CisKKwlvbGRfb2JqID0gaW50 ZWxfcGxhbmUtPm9iajsKKworCS8qIFBpcGUgbXVzdCBiZSBydW5uaW5nLi4uICovCisJaWYgKCEo STkxNV9SRUFEKFBJUEVDT05GKHBpcGUpKSAmIFBJUEVDT05GX0VOQUJMRSkpCisJCXJldHVybiAt RUlOVkFMOworCisJaWYgKGNydGNfeCA+PSBwcmltYXJ5X3cgfHwgY3J0Y195ID49IHByaW1hcnlf aCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKiBEb24ndCBtb2RpZnkgYW5vdGhlciBwaXBlJ3Mg cGxhbmUgKi8KKwlpZiAoaW50ZWxfcGxhbmUtPnBpcGUgIT0gaW50ZWxfY3J0Yy0+cGlwZSkKKwkJ cmV0dXJuIC1FSU5WQUw7CisKKwkvKgorCSAqIENsYW1wIHRoZSB3aWR0aCAmIGhlaWdodCBpbnRv IHRoZSB2aXNpYmxlIGFyZWEuICBOb3RlIHdlIGRvbid0CisJICogdHJ5IHRvIHNjYWxlIHRoZSBz b3VyY2UgaWYgcGFydCBvZiB0aGUgdmlzaWJsZSByZWdpb24gaXMgb2Zmc2NyZWVuLgorCSAqIFRo ZSBjYWxsZXIgbXVzdCBoYW5kbGUgdGhhdCBieSBhZGp1c3Rpbmcgc291cmNlIG9mZnNldCBhbmQg c2l6ZS4KKwkgKi8KKwlpZiAoY3J0Y194IDwgMCkgeworCQljcnRjX3cgKz0gY3J0Y194OworCQlj cnRjX3ggPSAwOworCX0KKwlpZiAoY3J0Y194ICsgY3J0Y193ID4gcHJpbWFyeV93KQorCQljcnRj X3cgPSBwcmltYXJ5X3cgLSBjcnRjX3g7CisKKwlpZiAoY3J0Y195IDwgMCkgeworCQljcnRjX2gg Kz0gY3J0Y195OworCQljcnRjX3kgPSAwOworCX0KKwlpZiAoY3J0Y195ICsgY3J0Y19oID4gcHJp bWFyeV9oKQorCQljcnRjX2ggPSBwcmltYXJ5X2ggLSBjcnRjX3k7CisKKwkvKgorCSAqIFdlIGNh biB0YWtlIGEgbGFyZ2VyIHNvdXJjZSBhbmQgc2NhbGUgaXQgZG93biwgYnV0CisJICogb25seSBz byBtdWNoLi4uICAxNnggaXMgdGhlIG1heCBvbiBTTkIuCisJICovCisJaWYgKCgoc3JjX3cgKiBz cmNfaCkgLyAoY3J0Y193ICogY3J0Y19oKSkgPiBpbnRlbF9wbGFuZS0+bWF4X2Rvd25zY2FsZSkK KwkJcmV0dXJuIC1FSU5WQUw7CisKKwkvKgorCSAqIElmIHRoZSBzcHJpdGUgaXMgY29tcGxldGVs eSBjb3ZlcmluZyB0aGUgcHJpbWFyeSBwbGFuZSwKKwkgKiB3ZSBjYW4gZGlzYWJsZSB0aGUgcHJp bWFyeSBhbmQgc2F2ZSBwb3dlci4KKwkgKi8KKwlpZiAoKGNydGNfeCA9PSAwKSAmJiAoY3J0Y195 ID09IDApICYmCisJICAgIChjcnRjX3cgPT0gcHJpbWFyeV93KSAmJiAoY3J0Y19oID09IHByaW1h cnlfaCkpCisJCWRpc2FibGVfcHJpbWFyeSA9IHRydWU7CisKKwltdXRleF9sb2NrKCZkZXYtPnN0 cnVjdF9tdXRleCk7CisKKwlpZiAob2JqLT50aWxpbmdfbW9kZSAhPSBJOTE1X1RJTElOR19YKSB7 CisJCURSTV9FUlJPUigicGxhbmUgc3VyZmFjZXMgbXVzdCBiZSBYIHRpbGVkXG4iKTsKKwkJcmV0 ID0gLUVJTlZBTDsKKwkJZ290byBvdXRfdW5sb2NrOworCX0KKworCXJldCA9IGludGVsX3Bpbl9h bmRfZmVuY2VfZmJfb2JqKGRldiwgb2JqLCBOVUxMKTsKKwlpZiAocmV0KSB7CisJCURSTV9FUlJP UigiZmFpbGVkIHRvIHBpbiBvYmplY3RcbiIpOworCQlnb3RvIG91dF91bmxvY2s7CisJfQorCisJ ZHJtX2dlbV9vYmplY3RfcmVmZXJlbmNlKCZvYmotPmJhc2UpOworCisJaW50ZWxfcGxhbmUtPm9i aiA9IG9iajsKKworCXN0YXJ0ID0gb2JqLT5ndHRfb2Zmc2V0OworCisJaW50ZWxfcGxhbmUtPnVw ZGF0ZV9wbGFuZShwbGFuZSwgZmIsIHN0YXJ0LCBjcnRjX3gsIGNydGNfeSwKKwkJCQkgIGNydGNf dywgY3J0Y19oLCB4LCB5LCBzcmNfdywgc3JjX2gpOworCisJLyogVW5waW4gb2xkIG9iaiBhZnRl ciBuZXcgb25lIGlzIGFjdGl2ZSB0byBhdm9pZCB1Z2xpbmVzcyAqLworCWlmIChvbGRfb2JqKSB7 CisJCS8qCisJCSAqIEl0J3MgZmFpcmx5IGNvbW1vbiB0byBzaW1wbHkgdXBkYXRlIHRoZSBwb3Np dGlvbiBvZgorCQkgKiBhbiBleGlzdGluZyBvYmplY3QuICBJbiB0aGF0IGNhc2UsIHdlIGRvbid0 IG5lZWQgdG8KKwkJICogd2FpdCBmb3IgdmJsYW5rIHRvIGF2b2lkIHVnbGluZXNzLCB3ZSBvbmx5 IG5lZWQgdG8KKwkJICogZG8gdGhlIHBpbiAmIHJlZiBib29ra2VlcGluZy4KKwkJICovCisJCWlm IChvbGRfb2JqICE9IG9iaikKKwkJCWludGVsX3dhaXRfZm9yX3ZibGFuayhkZXYsIHRvX2ludGVs X2NydGMoY3J0YyktPnBpcGUpOworCQlpOTE1X2dlbV9vYmplY3RfdW5waW4ob2xkX29iaik7CisJ CWRybV9nZW1fb2JqZWN0X3VucmVmZXJlbmNlKCZvbGRfb2JqLT5iYXNlKTsKKwl9CisKK291dF91 bmxvY2s6CisJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisKKwlyZXR1cm4gcmV0 OworfQorCitzdGF0aWMgaW50CitpbnRlbF9kaXNhYmxlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lKQoreworCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwbGFuZS0+ZGV2OworCXN0cnVj dCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7CisJaW50 IHJldCA9IDA7CisKKwltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7CisKKwlpbnRlbF9w bGFuZS0+ZGlzYWJsZV9wbGFuZShwbGFuZSk7CisKKwlpZiAoIWludGVsX3BsYW5lLT5vYmopCisJ CWdvdG8gb3V0X3VubG9jazsKKworCXJldCA9IGk5MTVfZ2VtX29iamVjdF9maW5pc2hfZ3B1KGlu dGVsX3BsYW5lLT5vYmopOworCWlmIChyZXQpCisJCWdvdG8gb3V0X3VubG9jazsKKworCWk5MTVf Z2VtX29iamVjdF91bnBpbihpbnRlbF9wbGFuZS0+b2JqKTsKKworCWRybV9nZW1fb2JqZWN0X3Vu cmVmZXJlbmNlKCZpbnRlbF9wbGFuZS0+b2JqLT5iYXNlKTsKKworb3V0X3VubG9jazoKKwlpbnRl bF9wbGFuZS0+b2JqID0gTlVMTDsKKworCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgp OworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHZvaWQgaW50ZWxfZGVzdHJveV9wbGFuZShz dHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKK3sKKwlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3Bs YW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmUpOworCWludGVsX2Rpc2FibGVfcGxhbmUocGxhbmUp OworCWRybV9wbGFuZV9jbGVhbnVwKHBsYW5lKTsKKwlrZnJlZShpbnRlbF9wbGFuZSk7Cit9CisK K3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2Z1bmNzIGludGVsX3BsYW5lX2Z1bmNzID0g eworCS51cGRhdGVfcGxhbmUgPSBpbnRlbF91cGRhdGVfcGxhbmUsCisJLmRpc2FibGVfcGxhbmUg PSBpbnRlbF9kaXNhYmxlX3BsYW5lLAorCS5kZXN0cm95ID0gaW50ZWxfZGVzdHJveV9wbGFuZSwK K307CisKK3N0YXRpYyB1aW50MzJfdCBzbmJfcGxhbmVfZm9ybWF0c1tdID0geworCVY0TDJfUElY X0ZNVF9CR1IzMiwKKwlWNEwyX1BJWF9GTVRfUkdCMzIsCisJVjRMMl9QSVhfRk1UX1lVWVYsCisJ VjRMMl9QSVhfRk1UX1lWWVUsCisJVjRMMl9QSVhfRk1UX1VZVlksCisJVjRMMl9QSVhfRk1UX1ZZ VVksCit9OworCitpbnQKK2ludGVsX3BsYW5lX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg ZW51bSBwaXBlIHBpcGUpCit7CisJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZTsKKwl1 bnNpZ25lZCBsb25nIHBvc3NpYmxlX2NydGNzOworCWludCByZXQ7CisKKwlpZiAoIShJU19HRU42 KGRldikgfHwgSVNfR0VONyhkZXYpKSkgeworCQlEUk1fRVJST1IoIm5ldyBwbGFuZSBjb2RlIG9u bHkgZm9yIFNOQitcbiIpOworCQlyZXR1cm4gLUVOT0RFVjsKKwl9CisKKwlpbnRlbF9wbGFuZSA9 IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBpbnRlbF9wbGFuZSksIEdGUF9LRVJORUwpOworCWlmICgh aW50ZWxfcGxhbmUpCisJCXJldHVybiAtRU5PTUVNOworCisJaWYgKElTX0dFTjYoZGV2KSkgewor CQlpbnRlbF9wbGFuZS0+bWF4X2Rvd25zY2FsZSA9IDE2OworCQlpbnRlbF9wbGFuZS0+dXBkYXRl X3BsYW5lID0gc25iX3VwZGF0ZV9wbGFuZTsKKwkJaW50ZWxfcGxhbmUtPmRpc2FibGVfcGxhbmUg PSBzbmJfZGlzYWJsZV9wbGFuZTsKKwl9IGVsc2UgaWYgKElTX0dFTjcoZGV2KSkgeworCQlpbnRl bF9wbGFuZS0+bWF4X2Rvd25zY2FsZSA9IDI7CisJCWludGVsX3BsYW5lLT51cGRhdGVfcGxhbmUg PSBpdmJfdXBkYXRlX3BsYW5lOworCQlpbnRlbF9wbGFuZS0+ZGlzYWJsZV9wbGFuZSA9IGl2Yl9k aXNhYmxlX3BsYW5lOworCX0KKworCWludGVsX3BsYW5lLT5waXBlID0gcGlwZTsKKwlwb3NzaWJs ZV9jcnRjcyA9ICgxIDw8IHBpcGUpOworCXJldCA9IGRybV9wbGFuZV9pbml0KGRldiwgJmludGVs X3BsYW5lLT5iYXNlLCBwb3NzaWJsZV9jcnRjcywKKwkJCSAgICAgJmludGVsX3BsYW5lX2Z1bmNz LCBzbmJfcGxhbmVfZm9ybWF0cywKKwkJCSAgICAgQVJSQVlfU0laRShzbmJfcGxhbmVfZm9ybWF0 cykpOworCWlmIChyZXQpCisJCWtmcmVlKGludGVsX3BsYW5lKTsKKworCXJldHVybiByZXQ7Cit9 CisKLS0gCjEuNy40LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==