From patchwork Fri Jul 14 17:39:57 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shashank Ram X-Patchwork-Id: 788677 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3x8KhN36n7z9s7m for ; Sat, 15 Jul 2017 03:40:04 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=onevmw.onmicrosoft.com header.i=@onevmw.onmicrosoft.com header.b="f/yJHSSD"; dkim-atps=neutral Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 2E36AD73; Fri, 14 Jul 2017 17:40:02 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 549D5AAB for ; Fri, 14 Jul 2017 17:40:00 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0077.outbound.protection.outlook.com [104.47.32.77]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 8F0DC1E8 for ; Fri, 14 Jul 2017 17:39:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=onevmw.onmicrosoft.com; s=selector1-vmware-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=05dRaPuLzWrtgW9X9V/oSF9OV1ssFiaijF4d2IK+TLk=; b=f/yJHSSDH7VZl3UMn9khOx3suyRUJLoAbAOy/Ma0BxXlfr73DXIYP8714eMlY3tSWhzUQC6upcIPT/fHGbVNdQtZJgcL7y749Q2bc2uD9oH2mxP0HMvJJKfbbmguA2gjmVFm2sxeQkgIpl7HsZzRLrRgnV0t4XzafPAxmRvq+48= Received: from BY2PR0501MB2119.namprd05.prod.outlook.com (10.163.198.17) by BY2PR0501MB1800.namprd05.prod.outlook.com (10.163.155.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1282.4; Fri, 14 Jul 2017 17:39:58 +0000 Received: from BY2PR0501MB2119.namprd05.prod.outlook.com ([10.163.198.17]) by BY2PR0501MB2119.namprd05.prod.outlook.com ([10.163.198.17]) with mapi id 15.01.1282.005; Fri, 14 Jul 2017 17:39:58 +0000 From: Shashank Ram To: Alin Serdean , "dev@openvswitch.org" Thread-Topic: [ovs-dev] [PATCH 32/40] datapath-windows: fix excessive stack usage in iphelper Thread-Index: AQHS/F511h7JWaZkeUCzYwF921RTaKJTl55Z Date: Fri, 14 Jul 2017 17:39:57 +0000 Message-ID: References: <20170714044033.15196-1-aserdean@cloudbasesolutions.com>, <20170714044033.15196-33-aserdean@cloudbasesolutions.com> In-Reply-To: <20170714044033.15196-33-aserdean@cloudbasesolutions.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: cloudbasesolutions.com; dkim=none (message not signed) header.d=none; cloudbasesolutions.com; dmarc=none action=none header.from=vmware.com; x-originating-ip: [208.91.1.34] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; BY2PR0501MB1800; 20:dWSISjBWIjS/jaVNDxNouImaBCo2rqxhurf+DjYgGWIe3SM4l6DL9iBq1Np8NMlNXbisoMFljASUq9rGNzVYr3v87UiubNS5A3OXZJ+v/jCMRr6av6Sn/l9ve0AAdlFXGtET31ZT5dEQb8s13qR4VO1w80zKGZpgiLoJJNPmOsw= x-ms-office365-filtering-correlation-id: e924de07-60a3-40df-05a0-08d4cadf58ac x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254075)(300000503095)(300135400095)(2017052603031)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:BY2PR0501MB1800; x-ms-traffictypediagnostic: BY2PR0501MB1800: x-exchange-antispam-report-test: UriScan:(61668805478150)(216315784871565)(247924648384137); x-microsoft-antispam-prvs: x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(2017060910075)(10201501046)(3002001)(93006095)(93001095)(100000703101)(100105400095)(6041248)(20161123555025)(20161123560025)(20161123562025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BY2PR0501MB1800; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BY2PR0501MB1800; x-forefront-prvs: 0368E78B5B x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(39410400002)(39840400002)(39850400002)(39450400003)(39400400002)(377454003)(7696004)(33656002)(2501003)(50986999)(54356999)(189998001)(76176999)(55016002)(25786009)(99286003)(478600001)(14454004)(6436002)(8936002)(8676002)(81166006)(2950100002)(74316002)(3846002)(102836003)(6116002)(53936002)(86362001)(2900100001)(3280700002)(66066001)(2906002)(229853002)(6506006)(5660300001)(77096006)(6246003)(3660700001)(7736002)(305945005)(38730400002)(53546010)(9686003)(586874002); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR0501MB1800; H:BY2PR0501MB2119.namprd05.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Jul 2017 17:39:57.9331 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR0501MB1800 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Subject: Re: [ovs-dev] [PATCH 32/40] datapath-windows: fix excessive stack usage in iphelper X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org diff --git a/datapath-windows/ovsext/IpHelper.c b/datapath-windows/ovsext/IpHelper.c index cb97835..0af249e 100644 --- a/datapath-windows/ovsext/IpHelper.c +++ b/datapath-windows/ovsext/IpHelper.c @@ -485,7 +485,7 @@ OvsResolveIPNeighEntry(PMIB_IPNET_ROW2 ipNeigh) NTSTATUS -OvsGetOrResolveIPNeigh(MIB_IF_ROW2 ipRow, +OvsGetOrResolveIPNeigh(PMIB_IF_ROW2 ipRow, UINT32 ipAddr, PMIB_IPNET_ROW2 ipNeigh) { @@ -494,8 +494,8 @@ OvsGetOrResolveIPNeigh(MIB_IF_ROW2 ipRow, ASSERT(ipNeigh); RtlZeroMemory(ipNeigh, sizeof (*ipNeigh)); - ipNeigh->InterfaceLuid.Value = ipRow.InterfaceLuid.Value; - ipNeigh->InterfaceIndex = ipRow.InterfaceIndex; + ipNeigh->InterfaceLuid.Value = ipRow->InterfaceLuid.Value; + ipNeigh->InterfaceIndex = ipRow->InterfaceIndex; ipNeigh->Address.si_family = AF_INET; ipNeigh->Address.Ipv4.sin_addr.s_addr = ipAddr; @@ -503,8 +503,8 @@ OvsGetOrResolveIPNeigh(MIB_IF_ROW2 ipRow, if (status != STATUS_SUCCESS) { RtlZeroMemory(ipNeigh, sizeof (*ipNeigh)); - ipNeigh->InterfaceLuid.Value = ipRow.InterfaceLuid.Value; - ipNeigh->InterfaceIndex = ipRow.InterfaceIndex; + ipNeigh->InterfaceLuid.Value = ipRow->InterfaceLuid.Value; + ipNeigh->InterfaceIndex = ipRow->InterfaceIndex; ipNeigh->Address.si_family = AF_INET; ipNeigh->Address.Ipv4.sin_addr.s_addr = ipAddr; status = OvsResolveIPNeighEntry(ipNeigh); @@ -1644,7 +1644,7 @@ OvsHandleFwdRequest(POVS_IP_HELPER_REQUEST request) if (ipAddr == 0) { ipAddr = request->fwdReq.tunnelKey.dst; } - status = OvsGetOrResolveIPNeigh(instance->internalRow, + status = OvsGetOrResolveIPNeigh(&instance->internalRow, ipAddr, &ipNeigh); if (status != STATUS_SUCCESS) { ExReleaseResourceLite(&instance->lock); @@ -1936,11 +1936,10 @@ OvsStartIpHelper(PVOID data) MIB_IPNET_ROW2 ipNeigh; NTSTATUS status; POVS_IPHELPER_INSTANCE instance = (POVS_IPHELPER_INSTANCE)ipn->context; - MIB_IF_ROW2 internalRow = instance->internalRow; NdisReleaseSpinLock(&ovsIpHelperLock); ExAcquireResourceExclusiveLite(&ovsInstanceListLock, TRUE); - status = OvsGetOrResolveIPNeigh(internalRow, + status = OvsGetOrResolveIPNeigh(&instance->internalRow, ipAddr, &ipNeigh); OvsUpdateIPNeighEntry(ipAddr, &ipNeigh, status);