From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933810Ab0BYVDq (ORCPT ); Thu, 25 Feb 2010 16:03:46 -0500 Received: from mail-iw0-f177.google.com ([209.85.223.177]:48704 "EHLO mail-iw0-f177.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933668Ab0BYVDo (ORCPT ); Thu, 25 Feb 2010 16:03:44 -0500 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type; b=PEnwnq1f8PZvGB7lVdg93QILMGVLchVCZmI3BkqVKwx0cF+uD2inIk2M3Vn9yUizZO sBb6KHNkL8ey3dBPWtMjuWEiW18qVyEx4wTghAonSloIuWgD4f0wUAh+7Z6rI3FZ2xEt MmHThiBQF7AAb2OhuINPRQztaNiSgwW2ZvDXw= Message-ID: <4B86E5A6.3060309@gmail.com> Date: Thu, 25 Feb 2010 16:03:34 -0500 From: William Allen Simpson User-Agent: Thunderbird 2.0.0.23 (Macintosh/20090812) MIME-Version: 1.0 To: Linus Torvalds , Andrew Morton CC: Linux Kernel Developers , Linux Kernel Network Developers , David Miller Subject: [PATCH v7 7/7] TCPCT part 2g: parse cookie pair and 64-bit timestamp References: <4B86DDCB.50608@gmail.com> <4B86DF1E.5030802@gmail.com> In-Reply-To: <4B86DF1E.5030802@gmail.com> Content-Type: multipart/mixed; boundary="------------090002030206040603050409" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is a multi-part message in MIME format. --------------090002030206040603050409 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Every bit is sacred. Use as few bits as possible in tcp_options_received. Group related timestamp flag bits for cache line memory efficiency. Fix #define spacing for TCP options. Define and parse 64-bit timestamp extended option (and minor cleanup). However, only 32-bits are used at this time (permitted by specification). Parse cookie pair extended option (previously defined). Handle header extension. Fix initialization in tcp_minisocks. Requires: net: tcp_header_len_th and tcp_option_len_th TCPCT part 2f: cleanup tcp_parse_options Signed-off-by: William.Allen.Simpson@gmail.com --- include/linux/tcp.h | 12 ++++- include/net/tcp.h | 45 +++++++++-------- net/ipv4/tcp_input.c | 123 ++++++++++++++++++++++++++++++++++++++++++---- net/ipv4/tcp_minisocks.c | 6 ++ 4 files changed, 152 insertions(+), 34 deletions(-) --------------090002030206040603050409 Content-Type: text/plain; x-mac-type="54455854"; x-mac-creator="0"; name="TCPCT+2g7+2.6.33.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="TCPCT+2g7+2.6.33.patch" ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdGNwLmggYi9pbmNsdWRlL2xpbnV4L3RjcC5o CmluZGV4IDI5ODdlZTguLjA1ZmE5YjIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvdGNw LmgKKysrIGIvaW5jbHVkZS9saW51eC90Y3AuaApAQCAtMjQ3LDcgKzI0Nyw3IEBAIHN0cnVj dCB0Y3Bfb3B0aW9uc19yZWNlaXZlZCB7CiAJdTMyCXRzX3JlY2VudDsJLyogVGltZSBzdGFt cCB0byBlY2hvIG5leHQJCSovCiAJdTMyCXJjdl90c3ZhbDsJLyogVGltZSBzdGFtcCB2YWx1 ZSAgICAgICAgICAgICAJKi8KIAl1MzIJcmN2X3RzZWNyOwkvKiBUaW1lIHN0YW1wIGVjaG8g cmVwbHkgICAgICAgIAkqLwotCXUxNiAJc2F3X3RzdGFtcCA6IDEsCS8qIFNhdyBUSU1FU1RB TVAgb24gbGFzdCBwYWNrZXQJCSovCisJdTE2IAl0c3RhbXA2NF9vazoxLAkvKiBWZXJpZmll ZCB3aXRoIGNvb2tpZSBwYWlyCQkqLwogCQl0c3RhbXBfb2sgOiAxLAkvKiBUSU1FU1RBTVAg c2VlbiBvbiBTWU4gcGFja2V0CQkqLwogCQlkc2FjayA6IDEsCS8qIEQtU0FDSyBpcyBzY2hl ZHVsZWQJCQkqLwogCQl3c2NhbGVfb2sgOiAxLAkvKiBXc2NhbGUgc2VlbiBvbiBTWU4gcGFj a2V0CQkqLwpAQCAtMjYwLDEzICsyNjAsMjEgQEAgc3RydWN0IHRjcF9vcHRpb25zX3JlY2Vp dmVkIHsKIAl1OAludW1fc2Fja3M7CS8qIE51bWJlciBvZiBTQUNLIGJsb2NrcwkJKi8KIAl1 MTYJdXNlcl9tc3M7CS8qIG1zcyByZXF1ZXN0ZWQgYnkgdXNlciBpbiBpb2N0bAkqLwogCXUx Ngltc3NfY2xhbXA7CS8qIE1heGltYWwgbXNzLCBuZWdvdGlhdGVkIGF0IGNvbm5lY3Rpb24g c2V0dXAgKi8KKworCS8qIFdoZW4gdGhlIG9wdGlvbnMgYXJlIGV4dGVuZGVkIGJleW9uZCB0 aGUgc3RhbmRhcmQgNDAgYnl0ZXMsCisJICogdGhpcyBob2xkcyB0aGUgYWRkaXRpb25hbCBk YXRhIG9mZnNldCAodXAgdG8gMSwwMjAgYnl0ZXMpLgorCSAqLworCXU4CWV4dGVuZGVkOwkv KiBpbiAzMi1iaXQgd29yZHMJCQkqLworCXU4CXNhd190c3RhbXA2NDoxLAkvKiA2NC1iaXQg VElNRVNUQU1QIHNlZW4gb24gbGFzdCBwYWNrZXQJKi8KKwkJc2F3X3RzdGFtcDoxLAkvKiBU SU1FU1RBTVAgc2VlbiBvbiBsYXN0IHBhY2tldAkqLworCQlfX3VudXNlZDo2OwogfTsKIAog c3RhdGljIGlubGluZSB2b2lkIHRjcF9jbGVhcl9vcHRpb25zKHN0cnVjdCB0Y3Bfb3B0aW9u c19yZWNlaXZlZCAqcnhfb3B0KQogeworCXJ4X29wdC0+dHN0YW1wNjRfb2sgPSAwOwogCXJ4 X29wdC0+dHN0YW1wX29rID0gcnhfb3B0LT5zYWNrX29rID0gMDsKIAlyeF9vcHQtPndzY2Fs ZV9vayA9IHJ4X29wdC0+c25kX3dzY2FsZSA9IDA7Ci0Jcnhfb3B0LT5jb29raWVfcGx1cyA9 IDA7CiB9CiAKIC8qIFRoaXMgaXMgdGhlIG1heCBudW1iZXIgb2YgU0FDS1MgdGhhdCB3ZSds bCBnZW5lcmF0ZSBhbmQgcHJvY2Vzcy4gSXQncyBzYWZlCmRpZmYgLS1naXQgYS9pbmNsdWRl L25ldC90Y3AuaCBiL2luY2x1ZGUvbmV0L3RjcC5oCmluZGV4IDRhZWQwYzguLmJiYmZiOTMg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3RjcC5oCisrKyBiL2luY2x1ZGUvbmV0L3RjcC5o CkBAIC0xNTYsOSArMTU2LDggQEAgZXh0ZXJuIHZvaWQgdGNwX3RpbWVfd2FpdChzdHJ1Y3Qg c29jayAqc2ssIGludCBzdGF0ZSwgaW50IHRpbWVvKTsKIC8qCiAgKglUQ1Agb3B0aW9uCiAg Ki8KLSAKLSNkZWZpbmUgVENQT1BUX05PUAkJMQkvKiBQYWRkaW5nICovCiAjZGVmaW5lIFRD UE9QVF9FT0wJCTAJLyogRW5kIG9mIG9wdGlvbnMgKi8KKyNkZWZpbmUgVENQT1BUX05PUAkJ MQkvKiBQYWRkaW5nICovCiAjZGVmaW5lIFRDUE9QVF9NU1MJCTIJLyogU2VnbWVudCBzaXpl IG5lZ290aWF0aW5nICovCiAjZGVmaW5lIFRDUE9QVF9XSU5ET1cJCTMJLyogV2luZG93IHNj YWxpbmcgKi8KICNkZWZpbmUgVENQT1BUX1NBQ0tfUEVSTSAgICAgICAgNCAgICAgICAvKiBT QUNLIFBlcm1pdHRlZCAqLwpAQCAtMTY2LDMwICsxNjUsMzIgQEAgZXh0ZXJuIHZvaWQgdGNw X3RpbWVfd2FpdChzdHJ1Y3Qgc29jayAqc2ssIGludCBzdGF0ZSwgaW50IHRpbWVvKTsKICNk ZWZpbmUgVENQT1BUX1RJTUVTVEFNUAk4CS8qIEJldHRlciBSVFQgZXN0aW1hdGlvbnMvUEFX UyAqLwogI2RlZmluZSBUQ1BPUFRfTUQ1U0lHCQkxOQkvKiBNRDUgU2lnbmF0dXJlIChSRkMy Mzg1KSAqLwogI2RlZmluZSBUQ1BPUFRfQ09PS0lFCQkyNTMJLyogQ29va2llIGV4dGVuc2lv biAoZXhwZXJpbWVudGFsKSAqLwotCi0vKgotICogICAgIFRDUCBvcHRpb24gbGVuZ3Rocwot ICovCi0KLSNkZWZpbmUgVENQT0xFTl9NU1MgICAgICAgICAgICA0Ci0jZGVmaW5lIFRDUE9M RU5fV0lORE9XICAgICAgICAgMwotI2RlZmluZSBUQ1BPTEVOX1NBQ0tfUEVSTSAgICAgIDIK LSNkZWZpbmUgVENQT0xFTl9USU1FU1RBTVAgICAgICAxMAotI2RlZmluZSBUQ1BPTEVOX01E NVNJRyAgICAgICAgIDE4Ci0jZGVmaW5lIFRDUE9MRU5fQ09PS0lFX0JBU0UgICAgMgkvKiBD b29raWUtbGVzcyBoZWFkZXIgZXh0ZW5zaW9uICovCi0jZGVmaW5lIFRDUE9MRU5fQ09PS0lF X1BBSVIgICAgMwkvKiBDb29raWUgcGFpciBoZWFkZXIgZXh0ZW5zaW9uICovCi0jZGVmaW5l IFRDUE9MRU5fQ09PS0lFX01JTiAgICAgKFRDUE9MRU5fQ09PS0lFX0JBU0UrVENQX0NPT0tJ RV9NSU4pCi0jZGVmaW5lIFRDUE9MRU5fQ09PS0lFX01BWCAgICAgKFRDUE9MRU5fQ09PS0lF X0JBU0UrVENQX0NPT0tJRV9NQVgpCi0KLS8qIEJ1dCB0aGlzIGlzIHdoYXQgc3RhY2tzIHJl YWxseSBzZW5kIG91dC4gKi8KLSNkZWZpbmUgVENQT0xFTl9UU1RBTVBfQUxJR05FRAkJMTIK KyNkZWZpbmUgVENQT1BUX1RTVEFNUDY0CQkyNTQJLyogNjQtYml0IGV4dGVuc2lvbiAoZXhw ZXJpbWVudGFsKSAqLworCisvKglUQ1Agb3B0aW9uIGxlbmd0aHMgKHNhbWUgb3JkZXIgYXMg YWJvdmUpICovCisjZGVmaW5lIFRDUE9MRU5fTVNTCQk0CisjZGVmaW5lIFRDUE9MRU5fV0lO RE9XCQkzCisjZGVmaW5lIFRDUE9MRU5fU0FDS19QRVJNCTIKKyNkZWZpbmUgVENQT0xFTl9T QUNLX0JBU0UJMgorI2RlZmluZSBUQ1BPTEVOX1NBQ0tfUEVSQkxPQ0sJOAorI2RlZmluZSBU Q1BPTEVOX1RJTUVTVEFNUAkxMAorI2RlZmluZSBUQ1BPTEVOX01ENVNJRwkJMTgKKyNkZWZp bmUgVENQT0xFTl9DT09LSUVfQkFTRQkyCS8qIENvb2tpZS1sZXNzIGhlYWRlciBleHRlbnNp b24gKi8KKyNkZWZpbmUgVENQT0xFTl9DT09LSUVfUEFJUgk0CS8qIENvb2tpZSBwYWlyIGhl YWRlciBleHRlbnNpb24gKi8KKyNkZWZpbmUgVENQT0xFTl9DT09LSUVfTUlOCShUQ1BPTEVO X0NPT0tJRV9CQVNFK1RDUF9DT09LSUVfTUlOKQorI2RlZmluZSBUQ1BPTEVOX0NPT0tJRV9N QVgJKFRDUE9MRU5fQ09PS0lFX0JBU0UrVENQX0NPT0tJRV9NQVgpCisjZGVmaW5lIFRDUE9M RU5fVFNUQU1QNjQJMworCisvKglUQ1Agb3B0aW9ucyAzMi1iaXQgYWxpZ25lZCAoc2FtZSBv cmRlciBhcyBhYm92ZSkgKi8KKyNkZWZpbmUgVENQT0xFTl9NU1NfQUxJR05FRAkJNAogI2Rl ZmluZSBUQ1BPTEVOX1dTQ0FMRV9BTElHTkVECQk0CiAjZGVmaW5lIFRDUE9MRU5fU0FDS1BF Uk1fQUxJR05FRAk0Ci0jZGVmaW5lIFRDUE9MRU5fU0FDS19CQVNFCQkyCiAjZGVmaW5lIFRD UE9MRU5fU0FDS19CQVNFX0FMSUdORUQJNAotI2RlZmluZSBUQ1BPTEVOX1NBQ0tfUEVSQkxP Q0sJCTgKKyNkZWZpbmUgVENQT0xFTl9UU1RBTVBfQUxJR05FRAkJMTIKICNkZWZpbmUgVENQ T0xFTl9NRDVTSUdfQUxJR05FRAkJMjAKLSNkZWZpbmUgVENQT0xFTl9NU1NfQUxJR05FRAkJ NAorCisvKglUQ1Agb3B0aW9uIGV4dGVuc2lvbnMgKHNhbWUgb3JkZXIgYXMgYWJvdmUpICov CisjZGVmaW5lIFRDUE9FWFRfVFNUQU1QNjQJCTE2CiAKIC8qIEZsYWdzIGluIHRwLT5ub25h Z2xlICovCiAjZGVmaW5lIFRDUF9OQUdMRV9PRkYJCTEJLyogTmFnbGUncyBhbGdvIGlzIGRp c2FibGVkICovCmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfaW5wdXQuYyBiL25ldC9pcHY0 L3RjcF9pbnB1dC5jCmluZGV4IGNjNmQzMjQuLjM2Mjg4N2UgMTAwNjQ0Ci0tLSBhL25ldC9p cHY0L3RjcF9pbnB1dC5jCisrKyBiL25ldC9pcHY0L3RjcF9pbnB1dC5jCkBAIC0zNzI1LDE3 ICszNzI1LDI3IEBAIG9sZF9hY2s6CiAvKiBMb29rIGZvciB0Y3Agb3B0aW9ucy4gTm9ybWFs bHkgb25seSBjYWxsZWQgb24gU1lOIGFuZCBTWU5BQ0sgcGFja2V0cy4KICAqIEJ1dCwgdGhp cyBjYW4gYWxzbyBiZSBjYWxsZWQgb24gcGFja2V0cyBpbiB0aGUgZXN0YWJsaXNoZWQgZmxv dyB3aGVuCiAgKiB0aGUgZmFzdCB2ZXJzaW9uIGJlbG93IGZhaWxzLgorICoKKyAqIFJldHVy bnM6CisgKgkwIG9uIHN1Y2Nlc3MKKyAqCS0gb24gZmFpbHVyZQogICovCiBpbnQgdGNwX3Bh cnNlX29wdGlvbnMoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IHRjcGhkciAq dGgsCiAJCSAgICAgIHN0cnVjdCB0Y3Bfb3B0aW9uc19yZWNlaXZlZCAqb3B0X3J4LCB1OCAq Kmh2cHAsIGludCBlc3RhYikKIHsKKwlfX2JlMzIgKnhkcCA9IChfX2JlMzIgKil0aCArIHRo LT5kb2ZmOwogCXVuc2lnbmVkIGNoYXIgKnB0ciA9ICh1bnNpZ25lZCBjaGFyICopKHRoICsg MSk7CisJaW50IHJlbWFpbmluZyA9IHNrYl9oZWFkbGVuKHNrYikgLSB0Y3BfaGVhZGVyX2xl bl90aCh0aCk7CiAJaW50IGxlbmd0aCA9IHRjcF9vcHRpb25fbGVuX3RoKHRoKTsKKwlpbnQg ZXh0ZW5kID0gMDsKIAlib29sIHN5biA9IHRoLT5zeW47CiAKIAlvcHRfcngtPmNvb2tpZV9w bHVzID0gMDsKKwlvcHRfcngtPmV4dGVuZGVkID0gMDsKKwlvcHRfcngtPnNhd190c3RhbXA2 NCA9IDA7IC8qIGZhbHNlICovCiAJb3B0X3J4LT5zYXdfdHN0YW1wID0gMDsgLyogZmFsc2Ug Ki8KIAorcmVwZWF0OgogCXdoaWxlIChsZW5ndGggPiAwKSB7CiAJCWludCBvcHNpemU7CiAJ CWludCBvcGNvZGUgPSAqcHRyKys7CkBAIC0zODMzLDI2ICszODQzLDEwNCBAQCBpbnQgdGNw X3BhcnNlX29wdGlvbnMoc3RydWN0IHNrX2J1ZmYgKnNrYiwgY29uc3Qgc3RydWN0IHRjcGhk ciAqdGgsCiAJCQkJLyogbm90IHlldCBpbXBsZW1lbnRlZCAqLwogCQkJCWJyZWFrOwogCQkJ Y2FzZSBUQ1BPTEVOX0NPT0tJRV9QQUlSOiB7Ci0JCQkJLyogbm90IHlldCBpbXBsZW1lbnRl ZCAqLworCQkJCWludCB3b3JkcyA9IHB0clsxXSAmIDB4ZjsKKworCQkJCWlmICghc3luICYm CisJCQkJICAgICpwdHIgPj0gd29yZHMgJiYKKwkJCQkgICAgd29yZHMgPj0gKFRDUF9DT09L SUVfTUlOIC8gNCkgJiYKKwkJCQkgICAgd29yZHMgPD0gKFRDUF9DT09LSUVfTUFYIC8gNCkg JiYKKwkJCQkgICAgb3B0X3J4LT5leHRlbmRlZCA9PSAwKSB7CisJCQkJCWludCBieXRlcyA9 IHdvcmRzICogNDsKKworCQkJCQlvcHRfcngtPmV4dGVuZGVkID0gKnB0cjsKKwkJCQkJZXh0 ZW5kID0gKnB0ciAqIDQ7CisKKwkJCQkJLyogQWRqdXN0IGVuZF9zZXEsIHNldCBpbgorCQkJ CQkgKiB0Y3Bfdls0LDZdX3JjdigpCisJCQkJCSAqLworCQkJCQlUQ1BfU0tCX0NCKHNrYikt PmVuZF9zZXEgLT0gZXh0ZW5kOworCQkJCQlyZW1haW5pbmcgLT0gZXh0ZW5kOworCisJCQkJ CWlmICh1bmxpa2VseShyZW1haW5pbmcgPCAwKSkgeworCQkJCQkJLyogbWlzc2luZyBkYXRh ISEhICovCisJCQkJCQlyZXR1cm4gcmVtYWluaW5nOworCQkJCQl9CisJCQkJCWV4dGVuZCAt PSBieXRlczsKKworCQkJCQlvcHRfcngtPmNvb2tpZV9wbHVzID0gYnl0ZXMKKwkJCQkJCSsg VENQT0xFTl9DT09LSUVfQkFTRTsKKwkJCQkJKmh2cHAgPSAodTggKil4ZHA7CisJCQkJCXhk cCArPSB3b3JkczsKKwkJCQl9CiAJCQkJYnJlYWs7CiAJCQl9CiAJCQljYXNlIFRDUE9MRU5f Q09PS0lFX01JTiswOgogCQkJY2FzZSBUQ1BPTEVOX0NPT0tJRV9NSU4rMjoKIAkJCWNhc2Ug VENQT0xFTl9DT09LSUVfTUlOKzQ6CiAJCQljYXNlIFRDUE9MRU5fQ09PS0lFX01JTis2Ogot CQkJY2FzZSBUQ1BPTEVOX0NPT0tJRV9NQVg6CiAJCQkJLyogMTYtYml0IG11bHRpcGxlICov CiAJCQkJaWYgKHN5bikgewogCQkJCQlvcHRfcngtPmNvb2tpZV9wbHVzID0gb3BzaXplOwog CQkJCQkqaHZwcCA9IHB0cjsKIAkJCQl9CiAJCQkJYnJlYWs7CisJCQljYXNlIFRDUE9MRU5f Q09PS0lFX01BWCswOgorCQkJCS8qIGVpdGhlciBjb29raWUgb3IgY29va2llIHBhaXIgKi8K KwkJCQlpZiAoc3luIHx8IG9wdF9yeC0+c2F3X3RzdGFtcDY0KSB7CisJCQkJCW9wdF9yeC0+ Y29va2llX3BsdXMgPSBvcHNpemU7CisJCQkJCSpodnBwID0gcHRyOworCQkJCX0KKwkJCQli cmVhazsKKwkJCWNhc2UgVENQT0xFTl9DT09LSUVfTUFYKzQ6CisJCQljYXNlIFRDUE9MRU5f Q09PS0lFX01BWCs4OgorCQkJY2FzZSBUQ1BPTEVOX0NPT0tJRV9NQVgrMTI6CisJCQljYXNl IFRDUE9MRU5fQ09PS0lFX01BWCtUQ1BfQ09PS0lFX01BWDoKKwkJCQkvKiAzMi1iaXQgbXVs dGlwbGUgKHBhaXIpICovCisJCQkJaWYgKG9wdF9yeC0+c2F3X3RzdGFtcDY0KSB7CisJCQkJ CW9wdF9yeC0+Y29va2llX3BsdXMgPSBvcHNpemU7CisJCQkJCSpodnBwID0gcHRyOworCQkJ CX0KKwkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJLyogaWdub3JlIG9wdGlvbiAqLwog CQkJCWJyZWFrOwogCQkJfTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVENQT1BUX1RTVEFNUDY0 OgorCQkJaWYgKG9wc2l6ZSA9PSBUQ1BPTEVOX1RTVEFNUDY0KSB7CisJCQkJaWYgKCFzeW4g JiYKKwkJCQkgICAgKnB0ciA+PSAoVENQT0VYVF9UU1RBTVA2NCAvIDQpICYmCisJCQkJICAg ICFvcHRfcngtPnNhd190c3RhbXAgJiYKKwkJCQkgICAgb3B0X3J4LT5leHRlbmRlZCA9PSAw KSB7CisJCQkJCW9wdF9yeC0+ZXh0ZW5kZWQgPSAqcHRyOworCQkJCQlleHRlbmQgPSAqcHRy ICogNDsKKworCQkJCQkvKiBBZGp1c3QgZW5kX3NlcSwgc2V0IGluCisJCQkJCSAqIHRjcF92 WzQsNl1fcmN2KCkKKwkJCQkJICovCisJCQkJCVRDUF9TS0JfQ0Ioc2tiKS0+ZW5kX3NlcSAt PSBleHRlbmQ7CisJCQkJCXJlbWFpbmluZyAtPSBleHRlbmQ7CisKKwkJCQkJaWYgKHVubGlr ZWx5KHJlbWFpbmluZyA8IDApKSB7CisJCQkJCQkvKiBtaXNzaW5nIGRhdGEhISEgKi8KKwkJ CQkJCXJldHVybiByZW1haW5pbmc7CisJCQkJCX0KKwkJCQkJZXh0ZW5kIC09IFRDUE9FWFRf VFNUQU1QNjQ7CisKKwkJCQkJLyogNjQtYml0cyBub3QgeWV0IGltcGxlbWVudGVkICovCisJ CQkJCXhkcCsrOworCQkJCQlvcHRfcngtPnJjdl90c3ZhbCA9IG50b2hsKCp4ZHApOworCQkJ CQl4ZHAgKz0gMjsKKwkJCQkJb3B0X3J4LT5yY3ZfdHNlY3IgPSBudG9obCgqeGRwKTsKKwkJ CQkJeGRwKys7CisKKwkJCQkJb3B0X3J4LT5zYXdfdHN0YW1wNjQgPSAxOyAvKiB0cnVlICov CisJCQkJCW9wdF9yeC0+c2F3X3RzdGFtcCA9IDE7IC8qIHRydWUgKi8KKwkJCQl9CisJCQl9 CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJLyogc2tpcCB1bnJlY29nbml6ZWQgb3B0 aW9ucyAqLwogCQkJYnJlYWs7CkBAIC0zODYxLDYgKzM5NDksMTMgQEAgaW50IHRjcF9wYXJz ZV9vcHRpb25zKHN0cnVjdCBza19idWZmICpza2IsIGNvbnN0IHN0cnVjdCB0Y3BoZHIgKnRo LAogCQlwdHIgKz0gb3BzaXplIC0gMjsKIAkJbGVuZ3RoIC09IG9wc2l6ZTsKIAl9CisKKwlp ZiAodW5saWtlbHkoZXh0ZW5kID4gMCkpIHsKKwkJcHRyID0gKHVuc2lnbmVkIGNoYXIgKil4 ZHA7CisJCWxlbmd0aCA9IGV4dGVuZDsKKwkJZXh0ZW5kID0gMDsKKwkJZ290byByZXBlYXQ7 CisJfQogCXJldHVybiAwOwogfQogCkBAIC0zODg3LDYgKzM5ODIsMTEgQEAgc3RhdGljIGlu dCB0Y3BfcGFyc2VfYWxpZ25lZF90aW1lc3RhbXAoc3RydWN0IHRjcF9zb2NrICp0cCwgc3Ry dWN0IHRjcGhkciAqdGgpCiAKIC8qIEZhc3QgcGFyc2Ugb3B0aW9ucy4gVGhpcyBob3BlcyB0 byBvbmx5IHNlZSB0aW1lc3RhbXBzLgogICogSWYgaXQgaXMgd3JvbmcgaXQgZmFsbHMgYmFj ayBvbiB0Y3BfcGFyc2Vfb3B0aW9ucygpLgorICoKKyAqIFJldHVybnM6CisgKgkxIG9uIHN1 Y2Nlc3MsIGZhc3QKKyAqCTAgb24gc3VjY2Vzcywgc2xvdworICoJLSBvbiBmYWlsdXJlCiAg Ki8KIHN0YXRpYyBpbnQgdGNwX2Zhc3RfcGFyc2Vfb3B0aW9ucyhzdHJ1Y3Qgc2tfYnVmZiAq c2tiLCBzdHJ1Y3QgdGNwaGRyICp0aCwKIAkJCQkgIHN0cnVjdCB0Y3Bfc29jayAqdHAsIHU4 ICoqaHZwcCkKQEAgLTM4OTYsMTEgKzM5OTYsMTQgQEAgc3RhdGljIGludCB0Y3BfZmFzdF9w YXJzZV9vcHRpb25zKHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCB0Y3BoZHIgKnRoLAog CSAqLwogCWlmICh0aC0+ZG9mZiA9PSAoc2l6ZW9mKCp0aCkgLyA0KSkgewogCQl0cC0+cnhf b3B0LnNhd190c3RhbXAgPSAwOworCQl0cC0+cnhfb3B0LmV4dGVuZGVkID0gMDsKIAkJcmV0 dXJuIDA7Ci0JfSBlbHNlIGlmICh0cC0+cnhfb3B0LnRzdGFtcF9vayAmJgotCQkgICB0aC0+ ZG9mZiA9PSAoKHNpemVvZigqdGgpICsgVENQT0xFTl9UU1RBTVBfQUxJR05FRCkgLyA0KSkg ewotCQlpZiAodGNwX3BhcnNlX2FsaWduZWRfdGltZXN0YW1wKHRwLCB0aCkpCi0JCQlyZXR1 cm4gMTsKKwl9CisJaWYgKHRoLT5kb2ZmID09ICgoc2l6ZW9mKCp0aCkgKyBUQ1BPTEVOX1RT VEFNUF9BTElHTkVEKSAvIDQpICYmCisJICAgIHRwLT5yeF9vcHQudHN0YW1wX29rICYmCisJ ICAgIHRjcF9wYXJzZV9hbGlnbmVkX3RpbWVzdGFtcCh0cCwgdGgpKSB7CisJCXRwLT5yeF9v cHQuZXh0ZW5kZWQgPSAwOworCQlyZXR1cm4gMTsKIAl9CiAJcmV0dXJuIHRjcF9wYXJzZV9v cHRpb25zKHNrYiwgdGgsICZ0cC0+cnhfb3B0LCBodnBwLCAxKTsKIH0KQEAgLTM5MTEsOCAr NDAxNCw4IEBAIHN0YXRpYyBpbnQgdGNwX2Zhc3RfcGFyc2Vfb3B0aW9ucyhzdHJ1Y3Qgc2tf YnVmZiAqc2tiLCBzdHJ1Y3QgdGNwaGRyICp0aCwKICAqLwogdTggKnRjcF9wYXJzZV9tZDVz aWdfb3B0aW9uKHN0cnVjdCB0Y3BoZHIgKnRoKQogewotCWludCBsZW5ndGggPSAodGgtPmRv ZmYgPDwgMikgLSBzaXplb2YgKCp0aCk7CiAJdTggKnB0ciA9ICh1OCopKHRoICsgMSk7CisJ aW50IGxlbmd0aCA9IHRjcF9vcHRpb25fbGVuX3RoKHRoKTsKIAogCS8qIElmIHRoZSBUQ1Ag b3B0aW9uIGlzIHRvbyBzaG9ydCwgd2UgY2FuIHNob3J0IGN1dCAqLwogCWlmIChsZW5ndGgg PCBUQ1BPTEVOX01ENVNJRykKQEAgLTQzNzcsNyArNDQ4MCw3IEBAIHN0YXRpYyB2b2lkIHRj cF9kYXRhX3F1ZXVlKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNrYikKIAlp ZiAoVENQX1NLQl9DQihza2IpLT5zZXEgPT0gVENQX1NLQl9DQihza2IpLT5lbmRfc2VxKQog CQlnb3RvIGRyb3A7CiAKLQlfX3NrYl9wdWxsKHNrYiwgdGgtPmRvZmYgKiA0KTsKKwlfX3Nr Yl9wdWxsKHNrYiwgKHRoLT5kb2ZmICsgdHAtPnJ4X29wdC5leHRlbmRlZCkgKiA0KTsKIAog CVRDUF9FQ05fYWNjZXB0X2N3cih0cCwgc2tiKTsKIApAQCAtNTAzOCw4ICs1MTQxLDggQEAg c3RhdGljIHZvaWQgdGNwX3VyZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpz a2IsIHN0cnVjdCB0Y3BoZHIgKnRoKQogCiAJLyogRG8gd2Ugd2FpdCBmb3IgYW55IHVyZ2Vu dCBkYXRhPyAtIG5vcm1hbGx5IG5vdC4uLiAqLwogCWlmICh0cC0+dXJnX2RhdGEgPT0gVENQ X1VSR19OT1RZRVQpIHsKLQkJdTMyIHB0ciA9IHRwLT51cmdfc2VxIC0gbnRvaGwodGgtPnNl cSkgKyAodGgtPmRvZmYgKiA0KSAtCi0JCQkgIHRoLT5zeW47CisJCXUzMiBwdHIgPSAoKHRo LT5kb2ZmICsgdHAtPnJ4X29wdC5leHRlbmRlZCkgKiA0KQorCQkJKyB0cC0+dXJnX3NlcSAt IG50b2hsKHRoLT5zZXEpIC0gdGgtPnN5bjsKIAogCQkvKiBJcyB0aGUgdXJnZW50IHBvaW50 ZXIgcG9pbnRpbmcgaW50byB0aGlzIHBhY2tldD8gKi8KIAkJaWYgKHB0ciA8IHNrYi0+bGVu KSB7CmRpZmYgLS1naXQgYS9uZXQvaXB2NC90Y3BfbWluaXNvY2tzLmMgYi9uZXQvaXB2NC90 Y3BfbWluaXNvY2tzLmMKaW5kZXggMGYxYjQwOS4uMjI0MDAxMiAxMDA2NDQKLS0tIGEvbmV0 L2lwdjQvdGNwX21pbmlzb2Nrcy5jCisrKyBiL25ldC9pcHY0L3RjcF9taW5pc29ja3MuYwpA QCAtMTA5LDYgKzEwOSw5IEBAIHRjcF90aW1ld2FpdF9zdGF0ZV9wcm9jZXNzKHN0cnVjdCBp bmV0X3RpbWV3YWl0X3NvY2sgKnR3LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQl9CiAJfSBl bHNlIHsKIAkJLyogb3RoZXJ3aXNlIGluaXRpYWxpemVkIGJ5IHRjcF9wYXJzZV9vcHRpb25z KCkgKi8KKwkJdG1wX29wdC5jb29raWVfcGx1cyA9IDA7CisJCXRtcF9vcHQuZXh0ZW5kZWQg PSAwOworCQl0bXBfb3B0LnNhd190c3RhbXA2NCA9IDA7IC8qIGZhbHNlICovCiAJCXRtcF9v cHQuc2F3X3RzdGFtcCA9IDA7IC8qIGZhbHNlICovCiAJfQogCkBAIC01NTAsNiArNTUzLDkg QEAgc3RydWN0IHNvY2sgKnRjcF9jaGVja19yZXEoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qg c2tfYnVmZiAqc2tiLAogCQl9CiAJfSBlbHNlIHsKIAkJLyogb3RoZXJ3aXNlIGluaXRpYWxp emVkIGJ5IHRjcF9wYXJzZV9vcHRpb25zKCkgKi8KKwkJdG1wX29wdC5jb29raWVfcGx1cyA9 IDA7CisJCXRtcF9vcHQuZXh0ZW5kZWQgPSAwOworCQl0bXBfb3B0LnNhd190c3RhbXA2NCA9 IDA7IC8qIGZhbHNlICovCiAJCXRtcF9vcHQuc2F3X3RzdGFtcCA9IDA7IC8qIGZhbHNlICov CiAJfQogCi0tIAoxLjYuMy4zCgo= --------------090002030206040603050409--