From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-vs1-f100.google.com (mail-vs1-f100.google.com [209.85.217.100]) (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 4494B3630AC for ; Fri, 17 Apr 2026 19:15:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.217.100 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776453350; cv=none; b=syRR7APdzZfH2HtxNv3w7/3fd1gUpqFTNQu3iLVTeuQZ8a6hvMY6t07dQpLz6QAPQyKoaOz73eeXUfcHXyb3sP31BB9VWsV5+vzOnCT3NKzhbXtCGNGif8kBGpMMDxkwWyuB+JX5KDJCSu/FlpbEbb54PGH5C/vy6kFv1VU7aFY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776453350; c=relaxed/simple; bh=onBollFxU9gWCj1/4DHA9aCn9z/xNPjGiw84XhEE+uw=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=Qu1h7qAKgSsfkqmmhphLIohUxMX3JqGzejxIh/BSKICe7WbV0uyeJd7952y1XMSSTM0ZDy60rXU0tx5M3QfiIqOeZGzeYWW4ENQQ9Yz0SNGlvkWlGx0KY5eYblMN9u2hfj+79v6Az8mzvF1gK5vyr+kcolvlb2+mP6fe3h8LbzA= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=aukOAIGR; arc=none smtp.client-ip=209.85.217.100 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="aukOAIGR" Received: by mail-vs1-f100.google.com with SMTP id ada2fe7eead31-61399bdd395so354070137.2 for ; Fri, 17 Apr 2026 12:15:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776453348; x=1777058148; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :dkim-signature:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Ayc3jEms9UC869Y7shBNJreWQPohHdmWhf2wEENgffM=; b=drcQdMq7yUnsTEhtSwjNVCG7djmKjz8y7LkI14aU7mQ34cs6uMxHL/9GYsR8SpN7x4 bRxWD4WYAsUjRq3Z5Pwhmh2GfpI3eP1bQYsucNK9WS5/iit4hOu6efxYOaaosl+brBL8 OTcDcOwCZzOB4Ed0bqkZ6+t7H3TGs8qz31DeqhRY9G85nku6GujVwVifZ8kfqmSKVaOa Nn3g8SFKZXyirV9sGpoeIIeTR4aQl9MpRmIjGkk/lKQd8UXBnbURuIQEBurq1cIyw+7C kZQVY66Ydx/PwHk3d+PPpnzecoBLSB4KJp/PRlLwhtA6106W6GY+VafzMN0IY9mo0+N8 2duA== X-Forwarded-Encrypted: i=1; AFNElJ90fbV7jZ0SmdGfHX9cVFQBl/vyx6ayCVrUDzNzVcS3qrl/7DnU1bUecDIQE7VoTHWEY5DJZc95V30elI0=@vger.kernel.org X-Gm-Message-State: AOJu0YwM1BTudEJkswavHrmI1AW7LZvJSpxMvreO8IA45F5JzyzKnqWh YxVe/ftIcV1R4uCBnICwSunoCryRHagrq1Jqpv+kbtcIidIYomtvILtuOmpurXfthqP3xCAj4hK S/6Mc6lE8QjioT9ZDnlE4+h+E2YCEffAP2YZdJkFn/vWyBMt3tsNgPMQOOjjD7krmzQYMIsi2pp Ws03mt3CbpaT6WPTuqHWfmaqjYeC3i1GdFRPng1pCHJHMT5eh27AQuPSUMcpvp2v1o69d4QqO9Z fCYoK+55d1+yMSUpXUI3Dw= X-Gm-Gg: AeBDievjwjw76SWnGRvxE8ALSwsxjOSYnOSnHMFOd7dQf1wF94s6kmmd8FuChlHlWxq awmslzljB+uy+YWi4l+s7M0ZSoaR5Aj79FTa3kJ2b7weENg/nYMIcisb4yiSALNeImR9NSb7zSS UF+4+SPjgJHmR272SLQcbDnMMgXf/+BQ6BxVJyt2lOLrVQse9cjyZ+Ue3UWzGit1nrgbNWMqHt/ vFwvFirkGQMml3TEfD7TNJDPFooUTXMzdgKUJtndP8W199lsVcbjk+eomvGrYQE4gN2lX5EBLQ0 xzIOtKw3FT0rFaUCi2tJ7ZLEDzRBAYZncZjA2JxNBnGdRBmgtOidLjMo/gtE+j+5t+r0YTT9dXF V209Ca0dEVnfFk+ane4Jey9b7GFcWE4JD3PzFxp9I9A3SJwcYygGcF5H8LMzd30bD7L/WDNGmmg PG9+bLMc9iFb0XMZdKDvOOf7XbZbt5DlWUoLp+8nIjG1T+so/xboqX0vlZeWuvfMuEPsSuKws= X-Received: by 2002:a05:6102:419f:b0:609:af4a:371 with SMTP id ada2fe7eead31-616f74062ecmr2068759137.23.1776453347888; Fri, 17 Apr 2026 12:15:47 -0700 (PDT) Received: from smtp-us-east1-p01-i01-si01.dlp.protect.broadcom.com (address-144-49-247-24.dlp.protect.broadcom.com. [144.49.247.24]) by smtp-relay.gmail.com with ESMTPS id ada2fe7eead31-618440ac0ddsm5218137.0.2026.04.17.12.15.47 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 17 Apr 2026 12:15:47 -0700 (PDT) X-Relaying-Domain: broadcom.com X-CFilter-Loop: Reflected Received: by mail-qv1-f71.google.com with SMTP id 6a1803df08f44-8acafc224a8so28124946d6.1 for ; Fri, 17 Apr 2026 12:15:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1776453346; x=1777058146; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=Ayc3jEms9UC869Y7shBNJreWQPohHdmWhf2wEENgffM=; b=aukOAIGRiO0nS1f55qxv42djb5XRi2LonDz50aa+CFbN/8BAPxVG02ty8bHZLc/dnN 25UxEeKrimHTXCBtBA1lJPYUnd0coi6zPs/xhMws6B1wfB+wDygXVJNrA5TcC0xo9JL8 mm7JX4tHPsmW8WVj1CLoVZ1iF5ckZoSH/1AgA= X-Forwarded-Encrypted: i=1; AFNElJ/YktfOt0fGm0ZFboBbVLTuyDzLESn2ZWNBE3v1g8Xz9kW2WiECtq1rM0JybLpURuqt6+o/fgrTc0OaAAo=@vger.kernel.org X-Received: by 2002:a05:6214:21e6:b0:89c:4ea7:a70f with SMTP id 6a1803df08f44-8b028047ac8mr68671696d6.14.1776453346393; Fri, 17 Apr 2026 12:15:46 -0700 (PDT) X-Received: by 2002:a05:6214:21e6:b0:89c:4ea7:a70f with SMTP id 6a1803df08f44-8b028047ac8mr68670746d6.14.1776453345482; Fri, 17 Apr 2026 12:15:45 -0700 (PDT) Received: from [192.168.178.26] (f215227.upc-f.chello.nl. [80.56.215.227]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-8b02ac77546sm16682886d6.17.2026.04.17.12.15.43 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 17 Apr 2026 12:15:44 -0700 (PDT) Message-ID: Date: Fri, 17 Apr 2026 21:15:42 +0200 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH wireless-next] wifi: brcm80211: change current_bss to a FAM To: Rosen Penev , linux-wireless@vger.kernel.org Cc: "open list:BROADCOM BRCM80211 IEEE802.11 WIRELESS DRIVERS" , "open list:BROADCOM BRCM80211 IEEE802.11 WIRELESS DRIVERS" , open list References: <20260331233238.23527-1-rosenp@gmail.com> Content-Language: en-US From: Arend van Spriel In-Reply-To: <20260331233238.23527-1-rosenp@gmail.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-DetectorID-Processed: b00c1d49-9d2e-4205-b15f-d015386d3d5e On 01/04/2026 01:32, Rosen Penev wrote: > Change to a single allocation with kzalloc_flex and remove some > boilerplate. > > Done as a FAM instead of value to keep -> usage in codebase. I get it and it looks a bit like a trick, but.... > Signed-off-by: Rosen Penev > --- > .../broadcom/brcm80211/brcmsmac/main.c | 32 ++----------------- > .../broadcom/brcm80211/brcmsmac/main.h | 2 +- > 2 files changed, 3 insertions(+), 31 deletions(-) > > diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c > index c7eaf160e1fa..4f57d64b1dd3 100644 > --- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c > +++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.c > @@ -418,21 +418,12 @@ static int brcms_chspec_bw(u16 chanspec) > return BRCMS_10_MHZ; > } > > -static void brcms_c_bsscfg_mfree(struct brcms_bss_cfg *cfg) > -{ > - if (cfg == NULL) > - return; > - > - kfree(cfg->current_bss); > - kfree(cfg); > -} > - ... it does clearly give some code reduction. > static void brcms_c_detach_mfree(struct brcms_c_info *wlc) > { > if (wlc == NULL) > return; > > - brcms_c_bsscfg_mfree(wlc->bsscfg); > + kfree(wlc->bsscfg); > kfree(wlc->pub); > kfree(wlc->modulecb); > kfree(wlc->default_bss); [...] > @@ -527,7 +499,7 @@ brcms_c_attach_malloc(uint unit, uint *err, uint devid) > goto fail; > } > > - wlc->bsscfg = brcms_c_bsscfg_malloc(unit); > + wlc->bsscfg = kzalloc_flex(*wlc->bsscfg, current_bss, 1, GFP_ATOMIC); > if (wlc->bsscfg == NULL) { > *err = 1011; > goto fail; > diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h > index b7ca0d9891c4..e9cbb95a5a17 100644 > --- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h > +++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/main.h > @@ -614,7 +614,7 @@ struct brcms_bss_cfg { > u8 SSID_len; > u8 SSID[IEEE80211_MAX_SSID_LEN]; > u8 BSSID[ETH_ALEN]; > - struct brcms_bss_info *current_bss; > + struct brcms_bss_info current_bss[]; It does feel icky to use a flex array for 1:1 object relation. It seems the lifetime of both objects is exactly the same so I would consider using the value instead of FAM. It would give the same code reduction, but making the patch slightly larger. main.c: kfree(cfg->current_bss); main.c: cfg->current_bss = kzalloc_obj(*cfg->current_bss, GFP_ATOMIC); main.c: if (cfg->current_bss == NULL) main.c: wlc->bsscfg->current_bss->chanspec = chanspec; main.c: rs = &wlc->bsscfg->current_bss->rateset; main.c: mcsset_bss = wlc->bsscfg->current_bss; main.c: bi = wlc->bsscfg->current_bss->beacon_period << 10; So it is used in just 4 places not counting the first 3 hits for obvious reasons. Not too much effort to use value here so please do that. Regards, Arend