Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp3323257imm; Sun, 30 Sep 2018 17:49:10 -0700 (PDT) X-Google-Smtp-Source: ACcGV611WvvCBK+CA8eh/ibIeApPFZ0EGKbAvRpqwPVgSdQmp09HwoNnYDeXoRimOP+s314gow0y X-Received: by 2002:a17:902:5ac9:: with SMTP id g9-v6mr9347162plm.311.1538354950943; Sun, 30 Sep 2018 17:49:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538354950; cv=none; d=google.com; s=arc-20160816; b=uyncy3htGC/R+qbcIBqqk/PMX6nsPLqL7PCk5IvntB1GQJ1flaBrsGbIaprzLN3Ubd ty3VGJLWdcfJxwhv95R8cx2F7uuCiBlp8bup0HIn/x9sTnMAsicJtCd7QGw8Kv2Ws4Qm L/nyPi7amfAJJLLtZ1z0nP6XJYvqu+lE2V/08922jDcic8JYQ9lYu9gvXEGwUu4Fwpux /euzmOCfX7meUkI9QLhAvQvgiTTzirQsUGdzSB62mrGCus+yEgF89os/Nzln4Lzn/56T kIqEuLPJw6P7/yD0p5lqeO/cxPu5Hy6NNczw+ocd+viU6nh7s1l8eVfZzCYRDzzJWmWL VLqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :spamdiagnosticmetadata:spamdiagnosticoutput:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature; bh=RINT2NZKGGtnj4GK4Py/XxU9QoiDdRV5UJYihBd4fGI=; b=UyaFVzmr33Js+58WaA3Bi3cjKECYjR2ESN/0MeCqlXWb+IshPUvyyHkw6gtAA0m/rR 3nonD/3LIxT1OZDWrbLwWElRGuWONycIJYWeDKrNdNawn8iA+hQQWw++Hbc2quR0niQl AgEzeketuVkP18K41tka6bUYBKWvsVI3M0AaD3vRoFYhME0MTfERGlI4JQ6TRE12t0fj NCAoQH6GQH/nEOYPGFXM25dRUNCJpGHZTg7x+X+AdqKG79O0KibRB54t730b3J6gYHZu ZIqmCcTBH1T2OdCLWlbr9gBxSLyTsgRLMaFXwUu4qLKxBH085tSuHPu1xdb25CDJeUzG Hkmw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@microsoft.com header.s=selector1 header.b=aIgFoPc0; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n9-v6si11011124pff.370.2018.09.30.17.48.56; Sun, 30 Sep 2018 17:49:10 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@microsoft.com header.s=selector1 header.b=aIgFoPc0; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=microsoft.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729636AbeJAHPF (ORCPT + 99 others); Mon, 1 Oct 2018 03:15:05 -0400 Received: from mail-by2nam01on0116.outbound.protection.outlook.com ([104.47.34.116]:2013 "EHLO NAM01-BY2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1728834AbeJAHPE (ORCPT ); Mon, 1 Oct 2018 03:15:04 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RINT2NZKGGtnj4GK4Py/XxU9QoiDdRV5UJYihBd4fGI=; b=aIgFoPc0RWmKo+JB4c1xW3qotX5qk7Qw952AKZx8IyvlPVaLcKW+9jFv6mfpVFhfSBsoaOLNRgN8Cuc5bTmdb0xvFxDycm8MPEbJWUTu+lxwfJkzy6JtFhQZqW35OARF9zLqXtOLPLpxI++EUot6zoJ3d4flla5+c2Izzfzvn3A= Received: from CY4PR21MB0776.namprd21.prod.outlook.com (10.173.192.22) by CY4PR21MB0854.namprd21.prod.outlook.com (10.173.192.143) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1228.4; Mon, 1 Oct 2018 00:39:45 +0000 Received: from CY4PR21MB0776.namprd21.prod.outlook.com ([fe80::54e2:88e0:b622:b36]) by CY4PR21MB0776.namprd21.prod.outlook.com ([fe80::54e2:88e0:b622:b36%5]) with mapi id 15.20.1228.006; Mon, 1 Oct 2018 00:39:45 +0000 From: Sasha Levin To: "stable@vger.kernel.org" , "linux-kernel@vger.kernel.org" CC: Netanel Belgazal , "David S . Miller" , Sasha Levin Subject: [PATCH AUTOSEL 4.14 22/37] net: ena: fix driver when PAGE_SIZE == 64kB Thread-Topic: [PATCH AUTOSEL 4.14 22/37] net: ena: fix driver when PAGE_SIZE == 64kB Thread-Index: AQHUWR8prgWzhO8Bv0+87sVI+S0KKA== Date: Mon, 1 Oct 2018 00:39:06 +0000 Message-ID: <20181001003850.147107-22-alexander.levin@microsoft.com> References: <20181001003850.147107-1-alexander.levin@microsoft.com> In-Reply-To: <20181001003850.147107-1-alexander.levin@microsoft.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [52.168.54.252] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;CY4PR21MB0854;6:FzSZ5gTKZXlln/mOI2CfCT9EvMTVqWHIh3MDDWk2wF8ItQbbnICFPcd1OPJX5CUBCOtKkAQsgveTshnvK9P92GhGcqXzWkgSRlg8wy624jM4truzkZXUoxfH478+gW30/ZF3wU2XMq8PeiNTjAlwzxwRYpTbfqXbzRxNqfOx6vNikqEHJGNVoPyOKOL2ug/IeVbt3KdknkGgyE+EhAYVphzrfI6sCamRzr0Gt9+WRFU7fufMrkAs/TnL7FL0Gm1lxI9SiYnEMj0kyCaitnEFFnZ3YcCNWNRxaDWwThZb3Wd7Qy90s/b9dJkvu1sJsoEKZRbFCLAxTt3Xsdjb1nxo1IJVsHqlngrBytMgtKpuq0R7SsCq5cpWirjLBNAtcJWcFyUrGsnaWBOZPlWvoiOZLRB+4v9R4SE1CgNLqY9L0JdfuYex/Jl0xU+t9jMiAGLYXTog39DvzZCssRlsSQu2mg==;5:Ffv/WrDFqQitPGh0HJGBKIVKpZ6tsoe3OTQC7jwjGTAQZMRWUOKK9vIHZpNBKOLo963qzQkoUixmKofvJs6jz24lB0kHacw5Bhq78yd4lsrXp90eUWIs35xBKzBYfCMmnsT5C5twtZWlmHWzGRViubwQEJr560MuSDD83Pk/QAU=;7:FhV42tg8FJLRKM9Bre+gVg6kmtewTKURbdjn/W/RykZFTuDNZlMKrp/UHiCBS/NnUzPrVXmdieVZZ+1KwzJTblkaKymPc7T8ZqeR1jVsEW4HC3/PXlNNBsAy4zNPYUhvGQUrA3As+iQnL7Y6tP4NCLZa1eJuq27PTE+X+CIjFvK9BGJEwEZaNT7WupsK7nGYoRiyGm450izZQiwxZfj2KwmmG1QpUQJ8QAu2Tq9Az/E1zOQ/8jTB1KvbZRX7ICRW x-ms-office365-filtering-correlation-id: e70fef65-bf8c-4115-1620-08d62736629a x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(7020095)(4652040)(8989299)(4534165)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7193020);SRVR:CY4PR21MB0854; x-ms-traffictypediagnostic: CY4PR21MB0854: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(47284530071512)(33061846794335)(28532068793085)(89211679590171); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(3002001)(93006095)(93001095)(3231355)(944501410)(52105095)(2018427008)(6055026)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123562045)(20161123558120)(20161123560045)(20161123564045)(201708071742011)(7699051)(76991041);SRVR:CY4PR21MB0854;BCL:0;PCL:0;RULEID:;SRVR:CY4PR21MB0854; x-forefront-prvs: 0812095267 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(396003)(376002)(346002)(39860400002)(136003)(366004)(199004)(189003)(6116002)(3846002)(217873002)(5250100002)(1076002)(71200400001)(97736004)(71190400001)(76176011)(6506007)(99286004)(36756003)(6346003)(26005)(2906002)(446003)(86362001)(11346002)(476003)(102836004)(2616005)(14454004)(2501003)(10090500001)(14444005)(107886003)(4326008)(22452003)(486006)(316002)(34290500001)(186003)(256004)(66066001)(86612001)(305945005)(25786009)(2900100001)(6486002)(106356001)(7736002)(6512007)(53936002)(81166006)(81156014)(6666003)(8936002)(8676002)(5660300001)(68736007)(54906003)(110136005)(10290500003)(6436002)(478600001)(72206003)(105586002);DIR:OUT;SFP:1102;SCL:1;SRVR:CY4PR21MB0854;H:CY4PR21MB0776.namprd21.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alexander.Levin@microsoft.com; x-microsoft-antispam-message-info: TZUcmRdvvL3l0pXW/n08cZtrivtElxq5JFaeOPObCWG4jW/ndBhBPAxRh6pdn/NR4yGpyXyovuzV499xBy2ZTx2SAps5mZ3QiaY9iL9ZRdk0LhJORRsIFkR0FmEWfW4Dw+wb4FSHTi97+YKmvfn5YbizgmUqSQ317auDYeHCwjImIWsom8a04s1b9wVxt0OIH9gRCCyCRc0GA2Kx342CG10o9uJ/SCBrAHTpxQEUWacAisped/Gv7q9/XYlyYCzgzPcMk1HokZMw0mn5rSNhaNQL7Usz9M3/iv/WY1guB0w+CP7rlI/UI3uAUbDPwIyYNdHW9y/MPuCZqGASveTW6LLN/mfVxVJrOde3dIbp404= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: microsoft.com X-MS-Exchange-CrossTenant-Network-Message-Id: e70fef65-bf8c-4115-1620-08d62736629a X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Oct 2018 00:39:06.7875 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR21MB0854 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Netanel Belgazal [ Upstream commit ef5b0771d247379c90c8bf1332ff32f7f74bff7f ] The buffer length field in the ena rx descriptor is 16 bit, and the current driver passes a full page in each ena rx descriptor. When PAGE_SIZE equals 64kB or more, the buffer length field becomes zero. To solve this issue, limit the ena Rx descriptor to use 16kB even when allocating 64kB kernel pages. This change would not impact ena device functionality, as 16kB is still larger than maximum MTU. Signed-off-by: Netanel Belgazal Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- drivers/net/ethernet/amazon/ena/ena_netdev.c | 10 +++++----- drivers/net/ethernet/amazon/ena/ena_netdev.h | 11 +++++++++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/eth= ernet/amazon/ena/ena_netdev.c index 67df5053dc30..60b3ee29d82c 100644 --- a/drivers/net/ethernet/amazon/ena/ena_netdev.c +++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c @@ -456,7 +456,7 @@ static inline int ena_alloc_rx_page(struct ena_ring *rx= _ring, return -ENOMEM; } =20 - dma =3D dma_map_page(rx_ring->dev, page, 0, PAGE_SIZE, + dma =3D dma_map_page(rx_ring->dev, page, 0, ENA_PAGE_SIZE, DMA_FROM_DEVICE); if (unlikely(dma_mapping_error(rx_ring->dev, dma))) { u64_stats_update_begin(&rx_ring->syncp); @@ -473,7 +473,7 @@ static inline int ena_alloc_rx_page(struct ena_ring *rx= _ring, rx_info->page_offset =3D 0; ena_buf =3D &rx_info->ena_buf; ena_buf->paddr =3D dma; - ena_buf->len =3D PAGE_SIZE; + ena_buf->len =3D ENA_PAGE_SIZE; =20 return 0; } @@ -490,7 +490,7 @@ static void ena_free_rx_page(struct ena_ring *rx_ring, return; } =20 - dma_unmap_page(rx_ring->dev, ena_buf->paddr, PAGE_SIZE, + dma_unmap_page(rx_ring->dev, ena_buf->paddr, ENA_PAGE_SIZE, DMA_FROM_DEVICE); =20 __free_page(page); @@ -910,10 +910,10 @@ static struct sk_buff *ena_rx_skb(struct ena_ring *rx= _ring, do { dma_unmap_page(rx_ring->dev, dma_unmap_addr(&rx_info->ena_buf, paddr), - PAGE_SIZE, DMA_FROM_DEVICE); + ENA_PAGE_SIZE, DMA_FROM_DEVICE); =20 skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, rx_info->page, - rx_info->page_offset, len, PAGE_SIZE); + rx_info->page_offset, len, ENA_PAGE_SIZE); =20 netif_dbg(rx_ring->adapter, rx_status, rx_ring->netdev, "rx skb updated. len %d. data_len %d\n", diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.h b/drivers/net/eth= ernet/amazon/ena/ena_netdev.h index 29bb5704260b..3404376c28ca 100644 --- a/drivers/net/ethernet/amazon/ena/ena_netdev.h +++ b/drivers/net/ethernet/amazon/ena/ena_netdev.h @@ -350,4 +350,15 @@ void ena_dump_stats_to_buf(struct ena_adapter *adapter= , u8 *buf); =20 int ena_get_sset_count(struct net_device *netdev, int sset); =20 +/* The ENA buffer length fields is 16 bit long. So when PAGE_SIZE =3D=3D 6= 4kB the + * driver passas 0. + * Since the max packet size the ENA handles is ~9kB limit the buffer leng= th to + * 16kB. + */ +#if PAGE_SIZE > SZ_16K +#define ENA_PAGE_SIZE SZ_16K +#else +#define ENA_PAGE_SIZE PAGE_SIZE +#endif + #endif /* !(ENA_H) */ --=20 2.17.1