From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id DB0AB6E8BE for ; Fri, 29 May 2020 10:41:35 +0000 (UTC) From: =?UTF-8?q?Zbigniew=20Kempczy=C5=84ski?= Date: Fri, 29 May 2020 12:41:26 +0200 Message-Id: <20200529104127.9569-2-zbigniew.kempczynski@intel.com> In-Reply-To: <20200529104127.9569-1-zbigniew.kempczynski@intel.com> References: <20200529104127.9569-1-zbigniew.kempczynski@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t 1/2] lib/media_spin: localize pipeline functions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Chris Wilson List-ID: VG8gYWxsb3cgcmVtb3ZlICJfdjIiIHN1ZmZpeCBpbiBmdW5jdGlvbnMgYWRkIHRoaXMgbm90LWZ1 bGx5LWNsZWFuCnN0ZXAgYW5kIGxvY2FsaXplIG5hbWVzLiBTb21lIGFkZGl0aW9uYWwgcmVxdWly ZW1lbnQgaXMgbmVlZGVkIHRvCmZ1bGZpbGwgaXRzIG5lZWRzIChwYXNzaW5nIGJhdGNoYnVmZmVy IGZyb20gdGhlIGNhbGxlciBzaWRlKS4KClNpZ25lZC1vZmYtYnk6IFpiaWduaWV3IEtlbXBjennF hHNraSA8emJpZ25pZXcua2VtcGN6eW5za2lAaW50ZWwuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxj aHJpc0BjaHJpcy13aWxzb24uY28udWs+Ci0tLQogbGliL21lZGlhX3NwaW4uYyB8IDM2NCArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5n ZWQsIDM2MyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbGliL21l ZGlhX3NwaW4uYyBiL2xpYi9tZWRpYV9zcGluLmMKaW5kZXggMDA5Yzc4MDYuLmQzZDBjMjc4IDEw MDY0NAotLS0gYS9saWIvbWVkaWFfc3Bpbi5jCisrKyBiL2xpYi9tZWRpYV9zcGluLmMKQEAgLTI5 LDkgKzI5LDEwIEBACiAjaW5jbHVkZSAiaW50ZWxfcmVnLmgiCiAjaW5jbHVkZSAiZHJtdGVzdC5o IgogI2luY2x1ZGUgImludGVsX2JhdGNoYnVmZmVyLmgiCisjaW5jbHVkZSAiaW50ZWxfY2hpcHNl dC5oIgorI2luY2x1ZGUgImdlbjdfbWVkaWEuaCIKICNpbmNsdWRlICJnZW44X21lZGlhLmgiCiAj aW5jbHVkZSAibWVkaWFfc3Bpbi5oIgotI2luY2x1ZGUgImdwdV9jbWRzLmgiCiAKIHN0YXRpYyBj b25zdCB1aW50MzJfdCBzcGluX2tlcm5lbFtdWzRdID0gewogCXsgMHgwMDYwMDAwMSwgMHgyMDgw MDIwOCwgMHgwMDhkMDAwMCwgMHgwMDAwMDAwMCB9LCAvKiBtb3YgKDgpcjQuMDwxPjp1ZCByMC4w PDg7ODsxPjp1ZCAqLwpAQCAtNzksNiArODAsMzY2IEBAIHN0YXRpYyBjb25zdCB1aW50MzJfdCBz cGluX2tlcm5lbFtdWzRdID0gewogI2RlZmluZSB4b2Zmc2V0IDAKICNkZWZpbmUgeW9mZnNldCAw CiAKK3N0YXRpYyB2b2lkCitnZW43X3JlbmRlcl9mbHVzaChzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZm ZXIgKmJhdGNoLCB1aW50MzJfdCBiYXRjaF9lbmQpCit7CisJaW50IHJldDsKKworCXJldCA9IGRy bV9pbnRlbF9ib19zdWJkYXRhKGJhdGNoLT5ibywgMCwgNDA5NiwgYmF0Y2gtPmJ1ZmZlcik7CisJ aWYgKHJldCA9PSAwKQorCQlyZXQgPSBkcm1faW50ZWxfYm9fbXJiX2V4ZWMoYmF0Y2gtPmJvLCBi YXRjaF9lbmQsCisJCQkJCSAgICBOVUxMLCAwLCAwLCAwKTsKKwlpZ3RfYXNzZXJ0KHJldCA9PSAw KTsKK30KKworc3RhdGljIHVpbnQzMl90CitnZW43X2ZpbGxfa2VybmVsKHN0cnVjdCBpbnRlbF9i YXRjaGJ1ZmZlciAqYmF0Y2gsCisJCSBjb25zdCB1aW50MzJfdCBrZXJuZWxbXVs0XSwgc2l6ZV90 IHNpemUpCit7CisJdWludDMyX3Qgb2Zmc2V0OworCisJb2Zmc2V0ID0gaW50ZWxfYmF0Y2hidWZm ZXJfY29weV9kYXRhKGJhdGNoLCBrZXJuZWwsIHNpemUsIDY0KTsKKworCXJldHVybiBvZmZzZXQ7 Cit9CisKK3N0YXRpYyB1aW50MzJfdAorZ2VuN19maWxsX3N1cmZhY2Vfc3RhdGUoc3RydWN0IGlu dGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKKwkJCWNvbnN0IHN0cnVjdCBpZ3RfYnVmICpidWYsCisJ CQl1aW50MzJfdCBmb3JtYXQsCisJCQlpbnQgaXNfZHN0KQoreworCXN0cnVjdCBnZW43X3N1cmZh Y2Vfc3RhdGUgKnNzOworCXVpbnQzMl90IHdyaXRlX2RvbWFpbiwgcmVhZF9kb21haW4sIG9mZnNl dDsKKwlpbnQgcmV0OworCisJaWYgKGlzX2RzdCkgeworCQl3cml0ZV9kb21haW4gPSByZWFkX2Rv bWFpbiA9IEk5MTVfR0VNX0RPTUFJTl9SRU5ERVI7CisJfSBlbHNlIHsKKwkJd3JpdGVfZG9tYWlu ID0gMDsKKwkJcmVhZF9kb21haW4gPSBJOTE1X0dFTV9ET01BSU5fU0FNUExFUjsKKwl9CisKKwlz cyA9IGludGVsX2JhdGNoYnVmZmVyX3N1YmRhdGFfYWxsb2MoYmF0Y2gsIHNpemVvZigqc3MpLCA2 NCk7CisJb2Zmc2V0ID0gaW50ZWxfYmF0Y2hidWZmZXJfc3ViZGF0YV9vZmZzZXQoYmF0Y2gsIHNz KTsKKworCXNzLT5zczAuc3VyZmFjZV90eXBlID0gU1VSRkFDRV8yRDsKKwlzcy0+c3MwLnN1cmZh Y2VfZm9ybWF0ID0gZm9ybWF0OworCXNzLT5zczAucmVuZGVyX2NhY2hlX3JlYWRfd3JpdGUgPSAx OworCisJaWYgKGJ1Zi0+dGlsaW5nID09IEk5MTVfVElMSU5HX1gpCisJCXNzLT5zczAudGlsZWRf bW9kZSA9IDI7CisJZWxzZSBpZiAoYnVmLT50aWxpbmcgPT0gSTkxNV9USUxJTkdfWSkKKwkJc3Mt PnNzMC50aWxlZF9tb2RlID0gMzsKKworCXNzLT5zczEuYmFzZV9hZGRyID0gYnVmLT5iby0+b2Zm c2V0OworCXJldCA9IGRybV9pbnRlbF9ib19lbWl0X3JlbG9jKGJhdGNoLT5ibywKKwkJCQlpbnRl bF9iYXRjaGJ1ZmZlcl9zdWJkYXRhX29mZnNldChiYXRjaCwgc3MpICsgNCwKKwkJCQlidWYtPmJv LCAwLAorCQkJCXJlYWRfZG9tYWluLCB3cml0ZV9kb21haW4pOworCWlndF9hc3NlcnQocmV0ID09 IDApOworCisJc3MtPnNzMi5oZWlnaHQgPSBpZ3RfYnVmX2hlaWdodChidWYpIC0gMTsKKwlzcy0+ c3MyLndpZHRoICA9IGlndF9idWZfd2lkdGgoYnVmKSAtIDE7CisKKwlzcy0+c3MzLnBpdGNoICA9 IGJ1Zi0+c3VyZmFjZVswXS5zdHJpZGUgLSAxOworCisJc3MtPnNzNy5zaGFkZXJfY2hhbmVsX3Nl bGVjdF9yID0gNDsKKwlzcy0+c3M3LnNoYWRlcl9jaGFuZWxfc2VsZWN0X2cgPSA1OworCXNzLT5z czcuc2hhZGVyX2NoYW5lbF9zZWxlY3RfYiA9IDY7CisJc3MtPnNzNy5zaGFkZXJfY2hhbmVsX3Nl bGVjdF9hID0gNzsKKworCXJldHVybiBvZmZzZXQ7Cit9CisKK3N0YXRpYyB1aW50MzJfdAorZ2Vu OF9maWxsX3N1cmZhY2Vfc3RhdGUoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKKwkJ CWNvbnN0IHN0cnVjdCBpZ3RfYnVmICpidWYsCisJCQl1aW50MzJfdCBmb3JtYXQsCisJCQlpbnQg aXNfZHN0KQoreworCXN0cnVjdCBnZW44X3N1cmZhY2Vfc3RhdGUgKnNzOworCXVpbnQzMl90IHdy aXRlX2RvbWFpbiwgcmVhZF9kb21haW4sIG9mZnNldDsKKwlpbnQgcmV0OworCisJaWYgKGlzX2Rz dCkgeworCQl3cml0ZV9kb21haW4gPSByZWFkX2RvbWFpbiA9IEk5MTVfR0VNX0RPTUFJTl9SRU5E RVI7CisJfSBlbHNlIHsKKwkJd3JpdGVfZG9tYWluID0gMDsKKwkJcmVhZF9kb21haW4gPSBJOTE1 X0dFTV9ET01BSU5fU0FNUExFUjsKKwl9CisKKwlzcyA9IGludGVsX2JhdGNoYnVmZmVyX3N1YmRh dGFfYWxsb2MoYmF0Y2gsIHNpemVvZigqc3MpLCA2NCk7CisJb2Zmc2V0ID0gaW50ZWxfYmF0Y2hi dWZmZXJfc3ViZGF0YV9vZmZzZXQoYmF0Y2gsIHNzKTsKKworCXNzLT5zczAuc3VyZmFjZV90eXBl ID0gU1VSRkFDRV8yRDsKKwlzcy0+c3MwLnN1cmZhY2VfZm9ybWF0ID0gZm9ybWF0OworCXNzLT5z czAucmVuZGVyX2NhY2hlX3JlYWRfd3JpdGUgPSAxOworCXNzLT5zczAudmVydGljYWxfYWxpZ25t ZW50ID0gMTsgLyogYWxpZ24gNCAqLworCXNzLT5zczAuaG9yaXpvbnRhbF9hbGlnbm1lbnQgPSAx OyAvKiBhbGlnbiA0ICovCisKKwlpZiAoYnVmLT50aWxpbmcgPT0gSTkxNV9USUxJTkdfWCkKKwkJ c3MtPnNzMC50aWxlZF9tb2RlID0gMjsKKwllbHNlIGlmIChidWYtPnRpbGluZyA9PSBJOTE1X1RJ TElOR19ZKQorCQlzcy0+c3MwLnRpbGVkX21vZGUgPSAzOworCisJc3MtPnNzOC5iYXNlX2FkZHIg PSBidWYtPmJvLT5vZmZzZXQ7CisKKwlyZXQgPSBkcm1faW50ZWxfYm9fZW1pdF9yZWxvYyhiYXRj aC0+Ym8sCisJCQkJaW50ZWxfYmF0Y2hidWZmZXJfc3ViZGF0YV9vZmZzZXQoYmF0Y2gsIHNzKSAr IDggKiA0LAorCQkJCWJ1Zi0+Ym8sIDAsIHJlYWRfZG9tYWluLCB3cml0ZV9kb21haW4pOworCWln dF9hc3NlcnQocmV0ID09IDApOworCisJc3MtPnNzMi5oZWlnaHQgPSBpZ3RfYnVmX2hlaWdodChi dWYpIC0gMTsKKwlzcy0+c3MyLndpZHRoICA9IGlndF9idWZfd2lkdGgoYnVmKSAtIDE7CisJc3Mt PnNzMy5waXRjaCAgPSBidWYtPnN1cmZhY2VbMF0uc3RyaWRlIC0gMTsKKworCXNzLT5zczcuc2hh ZGVyX2NoYW5lbF9zZWxlY3RfciA9IDQ7CisJc3MtPnNzNy5zaGFkZXJfY2hhbmVsX3NlbGVjdF9n ID0gNTsKKwlzcy0+c3M3LnNoYWRlcl9jaGFuZWxfc2VsZWN0X2IgPSA2OworCXNzLT5zczcuc2hh ZGVyX2NoYW5lbF9zZWxlY3RfYSA9IDc7CisKKwlyZXR1cm4gb2Zmc2V0OworfQorCitzdGF0aWMg dWludDMyX3QKK2dlbjhfc3Bpbl9jdXJiZV9idWZmZXJfZGF0YShzdHJ1Y3QgaW50ZWxfYmF0Y2hi dWZmZXIgKmJhdGNoLAorCQkJICAgIHVpbnQzMl90IGl0ZXJzKQoreworCXVpbnQzMl90ICpjdXJi ZV9idWZmZXI7CisJdWludDMyX3Qgb2Zmc2V0OworCisJY3VyYmVfYnVmZmVyID0gaW50ZWxfYmF0 Y2hidWZmZXJfc3ViZGF0YV9hbGxvYyhiYXRjaCwgNjQsIDY0KTsKKwlvZmZzZXQgPSBpbnRlbF9i YXRjaGJ1ZmZlcl9zdWJkYXRhX29mZnNldChiYXRjaCwgY3VyYmVfYnVmZmVyKTsKKwkqY3VyYmVf YnVmZmVyID0gaXRlcnM7CisKKwlyZXR1cm4gb2Zmc2V0OworfQorCitzdGF0aWMgdWludDMyX3QK K2dlbjdfZmlsbF9iaW5kaW5nX3RhYmxlKHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gs CisJCQljb25zdCBzdHJ1Y3QgaWd0X2J1ZiAqZHN0KQoreworCXVpbnQzMl90ICpiaW5kaW5nX3Rh YmxlLCBvZmZzZXQ7CisKKwliaW5kaW5nX3RhYmxlID0gaW50ZWxfYmF0Y2hidWZmZXJfc3ViZGF0 YV9hbGxvYyhiYXRjaCwgMzIsIDY0KTsKKwlvZmZzZXQgPSBpbnRlbF9iYXRjaGJ1ZmZlcl9zdWJk YXRhX29mZnNldChiYXRjaCwgYmluZGluZ190YWJsZSk7CisJaWYgKElTX0dFTjcoYmF0Y2gtPmRl dmlkKSkKKwkJYmluZGluZ190YWJsZVswXSA9IGdlbjdfZmlsbF9zdXJmYWNlX3N0YXRlKGJhdGNo LCBkc3QsCisJCQkJCQlTVVJGQUNFRk9STUFUX1I4X1VOT1JNLCAxKTsKKwllbHNlCisJCWJpbmRp bmdfdGFibGVbMF0gPSBnZW44X2ZpbGxfc3VyZmFjZV9zdGF0ZShiYXRjaCwgZHN0LAorCQkJCQkJ U1VSRkFDRUZPUk1BVF9SOF9VTk9STSwgMSk7CisKKwlyZXR1cm4gb2Zmc2V0OworfQorCitzdGF0 aWMgdWludDMyX3QKK2dlbjhfZmlsbF9pbnRlcmZhY2VfZGVzY3JpcHRvcihzdHJ1Y3QgaW50ZWxf YmF0Y2hidWZmZXIgKmJhdGNoLAorCQkJICAgICAgIGNvbnN0IHN0cnVjdCBpZ3RfYnVmICpkc3Qs CisJCQkgICAgICAgY29uc3QgdWludDMyX3Qga2VybmVsW11bNF0sCisJCQkgICAgICAgc2l6ZV90 IHNpemUpCit7CisJc3RydWN0IGdlbjhfaW50ZXJmYWNlX2Rlc2NyaXB0b3JfZGF0YSAqaWRkOwor CXVpbnQzMl90IG9mZnNldDsKKwl1aW50MzJfdCBiaW5kaW5nX3RhYmxlX29mZnNldCwga2VybmVs X29mZnNldDsKKworCWJpbmRpbmdfdGFibGVfb2Zmc2V0ID0gZ2VuN19maWxsX2JpbmRpbmdfdGFi bGUoYmF0Y2gsIGRzdCk7CisJa2VybmVsX29mZnNldCA9IGdlbjdfZmlsbF9rZXJuZWwoYmF0Y2gs IGtlcm5lbCwgc2l6ZSk7CisKKwlpZGQgPSBpbnRlbF9iYXRjaGJ1ZmZlcl9zdWJkYXRhX2FsbG9j KGJhdGNoLCBzaXplb2YoKmlkZCksIDY0KTsKKwlvZmZzZXQgPSBpbnRlbF9iYXRjaGJ1ZmZlcl9z dWJkYXRhX29mZnNldChiYXRjaCwgaWRkKTsKKworCWlkZC0+ZGVzYzAua2VybmVsX3N0YXJ0X3Bv aW50ZXIgPSAoa2VybmVsX29mZnNldCA+PiA2KTsKKworCWlkZC0+ZGVzYzIuc2luZ2xlX3Byb2dy YW1fZmxvdyA9IDE7CisJaWRkLT5kZXNjMi5mbG9hdGluZ19wb2ludF9tb2RlID0gR0VOOF9GTE9B VElOR19QT0lOVF9JRUVFXzc1NDsKKworCWlkZC0+ZGVzYzMuc2FtcGxlcl9jb3VudCA9IDA7ICAg ICAgLyogMCBzYW1wbGVycyB1c2VkICovCisJaWRkLT5kZXNjMy5zYW1wbGVyX3N0YXRlX3BvaW50 ZXIgPSAwOworCisJaWRkLT5kZXNjNC5iaW5kaW5nX3RhYmxlX2VudHJ5X2NvdW50ID0gMDsKKwlp ZGQtPmRlc2M0LmJpbmRpbmdfdGFibGVfcG9pbnRlciA9IChiaW5kaW5nX3RhYmxlX29mZnNldCA+ PiA1KTsKKworCWlkZC0+ZGVzYzUuY29uc3RhbnRfdXJiX2VudHJ5X3JlYWRfb2Zmc2V0ID0gMDsK KwlpZGQtPmRlc2M1LmNvbnN0YW50X3VyYl9lbnRyeV9yZWFkX2xlbmd0aCA9IDE7IC8qIGdyZiAx ICovCisKKwlpZGQtPmRlc2M2Lm51bV90aHJlYWRzX2luX3RnID0gMTsKKworCXJldHVybiBvZmZz ZXQ7Cit9CisKK3N0YXRpYyB2b2lkCitnZW44X2VtaXRfc3RhdGVfYmFzZV9hZGRyZXNzKHN0cnVj dCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gpCit7CisJT1VUX0JBVENIKEdFTjhfU1RBVEVfQkFT RV9BRERSRVNTIHwgKDE2IC0gMikpOworCisJLyogZ2VuZXJhbCAqLworCU9VVF9CQVRDSCgwIHwg QkFTRV9BRERSRVNTX01PRElGWSk7CisJT1VUX0JBVENIKDApOworCisJLyogc3RhdGVsZXNzIGRh dGEgcG9ydCAqLworCU9VVF9CQVRDSCgwIHwgQkFTRV9BRERSRVNTX01PRElGWSk7CisKKwkvKiBz dXJmYWNlICovCisJT1VUX1JFTE9DKGJhdGNoLT5ibywgSTkxNV9HRU1fRE9NQUlOX1NBTVBMRVIs IDAsIEJBU0VfQUREUkVTU19NT0RJRlkpOworCisJLyogZHluYW1pYyAqLworCU9VVF9SRUxPQyhi YXRjaC0+Ym8sCisJCSAgSTkxNV9HRU1fRE9NQUlOX1JFTkRFUiB8IEk5MTVfR0VNX0RPTUFJTl9J TlNUUlVDVElPTiwKKwkJICAwLCBCQVNFX0FERFJFU1NfTU9ESUZZKTsKKworCS8qIGluZGlyZWN0 ICovCisJT1VUX0JBVENIKDApOworCU9VVF9CQVRDSCgwKTsKKworCS8qIGluc3RydWN0aW9uICov CisJT1VUX1JFTE9DKGJhdGNoLT5ibywgSTkxNV9HRU1fRE9NQUlOX0lOU1RSVUNUSU9OLCAwLAor CQkgIEJBU0VfQUREUkVTU19NT0RJRlkpOworCisJLyogZ2VuZXJhbCBzdGF0ZSBidWZmZXIgc2l6 ZSAqLworCU9VVF9CQVRDSCgweGZmZmZmMDAwIHwgMSk7CisJLyogZHluYW1pYyBzdGF0ZSBidWZm ZXIgc2l6ZSAqLworCU9VVF9CQVRDSCgxIDw8IDEyIHwgMSk7CisJLyogaW5kaXJlY3Qgb2JqZWN0 IGJ1ZmZlciBzaXplICovCisJT1VUX0JBVENIKDB4ZmZmZmYwMDAgfCAxKTsKKwkvKiBpbnN0cnVj dGlvbiBidWZmZXIgc2l6ZSwgbXVzdCBzZXQgbW9kaWZ5IGVuYWJsZSBiaXQsIG90aGVyd2lzZSBp dCBtYXkKKwkgKiByZXN1bHQgaW4gR1BVIGhhbmcKKwkgKi8KKwlPVVRfQkFUQ0goMSA8PCAxMiB8 IDEpOworfQorCitzdGF0aWMgdm9pZAorZ2VuOF9lbWl0X3ZmZV9zdGF0ZShzdHJ1Y3QgaW50ZWxf YmF0Y2hidWZmZXIgKmJhdGNoLCB1aW50MzJfdCB0aHJlYWRzLAorCQkgICAgdWludDMyX3QgdXJi X2VudHJpZXMsIHVpbnQzMl90IHVyYl9zaXplLAorCQkgICAgdWludDMyX3QgY3VyYmVfc2l6ZSkK K3sKKwlPVVRfQkFUQ0goR0VON19NRURJQV9WRkVfU1RBVEUgfCAoOSAtIDIpKTsKKworCS8qIHNj cmF0Y2ggYnVmZmVyICovCisJT1VUX0JBVENIKDApOworCU9VVF9CQVRDSCgwKTsKKworCS8qIG51 bWJlciBvZiB0aHJlYWRzICYgdXJiIGVudHJpZXMgKi8KKwlPVVRfQkFUQ0godGhyZWFkcyA8PCAx NiB8CisJCXVyYl9lbnRyaWVzIDw8IDgpOworCisJT1VUX0JBVENIKDApOworCisJLyogdXJiIGVu dHJ5IHNpemUgJiBjdXJiZSBzaXplICovCisJT1VUX0JBVENIKHVyYl9zaXplIDw8IDE2IHwKKwkJ Y3VyYmVfc2l6ZSk7CisKKwkvKiBzY29yZWJvYXJkICovCisJT1VUX0JBVENIKDApOworCU9VVF9C QVRDSCgwKTsKKwlPVVRfQkFUQ0goMCk7Cit9CisKK3N0YXRpYyB2b2lkCitnZW43X2VtaXRfY3Vy YmVfbG9hZChzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLCB1aW50MzJfdCBjdXJiZV9i dWZmZXIpCit7CisJT1VUX0JBVENIKEdFTjdfTUVESUFfQ1VSQkVfTE9BRCB8ICg0IC0gMikpOwor CU9VVF9CQVRDSCgwKTsKKwkvKiBjdXJiZSB0b3RhbCBkYXRhIGxlbmd0aCAqLworCU9VVF9CQVRD SCg2NCk7CisJLyogY3VyYmUgZGF0YSBzdGFydCBhZGRyZXNzLCBpcyByZWxhdGl2ZSB0byB0aGUg ZHluYW1pY3MgYmFzZSBhZGRyZXNzICovCisJT1VUX0JBVENIKGN1cmJlX2J1ZmZlcik7Cit9CisK K3N0YXRpYyB2b2lkCitnZW43X2VtaXRfaW50ZXJmYWNlX2Rlc2NyaXB0b3JfbG9hZChzdHJ1Y3Qg aW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoLAorCQkJCSAgICB1aW50MzJfdCBpbnRlcmZhY2VfZGVz Y3JpcHRvcikKK3sKKwlPVVRfQkFUQ0goR0VON19NRURJQV9JTlRFUkZBQ0VfREVTQ1JJUFRPUl9M T0FEIHwgKDQgLSAyKSk7CisJT1VUX0JBVENIKDApOworCS8qIGludGVyZmFjZSBkZXNjcmlwdG9y IGRhdGEgbGVuZ3RoICovCisJaWYgKElTX0dFTjcoYmF0Y2gtPmRldmlkKSkKKwkJT1VUX0JBVENI KHNpemVvZihzdHJ1Y3QgZ2VuN19pbnRlcmZhY2VfZGVzY3JpcHRvcl9kYXRhKSk7CisJZWxzZQor CQlPVVRfQkFUQ0goc2l6ZW9mKHN0cnVjdCBnZW44X2ludGVyZmFjZV9kZXNjcmlwdG9yX2RhdGEp KTsKKwkvKiBpbnRlcmZhY2UgZGVzY3JpcHRvciBhZGRyZXNzLCBpcyByZWxhdGl2ZSB0byB0aGUg ZHluYW1pY3MgYmFzZQorCSAqIGFkZHJlc3MKKwkgKi8KKwlPVVRfQkFUQ0goaW50ZXJmYWNlX2Rl c2NyaXB0b3IpOworfQorCitzdGF0aWMgdm9pZAorZ2VuOF9lbWl0X21lZGlhX3N0YXRlX2ZsdXNo KHN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gpCit7CisJT1VUX0JBVENIKEdFTjhfTUVE SUFfU1RBVEVfRkxVU0ggfCAoMiAtIDIpKTsKKwlPVVRfQkFUQ0goMCk7Cit9CisKK3N0YXRpYyB2 b2lkCitnZW5fZW1pdF9tZWRpYV9vYmplY3Qoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRj aCwKKwkJICAgICAgdW5zaWduZWQgaW50IHhvZmYsIHVuc2lnbmVkIGludCB5b2ZmKQoreworCU9V VF9CQVRDSChHRU43X01FRElBX09CSkVDVCB8ICg4IC0gMikpOworCisJLyogaW50ZXJmYWNlIGRl c2NyaXB0b3Igb2Zmc2V0ICovCisJT1VUX0JBVENIKDApOworCisJLyogd2l0aG91dCBpbmRpcmVj dCBkYXRhICovCisJT1VUX0JBVENIKDApOworCU9VVF9CQVRDSCgwKTsKKworCS8qIHNjb3JlYm9h cmQgKi8KKwlPVVRfQkFUQ0goMCk7CisJT1VUX0JBVENIKDApOworCisJLyogaW5saW5lIGRhdGEg KHhvZmZzZXQsIHlvZmZzZXQpICovCisJT1VUX0JBVENIKHhvZmYpOworCU9VVF9CQVRDSCh5b2Zm KTsKKwlpZiAoQVRfTEVBU1RfR0VOKGJhdGNoLT5kZXZpZCwgOCkgJiYgIUlTX0NIRVJSWVZJRVco YmF0Y2gtPmRldmlkKSkKKwkJZ2VuOF9lbWl0X21lZGlhX3N0YXRlX2ZsdXNoKGJhdGNoKTsKK30K Kworc3RhdGljIHZvaWQKK2dlbjlfZW1pdF9zdGF0ZV9iYXNlX2FkZHJlc3Moc3RydWN0IGludGVs X2JhdGNoYnVmZmVyICpiYXRjaCkKK3sKKwlPVVRfQkFUQ0goR0VOOF9TVEFURV9CQVNFX0FERFJF U1MgfCAoMTkgLSAyKSk7CisKKwkvKiBnZW5lcmFsICovCisJT1VUX0JBVENIKDAgfCBCQVNFX0FE RFJFU1NfTU9ESUZZKTsKKwlPVVRfQkFUQ0goMCk7CisKKwkvKiBzdGF0ZWxlc3MgZGF0YSBwb3J0 ICovCisJT1VUX0JBVENIKDAgfCBCQVNFX0FERFJFU1NfTU9ESUZZKTsKKworCS8qIHN1cmZhY2Ug Ki8KKwlPVVRfUkVMT0MoYmF0Y2gtPmJvLCBJOTE1X0dFTV9ET01BSU5fU0FNUExFUiwgMCwgQkFT RV9BRERSRVNTX01PRElGWSk7CisKKwkvKiBkeW5hbWljICovCisJT1VUX1JFTE9DKGJhdGNoLT5i bywKKwkJICBJOTE1X0dFTV9ET01BSU5fUkVOREVSIHwgSTkxNV9HRU1fRE9NQUlOX0lOU1RSVUNU SU9OLAorCQkgIDAsIEJBU0VfQUREUkVTU19NT0RJRlkpOworCisJLyogaW5kaXJlY3QgKi8KKwlP VVRfQkFUQ0goMCk7CisJT1VUX0JBVENIKDApOworCisJLyogaW5zdHJ1Y3Rpb24gKi8KKwlPVVRf UkVMT0MoYmF0Y2gtPmJvLCBJOTE1X0dFTV9ET01BSU5fSU5TVFJVQ1RJT04sIDAsCisJCSAgQkFT RV9BRERSRVNTX01PRElGWSk7CisKKwkvKiBnZW5lcmFsIHN0YXRlIGJ1ZmZlciBzaXplICovCisJ T1VUX0JBVENIKDB4ZmZmZmYwMDAgfCAxKTsKKwkvKiBkeW5hbWljIHN0YXRlIGJ1ZmZlciBzaXpl ICovCisJT1VUX0JBVENIKDEgPDwgMTIgfCAxKTsKKwkvKiBpbmRpcmVjdCBvYmplY3QgYnVmZmVy IHNpemUgKi8KKwlPVVRfQkFUQ0goMHhmZmZmZjAwMCB8IDEpOworCS8qIGludHJ1Y3Rpb24gYnVm ZmVyIHNpemUsIG11c3Qgc2V0IG1vZGlmeSBlbmFibGUgYml0LCBvdGhlcndpc2UgaXQgbWF5CisJ ICogcmVzdWx0IGluIEdQVSBoYW5nCisJICovCisJT1VUX0JBVENIKDEgPDwgMTIgfCAxKTsKKwor CS8qIEJpbmRsZXNzIHN1cmZhY2Ugc3RhdGUgYmFzZSBhZGRyZXNzICovCisJT1VUX0JBVENIKDAg fCBCQVNFX0FERFJFU1NfTU9ESUZZKTsKKwlPVVRfQkFUQ0goMCk7CisJT1VUX0JBVENIKDB4ZmZm ZmYwMDApOworfQorCiB2b2lkCiBnZW44X21lZGlhX3NwaW5mdW5jKHN0cnVjdCBpbnRlbF9iYXRj aGJ1ZmZlciAqYmF0Y2gsCiAJCSAgICBjb25zdCBzdHJ1Y3QgaWd0X2J1ZiAqZHN0LCB1aW50MzJf dCBzcGlucykKQEAgLTExOSw2ICs0ODAsNyBAQCBnZW44X21lZGlhX3NwaW5mdW5jKHN0cnVjdCBp bnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2gsCiAJaW50ZWxfYmF0Y2hidWZmZXJfcmVzZXQoYmF0Y2gp OwogfQogCisKIHZvaWQKIGdlbjlfbWVkaWFfc3BpbmZ1bmMoc3RydWN0IGludGVsX2JhdGNoYnVm ZmVyICpiYXRjaCwKIAkJICAgIGNvbnN0IHN0cnVjdCBpZ3RfYnVmICpkc3QsIHVpbnQzMl90IHNw aW5zKQotLSAKMi4yNi4wCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXYK