From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-f54.google.com (mail-ed1-f54.google.com [209.85.208.54]) (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 2227E1E520A for ; Sat, 9 May 2026 21:18:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=pass smtp.client-ip=209.85.208.54 ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778361503; cv=pass; b=Gjm4ovUKQ8uSNnsV3R1Def1ppYxp//NQWPSWcqXGcdX+bN8bnurMuJ722zUvyC33iHWQu4YF/rh/vDVmKV1diCYCsw5mtOTm2Zw4Y+xukShpiBHcdzE21NHw5Eud/7Zd5fiA2+j67VPo2WZ1QvVSILigRfUJGEq75+iMloD6oJc= ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778361503; c=relaxed/simple; bh=nrWOAnSYEX673i5cipeBRPdADdY1prXAtRjkvmshZyQ=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=mX9AQtLtIlgNIAL8Yhbh6hLsMsR+V6T3V56OEmwJeS1XRavwiwo1W75X/NUuVn+b66wYl6DyrHH7B5EN/XfhYBW4Xlxc8++LiEwf2UA2aOm0W6q0R3RpJ79MMMzczzwZxbPHK9mVU2OqQIuKLR8XGdGGC4RYcV5NkirQqIy7W1k= ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=jS/bx7rc; arc=pass smtp.client-ip=209.85.208.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="jS/bx7rc" Received: by mail-ed1-f54.google.com with SMTP id 4fb4d7f45d1cf-67c3cb1433cso5226332a12.0 for ; Sat, 09 May 2026 14:18:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1778361500; cv=none; d=google.com; s=arc-20240605; b=YwNaw1/Iow9bwxNGHxqJK9ndiC5+WD2aljDpND8pn1WX8Fk85BQVvLfLBYcDCCjC8g 50GJXfFCZwjhrVYfsA8bcBXGi2HtbeV8h26jVvVzvSWsQMyWjLRV+aEEhtQpjlx+2TaL tDSkzbSzMbi6UVFI6cxJab//mra73roB2AE61aVsGUwXbpzbChnzM6y8Blp01TF/A5cp mf8YM4pgODXQMFLAx5VR3hXGC0xsahnhzCTDJXEA/1k7lCYoSAulSDZ4GMl6WrqbjsAl LIVELt8R56Y4zGZFu06kHuyL/inZBoLzq/J5rWH/J91nIbjc7orIn2qU1e2nvJL/8cII 2uyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=ViimEr794yuvDsk9+ymhix6oa3R9emm0tHlDKhI/MZE=; fh=9+7lfw8y5yhAEYnkrd0jnL7b/4E937oYG0HXN59BtEc=; b=JwaPpylNuSqoIE+D/UCSwrYnkUYijnZHcn+hZqrjrq4WdFuN5eMccRb6wfp9CWg2T7 zTjIBVQgJFdhG3718WG5NTf/5mO0MQaW5RsUzy8nsrymqjdl0gP/Mpgm3nf7X2/0ldaj wOaFz7mw6V/ngvjqLCQsCq/7tIQk68dllIhKW3+VjAcveryrFqjm4OMAe9JdnuP36xa1 2gJqAHzw5aST9BuCYvkFOJB09YGRxOe5sk/I1XJPX6PpVztbja4jEiaYmBFI63pCYRBq /LkyAA5r3bvX+pg7XOjyEHYDRp0u3tAhjOvy8ex5QFWDwq1PVj27ML4KA7Tzl5+ZXIRy VITQ==; darn=vger.kernel.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1778361500; x=1778966300; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=ViimEr794yuvDsk9+ymhix6oa3R9emm0tHlDKhI/MZE=; b=jS/bx7rcW6V+99l5eGtFXQhJFNoP7M9+RsdwJfzpNBqZmVXwlE48tuGhPWUfugMmGX TrGx34cOER9ncdEYjRzqDAOsEelnguUHr1nyl51uWkpKSexgHGO77L0ntn6OmXCwA2el ImJvoUkNbB6Sj1IGGXdb4HG2mqVLJG1gBzs531gUTfM4ePTym9yuuTiJk932fv+lYye9 cwYJ2OiEriaznsKNogBzuZNRsFnyUWBPzA9ueIUjYr0ZYF2vrsbkr2ILxbGVB5UpsrBJ nvtIySg2sK3BhdNy4Ol+9uUHDMfcT8ewA7++4zJMt5PBUWhbebQEcx8pc9dkPK28zSNk NLnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778361500; x=1778966300; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ViimEr794yuvDsk9+ymhix6oa3R9emm0tHlDKhI/MZE=; b=osXI6vaPinV00+qk4rtoScvqW8GGISN+549bN9nObzj7n14HY40mcnM9JXUg4B7XG4 ACWaz1vyaB6jcpLzxdCCE/VfoB2mX6iH0EeGV9rYsLbHXx+30bHLBp0dOg0dBGyPl0Nd LI8CVw681aOwro5j4vKGxnxLVwamqlZR45ZsQBcWFnZk+vxX4WuNEimAVMCLkzE7mrmz anB/4ugK1uDfvmreNcEJGWyayF7GzfTpNZF9ZPtHFRNWLVKqGRatMrY8NZ/Yut4VyHwb S21BEL1KhMrpr0PeJHJk4y82HJpVkO5dQSg7Y+N5S4l4/NnGPrs5mrE/wrVphgOHWSpx Z/iQ== X-Forwarded-Encrypted: i=1; AFNElJ9vnXxQTPUzC6/GMhyCNPyuPx0GMgYJx2A9LE0x62Uk/DuCdUa7URAOSRVLdtqA4gTiNOfT82ZR8BZfYtU=@vger.kernel.org X-Gm-Message-State: AOJu0YxXDULhqyitQ8ooD4xX/3lLkYyTNixrwVCqzVOQIQOuxhDwlj0t 8QL2rNd8JsVmsuv7gbBGk2z4BCZvHESX6VdvmwKh39TdbYB+BmHMtnvEB3L1H2yNGYI9UE0pjQw miymvUuXth5uYsEArE3zUOlJ0PMpDrzM= X-Gm-Gg: Acq92OHv4thWc38/Ja2gyzzWy+25Xxe4XDz+r1/iFtzX2VlI1/VT8QPYc2boBcigZMF E3qQeSksGSb9BAJpzF360r3rRn5ri29C/zuu0aG/qvhP5fG6vlW/78os/POkybBVtLmGJD+Rzhk /QJoxfk48aQ0C9oHbmsFJLo3j0OloTKhjA6CHFWhvnh+QUZ0VcpWQS7sxXQp2Osgxbhs6awVCBe OiLmsCnrv3+Fuut+1yhEHUiDZQsalToTdLxLgLgV5BsnjPaP3ti5/5I2a89LHjEyoBAcWJ+9EeR 899gDFO6MM2Y85mrsnHuGijb/99pfiH3BmLAe+5/AMGk1VqFustl0q7Ms1C4DxKx/LR32qXyWhb 5jf7Z+mWtJOYrTL4l6WBNyGGskUyJT8IDyqwECV+YbaW4gnw/wmzB1rTEyxQTGmDOLgbx X-Received: by 2002:a05:6402:534a:b0:65f:71ed:7ab9 with SMTP id 4fb4d7f45d1cf-67d6489d358mr7137372a12.22.1778361500146; Sat, 09 May 2026 14:18:20 -0700 (PDT) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20260430232206.141461-1-rosenp@gmail.com> <20260509101326.GA2170@wp.pl> In-Reply-To: <20260509101326.GA2170@wp.pl> From: Rosen Penev Date: Sat, 9 May 2026 14:18:08 -0700 X-Gm-Features: AVHnY4KL4nIKhdNL87q3am6at5vJINIZ66gow9omDBHAY3fU_rZ_ecAleq2o8e8 Message-ID: Subject: Re: [PATCH wireless-next] wifi: rt2x00: allocate anchor with rt2x00dev To: Stanislaw Gruszka Cc: linux-wireless@vger.kernel.org, open list Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, May 9, 2026 at 3:13=E2=80=AFAM Stanislaw Gruszka wro= te: > > Hi, > > On Thu, Apr 30, 2026 at 04:22:06PM -0700, Rosen Penev wrote: > > Instead of being creative with devm, allocate with rt2x00dev by using a > > flexible array member. Simplifies code slightly. > > I think this patch is more creative. Using a flexible array member > is less conventional than the current approach of allocating separately > and storing a pointer. But OK, lets get rid of 9 LOC. I don't see how a FAM is more creative. It's a single allocation. It also takes up less struct space as the pointer gets removed. The other usage of ieee80211_alloc_hw and struct_size is in ath12k: drivers/net/wireless/ath/ath12k/mac.c: hw =3D ieee80211_alloc_hw(struct_size(ah, radio, num_pdev_map), Actually there are more but instead of struct_size they use manual addition= . > > Acked-by: Stanislaw Gruszka > > > It's worth noting that in 25369b22223d1c56e42a0cd4ac9137349d5a898e , th= e > > proper device was set to the devm call as it seems there was confusion > > there. > > > > Signed-off-by: Rosen Penev > > > > --- > > drivers/net/wireless/ralink/rt2x00/rt2x00.h | 3 ++- > > drivers/net/wireless/ralink/rt2x00/rt2x00usb.c | 11 +---------- > > 2 files changed, 3 insertions(+), 11 deletions(-) > > > > diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00.h b/drivers/net/= wireless/ralink/rt2x00/rt2x00.h > > index 665887e9b118..7d313e86d3f2 100644 > > --- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h > > +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h > > @@ -1009,11 +1009,12 @@ struct rt2x00_dev { > > /* Extra TX headroom required for alignment purposes. */ > > unsigned int extra_tx_headroom; > > > > - struct usb_anchor *anchor; > > unsigned int num_proto_errs; > > > > /* Clock for System On Chip devices. */ > > struct clk *clk; > > + > > + struct usb_anchor anchor[]; > > }; > > > > struct rt2x00_bar_list_entry { > > diff --git a/drivers/net/wireless/ralink/rt2x00/rt2x00usb.c b/drivers/n= et/wireless/ralink/rt2x00/rt2x00usb.c > > index 174d89b0b1d7..47e427ea8622 100644 > > --- a/drivers/net/wireless/ralink/rt2x00/rt2x00usb.c > > +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00usb.c > > @@ -804,7 +804,7 @@ int rt2x00usb_probe(struct usb_interface *usb_intf, > > > > usb_reset_device(usb_dev); > > > > - hw =3D ieee80211_alloc_hw(sizeof(struct rt2x00_dev), ops->hw); > > + hw =3D ieee80211_alloc_hw(struct_size(rt2x00dev, anchor, 1), ops-= >hw); > > if (!hw) { > > rt2x00_probe_err("Failed to allocate hardware\n"); > > return -ENOMEM; > > @@ -826,13 +826,6 @@ int rt2x00usb_probe(struct usb_interface *usb_intf= , > > if (retval) > > goto exit_free_device; > > > > - rt2x00dev->anchor =3D devm_kmalloc(&usb_intf->dev, > > - sizeof(struct usb_anchor), > > - GFP_KERNEL); > > - if (!rt2x00dev->anchor) { > > - retval =3D -ENOMEM; > > - goto exit_free_reg; > > - } > > init_usb_anchor(rt2x00dev->anchor); > > > > retval =3D rt2x00lib_probe_dev(rt2x00dev); > > @@ -843,8 +836,6 @@ int rt2x00usb_probe(struct usb_interface *usb_intf, > > > > exit_free_anchor: > > usb_kill_anchored_urbs(rt2x00dev->anchor); > > - > > -exit_free_reg: > > rt2x00usb_free_reg(rt2x00dev); > > > > exit_free_device: > > -- > > 2.54.0 > >