From mboxrd@z Thu Jan 1 00:00:00 1970 From: Patchwork Subject: =?utf-8?q?=E2=9C=97_Fi=2ECI=2ECHECKPATCH=3A_warning_f?= =?utf-8?q?or_series_starting_with_=5B1/7=5D_drm=3A_Add_drm/drm=5Futil=2Eh?= =?utf-8?q?_header_file?= Date: Wed, 05 Sep 2018 14:05:10 -0000 Message-ID: <20180905140510.5305.82587@emeril.freedesktop.org> References: <20180905135711.28370-1-daniel.vetter@ffwll.ch> Reply-To: intel-gfx@lists.freedesktop.org Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180905135711.28370-1-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org PT0gU2VyaWVzIERldGFpbHMgPT0KClNlcmllczogc2VyaWVzIHN0YXJ0aW5nIHdpdGggWzEvN10g ZHJtOiBBZGQgZHJtL2RybV91dGlsLmggaGVhZGVyIGZpbGUKVVJMICAgOiBodHRwczovL3BhdGNo d29yay5mcmVlZGVza3RvcC5vcmcvc2VyaWVzLzQ5MTg0LwpTdGF0ZSA6IHdhcm5pbmcKCj09IFN1 bW1hcnkgPT0KCiQgZGltIGNoZWNrcGF0Y2ggb3JpZ2luL2RybS10aXAKZDVhNjA1ZjI3NmQ5IGRy bTogQWRkIGRybS9kcm1fdXRpbC5oIGhlYWRlciBmaWxlCi06MTQ0OiBXQVJOSU5HOkZJTEVfUEFU SF9DSEFOR0VTOiBhZGRlZCwgbW92ZWQgb3IgZGVsZXRlZCBmaWxlKHMpLCBkb2VzIE1BSU5UQUlO RVJTIG5lZWQgdXBkYXRpbmc/CiMxNDQ6IApuZXcgZmlsZSBtb2RlIDEwMDY0NAoKLToxNDk6IFdB Uk5JTkc6U1BEWF9MSUNFTlNFX1RBRzogTWlzc2luZyBvciBtYWxmb3JtZWQgU1BEWC1MaWNlbnNl LUlkZW50aWZpZXIgdGFnIGluIGxpbmUgMQojMTQ5OiBGSUxFOiBpbmNsdWRlL2RybS9kcm1fdXRp bC5oOjE6CisvKgoKLToxNzg6IEVSUk9SOk1VTFRJU1RBVEVNRU5UX01BQ1JPX1VTRV9ET19XSElM RTogTWFjcm9zIHN0YXJ0aW5nIHdpdGggaWYgc2hvdWxkIGJlIGVuY2xvc2VkIGJ5IGEgZG8gLSB3 aGlsZSBsb29wIHRvIGF2b2lkIHBvc3NpYmxlIGlmL2Vsc2UgbG9naWMgZGVmZWN0cwojMTc4OiBG SUxFOiBpbmNsdWRlL2RybS9kcm1fdXRpbC5oOjMwOgorI2RlZmluZSBmb3JfZWFjaF9pZihjb25k aXRpb24pIGlmICghKGNvbmRpdGlvbikpIHt9IGVsc2UKCi06MTc4OiBXQVJOSU5HOkJSQUNFUzog YnJhY2VzIHt9IGFyZSBub3QgbmVjZXNzYXJ5IGZvciBzaW5nbGUgc3RhdGVtZW50IGJsb2Nrcwoj MTc4OiBGSUxFOiBpbmNsdWRlL2RybS9kcm1fdXRpbC5oOjMwOgorI2RlZmluZSBmb3JfZWFjaF9p Zihjb25kaXRpb24pIGlmICghKGNvbmRpdGlvbikpIHt9IGVsc2UKCnRvdGFsOiAxIGVycm9ycywg MyB3YXJuaW5ncywgMCBjaGVja3MsIDEwNSBsaW5lcyBjaGVja2VkCjQxNjBlNDAwZDU4OCBkcm06 IERyb3AgZHJtUC5oIGZyb20gZHJtX2Nvbm5lY3Rvci5jCi06NTY6IFdBUk5JTkc6Tk9fQVVUSE9S X1NJR05fT0ZGOiBNaXNzaW5nIFNpZ25lZC1vZmYtYnk6IGxpbmUgYnkgbm9taW5hbCBwYXRjaCBh dXRob3IgJ0RhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+JwoKdG90YWw6IDAg ZXJyb3JzLCAxIHdhcm5pbmdzLCAwIGNoZWNrcywgMzAgbGluZXMgY2hlY2tlZApjMTdlOTI5MWRh YTQgZHJtOiBkcm9wIGRybVAuaCBpbmNsdWRlIGZyb20gZHJtX3BsYW5lLmMKLTo5NDogV0FSTklO RzpOT19BVVRIT1JfU0lHTl9PRkY6IE1pc3NpbmcgU2lnbmVkLW9mZi1ieTogbGluZSBieSBub21p bmFsIHBhdGNoIGF1dGhvciAnRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4n Cgp0b3RhbDogMCBlcnJvcnMsIDEgd2FybmluZ3MsIDAgY2hlY2tzLCA1NSBsaW5lcyBjaGVja2Vk CmJiODUxZTgzMzdhNSBkcm06IGRyb3AgZHJtUC5oIGluY2x1ZGUgZnJvbSBkcm1fY3J0Yy5jCi06 MzU6IFdBUk5JTkc6Tk9fQVVUSE9SX1NJR05fT0ZGOiBNaXNzaW5nIFNpZ25lZC1vZmYtYnk6IGxp bmUgYnkgbm9taW5hbCBwYXRjaCBhdXRob3IgJ0RhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJA ZmZ3bGwuY2g+JwoKdG90YWw6IDAgZXJyb3JzLCAxIHdhcm5pbmdzLCAwIGNoZWNrcywgMTcgbGlu ZXMgY2hlY2tlZAozZmY3MTNmYTgwOGYgZHJtL2F0b21pYzogdHJpbSBkcml2ZXIgaW50ZXJmYWNl L2RvY3MKLTo4ODogQ0hFQ0s6UEFSRU5USEVTSVNfQUxJR05NRU5UOiBBbGlnbm1lbnQgc2hvdWxk IG1hdGNoIG9wZW4gcGFyZW50aGVzaXMKIzg4OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pYy5jOjUwMToKK3N0YXRpYyBpbnQgZHJtX2F0b21pY19jcnRjX3NldF9wcm9wZXJ0eShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCiAJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUsIHN0cnVj dCBkcm1fcHJvcGVydHkgKnByb3BlcnR5LAoKLToyMDI6IENIRUNLOk9QRU5fRU5ERURfTElORTog TGluZXMgc2hvdWxkIG5vdCBlbmQgd2l0aCBhICcoJwojMjAyOiBGSUxFOiBkcml2ZXJzL2dwdS9k cm0vZHJtX2F0b21pYy5jOjEyNTM6CitzdGF0aWMgaW50IGRybV9hdG9taWNfc2V0X3dyaXRlYmFj a19mYl9mb3JfY29ubmVjdG9yKAoKLTozNDI6IFdBUk5JTkc6Tk9fQVVUSE9SX1NJR05fT0ZGOiBN aXNzaW5nIFNpZ25lZC1vZmYtYnk6IGxpbmUgYnkgbm9taW5hbCBwYXRjaCBhdXRob3IgJ0Rhbmll bCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+JwoKdG90YWw6IDAgZXJyb3JzLCAxIHdh cm5pbmdzLCAyIGNoZWNrcywgMzAxIGxpbmVzIGNoZWNrZWQKMWVlOGZmZDAzMjAwIGRybTogVXBk YXRlIHRvZG8ucnN0CmRmMmMyZWVjYzZiZiBkcm06IGV4dHJhY3QgZHJtX2F0b21pY191YXBpLmMK LToxNTE1OiBXQVJOSU5HOkZJTEVfUEFUSF9DSEFOR0VTOiBhZGRlZCwgbW92ZWQgb3IgZGVsZXRl ZCBmaWxlKHMpLCBkb2VzIE1BSU5UQUlORVJTIG5lZWQgdXBkYXRpbmc/CiMxNTE1OiAKbmV3IGZp bGUgbW9kZSAxMDA2NDQKCi06MTUyMDogV0FSTklORzpTUERYX0xJQ0VOU0VfVEFHOiBNaXNzaW5n IG9yIG1hbGZvcm1lZCBTUERYLUxpY2Vuc2UtSWRlbnRpZmllciB0YWcgaW4gbGluZSAxCiMxNTIw OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmM6MToKKy8qCgotOjE1Njk6 IFdBUk5JTkc6VFlQT19TUEVMTElORzogJ3NpbWlsaWFyJyBtYXkgYmUgbWlzc3BlbGxlZCAtIHBl cmhhcHMgJ3NpbWlsYXInPwojMTU2OTogRklMRTogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNf dWFwaS5jOjUwOgorICogZm9yIGxvYWQgZGV0ZWN0IG9yIHNpbWlsaWFyLgoKLToxNjAwOiBFUlJP UjpDT0RFX0lOREVOVDogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3NpYmxl CiMxNjAwOiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmM6ODE6CiteSV5J ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHVtb2RlKSwkCgotOjE2MDA6 IENIRUNLOlBBUkVOVEhFU0lTX0FMSUdOTUVOVDogQWxpZ25tZW50IHNob3VsZCBtYXRjaCBvcGVu IHBhcmVudGhlc2lzCiMxNjAwOiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBp LmM6ODE6CisJCQlkcm1fcHJvcGVydHlfY3JlYXRlX2Jsb2Ioc3RhdGUtPmNydGMtPmRldiwKKwkJ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHVtb2RlKSwKCi06MTYwMTog RVJST1I6Q09ERV9JTkRFTlQ6IGNvZGUgaW5kZW50IHNob3VsZCB1c2UgdGFicyB3aGVyZSBwb3Nz aWJsZQojMTYwMTogRklMRTogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jOjgyOgor XkleSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ1bW9kZSk7JAoKLToxNjM0OiBF UlJPUjpDT0RFX0lOREVOVDogY29kZSBpbmRlbnQgc2hvdWxkIHVzZSB0YWJzIHdoZXJlIHBvc3Np YmxlCiMxNjM0OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmM6MTE1Ogor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5 X2Jsb2IgKmJsb2IpJAoKLToxNjM0OiBXQVJOSU5HOkxFQURJTkdfU1BBQ0U6IHBsZWFzZSwgbm8g c3BhY2VzIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUKIzE2MzQ6IEZJTEU6IGRyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljX3VhcGkuYzoxMTU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYikkCgotOjE4Nzc6IENIRUNLOlBB UkVOVEhFU0lTX0FMSUdOTUVOVDogQWxpZ25tZW50IHNob3VsZCBtYXRjaCBvcGVuIHBhcmVudGhl c2lzCiMxODc3OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmM6MzU4Ogor c3RhdGljIGludCBzZXRfb3V0X2ZlbmNlX2Zvcl9jb25uZWN0b3Ioc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlLAorCQkJCQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAoKLTox OTE3OiBDSEVDSzpDT01QQVJJU09OX1RPX05VTEw6IENvbXBhcmlzb24gdG8gTlVMTCBjb3VsZCBi ZSB3cml0dGVuICIhbmV3X2Jsb2IiCiMxOTE3OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pY191YXBpLmM6Mzk4OgorCQlpZiAobmV3X2Jsb2IgPT0gTlVMTCkKCi06MTkzOTogQ0hFQ0s6 UEFSRU5USEVTSVNfQUxJR05NRU5UOiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4gcGFyZW50 aGVzaXMKIzE5Mzk6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYzo0MjA6 CitzdGF0aWMgaW50IGRybV9hdG9taWNfY3J0Y19zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jcnRj ICpjcnRjLAorCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKnN0YXRlLCBzdHJ1Y3QgZHJtX3Byb3Bl cnR5ICpwcm9wZXJ0eSwKCi06MTk0NzogQ0hFQ0s6QlJBQ0VTOiBicmFjZXMge30gc2hvdWxkIGJl IHVzZWQgb24gYWxsIGFybXMgb2YgdGhpcyBzdGF0ZW1lbnQKIzE5NDc6IEZJTEU6IGRyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYzo0Mjg6CisJaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+ cHJvcF9hY3RpdmUpClsuLi5dCisJZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5wcm9wX21v ZGVfaWQpIHsKWy4uLl0KKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+ZGVnYW1tYV9s dXRfcHJvcGVydHkpIHsKWy4uLl0KKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+Y3Rt X3Byb3BlcnR5KSB7ClsuLi5dCisJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPmdhbW1h X2x1dF9wcm9wZXJ0eSkgewpbLi4uXQorCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5w cm9wX291dF9mZW5jZV9wdHIpIHsKWy4uLl0KKwl9IGVsc2UgaWYgKGNydGMtPmZ1bmNzLT5hdG9t aWNfc2V0X3Byb3BlcnR5KSB7ClsuLi5dCisJfSBlbHNlIHsKWy4uLl0KCi06MTk1NzogQ0hFQ0s6 UEFSRU5USEVTSVNfQUxJR05NRU5UOiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4gcGFyZW50 aGVzaXMKIzE5NTc6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYzo0Mzg6 CisJCXJldCA9IGRybV9hdG9taWNfcmVwbGFjZV9wcm9wZXJ0eV9ibG9iX2Zyb21faWQoZGV2LAor CQkJCQkmc3RhdGUtPmRlZ2FtbWFfbHV0LAoKLToxOTY1OiBDSEVDSzpQQVJFTlRIRVNJU19BTElH Tk1FTlQ6IEFsaWdubWVudCBzaG91bGQgbWF0Y2ggb3BlbiBwYXJlbnRoZXNpcwojMTk2NTogRklM RTogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jOjQ0NjoKKwkJcmV0ID0gZHJtX2F0 b21pY19yZXBsYWNlX3Byb3BlcnR5X2Jsb2JfZnJvbV9pZChkZXYsCisJCQkJCSZzdGF0ZS0+Y3Rt LAoKLToxOTczOiBDSEVDSzpQQVJFTlRIRVNJU19BTElHTk1FTlQ6IEFsaWdubWVudCBzaG91bGQg bWF0Y2ggb3BlbiBwYXJlbnRoZXNpcwojMTk3MzogRklMRTogZHJpdmVycy9ncHUvZHJtL2RybV9h dG9taWNfdWFwaS5jOjQ1NDoKKwkJcmV0ID0gZHJtX2F0b21pY19yZXBsYWNlX3Byb3BlcnR5X2Js b2JfZnJvbV9pZChkZXYsCisJCQkJCSZzdGF0ZS0+Z2FtbWFfbHV0LAoKLToxOTkxOiBXQVJOSU5H OlVOTkVDRVNTQVJZX0VMU0U6IGVsc2UgaXMgbm90IGdlbmVyYWxseSB1c2VmdWwgYWZ0ZXIgYSBi cmVhayBvciByZXR1cm4KIzE5OTE6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3Vh cGkuYzo0NzI6CisJCXJldHVybiBjcnRjLT5mdW5jcy0+YXRvbWljX3NldF9wcm9wZXJ0eShjcnRj LCBzdGF0ZSwgcHJvcGVydHksIHZhbCk7CisJfSBlbHNlIHsKCi06MjAwMzogQ0hFQ0s6UEFSRU5U SEVTSVNfQUxJR05NRU5UOiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4gcGFyZW50aGVzaXMK IzIwMDM6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYzo0ODQ6Citkcm1f YXRvbWljX2NydGNfZ2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKKwkJY29uc3Qg c3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSwKCi06MjAzMDogQ0hFQ0s6UEFSRU5USEVTSVNf QUxJR05NRU5UOiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4gcGFyZW50aGVzaXMKIzIwMzA6 IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYzo1MTE6CitzdGF0aWMgaW50 IGRybV9hdG9taWNfcGxhbmVfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAor CQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSwgc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJv cGVydHksCgotOjIwMzg6IFdBUk5JTkc6TElORV9TUEFDSU5HOiBNaXNzaW5nIGEgYmxhbmsgbGlu ZSBhZnRlciBkZWNsYXJhdGlvbnMKIzIwMzg6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRv bWljX3VhcGkuYzo1MTk6CisJCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gZHJtX2ZyYW1l YnVmZmVyX2xvb2t1cChkZXYsIE5VTEwsIHZhbCk7CisJCWRybV9hdG9taWNfc2V0X2ZiX2Zvcl9w bGFuZShzdGF0ZSwgZmIpOwoKLToyMDU0OiBXQVJOSU5HOkxJTkVfU1BBQ0lORzogTWlzc2luZyBh IGJsYW5rIGxpbmUgYWZ0ZXIgZGVjbGFyYXRpb25zCiMyMDU0OiBGSUxFOiBkcml2ZXJzL2dwdS9k cm0vZHJtX2F0b21pY191YXBpLmM6NTM1OgorCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBkcm1f Y3J0Y19maW5kKGRldiwgTlVMTCwgdmFsKTsKKwkJcmV0dXJuIGRybV9hdG9taWNfc2V0X2NydGNf Zm9yX3BsYW5lKHN0YXRlLCBjcnRjKTsKCi06MjEwMzogQ0hFQ0s6UEFSRU5USEVTSVNfQUxJR05N RU5UOiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4gcGFyZW50aGVzaXMKIzIxMDM6IEZJTEU6 IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYzo1ODQ6Citkcm1fYXRvbWljX3BsYW5l X2dldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKKwkJY29uc3Qgc3RydWN0IGRy bV9wbGFuZV9zdGF0ZSAqc3RhdGUsCgotOjIxMDk6IFdBUk5JTkc6QlJBQ0VTOiBicmFjZXMge30g YXJlIG5vdCBuZWNlc3NhcnkgZm9yIGFueSBhcm0gb2YgdGhpcyBzdGF0ZW1lbnQKIzIxMDk6IEZJ TEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYzo1OTA6CisJaWYgKHByb3BlcnR5 ID09IGNvbmZpZy0+cHJvcF9mYl9pZCkgewpbLi4uXQorCX0gZWxzZSBpZiAocHJvcGVydHkgPT0g Y29uZmlnLT5wcm9wX2luX2ZlbmNlX2ZkKSB7ClsuLi5dCisJfSBlbHNlIGlmIChwcm9wZXJ0eSA9 PSBjb25maWctPnByb3BfY3J0Y19pZCkgewpbLi4uXQorCX0gZWxzZSBpZiAocHJvcGVydHkgPT0g Y29uZmlnLT5wcm9wX2NydGNfeCkgewpbLi4uXQorCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29u ZmlnLT5wcm9wX2NydGNfeSkgewpbLi4uXQorCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmln LT5wcm9wX2NydGNfdykgewpbLi4uXQorCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5w cm9wX2NydGNfaCkgewpbLi4uXQorCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5wcm9w X3NyY194KSB7ClsuLi5dCisJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPnByb3Bfc3Jj X3kpIHsKWy4uLl0KKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbmZpZy0+cHJvcF9zcmNfdykg ewpbLi4uXQorCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5wcm9wX3NyY19oKSB7Clsu Li5dCisJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+YWxwaGFfcHJvcGVydHkpIHsKWy4u Ll0KKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT5ibGVuZF9tb2RlX3Byb3BlcnR5KSB7 ClsuLi5dCisJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+cm90YXRpb25fcHJvcGVydHkp IHsKWy4uLl0KKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT56cG9zX3Byb3BlcnR5KSB7 ClsuLi5dCisJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBwbGFuZS0+Y29sb3JfZW5jb2RpbmdfcHJv cGVydHkpIHsKWy4uLl0KKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IHBsYW5lLT5jb2xvcl9yYW5n ZV9wcm9wZXJ0eSkgewpbLi4uXQorCX0gZWxzZSBpZiAocGxhbmUtPmZ1bmNzLT5hdG9taWNfZ2V0 X3Byb3BlcnR5KSB7ClsuLi5dCisJfSBlbHNlIHsKWy4uLl0KCi06MjE2NDogQ0hFQ0s6T1BFTl9F TkRFRF9MSU5FOiBMaW5lcyBzaG91bGQgbm90IGVuZCB3aXRoIGEgJygnCiMyMTY0OiBGSUxFOiBk cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmM6NjQ1Ogorc3RhdGljIGludCBkcm1fYXRv bWljX3NldF93cml0ZWJhY2tfZmJfZm9yX2Nvbm5lY3RvcigKCi06MjE4NjogQ0hFQ0s6UEFSRU5U SEVTSVNfQUxJR05NRU5UOiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4gcGFyZW50aGVzaXMK IzIxODY6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYzo2Njc6CitzdGF0 aWMgaW50IGRybV9hdG9taWNfY29ubmVjdG9yX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yLAorCQlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqc3RhdGUsIHN0 cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5LAoKLToyMTk0OiBXQVJOSU5HOkxJTkVfU1BBQ0lO RzogTWlzc2luZyBhIGJsYW5rIGxpbmUgYWZ0ZXIgZGVjbGFyYXRpb25zCiMyMTk0OiBGSUxFOiBk cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmM6Njc1OgorCQlzdHJ1Y3QgZHJtX2NydGMg KmNydGMgPSBkcm1fY3J0Y19maW5kKGRldiwgTlVMTCwgdmFsKTsKKwkJcmV0dXJuIGRybV9hdG9t aWNfc2V0X2NydGNfZm9yX2Nvbm5lY3RvcihzdGF0ZSwgY3J0Yyk7CgotOjIyNTQ6IFdBUk5JTkc6 TElORV9TUEFDSU5HOiBNaXNzaW5nIGEgYmxhbmsgbGluZSBhZnRlciBkZWNsYXJhdGlvbnMKIzIy NTQ6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYzo3MzU6CisJCWludCBy ZXQgPSBkcm1fYXRvbWljX3NldF93cml0ZWJhY2tfZmJfZm9yX2Nvbm5lY3RvcihzdGF0ZSwgZmIp OworCQlpZiAoZmIpCgotOjIyNzc6IENIRUNLOlBBUkVOVEhFU0lTX0FMSUdOTUVOVDogQWxpZ25t ZW50IHNob3VsZCBtYXRjaCBvcGVuIHBhcmVudGhlc2lzCiMyMjc3OiBGSUxFOiBkcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pY191YXBpLmM6NzU4OgorZHJtX2F0b21pY19jb25uZWN0b3JfZ2V0X3By b3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCisJCWNvbnN0IHN0cnVjdCBk cm1fY29ubmVjdG9yX3N0YXRlICpzdGF0ZSwKCi06MjMzNzogQ0hFQ0s6UEFSRU5USEVTSVNfQUxJ R05NRU5UOiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4gcGFyZW50aGVzaXMKIzIzMzc6IEZJ TEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYzo4MTg6CitpbnQgZHJtX2F0b21p Y19nZXRfcHJvcGVydHkoc3RydWN0IGRybV9tb2RlX29iamVjdCAqb2JqLAorCQlzdHJ1Y3QgZHJt X3Byb3BlcnR5ICpwcm9wZXJ0eSwgdWludDY0X3QgKnZhbCkKCi06MjM0NTogV0FSTklORzpMSU5F X1NQQUNJTkc6IE1pc3NpbmcgYSBibGFuayBsaW5lIGFmdGVyIGRlY2xhcmF0aW9ucwojMjM0NTog RklMRTogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jOjgyNjoKKwkJc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvciA9IG9ial90b19jb25uZWN0b3Iob2JqKTsKKwkJV0FSTl9P TighZHJtX21vZGVzZXRfaXNfbG9ja2VkKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0 ZXgpKTsKCi06MjM0NzogQ0hFQ0s6UEFSRU5USEVTSVNfQUxJR05NRU5UOiBBbGlnbm1lbnQgc2hv dWxkIG1hdGNoIG9wZW4gcGFyZW50aGVzaXMKIzIzNDc6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljX3VhcGkuYzo4Mjg6CisJCXJldCA9IGRybV9hdG9taWNfY29ubmVjdG9yX2dldF9w cm9wZXJ0eShjb25uZWN0b3IsCisJCQkJY29ubmVjdG9yLT5zdGF0ZSwgcHJvcGVydHksIHZhbCk7 CgotOjIzNTI6IFdBUk5JTkc6TElORV9TUEFDSU5HOiBNaXNzaW5nIGEgYmxhbmsgbGluZSBhZnRl ciBkZWNsYXJhdGlvbnMKIzIzNTI6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3Vh cGkuYzo4MzM6CisJCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IG9ial90b19jcnRjKG9iaik7CisJ CVdBUk5fT04oIWRybV9tb2Rlc2V0X2lzX2xvY2tlZCgmY3J0Yy0+bXV0ZXgpKTsKCi06MjM1NDog Q0hFQ0s6UEFSRU5USEVTSVNfQUxJR05NRU5UOiBBbGlnbm1lbnQgc2hvdWxkIG1hdGNoIG9wZW4g cGFyZW50aGVzaXMKIzIzNTQ6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGku Yzo4MzU6CisJCXJldCA9IGRybV9hdG9taWNfY3J0Y19nZXRfcHJvcGVydHkoY3J0YywKKwkJCQlj cnRjLT5zdGF0ZSwgcHJvcGVydHksIHZhbCk7CgotOjIzNTk6IFdBUk5JTkc6TElORV9TUEFDSU5H OiBNaXNzaW5nIGEgYmxhbmsgbGluZSBhZnRlciBkZWNsYXJhdGlvbnMKIzIzNTk6IEZJTEU6IGRy aXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYzo4NDA6CisJCXN0cnVjdCBkcm1fcGxhbmUg KnBsYW5lID0gb2JqX3RvX3BsYW5lKG9iaik7CisJCVdBUk5fT04oIWRybV9tb2Rlc2V0X2lzX2xv Y2tlZCgmcGxhbmUtPm11dGV4KSk7CgotOjIzNjE6IENIRUNLOlBBUkVOVEhFU0lTX0FMSUdOTUVO VDogQWxpZ25tZW50IHNob3VsZCBtYXRjaCBvcGVuIHBhcmVudGhlc2lzCiMyMzYxOiBGSUxFOiBk cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmM6ODQyOgorCQlyZXQgPSBkcm1fYXRvbWlj X3BsYW5lX2dldF9wcm9wZXJ0eShwbGFuZSwKKwkJCQlwbGFuZS0+c3RhdGUsIHByb3BlcnR5LCB2 YWwpOwoKLToyMzc2OiBDSEVDSzpPUEVOX0VOREVEX0xJTkU6IExpbmVzIHNob3VsZCBub3QgZW5k IHdpdGggYSAnKCcKIzIzNzY6IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGku Yzo4NTc6CitzdGF0aWMgc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudCAqY3JlYXRlX3Zi bGFua19ldmVudCgKCi06MjM4MTogV0FSTklORzpTSVpFT0ZfUEFSRU5USEVTSVM6IHNpemVvZiAq ZSBzaG91bGQgYmUgc2l6ZW9mKCplKQojMjM4MTogRklMRTogZHJpdmVycy9ncHUvZHJtL2RybV9h dG9taWNfdWFwaS5jOjg2MjoKKwllID0ga3phbGxvYyhzaXplb2YgKmUsIEdGUF9LRVJORUwpOwoK LToyNDY2OiBDSEVDSzpQQVJFTlRIRVNJU19BTElHTk1FTlQ6IEFsaWdubWVudCBzaG91bGQgbWF0 Y2ggb3BlbiBwYXJlbnRoZXNpcwojMjQ2NjogRklMRTogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWNfdWFwaS5jOjk0NzoKKwkJcmV0ID0gZHJtX2F0b21pY19jb25uZWN0b3Jfc2V0X3Byb3BlcnR5 KGNvbm5lY3RvciwKKwkJCQljb25uZWN0b3Jfc3RhdGUsIHByb3AsIHByb3BfdmFsdWUpOwoKLToy NDgwOiBDSEVDSzpQQVJFTlRIRVNJU19BTElHTk1FTlQ6IEFsaWdubWVudCBzaG91bGQgbWF0Y2gg b3BlbiBwYXJlbnRoZXNpcwojMjQ4MDogRklMRTogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNf dWFwaS5jOjk2MToKKwkJcmV0ID0gZHJtX2F0b21pY19jcnRjX3NldF9wcm9wZXJ0eShjcnRjLAor CQkJCWNydGNfc3RhdGUsIHByb3AsIHByb3BfdmFsdWUpOwoKLToyNDk0OiBDSEVDSzpQQVJFTlRI RVNJU19BTElHTk1FTlQ6IEFsaWdubWVudCBzaG91bGQgbWF0Y2ggb3BlbiBwYXJlbnRoZXNpcwoj MjQ5NDogRklMRTogZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jOjk3NToKKwkJcmV0 ID0gZHJtX2F0b21pY19wbGFuZV9zZXRfcHJvcGVydHkocGxhbmUsCisJCQkJcGxhbmVfc3RhdGUs IHByb3AsIHByb3BfdmFsdWUpOwoKLToyNTEwOiBXQVJOSU5HOlRZUE9fU1BFTExJTkc6ICd0cmFu c2ZlcmVkJyBtYXkgYmUgbWlzc3BlbGxlZCAtIHBlcmhhcHMgJ3RyYW5zZmVycmVkJz8KIzI1MTA6 IEZJTEU6IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3VhcGkuYzo5OTE6CisgKiBiZXR3ZWVu IGRldmljZXMuIEEgRmVuY2Ugb3IgYSBncm91cCBvZiBmZW5jZXMgYXJlIHRyYW5zZmVyZWQgdG8v ZnJvbQoKLToyNTgyOiBDSEVDSzpQQVJFTlRIRVNJU19BTElHTk1FTlQ6IEFsaWdubWVudCBzaG91 bGQgbWF0Y2ggb3BlbiBwYXJlbnRoZXNpcwojMjU4MjogRklMRTogZHJpdmVycy9ncHUvZHJtL2Ry bV9hdG9taWNfdWFwaS5jOjEwNjM6CitzdGF0aWMgaW50IHByZXBhcmVfc2lnbmFsaW5nKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCisJCQkJICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUs CgotOjI3ODk6IENIRUNLOlBBUkVOVEhFU0lTX0FMSUdOTUVOVDogQWxpZ25tZW50IHNob3VsZCBt YXRjaCBvcGVuIHBhcmVudGhlc2lzCiMyNzg5OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pY191YXBpLmM6MTI3MDoKKwlpZiAoKGFyZy0+ZmxhZ3MgJiBEUk1fTU9ERV9QQUdFX0ZMSVBf QVNZTkMpICYmCisJCQkhZGV2LT5tb2RlX2NvbmZpZy5hc3luY19wYWdlX2ZsaXApCgotOjI3OTQ6 IENIRUNLOlBBUkVOVEhFU0lTX0FMSUdOTUVOVDogQWxpZ25tZW50IHNob3VsZCBtYXRjaCBvcGVu IHBhcmVudGhlc2lzCiMyNzk0OiBGSUxFOiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBp LmM6MTI3NToKKwlpZiAoKGFyZy0+ZmxhZ3MgJiBEUk1fTU9ERV9BVE9NSUNfVEVTVF9PTkxZKSAm JgorCQkJKGFyZy0+ZmxhZ3MgJiBEUk1fTU9ERV9QQUdFX0ZMSVBfRVZFTlQpKQoKLTozMDc5OiBX QVJOSU5HOlNQRFhfTElDRU5TRV9UQUc6IE1pc3Npbmcgb3IgbWFsZm9ybWVkIFNQRFgtTGljZW5z ZS1JZGVudGlmaWVyIHRhZyBpbiBsaW5lIDEKIzMwNzk6IEZJTEU6IGluY2x1ZGUvZHJtL2RybV9h dG9taWNfdWFwaS5oOjE6CisvKgoKLTozMTM2OiBXQVJOSU5HOk5PX0FVVEhPUl9TSUdOX09GRjog TWlzc2luZyBTaWduZWQtb2ZmLWJ5OiBsaW5lIGJ5IG5vbWluYWwgcGF0Y2ggYXV0aG9yICdEYW5p ZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPicKCnRvdGFsOiAzIGVycm9ycywgMTcg d2FybmluZ3MsIDI1IGNoZWNrcywgMjQ1OCBsaW5lcyBjaGVja2VkCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK