From mboxrd@z Thu Jan 1 00:00:00 1970 From: Patrick McHardy Subject: Re: [PATCH] Add xt_tos Date: Sat, 20 Oct 2007 17:49:33 +0200 Message-ID: <471A238D.2010705@trash.net> References: <471A2338.6060501@trash.net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------060903050902040602040502" Cc: Netfilter Developer Mailing List To: Jan Engelhardt Return-path: Received: from stinky.trash.net ([213.144.137.162]:34342 "EHLO stinky.trash.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755709AbXJTPue (ORCPT ); Sat, 20 Oct 2007 11:50:34 -0400 In-Reply-To: <471A2338.6060501@trash.net> Sender: netfilter-devel-owner@vger.kernel.org List-Id: netfilter-devel.vger.kernel.org This is a multi-part message in MIME format. --------------060903050902040602040502 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Patrick McHardy wrote: > Jan Engelhardt wrote: >> --- /dev/null >> +++ gitone/include/linux/netfilter/xt_tos.h >> @@ -0,0 +1,13 @@ >> +#ifndef _XT_TOS_MATCH_H >> +#define _XT_TOS_MATCH_H >> + >> +struct xt_tos_info { >> + u_int8_t tos; >> + u_int8_t invert; >> +}; >> > > I think this will break compatiblity on CRIS, which IIRC doesn't > perform any alignment (XT_ALIGN becomes a NOP) and thus the > structure size increases. > > I've already queued up the patch with some changes (capital > letters removed from function names, keep ipt_TOS.h, Kbuild), > could you send me a fix on top of that? I guess the options > are to remove inversion or to introduce a new revision (or > to convice me that I'm wrong :)) And the patch .. --------------060903050902040602040502 Content-Type: text/plain; name="x" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="x" W05FVEZJTFRFUl06IHhfdGFibGVzOiBjb252ZXJ0IGlwdF9UT1MgdG8geHRfVE9TCgpDb252 ZXJ0IGlwdF9UT1MgdG8geHRfVE9TLCBhZGRpbmcgc3VwcG9ydCBmb3IgSVB2NgoKU2lnbmVk LW9mZi1ieTogSmFuIEVuZ2VsaGFyZHQgPGplbmdlbGhAY29tcHV0ZXJnbWJoLmRlPgpTaWdu ZWQtb2ZmLWJ5OiBQYXRyaWNrIE1jSGFyZHkgPGthYmVyQHRyYXNoLm5ldD4KCi0tLQpjb21t aXQgYjE3OWZlZTRjMTkyYmUwNjhhZTUwNjg0ZjAxNTZhMzRkNGI4NzQ2Mgp0cmVlIDhiYjg2 OGI1MmEyMzZhMDdjNzA4ZWJiNjllNzkzYTNlMGZiNDFhYmYKcGFyZW50IDQ4NjZkNzJlYzdi ZjBmZWIyNDY5NTA2MzY0YmMyN2I4YTcxMmVjZGUKYXV0aG9yIEphbiBFbmdlbGhhcmR0IDxq ZW5nZWxoQGNvbXB1dGVyZ21iaC5kZT4gU2F0LCAyMCBPY3QgMjAwNyAxNzo0NTowNCArMDIw MApjb21taXR0ZXIgUGF0cmljayBNY0hhcmR5IDxrYWJlckB0cmFzaC5uZXQ+IFNhdCwgMjAg T2N0IDIwMDcgMTc6NDU6MDQgKzAyMDAKCiBpbmNsdWRlL2xpbnV4L25ldGZpbHRlci9LYnVp bGQgICAgICAgICB8ICAgIDEgCiBpbmNsdWRlL2xpbnV4L25ldGZpbHRlci94dF9UT1MuaCAg ICAgICB8ICAgMTIgKysrCiBpbmNsdWRlL2xpbnV4L25ldGZpbHRlcl9pcHY0L2lwdF9UT1Mu aCB8ICAgIDggLS0KIG5ldC9pcHY0L25ldGZpbHRlci9LY29uZmlnICAgICAgICAgICAgIHwg ICAxMCAtLQogbmV0L2lwdjQvbmV0ZmlsdGVyL01ha2VmaWxlICAgICAgICAgICAgfCAgICAx IAogbmV0L2lwdjQvbmV0ZmlsdGVyL2lwdF9UT1MuYyAgICAgICAgICAgfCAgIDg3IC0tLS0t LS0tLS0tLS0tLS0tLS0tLQogbmV0L25ldGZpbHRlci9LY29uZmlnICAgICAgICAgICAgICAg ICAgfCAgICA4ICsrCiBuZXQvbmV0ZmlsdGVyL01ha2VmaWxlICAgICAgICAgICAgICAgICB8 ICAgIDEgCiBuZXQvbmV0ZmlsdGVyL3h0X1RPUy5jICAgICAgICAgICAgICAgICB8ICAxMzAg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDkgZmlsZXMgY2hhbmdlZCwgMTU0 IGluc2VydGlvbnMoKyksIDEwNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRl L2xpbnV4L25ldGZpbHRlci9LYnVpbGQgYi9pbmNsdWRlL2xpbnV4L25ldGZpbHRlci9LYnVp bGQKaW5kZXggMmI5MTg2OS4uYTE3MDc0MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9u ZXRmaWx0ZXIvS2J1aWxkCisrKyBiL2luY2x1ZGUvbGludXgvbmV0ZmlsdGVyL0tidWlsZApA QCAtMzYsNiArMzYsNyBAQCBoZWFkZXIteSArPSB4dF90b3MuaAogaGVhZGVyLXkgKz0geHRf U0VDTUFSSy5oCiBoZWFkZXIteSArPSB4dF9DT05OU0VDTUFSSy5oCiBoZWFkZXIteSArPSB4 dF9UQ1BNU1MuaAoraGVhZGVyLXkgKz0geHRfVE9TLmgKIAogdW5pZmRlZi15ICs9IG5mX2Nv bm50cmFja19jb21tb24uaAogdW5pZmRlZi15ICs9IG5mX2Nvbm50cmFja19mdHAuaApkaWZm IC0tZ2l0IGEvaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIveHRfVE9TLmggYi9pbmNsdWRlL2xp bnV4L25ldGZpbHRlci94dF9UT1MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi41ZDcwNzFhCi0tLSAvZGV2L251bGwKKysrIGIvaW5jbHVkZS9saW51eC9uZXRmaWx0 ZXIveHRfVE9TLmgKQEAgLTAsMCArMSwxMiBAQAorI2lmbmRlZiBfWFRfVE9TX1RBUkdFVF9I CisjZGVmaW5lIF9YVF9UT1NfVEFSR0VUX0gKKworI2lmbmRlZiBJUFRPU19OT1JNQUxTVkMK KyMJZGVmaW5lIElQVE9TX05PUk1BTFNWQyAwCisjZW5kaWYKKworc3RydWN0IHh0X1RPU19p bmZvIHsKKwl1X2ludDhfdCB0b3NfdmFsdWUsIHRvc19tYXNrOworfTsKKworI2VuZGlmIC8q IF9YVF9UT1NfVEFSR0VUX0ggKi8KZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbmV0Zmls dGVyX2lwdjQvaXB0X1RPUy5oIGIvaW5jbHVkZS9saW51eC9uZXRmaWx0ZXJfaXB2NC9pcHRf VE9TLmgKaW5kZXggNmJmOWUxZi4uZDgwMDE5YyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51 eC9uZXRmaWx0ZXJfaXB2NC9pcHRfVE9TLmgKKysrIGIvaW5jbHVkZS9saW51eC9uZXRmaWx0 ZXJfaXB2NC9pcHRfVE9TLmgKQEAgLTEsMTIgKzEsOCBAQAogI2lmbmRlZiBfSVBUX1RPU19I X3RhcmdldAogI2RlZmluZSBfSVBUX1RPU19IX3RhcmdldAogCi0jaWZuZGVmIElQVE9TX05P Uk1BTFNWQwotI2RlZmluZSBJUFRPU19OT1JNQUxTVkMgMAotI2VuZGlmCisjaW5jbHVkZSA8 bGludXgvbmV0ZmlsdGVyL3h0X1RPUy5oPgogCi1zdHJ1Y3QgaXB0X3Rvc190YXJnZXRfaW5m byB7Ci0JdV9pbnQ4X3QgdG9zOwotfTsKKyNkZWZpbmUgaXB0X3Rvc190YXJnZXRfaW5mbyB4 dF9UT1NfaW5mbwogCiAjZW5kaWYgLypfSVBUX1RPU19IX3RhcmdldCovCmRpZmYgLS1naXQg YS9uZXQvaXB2NC9uZXRmaWx0ZXIvS2NvbmZpZyBiL25ldC9pcHY0L25ldGZpbHRlci9LY29u ZmlnCmluZGV4IDI3Y2Q3Y2QuLjMwYzYxYTAgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L25ldGZp bHRlci9LY29uZmlnCisrKyBiL25ldC9pcHY0L25ldGZpbHRlci9LY29uZmlnCkBAIC0zMDIs MTYgKzMwMiw2IEBAIGNvbmZpZyBJUF9ORl9NQU5HTEUKIAogCSAgVG8gY29tcGlsZSBpdCBh cyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZS4gIElmIHVuc3VyZSwgc2F5IE4uCiAKLWNvbmZp ZyBJUF9ORl9UQVJHRVRfVE9TCi0JdHJpc3RhdGUgIlRPUyB0YXJnZXQgc3VwcG9ydCIKLQlk ZXBlbmRzIG9uIElQX05GX01BTkdMRQotCWhlbHAKLQkgIFRoaXMgb3B0aW9uIGFkZHMgYSBg VE9TJyB0YXJnZXQsIHdoaWNoIGFsbG93cyB5b3UgdG8gY3JlYXRlIHJ1bGVzIGluCi0JICB0 aGUgYG1hbmdsZScgdGFibGUgd2hpY2ggYWx0ZXIgdGhlIFR5cGUgT2YgU2VydmljZSBmaWVs ZCBvZiBhbiBJUAotCSAgcGFja2V0IHByaW9yIHRvIHJvdXRpbmcuCi0KLQkgIFRvIGNvbXBp bGUgaXQgYXMgYSBtb2R1bGUsIGNob29zZSBNIGhlcmUuICBJZiB1bnN1cmUsIHNheSBOLgot CiBjb25maWcgSVBfTkZfVEFSR0VUX0VDTgogCXRyaXN0YXRlICJFQ04gdGFyZ2V0IHN1cHBv cnQiCiAJZGVwZW5kcyBvbiBJUF9ORl9NQU5HTEUKZGlmZiAtLWdpdCBhL25ldC9pcHY0L25l dGZpbHRlci9NYWtlZmlsZSBiL25ldC9pcHY0L25ldGZpbHRlci9NYWtlZmlsZQppbmRleCBj NWQ5MDZiLi41NzA0ZmM5IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9uZXRmaWx0ZXIvTWFrZWZp bGUKKysrIGIvbmV0L2lwdjQvbmV0ZmlsdGVyL01ha2VmaWxlCkBAIC01OCw3ICs1OCw2IEBA IG9iai0kKENPTkZJR19JUF9ORl9UQVJHRVRfTkVUTUFQKSArPSBpcHRfTkVUTUFQLm8KIG9i ai0kKENPTkZJR19JUF9ORl9UQVJHRVRfUkVESVJFQ1QpICs9IGlwdF9SRURJUkVDVC5vCiBv YmotJChDT05GSUdfSVBfTkZfVEFSR0VUX1JFSkVDVCkgKz0gaXB0X1JFSkVDVC5vCiBvYmot JChDT05GSUdfSVBfTkZfVEFSR0VUX1NBTUUpICs9IGlwdF9TQU1FLm8KLW9iai0kKENPTkZJ R19JUF9ORl9UQVJHRVRfVE9TKSArPSBpcHRfVE9TLm8KIG9iai0kKENPTkZJR19JUF9ORl9U QVJHRVRfVFRMKSArPSBpcHRfVFRMLm8KIG9iai0kKENPTkZJR19JUF9ORl9UQVJHRVRfVUxP RykgKz0gaXB0X1VMT0cubwogCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9uZXRmaWx0ZXIvaXB0 X1RPUy5jIGIvbmV0L2lwdjQvbmV0ZmlsdGVyL2lwdF9UT1MuYwpkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggZDQ1NzNiYS4uMDAwMDAwMAotLS0gYS9uZXQvaXB2NC9uZXRmaWx0 ZXIvaXB0X1RPUy5jCisrKyAvZGV2L251bGwKQEAgLTEsODcgKzAsMCBAQAotLyogVGhpcyBp cyBhIG1vZHVsZSB3aGljaCBpcyB1c2VkIGZvciBzZXR0aW5nIHRoZSBUT1MgZmllbGQgb2Yg YSBwYWNrZXQuICovCi0KLS8qIChDKSAxOTk5LTIwMDEgUGF1bCBgUnVzdHknIFJ1c3NlbGwK LSAqIChDKSAyMDAyLTIwMDQgTmV0ZmlsdGVyIENvcmUgVGVhbSA8Y29yZXRlYW1AbmV0Zmls dGVyLm9yZz4KLSAqCi0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICogaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMKLSAqIHB1 Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgotICovCi0KLSNpbmNs dWRlIDxsaW51eC9tb2R1bGUuaD4KLSNpbmNsdWRlIDxsaW51eC9za2J1ZmYuaD4KLSNpbmNs dWRlIDxsaW51eC9pcC5oPgotI2luY2x1ZGUgPG5ldC9jaGVja3N1bS5oPgotCi0jaW5jbHVk ZSA8bGludXgvbmV0ZmlsdGVyL3hfdGFibGVzLmg+Ci0jaW5jbHVkZSA8bGludXgvbmV0Zmls dGVyX2lwdjQvaXB0X1RPUy5oPgotCi1NT0RVTEVfTElDRU5TRSgiR1BMIik7Ci1NT0RVTEVf QVVUSE9SKCJOZXRmaWx0ZXIgQ29yZSBUZWFtIDxjb3JldGVhbUBuZXRmaWx0ZXIub3JnPiIp OwotTU9EVUxFX0RFU0NSSVBUSU9OKCJpcHRhYmxlcyBUT1MgbWFuZ2xpbmcgbW9kdWxlIik7 Ci0KLXN0YXRpYyB1bnNpZ25lZCBpbnQKLXRhcmdldChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAot ICAgICAgIGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICppbiwKLSAgICAgICBjb25zdCBzdHJ1 Y3QgbmV0X2RldmljZSAqb3V0LAotICAgICAgIHVuc2lnbmVkIGludCBob29rbnVtLAotICAg ICAgIGNvbnN0IHN0cnVjdCB4dF90YXJnZXQgKnRhcmdldCwKLSAgICAgICBjb25zdCB2b2lk ICp0YXJnaW5mbykKLXsKLQljb25zdCBzdHJ1Y3QgaXB0X3Rvc190YXJnZXRfaW5mbyAqdG9z aW5mbyA9IHRhcmdpbmZvOwotCXN0cnVjdCBpcGhkciAqaXBoID0gaXBfaGRyKHNrYik7Ci0K LQlpZiAoKGlwaC0+dG9zICYgSVBUT1NfVE9TX01BU0spICE9IHRvc2luZm8tPnRvcykgewot CQlfX3U4IG9sZHRvczsKLQkJaWYgKCFza2JfbWFrZV93cml0YWJsZShza2IsIHNpemVvZihz dHJ1Y3QgaXBoZHIpKSkKLQkJCXJldHVybiBORl9EUk9QOwotCQlpcGggPSBpcF9oZHIoc2ti KTsKLQkJb2xkdG9zID0gaXBoLT50b3M7Ci0JCWlwaC0+dG9zID0gKGlwaC0+dG9zICYgSVBU T1NfUFJFQ19NQVNLKSB8IHRvc2luZm8tPnRvczsKLQkJbmZfY3N1bV9yZXBsYWNlMigmaXBo LT5jaGVjaywgaHRvbnMob2xkdG9zKSwgaHRvbnMoaXBoLT50b3MpKTsKLQl9Ci0JcmV0dXJu IFhUX0NPTlRJTlVFOwotfQotCi1zdGF0aWMgYm9vbAotY2hlY2tlbnRyeShjb25zdCBjaGFy ICp0YWJsZW5hbWUsCi0JICAgY29uc3Qgdm9pZCAqZV92b2lkLAotCSAgIGNvbnN0IHN0cnVj dCB4dF90YXJnZXQgKnRhcmdldCwKLQkgICB2b2lkICp0YXJnaW5mbywKLQkgICB1bnNpZ25l ZCBpbnQgaG9va19tYXNrKQotewotCWNvbnN0IHVfaW50OF90IHRvcyA9ICgoc3RydWN0IGlw dF90b3NfdGFyZ2V0X2luZm8gKil0YXJnaW5mbyktPnRvczsKLQotCWlmICh0b3MgIT0gSVBU T1NfTE9XREVMQVkKLQkgICAgJiYgdG9zICE9IElQVE9TX1RIUk9VR0hQVVQKLQkgICAgJiYg dG9zICE9IElQVE9TX1JFTElBQklMSVRZCi0JICAgICYmIHRvcyAhPSBJUFRPU19NSU5DT1NU Ci0JICAgICYmIHRvcyAhPSBJUFRPU19OT1JNQUxTVkMpIHsKLQkJcHJpbnRrKEtFUk5fV0FS TklORyAiVE9TOiBiYWQgdG9zIHZhbHVlICUjeFxuIiwgdG9zKTsKLQkJcmV0dXJuIGZhbHNl OwotCX0KLQlyZXR1cm4gdHJ1ZTsKLX0KLQotc3RhdGljIHN0cnVjdCB4dF90YXJnZXQgaXB0 X3Rvc19yZWcgX19yZWFkX21vc3RseSA9IHsKLQkubmFtZQkJPSAiVE9TIiwKLQkuZmFtaWx5 CQk9IEFGX0lORVQsCi0JLnRhcmdldAkJPSB0YXJnZXQsCi0JLnRhcmdldHNpemUJPSBzaXpl b2Yoc3RydWN0IGlwdF90b3NfdGFyZ2V0X2luZm8pLAotCS50YWJsZQkJPSAibWFuZ2xlIiwK LQkuY2hlY2tlbnRyeQk9IGNoZWNrZW50cnksCi0JLm1lCQk9IFRISVNfTU9EVUxFLAotfTsK LQotc3RhdGljIGludCBfX2luaXQgaXB0X3Rvc19pbml0KHZvaWQpCi17Ci0JcmV0dXJuIHh0 X3JlZ2lzdGVyX3RhcmdldCgmaXB0X3Rvc19yZWcpOwotfQotCi1zdGF0aWMgdm9pZCBfX2V4 aXQgaXB0X3Rvc19maW5pKHZvaWQpCi17Ci0JeHRfdW5yZWdpc3Rlcl90YXJnZXQoJmlwdF90 b3NfcmVnKTsKLX0KLQotbW9kdWxlX2luaXQoaXB0X3Rvc19pbml0KTsKLW1vZHVsZV9leGl0 KGlwdF90b3NfZmluaSk7CmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL0tjb25maWcgYi9u ZXQvbmV0ZmlsdGVyL0tjb25maWcKaW5kZXggMGY3YWY2OS4uZDU4ZTNkNSAxMDA2NDQKLS0t IGEvbmV0L25ldGZpbHRlci9LY29uZmlnCisrKyBiL25ldC9uZXRmaWx0ZXIvS2NvbmZpZwpA QCAtNDE4LDYgKzQxOCwxNCBAQCBjb25maWcgTkVURklMVEVSX1hUX1RBUkdFVF9UQ1BPUFRT VFJJUAogCSAgVGhpcyBvcHRpb24gYWRkcyBhICJUQ1BPUFRTVFJJUCIgdGFyZ2V0LCB3aGlj aCBhbGxvd3MgeW91IHRvIHN0cmlwCiAJICBUQ1Agb3B0aW9ucyBmcm9tIFRDUCBwYWNrZXRz LgogCitjb25maWcgTkVURklMVEVSX1hUX1RBUkdFVF9UT1MKKwl0cmlzdGF0ZSAnIlRPUyIg dGFyZ2V0IHN1cHBvcnQnCisJZGVwZW5kcyBvbiBORVRGSUxURVJfWFRBQkxFUworCS0tLWhl bHAtLS0KKwlUaGlzIG9wdGlvbiBhZGRzIGEgIlRPUyIgdGFyZ2V0LCB3aGljaCBhbGxvd3Mg eW91IHRvIGNyZWF0ZSBydWxlcyBpbgorCXRoZSAibWFuZ2xlIiB0YWJsZSB0byBhbHRlciB0 aGUgVHlwZSBPZiBTZXJ2aWNlIGZpZWxkIG9mIGFuIElQdjQKKwlwYWNrZXQgb3IgdGhlIFRy YWZmaWMgQ2xhc3MgZmllbGQgb2YgYW4gSVB2NiBwYWNrZXQgcHJpb3IgdG8gcm91dGluZy4K KwogY29uZmlnIE5FVEZJTFRFUl9YVF9NQVRDSF9DT01NRU5UCiAJdHJpc3RhdGUgICciY29t bWVudCIgbWF0Y2ggc3VwcG9ydCcKIAlkZXBlbmRzIG9uIE5FVEZJTFRFUl9YVEFCTEVTCmRp ZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL01ha2VmaWxlIGIvbmV0L25ldGZpbHRlci9NYWtl ZmlsZQppbmRleCA0ZDQwMDQwLi5lMmEwMjg1IDEwMDY0NAotLS0gYS9uZXQvbmV0ZmlsdGVy L01ha2VmaWxlCisrKyBiL25ldC9uZXRmaWx0ZXIvTWFrZWZpbGUKQEAgLTQ5LDYgKzQ5LDcg QEAgb2JqLSQoQ09ORklHX05FVEZJTFRFUl9YVF9UQVJHRVRfTk9UUkFDSykgKz0geHRfTk9U UkFDSy5vCiBvYmotJChDT05GSUdfTkVURklMVEVSX1hUX1RBUkdFVF9TRUNNQVJLKSArPSB4 dF9TRUNNQVJLLm8KIG9iai0kKENPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX1RDUE1TUykg Kz0geHRfVENQTVNTLm8KIG9iai0kKENPTkZJR19ORVRGSUxURVJfWFRfVEFSR0VUX1RDUE9Q VFNUUklQKSArPSB4dF9UQ1BPUFRTVFJJUC5vCitvYmotJChDT05GSUdfTkVURklMVEVSX1hU X1RBUkdFVF9UT1MpICs9IHh0X1RPUy5vCiBvYmotJChDT05GSUdfTkVURklMVEVSX1hUX1RB UkdFVF9UUkFDRSkgKz0geHRfVFJBQ0UubwogCiAjIG1hdGNoZXMKZGlmZiAtLWdpdCBhL25l dC9uZXRmaWx0ZXIveHRfVE9TLmMgYi9uZXQvbmV0ZmlsdGVyL3h0X1RPUy5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVkNzdjYjQKLS0tIC9kZXYvbnVsbAorKysg Yi9uZXQvbmV0ZmlsdGVyL3h0X1RPUy5jCkBAIC0wLDAgKzEsMTMwIEBACisvKiBUaGlzIGlz IGEgbW9kdWxlIHdoaWNoIGlzIHVzZWQgZm9yIHNldHRpbmcgdGhlIFRPUyBmaWVsZCBvZiBh IHBhY2tldC4gKi8KKworLyogKEMpIDE5OTktMjAwMSBQYXVsIGBSdXN0eScgUnVzc2VsbAor ICogKEMpIDIwMDItMjAwNCBOZXRmaWx0ZXIgQ29yZSBUZWFtIDxjb3JldGVhbUBuZXRmaWx0 ZXIub3JnPgorICogwqkgMjAwNyBDQyBDb21wdXRlciBDb25zdWx0YW50cyBHbWJIIDxqZW5n ZWxoQGNvbXB1dGVyZ21iaC5kZT4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9u IDIgYXMKKyAqIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgor ICovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9za2J1 ZmYuaD4KKyNpbmNsdWRlIDxsaW51eC9pcC5oPgorI2luY2x1ZGUgPGxpbnV4L2lwdjYuaD4K KyNpbmNsdWRlIDxuZXQvY2hlY2tzdW0uaD4KKyNpbmNsdWRlIDxsaW51eC9uZXRmaWx0ZXIv eF90YWJsZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9uZXRmaWx0ZXIveHRfVE9TLmg+CisKK3N0 YXRpYyB1bnNpZ25lZCBpbnQKK3h0X3Rvc190YXJnZXQ0KHN0cnVjdCBza19idWZmICpza2Is IGNvbnN0IHN0cnVjdCBuZXRfZGV2aWNlICppbiwKKyAgICAgICAgICAgICAgIGNvbnN0IHN0 cnVjdCBuZXRfZGV2aWNlICpvdXQsIHVuc2lnbmVkIGludCBob29rbnVtLAorICAgICAgICAg ICAgICAgY29uc3Qgc3RydWN0IHh0X3RhcmdldCAqdGFyZ2V0LCBjb25zdCB2b2lkICp0YXJn aW5mbykKK3sKKwljb25zdCBzdHJ1Y3QgeHRfVE9TX2luZm8gKmluZm8gPSB0YXJnaW5mbzsK KwlzdHJ1Y3QgaXBoZHIgKmlwaCA9IGlwX2hkcihza2IpOworCXVfaW50OF90IG9sZF90b3M7 CisKKwlpZiAoKGlwaC0+dG9zICYgSVBUT1NfVE9TX01BU0spID09IGluZm8tPnRvc192YWx1 ZSkKKwkJcmV0dXJuIFhUX0NPTlRJTlVFOworCisJaWYgKCFza2JfbWFrZV93cml0YWJsZShz a2IsIHNpemVvZihzdHJ1Y3QgaXBoZHIpKSkKKwkJcmV0dXJuIE5GX0RST1A7CisKKwlpcGgg ICAgICA9IGlwX2hkcihza2IpOworCW9sZF90b3MgID0gaXBoLT50b3M7CisJaXBoLT50b3Mg PSAoaXBoLT50b3MgJiBJUFRPU19QUkVDX01BU0spIHwKKwkgICAgICAgICAgICgoaXBoLT50 b3MgJiBpbmZvLT50b3NfbWFzaykgXiBpbmZvLT50b3NfdmFsdWUpOworCW5mX2NzdW1fcmVw bGFjZTIoJmlwaC0+Y2hlY2ssIGh0b25zKG9sZF90b3MpLCBodG9ucyhpcGgtPnRvcykpOwor CXJldHVybiBYVF9DT05USU5VRTsKK30KKworc3RhdGljIHVuc2lnbmVkIGludAoreHRfdG9z X3RhcmdldDYoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2Ug KmluLAorICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IG5ldF9kZXZpY2UgKm91dCwgdW5z aWduZWQgaW50IGhvb2tudW0sCisgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgeHRfdGFy Z2V0ICp0YXJnZXQsIGNvbnN0IHZvaWQgKnRhcmdpbmZvKQoreworCWNvbnN0IHN0cnVjdCB4 dF9UT1NfaW5mbyAqaW5mbyA9IHRhcmdpbmZvOworCXN0cnVjdCBpcHY2aGRyICppcGggPSBp cHY2X2hkcihza2IpOworCisJaWYgKGlwaC0+cHJpb3JpdHkgPT0gaW5mby0+dG9zX3ZhbHVl KQorCQlyZXR1cm4gWFRfQ09OVElOVUU7CisKKwlpZiAoIXNrYl9tYWtlX3dyaXRhYmxlKHNr Yiwgc2l6ZW9mKHN0cnVjdCBpcHY2aGRyKSkpCisJCXJldHVybiBORl9EUk9QOworCisJaXBo ICAgICAgICAgICAgPSBpcHY2X2hkcihza2IpOworCWlwaC0+cHJpb3JpdHkgJj0gaW5mby0+ dG9zX21hc2s7CisJaXBoLT5wcmlvcml0eSBePSBpbmZvLT50b3NfdmFsdWU7CisJcmV0dXJu IFhUX0NPTlRJTlVFOworfQorCitzdGF0aWMgYm9vbAoreHRfdG9zX2NoZWNrKGNvbnN0IGNo YXIgKnRhYmxlbmFtZSwgY29uc3Qgdm9pZCAqZV92b2lkLAorICAgICAgICAgICAgIGNvbnN0 IHN0cnVjdCB4dF90YXJnZXQgKnRhcmdldCwgdm9pZCAqdGFyZ2luZm8sCisgICAgICAgICAg ICAgdW5zaWduZWQgaW50IGhvb2tfbWFzaykKK3sKKwljb25zdCBzdHJ1Y3QgeHRfVE9TX2lu Zm8gKmluZm8gPSB0YXJnaW5mbzsKKworCWlmICh0YXJnZXQtPmZhbWlseSA9PSBBRl9JTkVU NiAmJiBpbmZvLT50b3NfdmFsdWUgPiAweEYpIHsKKwkJcHJpbnRrKEtFUk5fV0FSTklORyBL QlVJTERfTU9ETkFNRQorCQkgICAgICAgIjogVHJhZmZpYyBDbGFzcyBmaWVsZCBtYXkgb25s eSB0YWtlIHZhbHVlcyAwLTE1XG4iKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCWlmICh0 YXJnZXQtPmZhbWlseSA9PSBBRl9JTkVUKSB7CisJCWlmICgoaW5mby0+dG9zX3ZhbHVlICYg fklQVE9TX1RPU19NQVNLKSAhPSAwKSB7CisJCQlwcmludGsoS0VSTl9XQVJOSU5HIEtCVUlM RF9NT0ROQU1FCisJCQkgICAgICAgIjogQmFkIFRPUyB2YWx1ZSAlI3hcbiIsIGluZm8tPnRv c192YWx1ZSk7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKwkJaWYgKChpbmZvLT50b3NfbWFz ayAmIH5JUFRPU19UT1NfTUFTSykgIT0gMCkgeworCQkJcHJpbnRrKEtFUk5fV0FSTklORyBL QlVJTERfTU9ETkFNRQorCQkJICAgICAgICI6IEJhZCBtYXNrIGZvciBUT1Mgb3BlcmF0aW9u OiAlI3hcbiIsCisJCQkgICAgICAgaW5mby0+dG9zX21hc2spOworCQkJcmV0dXJuIGZhbHNl OworCQl9CisJfQorCisJcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgeHRfdGFy Z2V0IHh0X3Rvc19yZWdbXSBfX3JlYWRfbW9zdGx5ID0geworCXsKKwkJLm5hbWUJCT0gIlRP UyIsCisJCS5mYW1pbHkJCT0gQUZfSU5FVCwKKwkJLnRhcmdldAkJPSB4dF90b3NfdGFyZ2V0 NCwKKwkJLnRhcmdldHNpemUJPSBzaXplb2Yoc3RydWN0IHh0X1RPU19pbmZvKSwKKwkJLnRh YmxlCQk9ICJtYW5nbGUiLAorCQkuY2hlY2tlbnRyeQk9IHh0X3Rvc19jaGVjaywKKwkJLm1l CQk9IFRISVNfTU9EVUxFLAorCX0sCisJeworCQkubmFtZQkJPSAiVE9TIiwKKwkJLmZhbWls eQkJPSBBRl9JTkVUNiwKKwkJLnRhcmdldAkJPSB4dF90b3NfdGFyZ2V0NiwKKwkJLnRhcmdl dHNpemUJPSBzaXplb2Yoc3RydWN0IHh0X1RPU19pbmZvKSwKKwkJLnRhYmxlCQk9ICJtYW5n bGUiLAorCQkuY2hlY2tlbnRyeQk9IHh0X3Rvc19jaGVjaywKKwkJLm1lCQk9IFRISVNfTU9E VUxFLAorCX0sCit9OworCitzdGF0aWMgaW50IF9faW5pdCB4dF90b3NfaW5pdCh2b2lkKQor eworCXJldHVybiB4dF9yZWdpc3Rlcl90YXJnZXRzKHh0X3Rvc19yZWcsIEFSUkFZX1NJWkUo eHRfdG9zX3JlZykpOworfQorCitzdGF0aWMgdm9pZCBfX2V4aXQgeHRfdG9zX2V4aXQodm9p ZCkKK3sKKwl4dF91bnJlZ2lzdGVyX3RhcmdldHMoeHRfdG9zX3JlZywgQVJSQVlfU0laRSh4 dF90b3NfcmVnKSk7Cit9CisKK21vZHVsZV9pbml0KHh0X3Rvc19pbml0KTsKK21vZHVsZV9l eGl0KHh0X3Rvc19leGl0KTsKK01PRFVMRV9BVVRIT1IoIk5ldGZpbHRlciBDb3JlIFRlYW0g PGNvcmV0ZWFtQG5ldGZpbHRlci5vcmc+Iik7CitNT0RVTEVfREVTQ1JJUFRJT04oIm5ldGZp bHRlciBcIlRPU1wiIHRhcmdldCBtb2R1bGUiKTsKK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsK K01PRFVMRV9BTElBUygiaXB0X1RPUyIpOworTU9EVUxFX0FMSUFTKCJpcDZ0X1RPUyIpOwo= --------------060903050902040602040502--