Message ID | 20240325150509.9195643699e4.I1b94b17abc809491080d6312f31ce6b5decdd446@changeid (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Johannes Berg |
Headers | show |
Series | wifi: mac80211: use kvcalloc() for codel vars | expand |
Johannes Berg <johannes@sipsolutions.net> writes: > From: Johannes Berg <johannes.berg@intel.com> > > This is a big array, but it's only used by software and > need not be contiguous in memory. Use kvcalloc() since > it's so big (order 5 allocation). > > Reviewed-by: Miriam Rachel Korenblit <miriam.rachel.korenblit@intel.com> > Signed-off-by: Johannes Berg <johannes.berg@intel.com> Reviewed-by: Toke Høiland-Jørgensen <toke@kernel.org>
On 3/25/2024 7:05 AM, Johannes Berg wrote: > From: Johannes Berg <johannes.berg@intel.com> > > This is a big array, but it's only used by software and > need not be contiguous in memory. Use kvcalloc() since > it's so big (order 5 allocation). > > Reviewed-by: Miriam Rachel Korenblit <miriam.rachel.korenblit@intel.com> > Signed-off-by: Johannes Berg <johannes.berg@intel.com> Reviewed-by: Jeff Johnson <quic_jjohnson@quicinc.com>
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c index 6bf223e6cd1a..ac5ae7c05e36 100644 --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c @@ -1604,8 +1604,8 @@ int ieee80211_txq_setup_flows(struct ieee80211_local *local) local->cparams.target = MS2TIME(20); local->cparams.ecn = true; - local->cvars = kcalloc(fq->flows_cnt, sizeof(local->cvars[0]), - GFP_KERNEL); + local->cvars = kvcalloc(fq->flows_cnt, sizeof(local->cvars[0]), + GFP_KERNEL); if (!local->cvars) { spin_lock_bh(&fq->lock); fq_reset(fq, fq_skb_free_func); @@ -1625,7 +1625,7 @@ void ieee80211_txq_teardown_flows(struct ieee80211_local *local) { struct fq *fq = &local->fq; - kfree(local->cvars); + kvfree(local->cvars); local->cvars = NULL; spin_lock_bh(&fq->lock);