Received: by 2002:ab2:60d1:0:b0:1f7:5705:b850 with SMTP id i17csp1686084lqm; Fri, 3 May 2024 03:33:19 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCXk2p8fFyPn7+wpEb4Z4ca2g1qjRMAb1tsh0hsuJ6plnBztFY/RU1CAEDtYaWqOykdMfU6mlflBPJDpPPZDagS1O6ukDV0JdqomNckMvQ== X-Google-Smtp-Source: AGHT+IEZWzOdWlFwtiBY/uNVr+7Px3Cy81JCn+/CLnjtLnJiSZeY0/z4geopH/PDhQjZJxYI2qqj X-Received: by 2002:a05:6214:76e:b0:6a0:991b:ecf1 with SMTP id f14-20020a056214076e00b006a0991becf1mr2138307qvz.5.1714732398800; Fri, 03 May 2024 03:33:18 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1714732398; cv=pass; d=google.com; s=arc-20160816; b=M5dpb5bEW8/B6zPSAJ0JQY6IP/da0HTLd0Qc++Cieb9kqIEs5ie9I8r/stqQgxZ47c aQYh5+Dr0J0at7pHakAbgHQR8vEHKeUcwc5oKaWIQkJeDGrC95YqDga1rBmKT1KvxMSU TP9xjHHbxsDu8fwHe40/OAYVMuaZu4gt1PJYpoEJ4Ehe7UPuS7RBTEUIuaqIl/T5k+gY wFu6VAI+O51+Wl/RQEvPq0K9gw66KOB8ZO/1g8oLtAVdz1av1JFlcV/JjLZhAvdizSf0 vyPjGjD/XqY4u61sb0c3v5yxx1B0R7Ehh3L3++ksYr2yobIF93ml0LqayyDKwCx55Ma0 aHFA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from; bh=YgIjSrOlC3C/zBBqHXfIEusT04PNgKfH3QfkG1QY7fw=; fh=Raa2/sO+B1pLSwdq3bTiFEsG4EVqYMks3NN3nxbj74A=; b=zKx6UkWIYBIIrNCzDy/Tq7AWqctYvVnDJS5PU2o74xqXSatiGPslJj0FK/JUoMgZYZ dwttGfnchW9KxYRpsJFe1Hd/qUNC2U9TCMjDth4JP495Zcx6VZJ76GAsxz0z3Oz9WzdK L6cZRW6IO4WaluGeGtqVMskkvs2/atAApVp+UzYV9HC+Jw9Pun43EXrFqAxDJGaX0KZc ledu67gD1bHGPg1bLxPmBi1CjZj6I5XlJwWEL1WvGnqXqEyYQcOmifiFcihkVTiaTKib yWiAA/m4d6y+qT9hgV9eFOG/Osnx3A9cXm80f83k2Vn9qTUnqOHXa9QIDo8+7nr4cvB9 Eodw==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1 spf=pass spfdomain=gmail.com); spf=pass (google.com: domain of linux-wireless+bounces-7141-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-wireless+bounces-7141-linux.lists.archive=gmail.com@vger.kernel.org" Return-Path: Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id q10-20020a05621419ea00b0069b0b8b31bcsi618699qvc.429.2024.05.03.03.33.18 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 May 2024 03:33:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless+bounces-7141-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; arc=pass (i=1 spf=pass spfdomain=gmail.com); spf=pass (google.com: domain of linux-wireless+bounces-7141-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-wireless+bounces-7141-linux.lists.archive=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id DCE7D1C216D7 for ; Fri, 3 May 2024 10:33:17 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0DB9613C691; Fri, 3 May 2024 10:33:14 +0000 (UTC) X-Original-To: linux-wireless@vger.kernel.org Received: from mail-ed1-f49.google.com (mail-ed1-f49.google.com [209.85.208.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4ACDC2AD02; Fri, 3 May 2024 10:33:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.49 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714732393; cv=none; b=cHa57YqB7kTv0XpYrhhD9GxvKdwKE96op3ywF1ZhivTL2TkFIW3toP4obZjzk9hp2W+48WDKNlj3s0PECfq/ntsnTKDnKuJjl5YaQVeCrrZeFuwJHAoWBKaFFUXKLS5/7KwK4d37SwcZp+07KN2na4JL2sYuZGzNNqiNqvA7W6M= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714732393; c=relaxed/simple; bh=D3Cw4suYroYl98b3vp5VtitkIuzrHVZxnYf7fg0aZBs=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=EhfCPd4LwT7Kx6RYRdpMsTMXs6pxBL0gujfYkWLtlrnkr5fhAK1zZegqwtKiXeCqaXHJKfMEP5s8TSp+JOaDj3uuBa3+cmp/gpyOgA+emS7tHl5GzlOHhbAnRQmbT4JIINiB6IG789+vEylTL7HI9zs+w1LBLWlFK8gq/mqCXnw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org; spf=pass smtp.mailfrom=gmail.com; arc=none smtp.client-ip=209.85.208.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=debian.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ed1-f49.google.com with SMTP id 4fb4d7f45d1cf-572adaa172cso1984789a12.1; Fri, 03 May 2024 03:33:12 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1714732390; x=1715337190; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=YgIjSrOlC3C/zBBqHXfIEusT04PNgKfH3QfkG1QY7fw=; b=nVDg+ouDSdoMbKKbX8Fot2yWcIzy83RJNczpf0QjbFAOm/876ml9KmMXPjOYYK1krk HJf6wey+yonNjiSlfm0fIYxKiWxMmHv0Pc5HOxN4B0k/dpcwJlsCV/gEdWDhNFzZFHy3 mT0M6f4SFSOdj/aKw66U+Hh/y90ctvnC0hOnPt1P15qguiPyrKxgge6ubpUXIq67kh/T UgD2SwXbmkECB9zah42kaFl07Vaiwl0M/DeqId2Iz1npEkyECkEAXyAn+0ioRQopINqt pFRK+WW4BgNfBzu4GjSF7GD3oYl5Q3G8HvYCh/z8M9AezbJtjyJVppJ6/JRnFSk+ZL+x y1kg== X-Forwarded-Encrypted: i=1; AJvYcCUErnQoyVSap3aieRCHyLacCi+u4lx9vvV2+AMK1JkPYpAIvvbS7Vl6Zw69HSX300JywknjkQFr8rbwh7E1XGWcelzY7F9Jyxsvpu/N0gHfvWe6ALrZatef+Ci8GiBQb5CUbBO56v0ZbDaayM0= X-Gm-Message-State: AOJu0Yw4zIsNGREH4LjV6KI49l4pwwDqtcyfa0OwhCr3tYiX7VEeoOi3 ZV9e5I2N9Nfq//ivOMZS27XQCZQurDG+jSkjjzrS+ZoGW2Um5xg+rUK0Wg== X-Received: by 2002:a50:9e46:0:b0:572:aaaf:c349 with SMTP id z64-20020a509e46000000b00572aaafc349mr5243701ede.11.1714732390353; Fri, 03 May 2024 03:33:10 -0700 (PDT) Received: from localhost (fwdproxy-lla-005.fbsv.net. [2a03:2880:30ff:5::face:b00c]) by smtp.gmail.com with ESMTPSA id t17-20020a05640203d100b00572c15aba54sm1520276edw.17.2024.05.03.03.33.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 May 2024 03:33:09 -0700 (PDT) From: Breno Leitao To: Kalle Valo Cc: netdev@vger.kernel.org, merez@codeaurora.org, quic_ailizaro@quicinc.com, linux-wireless@vger.kernel.org (open list:WILOCITY WIL6210 WIRELESS DRIVER), linux-kernel@vger.kernel.org (open list) Subject: [PATCH wireless-next] wil6210: Do not use embedded netdev in wil6210_priv Date: Fri, 3 May 2024 03:32:56 -0700 Message-ID: <20240503103304.339489-1-leitao@debian.org> X-Mailer: git-send-email 2.43.0 Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Embedding net_device into structures prohibits the usage of flexible arrays in the net_device structure. For more details, see the discussion at [1]. Un-embed the net_device from struct wil6210_priv by converting it into a pointer. Then use the leverage alloc_netdev_dummy() to allocate the net_device object at wil_if_add(). The free of the device occurs at wil_if_remove(). [1] https://lore.kernel.org/all/20240229225910.79e224cf@kernel.org/ Signed-off-by: Breno Leitao --- drivers/net/wireless/ath/wil6210/netdev.c | 21 +++++++++++++++------ drivers/net/wireless/ath/wil6210/wil6210.h | 2 +- 2 files changed, 16 insertions(+), 7 deletions(-) PS: I only compile-tested this patch due to lack of hardware. diff --git a/drivers/net/wireless/ath/wil6210/netdev.c b/drivers/net/wireless/ath/wil6210/netdev.c index ee7d7e9c2718..d5d364683c0e 100644 --- a/drivers/net/wireless/ath/wil6210/netdev.c +++ b/drivers/net/wireless/ath/wil6210/netdev.c @@ -453,16 +453,21 @@ int wil_if_add(struct wil6210_priv *wil) return rc; } - init_dummy_netdev(&wil->napi_ndev); + wil->napi_ndev = alloc_netdev_dummy(0); + if (!wil->napi_ndev) { + wil_err(wil, "failed to allocate dummy netdev"); + rc = -ENOMEM; + goto out_wiphy; + } if (wil->use_enhanced_dma_hw) { - netif_napi_add(&wil->napi_ndev, &wil->napi_rx, + netif_napi_add(wil->napi_ndev, &wil->napi_rx, wil6210_netdev_poll_rx_edma); - netif_napi_add_tx(&wil->napi_ndev, + netif_napi_add_tx(wil->napi_ndev, &wil->napi_tx, wil6210_netdev_poll_tx_edma); } else { - netif_napi_add(&wil->napi_ndev, &wil->napi_rx, + netif_napi_add(wil->napi_ndev, &wil->napi_rx, wil6210_netdev_poll_rx); - netif_napi_add_tx(&wil->napi_ndev, + netif_napi_add_tx(wil->napi_ndev, &wil->napi_tx, wil6210_netdev_poll_tx); } @@ -474,10 +479,12 @@ int wil_if_add(struct wil6210_priv *wil) wiphy_unlock(wiphy); rtnl_unlock(); if (rc < 0) - goto out_wiphy; + goto free_dummy; return 0; +free_dummy: + free_netdev(wil->napi_ndev); out_wiphy: wiphy_unregister(wiphy); return rc; @@ -554,5 +561,7 @@ void wil_if_remove(struct wil6210_priv *wil) netif_napi_del(&wil->napi_tx); netif_napi_del(&wil->napi_rx); + free_netdev(wil->napi_ndev); + wiphy_unregister(wiphy); } diff --git a/drivers/net/wireless/ath/wil6210/wil6210.h b/drivers/net/wireless/ath/wil6210/wil6210.h index 22a6eb3e12b7..9bd1286d2857 100644 --- a/drivers/net/wireless/ath/wil6210/wil6210.h +++ b/drivers/net/wireless/ath/wil6210/wil6210.h @@ -983,7 +983,7 @@ struct wil6210_priv { spinlock_t eap_lock; /* guarding access to eap rekey fields */ struct napi_struct napi_rx; struct napi_struct napi_tx; - struct net_device napi_ndev; /* dummy net_device serving all VIFs */ + struct net_device *napi_ndev; /* dummy net_device serving all VIFs */ /* DMA related */ struct wil_ring ring_rx; -- 2.43.0