From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Widawsky Subject: =?utf-8?q?=5BPATCH=5D_l3_parity_tool?= Date: Fri, 27 Apr 2012 17:40:22 -0700 Message-ID: <1335573622-10646-7-git-send-email-ben@bwidawsk.net> References: <1335573622-10646-1-git-send-email-ben@bwidawsk.net> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from cloud01.chad-versace.us (184-106-247-128.static.cloud-ips.com [184.106.247.128]) by gabe.freedesktop.org (Postfix) with ESMTP id 878AD9EF63 for ; Fri, 27 Apr 2012 17:42:05 -0700 (PDT) In-Reply-To: <1335573622-10646-1-git-send-email-ben@bwidawsk.net> 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 Cc: Ben Widawsky List-Id: intel-gfx@lists.freedesktop.org VGhpcyB0b29sIGlzIHVzZWQgdG8gcHJvZ3JhbSwgYW5kIHJlYWQgdGhlIGwzIHBhcml0eSBpbmZv cm1hdGlvbi4KClNpZ25lZC1vZmYtYnk6IEJlbiBXaWRhd3NreSA8YmVuQGJ3aWRhd3NrLm5ldD4K LS0tCiBsaWIvaW50ZWxfY2hpcHNldC5oICAgICB8ICAgIDIgKwogdG9vbHMvTWFrZWZpbGUuYW0g ICAgICAgfCAgICAzICstCiB0b29scy9pbnRlbF9sM19wYXJpdHkuYyB8ICAxNTAgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwg MTU0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29s cy9pbnRlbF9sM19wYXJpdHkuYwoKZGlmZiAtLWdpdCBhL2xpYi9pbnRlbF9jaGlwc2V0LmggYi9s aWIvaW50ZWxfY2hpcHNldC5oCmluZGV4IDY2OGJmNTkuLjdiYzVlMTcgMTAwNzU1Ci0tLSBhL2xp Yi9pbnRlbF9jaGlwc2V0LmgKKysrIGIvbGliL2ludGVsX2NoaXBzZXQuaApAQCAtODIsNiArODIs NyBAQAogI2RlZmluZSBQQ0lfQ0hJUF9JVllCUklER0VfR1QyCTB4MDE2MgogI2RlZmluZSBQQ0lf Q0hJUF9JVllCUklER0VfTV9HVDEJMHgwMTU2IC8qIG1vYmlsZSAqLwogI2RlZmluZSBQQ0lfQ0hJ UF9JVllCUklER0VfTV9HVDIJMHgwMTY2CisjZGVmaW5lIFBDSV9DSElQX0lWWUJSSURHRV9TX0dU MgkweDAxNmEKICNkZWZpbmUgUENJX0NISVBfSVZZQlJJREdFX1MJCTB4MDE1YSAvKiBzZXJ2ZXIg Ki8KIAogI2RlZmluZSBJU19NT0JJTEUoZGV2aWQpCShkZXZpZCA9PSBQQ0lfQ0hJUF9JODU1X0dN IHx8IFwKQEAgLTE0OSw2ICsxNTAsNyBAQAogCQkJCSBkZXZpZCA9PSBQQ0lfQ0hJUF9JVllCUklE R0VfR1QyIHx8IFwKIAkJCQkgZGV2aWQgPT0gUENJX0NISVBfSVZZQlJJREdFX01fR1QxIHx8IFwK IAkJCQkgZGV2aWQgPT0gUENJX0NISVBfSVZZQlJJREdFX01fR1QyIHx8IFwKKwkJCQkgZGV2aWQg PT0gUENJX0NISVBfSVZZQlJJREdFX1NfR1QyIHx8IFwKIAkJCQkgZGV2aWQgPT0gUENJX0NISVBf SVZZQlJJREdFX1MpCiAKIApkaWZmIC0tZ2l0IGEvdG9vbHMvTWFrZWZpbGUuYW0gYi90b29scy9N YWtlZmlsZS5hbQppbmRleCAwNTg4MzVjLi5kMzUyMzE2IDEwMDY0NAotLS0gYS90b29scy9NYWtl ZmlsZS5hbQorKysgYi90b29scy9NYWtlZmlsZS5hbQpAQCAtMTQsNyArMTQsOCBAQCBiaW5fUFJP R1JBTVMgPSAJCQkJXAogCWludGVsX3JlZ19zbmFwc2hvdCAJCVwKIAlpbnRlbF9yZWdfd3JpdGUg CQlcCiAJaW50ZWxfcmVnX3JlYWQgCQkJXAotCWludGVsX2ZvcmNld2FrZWQKKwlpbnRlbF9mb3Jj ZXdha2VkCQlcCisJaW50ZWxfbDNfcGFyaXR5CiAKIG5vaW5zdF9QUk9HUkFNUyA9IAkJCVwKIAlp bnRlbF9kdW1wX2RlY29kZSAJCVwKZGlmZiAtLWdpdCBhL3Rvb2xzL2ludGVsX2wzX3Bhcml0eS5j IGIvdG9vbHMvaW50ZWxfbDNfcGFyaXR5LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uMWMxNjkwMwotLS0gL2Rldi9udWxsCisrKyBiL3Rvb2xzL2ludGVsX2wzX3Bhcml0eS5j CkBAIC0wLDAgKzEsMTUwIEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTIgSW50ZWwgQ29ycG9y YXRpb24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJn ZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFu ZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRv IGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRo b3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdl LCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVz IG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBT b2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBj b25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBl cm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwg YmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUK KyAqIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBX SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNM VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU WSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F TlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERF UlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElU WSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBB UklTSU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FS RSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisgKgor ICogQXV0aG9yczoKKyAqICAgIEJlbiBXaWRhd3NreSA8YmVuQGJ3aWRhd3NrLm5ldD4KKyAqCisg Ki8KKworI2RlZmluZSBfR05VX1NPVVJDRQorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1 ZGUgPHN5cy9zdGF0Lmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgor I2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHN0cmluZy5oPgorI2luY2x1ZGUgPHVuaXN0 ZC5oPgorI2luY2x1ZGUgImRybXRlc3QuaCIKKworI2RlZmluZSBOVU1fQkFOS1MgNAorI2RlZmlu ZSBOVU1fU1VCQkFOS1MgOAorI2RlZmluZSBOVU1fUkVHUyAoTlVNX0JBTktTICogTlVNX1NVQkJB TktTKQorCitzdHJ1Y3QgX19hdHRyaWJ1dGVfXyAoKF9fcGFja2VkX18pKSBsM19sb2dfcmVnaXN0 ZXIgeworCXVpbnQzMl90IHJvdzBfZW5hYmxlCTogMTsKKwl1aW50MzJfdCByc3ZkMgkJOiA0Owor CXVpbnQzMl90IHJvdzAJCTogMTE7CisJdWludDMyX3Qgcm93MV9lbmFibGUJOiAxOworCXVpbnQz Ml90IHJzdmQxCQk6IDQ7CisJdWludDMyX3Qgcm93MQkJOiAxMTsKK30gbDNsb2dbTlVNX0JBTktT XVtOVU1fU1VCQkFOS1NdOworCitzdGF0aWMgdm9pZCBkdW1waXQodm9pZCkKK3sKKwlpbnQgaSwg ajsKKworCWZvciAoaSA9IDA7IGkgPCBOVU1fQkFOS1M7IGkrKykgeworCQlmb3IgKGogPSAwOyBq IDwgTlVNX1NVQkJBTktTOyBqKyspIHsKKwkJCXN0cnVjdCBsM19sb2dfcmVnaXN0ZXIgKnJlZyA9 ICZsM2xvZ1tpXVtqXTsKKworCQlpZiAocmVnLT5yb3cwX2VuYWJsZSkKKwkJCXByaW50ZigiUm93 ICVkLCBCYW5rICVkLCBTdWJiYW5rICVkIGlzIGRpc2FibGVcbiIsCisJCQkgICAgICAgcmVnLT5y b3cwLCBpLCBqKTsKKwkJaWYgKHJlZy0+cm93MV9lbmFibGUpCisJCQlwcmludGYoIlJvdyAlZCwg QmFuayAlZCwgU3ViYmFuayAlZCBpcyBkaXNhYmxlXG4iLAorCQkJICAgICAgIHJlZy0+cm93MSwg aSwgaik7CisJCX0KKwl9Cit9CisKK3N0YXRpYyBpbnQgZGlzYWJsZV9yYnMoaW50IHJvdywgaW50 IGJhbmssIGludCBzYmFuaykKK3sKKwlzdHJ1Y3QgbDNfbG9nX3JlZ2lzdGVyICpyZWcgPSAmbDNs b2dbYmFua11bc2JhbmtdOworCisJLy8gY2FuJ3QgbWFwIG1vcmUgdGhhbiAyIHJvd3MKKwlpZiAo cmVnLT5yb3cwX2VuYWJsZSAmJiByZWctPnJvdzFfZW5hYmxlKQorCQlyZXR1cm4gLTE7CisKKwkv LyBjYW4ndCByZW1hcCB0aGUgc2FtZSByb3cgdHdpY2UKKwlpZiAoKHJlZy0+cm93MF9lbmFibGUg JiYgcmVnLT5yb3cwID09IHJvdykgfHwKKwkgICAgKHJlZy0+cm93MV9lbmFibGUgJiYgcmVnLT5y b3cxID09IHJvdykpIHsKKwkJcmV0dXJuIC0xOworCX0KKworCWlmIChyZWctPnJvdzBfZW5hYmxl KSB7CisJCXJlZy0+cm93MSA9IHJvdzsKKwkJcmVnLT5yb3cxX2VuYWJsZSA9IDE7CisJfSBlbHNl IHsKKwkJcmVnLT5yb3cwID0gcm93OworCQlyZWctPnJvdzBfZW5hYmxlID0gMTsKKwl9CisKKwly ZXR1cm4gMDsKK30KKworc3RhdGljIGludCBkb19wYXJzZShpbnQgYXJnYywgY2hhciAqYXJndltd KQoreworCWludCByb3csIGJhbmssIHNiYW5rLCBpLCByZXQ7CisKKwlmb3IgKGkgPSAxOyBpIDwg YXJnYzsgaSsrKSB7CisJCXJldCA9IHNzY2FuZihhcmd2W2ldLCAiJWQsJWQsJWQiLCAmcm93LCAm YmFuaywgJnNiYW5rKTsKKwkJaWYgKHJldCAhPSAzKQorCQkJcmV0dXJuIGk7CisJCWFzc2VydChk aXNhYmxlX3Jicyhyb3csIGJhbmssIHNiYW5rKSA9PSAwKTsKKwl9CisJcmV0dXJuIDA7Cit9CisK K2ludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCit7CisJY29uc3QgaW50IGRldmljZSA9 IGRybV9nZXRfY2FyZCgwKTsKKwljaGFyICpwYXRoOworCWludCBmZCwgcmV0OworCisJcmV0ID0g YXNwcmludGYoJnBhdGgsICIvc3lzL2NsYXNzL2RybS9jYXJkJWQvbDNfcGFyaXR5IiwgZGV2aWNl KTsKKwlhc3NlcnQocmV0ICE9IC0xKTsKKworCWZkID0gb3BlbihwYXRoLCBPX1JEV1IpOworCWlm IChmZCA9PSAtMSkgeworCQlwZXJyb3IoIk9wZW5pbmcgc3lzZnMiKTsKKwkJZXhpdChFWElUX0ZB SUxVUkUpOworCX0KKworCXJldCA9IHJlYWQoZmQsIGwzbG9nLCBOVU1fUkVHUyAqIHNpemVvZih1 aW50MzJfdCkpOworCWlmIChyZXQgPT0gLTEpIHsKKwkJcGVycm9yKCJSZWFkaW5nIHN5c2ZzIik7 CisJCWV4aXQoRVhJVF9GQUlMVVJFKTsKKwl9CisKKwlhc3NlcnQobHNlZWsoZmQsIDAsIFNFRUtf U0VUKSA9PSAwKTsKKworCWlmIChhcmdjID09IDEpIHsKKwkJZHVtcGl0KCk7CisJCWV4aXQoRVhJ VF9TVUNDRVNTKTsKKwl9CisKKwlyZXQgPSBkb19wYXJzZShhcmdjLCBhcmd2KTsKKwlpZiAocmV0 ICE9IDApIHsKKwkJZnByaW50ZihzdGRlcnIsICJNYWxmb3JtZWQgY29tbWFuZCBsaW5lIGF0ICVz XG4iLCBhcmd2W3JldF0pOworCQlleGl0KEVYSVRfRkFJTFVSRSk7CisJfQorCisJcmV0ID0gd3Jp dGUoZmQsIGwzbG9nLCBOVU1fUkVHUyAqIHNpemVvZih1aW50MzJfdCkpOworCWlmIChyZXQgPT0g LTEpIHsKKwkJcGVycm9yKCJXcml0aW5nIHN5c2ZzIik7CisJCWV4aXQoRVhJVF9GQUlMVVJFKTsK Kwl9CisKKwljbG9zZShmZCk7CisKKwlleGl0KEVYSVRfU1VDQ0VTUyk7Cit9Ci0tIAoxLjcuMTAK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==