From patchwork Tue Jun 6 17:00:47 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dave Watson X-Patchwork-Id: 9769289 X-Patchwork-Delegate: herbert@gondor.apana.org.au Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 36D9860364 for ; Tue, 6 Jun 2017 17:01:24 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3476E284B5 for ; Tue, 6 Jun 2017 17:01:24 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 28BF1284BB; Tue, 6 Jun 2017 17:01:24 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 798F7284D4 for ; Tue, 6 Jun 2017 17:01:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751464AbdFFRBS (ORCPT ); Tue, 6 Jun 2017 13:01:18 -0400 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:46909 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751588AbdFFRBP (ORCPT ); Tue, 6 Jun 2017 13:01:15 -0400 Received: from pps.filterd (m0044008.ppops.net [127.0.0.1]) by mx0a-00082601.pphosted.com (8.16.0.20/8.16.0.20) with SMTP id v56Gx18j019323; Tue, 6 Jun 2017 10:01:04 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.com; h=date : from : to : cc : subject : message-id : references : mime-version : content-type : in-reply-to; s=facebook; bh=13hkdghBLl6dkK18tDVukoQRxdQ6ZQtceqtrdkJ0SkE=; b=XGjC8/Bmu09I2GIxmEyDuZ61idpvnm/z39z6oNlxoaCMbejhqjeW9BzzsZnwth/gNYbH SOafoT5Yn0GURVtsKip6pDE0D3KZ9y0td5jgT2aq2rTjxtaOczPDF7Ak4oE/qmauaIib ciS829HDDUQUHhEcH/xBkP2RWKWTORuBNmw= Received: from mail.thefacebook.com ([199.201.64.23]) by mx0a-00082601.pphosted.com with ESMTP id 2awwr1rp04-1 (version=TLSv1 cipher=ECDHE-RSA-AES256-SHA bits=256 verify=NOT); Tue, 06 Jun 2017 10:01:04 -0700 Received: from NAM01-SN1-obe.outbound.protection.outlook.com (192.168.54.28) by o365-in.thefacebook.com (192.168.16.13) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 6 Jun 2017 10:01:02 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fb.onmicrosoft.com; s=selector1-fb-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=13hkdghBLl6dkK18tDVukoQRxdQ6ZQtceqtrdkJ0SkE=; b=Gh8uoRMcPh2+8HvvUjK449ZH8zjafaPq0v3K9mnr9apSbDMnz3ykchpT+HlrVA4VH909KiquGun2LAQ1nzIq93naY9r/kjPFD08LbWSfEvyBwrz+usv2sfTQuAuK8Ds8NPQ4SGLS2DZn7O7MARtxfleJUuJt8hUrzvLFo9TZEWI= Authentication-Results: mellanox.com; dkim=none (message not signed) header.d=none; mellanox.com; dmarc=none action=none header.from=fb.com; Received: from localhost (2620:10d:c090:200::6:701f) by BN6PR15MB1745.namprd15.prod.outlook.com (10.174.238.135) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10; Tue, 6 Jun 2017 17:00:58 +0000 Date: Tue, 6 Jun 2017 10:00:47 -0700 From: Dave Watson To: Ilya Lesokhin , Aviad Yehezkel , Boris Pismenny , Liran Liss , Matan Barak , David Miller , , Tom Herbert , , , Hannes Frederic Sowa , Eric Dumazet CC: Alexei Starovoitov , , Subject: [PATCH v2 net-next 2/4] tcp: export do_tcp_sendpages and tcp_rate_check_app_limited functions Message-ID: <20170606170047.GA19276@davejwatson-mba.local> References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.6.0 (2016-04-01) X-Originating-IP: [2620:10d:c090:200::6:701f] X-ClientProxiedBy: AM5PR0402CA0013.eurprd04.prod.outlook.com (10.175.37.23) To BN6PR15MB1745.namprd15.prod.outlook.com (10.174.238.135) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN6PR15MB1745: X-MS-Office365-Filtering-Correlation-Id: 58d59e5b-c2f6-483e-30b5-08d4acfd9b2c X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:BN6PR15MB1745; X-Microsoft-Exchange-Diagnostics: 1; BN6PR15MB1745; 3:A+7n/2k2ekkGCfb58wXBSkGFkUl/A6SilkIRmsjR+bz3DZY5ai0Pmu6SNJBrRe+oKxkEQtFq3vXsnS4Z6cj8+yJ6lXwe8xtI0oC883x1bZQjo99vdqyRyNxKnwXpZMXJsryqgwfaNjSsgmC+c5fnLW4bG3CmyZUCiJZGdzypl+SPMM7yhbbMoNN5ZTSXCCGNLTAXYXzgPg5RLjRHvEd4AAHZYBbuvgKBJhlSvgV/tHJhepTxZG8zEFEVNNU+vlZuj4wvB1N2IVV6txhEYV1rhO5tHxf98sCTWKbsRMxH02XwUdRZ/NLS0fLNrrR/jjPiP6BijUaXjChMytmO1lpZug==; 25:vfSnH3cwcWXEW1Y2lEUbEiA1POO4aju5MTTnMJQwJYlsnqzpkLPoMP5yPffWBcIT9Dkfrsym7ALvNPpKxgfDhV5PKczq2YisnvnolO7uZf4dWqrAO1DvDOklrWfsSspGCwCA8tLodBUhLXsAIj2LdMVBgS1vW2aRRF5MmHSFPoVUlKYGZCLD3QhKRC3fSgYSQRjGgbel25Do8KtxKF0nr8Tc8+RiMpJhL6PS6jK8XxRePau/a+7B2164r7IKY0ullWmrgi5G8r0TPpMzqdVoyRF33+lwumpSdQYtkfOobgTO++1RJ4wU8nJz6gMAoimO3aEiyh7dbdgt4uyp0gqfoUzzLUcr2S5J/u8PnZopo24Hirw0AQqesn00w1utXEW6B/hEYbdI2b/2i72gBSgEXounEnKWAmbVTbwkpE6UGcbli6HsCQazNz4w49BZ7GC2OofsByg1tdJ8AQ91dV9CSvu7GY1TQm1s7bchjO+Ij34= X-Microsoft-Exchange-Diagnostics: 1; BN6PR15MB1745; 31:fkbvIz5eYU8sp1giJ0gYcUnUjWRFmqIyyr63/xgI/AdwjUx8B417mgGodac2S6k6KxXbTKkIDTzDH8QV8usttatgKZwVmpY3/0d022tqn+6ZDVBH7+DGfzkDPsuGdIwrJHqi5KZ7PmzDpApYFF3k9GZV2kdPCtq9Tm13rGYVKNmoeXYjAGRO+BlZzogyJmQo3MD32wqfs/1bZKgzDuFyULPvRmJJRTa/ausa9Itxnv8plKJMCcKyiZVNWZYxLGO0; 20:MSdae5Dp7jBvoQT1ynrSNnUysu90t0ZD9kpdWNUl1Qi+GLlw0EMLmy5q2hHZ/FuZ8rNlS/XCJoDa6BQZMdaGekzXaWs+PV8iL43FXPBzdXeYXVq1O06QAcDHcQF+aSJzNprdSwa/PliLVwUlIeRIRmp90+eu6pDr2uF1T6D4bGgrnyAGLVlpqtrhmzdybie2wwtoOPcWwATGNyae1Lji1qFN611auRaP7hx8Gr5ALlCkePWrG4w7YWp4UefQzjZ+4wXaV97ss0R6EOg4kjmDWYGqUJm/mNVrpxgQa3NhHZgejMgs5mSseCPN4+ZKz0Seq4xIchcIaCzfXeOSwmNUo9FUDY5IFPKRem+mLCQOCNpJNZJiAE2wKcncTILemed5V1DELFYfYFw2a9fKgdTeUotP5a+kCpls6Bn2unugH6l1p0OZ1OYSvxqj6AvEGXDhrNkPE3KT7w/kw3pLdvDJjRQCSS+uSdv98lJUAodzFy6gg7cp08AaicsElnuhuMT+ X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(67672495146484)(266576461109395); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(100000703101)(100105400095)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123562025)(20161123560025)(20161123564025)(20161123555025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN6PR15MB1745; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN6PR15MB1745; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR15MB1745; 4:nk9Xjpu6vb24enoW2Gtaon3y96fXxDZryKNRL4rL6o?= =?us-ascii?Q?24o0uN1180oS9BUspsUFmXe4kUzP5j+MQ3L2VvyAbqKJypjve5e4ccegy5eJ?= =?us-ascii?Q?24IEsZbBBx/whmF16P2VjhKINmZRQzsLy3DupN0wqjS5k9fGdA7JZGd+b2k6?= =?us-ascii?Q?L2YKN4fbP0OqfT6/lS6Z4oORDYsRR63dAyMXix18A3isGHvUNjjuIEvnnzak?= =?us-ascii?Q?Bi8bcHOtyds8qMRD5L7BEl1WVCzBP50+uKj39WIZnkBdrT2tnJ6CrdNCSYa3?= =?us-ascii?Q?OVPmuPZ8+QBEZE5YpHaomUoUrWzQKXR4lGDMOjk1SmvmTKSLNf2iRFloeC1P?= =?us-ascii?Q?ULW1WQdLb+xePYQPTKqIaKeiOjuaBH54CzYAPMtXq+fBQe0cgQTQeYwOz7rc?= =?us-ascii?Q?+Vk5mi6l/C+W4ISXk6jy4Ca+ld89f+IRCb3jOCmEPDeGatb6Z1W6VoHCOcF3?= =?us-ascii?Q?HRpADdbSOSEG+JlCWtMXrQ/vzkmyODx0oiapOhDFrarKTl4taiytTc9si1jR?= =?us-ascii?Q?syQb1tkF1PpkeyWhV5IYYa4fmYZwUo6D7yoxViiLaWyIo3lX7kN3vy+XjE2G?= =?us-ascii?Q?fIO9DqjNEYMwNElNKYmoTHOnrY1vyzo75Zi16zsWbaaPpK7nHjB9tGP4ZjcA?= =?us-ascii?Q?k6IyjeNExQDgcVjpBQHaOjFq9SCkGbwQtnTAuJ8ol5/BzTXU7W6qxFo/Y7cf?= =?us-ascii?Q?q9BFsTS52Epb8GjYVpWgpPCiZNnp8XQJtWvkmekbPKFeaLIUvNSzYJneO9yf?= =?us-ascii?Q?sdhu+kM2VMKjn5DtkRX+wyd7/aqF1PvOgiRZPxzLEaiQmg2Ldex+ZkxAjWPZ?= =?us-ascii?Q?3qL+qjGpD+4JT5/kV1BNYn/BETpyma33Js/MYCqxmRCWZ2t1CVZrIMxlNdmr?= =?us-ascii?Q?qrSk30XWVbJ/qe9XHM7Z0bfvWifkJsvqH9yTdrAu1lqHlD5zEBQ3jwXOEFKV?= =?us-ascii?Q?mIbrqEcMbNxU5DGaPjUZZ1a7hUl4yieT8wbvVyWddFbzByyR2biXTHFuQxTt?= =?us-ascii?Q?XTSkKZa7ns1dio+pzoomdkjnZhMzC1U/Luxnn6hXxjDMjmaQhmb2TnbwAidj?= =?us-ascii?Q?Sz2RyHAfRTpxTaM7X01psZKsFaBq034fkcokW8yJLnj8P94NI8TIoxNUQ0bz?= =?us-ascii?Q?+8LBMkmsWq1FH1UjqcQ6HQN2WYIU7AFSM1cgmyn0jvlRJj4IbMIOwo9qfylo?= =?us-ascii?Q?0fXL3E+nuVIbZQlLEoDILgQXWGU5ANFPsgvcts8MUwSnfsbZzMsk6JOg=3D?= =?us-ascii?Q?=3D?= X-Forefront-PRVS: 033054F29A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6069001)(6009001)(39450400003)(39850400002)(39840400002)(39410400002)(39400400002)(38730400002)(4326008)(2906002)(6496005)(33656002)(54356999)(50986999)(76176999)(98436002)(478600001)(83506001)(6116002)(23726003)(25786009)(81166006)(1076002)(5660300001)(42186005)(7736002)(76506005)(53936002)(6486002)(7416002)(8676002)(305945005)(6666003)(47776003)(189998001)(86362001)(4001350100001)(2950100002)(9686003)(18370500001)(921003)(1121003); DIR:OUT; SFP:1102; SCL:1; SRVR:BN6PR15MB1745; H:localhost; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR15MB1745; 23:+XBTfyoYL9+SkoLrujjeD0QMz3y/xz7NZhhq5MBiZ?= =?us-ascii?Q?WedwvdBMS5Uf8DwxZ8rttv6EWb/383xI3hOQXC0J10d4bQIEBSdvszBD8vv3?= =?us-ascii?Q?wnweVlZ5qNKIj7a7S9vOJWwzOMeyKzIH6o439AKZ0Wtw+B7fvWjXv+3d4wEe?= =?us-ascii?Q?aIsH87vB0U7aHhENTe6KZqNbWSUxIOxMABG7ixaebvW075BIf5QWBCfviIDY?= =?us-ascii?Q?H4ZghisP3SKbSPmM6k1/UhAD84ZUvCdcgksomBEHRZ3Szmtsyqhy2EFZ4qWO?= =?us-ascii?Q?neWYf1X7Tt6bx1P3XlmqFPka7PbZz2OosjTp+rYbVAQXGlMv6G4iQqt09n2p?= =?us-ascii?Q?O5oBKqNwTs7Dx6Ng/za2X1G8tTlWZWT/q+SFBl/LN2EgJWlvhenlCW2ER44a?= =?us-ascii?Q?bM9+OJ6lhSM/lds4pyhspiThWsCP7X98LSlszE4l3robAalNASOp3bUYPq/E?= =?us-ascii?Q?mCDS06ywYZ5XlFb9CNWlwmUR/a8j3dP/diPp4fd8l9cetBmxayLZ3C+eW85U?= =?us-ascii?Q?c1Q1KDM5p3yzrb39+cBjmNw1NzvtNXBxRLtzHHzECLwBdCFu+Pt887uY7O5l?= =?us-ascii?Q?DA8db31DhmmV9nw8H9p6yPwEan6gmbwfGXHZ56TwdB0nFnH3Qtb/P6ES0uR3?= =?us-ascii?Q?aprRWUt9tT1773IzHDI2RkTxILYMgM+XMykHFktEoz0E7VlNiO/W9REJI8kU?= =?us-ascii?Q?tAk+A5KOseoUDhliL7iwTor9UVUf61tHmSPUJ/1G//9iHYmS6N/D7MlrjCIC?= =?us-ascii?Q?+VdUgJ+likGNtGjzrfx+OVmu8lvyblzT/EGQ0P0DXf/pikhNKwE12NGvmKaE?= =?us-ascii?Q?fkX8RuI8NQZIRRZRw8beWDDzlQpLUE0hac0Wv2G1vgiOLrL+ztFF/552Tt1Z?= =?us-ascii?Q?LHngT2gnGXy7yaUfmnEc2GQAKZ4q/C/W1hU2jk/ub0PW0+DXIMa4UnN4YCet?= =?us-ascii?Q?Pyg1xaILZzc0ATjUNuuc80kedOfqa9uDRT0S7LSrkIOSn4gf1JZUEbuhKNtP?= =?us-ascii?Q?F5SmnyG365fJr2ji6nXgVIpKwLIPf4zEkARnvgpLxpVspL4BcyhEIuL9sLbG?= =?us-ascii?Q?paRnyrVUvJLB/bWDzx0wgQWqA3S?= X-Microsoft-Exchange-Diagnostics: 1; BN6PR15MB1745; 6:pY1cnvoePS+zDHdfBOPsOWWQYNGz705u3pOcwIL3B3apLdXHHp1TrIr17E+AXiUFoTYf2rT870sDaTEn6ZJJaw9Dx0jsnEFzf47j5/fK1SokLJ86xIQrkaMP9vq8aE4tGdWHCK0GRW9rjPi/gfPtb9U7YwIWuM/pSc6lo9FcICpgpp7IOd2n7JLPrqjMS7Jt1OMMzX5zimVTFBwoQj2FWjQR4LwsCXwNCNze/y+rgMbXK3/d97aDguypUHdElqk9kPfl3uI5hYd4lfg9M+KIPwmcrqxg2teuNW69kPjawXLLYkDXOwlfESjndU6nFllG/Ybj7A0vjU7O71vmLfVkK1PJJ/fggrCswv5XKmfzi1oyO1oLVtrQpiXSYPTe6DBh6uXvBfDeN5vjEXRM0LLLtsvGwWv+6QxbORPeoDd68ztOoLRdTd8tdisTw4RO2yLbQg3M4BGhOBr+kcZSORC3WgjKNN/to5TiC5sIQ9VIBgZ48xKPTmWRCvgbccvNH/ttG+lAx3L15J/YIKiQddZV5g== X-Microsoft-Exchange-Diagnostics: 1; BN6PR15MB1745; 5:CqZmDzKRNvLn29Khb4QR0Jpb+4J3Ky1fUjJJkMI0x9zMtFLhIVz7BLD3ZecScoBrLHqr2gbH+nB3GwnzrEzvFXxt7bwiZ6Zq3j9/0C+2aWlIRGRAYPnEpTj9QRsUyBllr0XqaqkTL50w5WESmJObLZtqSxkGTwUndsye7WNzfQYRbinmoKM/JMwvdx+TAcPvzgXH1Ts2pdlRTxlxvthtyba7aAoB1UXfRKZ2CN7Jgv0xA4JK/B8/jB+qn7IhFWezex+IdOqX4YY9sW90DPTEHI3FQsjeYE6yeF8e5vADEeBZYmuhktjI2rqaerIfihrcc7+0JuIHIE9KpayM22WsUQ6FGX36WmjzdbAKoyec8pUbQLb9WZaDROthgqr4jvZyLxqtjCmI6ZTDiy71Psl25vlTUupNWmmyiLhkYWADglB6bm+ddKCZ58KlGnMOVPGa645dtNcSZGRBhmeepg56fH3XIR+TOCcEQFms8uCeD/TtKr4pV7x7dWft2MmYOLcz; 24:IFj6sG8SDGufanptS9ROkaEunM1qBuyYysaX/AkA2ZOSL6cGTYEl2PBuXIfNuNj2wwujY/pt0EfPVmBKgq12X6dzgRKXP4ekd4xmP5+1jic= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR15MB1745; 7:7Jh+r4OenGQnWSvuRgBQY/8fez7UGNVUQpPPcOQvwmhol14D7xqtnFh+rQ2oWI15wVf+Ami7K0Fj/+gC2CTKR/knK0TPErYKDB0XmI9sySqxqfMNkgBTpkg2PONES2706ieOebTPeKXGbEfZqlkNEIVxac5oqmrU43OfABSkwWVBtaB3P5xH8OdaIYI7hrUUPWd/QVb9oiMimES7aGQX8Ae0LpSSZV82XatVQfQh8IDU4RWx5oC1Dbi4NbdE4DNn5Y9sr9rSCJDZIkqi61P/XODde0h11AVuM7DJ2XKxK20eO671Uc3gP0oqiNT2TXDSuPaIE+Vb50p6XPGt81P5cw==; 20:ns8pbvR3FiA0Gd5MG0Ep4U9joIiSYtonlv3sm4A+3KxphRIdhQeAuMEH5BL7Qd3yzR7xjKVBIWJsRwcVUR/4SOhtVt2tSVrvuyUPXguARnVcfVQf99pFtUzXXaol5ueyb4FFxoCxh8Z/sE6Rkh09BjI6Cwi0TrE671tWnQhdwuI= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jun 2017 17:00:58.9900 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR15MB1745 X-OriginatorOrg: fb.com X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-06-06_12:, , signatures=0 Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Export do_tcp_sendpages and tcp_rate_check_app_limited, since tls will need to sendpages while the socket is already locked. tcp_sendpage is exported, but requires the socket lock to not be held already. Signed-off-by: Aviad Yehezkel Signed-off-by: Ilya Lesokhin Signed-off-by: Boris Pismenny Signed-off-by: Dave Watson --- include/net/tcp.h | 2 ++ net/ipv4/tcp.c | 5 +++-- net/ipv4/tcp_rate.c | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/include/net/tcp.h b/include/net/tcp.h index fcc39f8..2b35100 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h @@ -353,6 +353,8 @@ int tcp_v4_tw_remember_stamp(struct inet_timewait_sock *tw); int tcp_sendmsg(struct sock *sk, struct msghdr *msg, size_t size); int tcp_sendpage(struct sock *sk, struct page *page, int offset, size_t size, int flags); +ssize_t do_tcp_sendpages(struct sock *sk, struct page *page, int offset, + size_t size, int flags); void tcp_release_cb(struct sock *sk); void tcp_wfree(struct sk_buff *skb); void tcp_write_timer_handler(struct sock *sk); diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 0aa72cd..70efada 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -882,8 +882,8 @@ static int tcp_send_mss(struct sock *sk, int *size_goal, int flags) return mss_now; } -static ssize_t do_tcp_sendpages(struct sock *sk, struct page *page, int offset, - size_t size, int flags) +ssize_t do_tcp_sendpages(struct sock *sk, struct page *page, int offset, + size_t size, int flags) { struct tcp_sock *tp = tcp_sk(sk); int mss_now, size_goal; @@ -1013,6 +1013,7 @@ static ssize_t do_tcp_sendpages(struct sock *sk, struct page *page, int offset, } return sk_stream_error(sk, flags, err); } +EXPORT_SYMBOL_GPL(do_tcp_sendpages); int tcp_sendpage(struct sock *sk, struct page *page, int offset, size_t size, int flags) diff --git a/net/ipv4/tcp_rate.c b/net/ipv4/tcp_rate.c index ad99569..3330a37 100644 --- a/net/ipv4/tcp_rate.c +++ b/net/ipv4/tcp_rate.c @@ -185,3 +185,4 @@ void tcp_rate_check_app_limited(struct sock *sk) tp->app_limited = (tp->delivered + tcp_packets_in_flight(tp)) ? : 1; } +EXPORT_SYMBOL_GPL(tcp_rate_check_app_limited);