Date: Wed, 22 Apr 2026 21:09:16 +0000 From: Bjoern A. Zeeb <bz@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Subject: git: 0bd21f777d0d - stable/15 - brcm80211: update Broadcom wireless brcmsmac and brcmfmac drivers Message-ID: <69e938fc.27cbc.57949d24@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch stable/15 has been updated by bz: URL: https://cgit.FreeBSD.org/src/commit/?id=0bd21f777d0d4013814ddd341739a8f304c81aea commit 0bd21f777d0d4013814ddd341739a8f304c81aea Author: Bjoern A. Zeeb <bz@FreeBSD.org> AuthorDate: 2026-04-19 15:16:04 +0000 Commit: Bjoern A. Zeeb <bz@FreeBSD.org> CommitDate: 2026-04-22 20:57:15 +0000 brcm80211: update Broadcom wireless brcmsmac and brcmfmac drivers This version is based on git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 028ef9c96e96197026887c0f092424679298aae8 ( tag: v7.0 ). Sponsored by: The FreeBSD Foundation (cherry picked from commit 117d9331fedeb5c5657a796423c4f7b311f40770) --- .../dev/broadcom/brcm80211/brcmfmac/bca/core.c | 3 +-- sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcdc.c | 2 +- .../dev/broadcom/brcm80211/brcmfmac/bcmsdh.c | 13 +++++----- .../dev/broadcom/brcm80211/brcmfmac/btcoex.c | 2 +- .../dev/broadcom/brcm80211/brcmfmac/cfg80211.c | 27 ++++++++++---------- .../dev/broadcom/brcm80211/brcmfmac/cfg80211.h | 8 ++++-- sys/contrib/dev/broadcom/brcm80211/brcmfmac/chip.c | 4 +-- .../dev/broadcom/brcm80211/brcmfmac/common.c | 5 ++-- sys/contrib/dev/broadcom/brcm80211/brcmfmac/core.c | 6 ++--- .../dev/broadcom/brcm80211/brcmfmac/cyw/core.c | 3 +-- .../dev/broadcom/brcm80211/brcmfmac/firmware.c | 4 +-- .../dev/broadcom/brcm80211/brcmfmac/flowring.c | 9 +++---- sys/contrib/dev/broadcom/brcm80211/brcmfmac/fweh.c | 7 +++++- .../dev/broadcom/brcm80211/brcmfmac/fwsignal.c | 5 ++-- .../dev/broadcom/brcm80211/brcmfmac/msgbuf.c | 12 ++++----- sys/contrib/dev/broadcom/brcm80211/brcmfmac/pcie.c | 15 ++++++----- sys/contrib/dev/broadcom/brcm80211/brcmfmac/pno.c | 4 +-- .../dev/broadcom/brcm80211/brcmfmac/proto.c | 2 +- sys/contrib/dev/broadcom/brcm80211/brcmfmac/sdio.c | 9 ++++--- sys/contrib/dev/broadcom/brcm80211/brcmfmac/sdio.h | 2 +- sys/contrib/dev/broadcom/brcm80211/brcmfmac/usb.c | 6 ++--- .../dev/broadcom/brcm80211/brcmfmac/wcc/core.c | 3 +-- .../dev/broadcom/brcm80211/brcmsmac/aiutils.c | 2 +- .../dev/broadcom/brcm80211/brcmsmac/ampdu.c | 2 +- .../dev/broadcom/brcm80211/brcmsmac/antsel.c | 2 +- .../dev/broadcom/brcm80211/brcmsmac/channel.c | 2 +- sys/contrib/dev/broadcom/brcm80211/brcmsmac/dma.c | 4 +-- .../dev/broadcom/brcm80211/brcmsmac/mac80211_if.c | 2 +- sys/contrib/dev/broadcom/brcm80211/brcmsmac/main.c | 29 +++++++++++----------- .../dev/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c | 4 +-- .../dev/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c | 15 ++++------- .../dev/broadcom/brcm80211/brcmsmac/phy/phy_n.c | 3 +-- .../dev/broadcom/brcm80211/brcmsmac/phy_shim.c | 2 +- 33 files changed, 106 insertions(+), 112 deletions(-) diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bca/core.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bca/core.c index f471c962104a..6cb8343da936 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bca/core.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bca/core.c @@ -23,8 +23,7 @@ static int brcmf_bca_alloc_fweh_info(struct brcmf_pub *drvr) { struct brcmf_fweh_info *fweh; - fweh = kzalloc(struct_size(fweh, evt_handler, BRCMF_BCA_E_LAST), - GFP_KERNEL); + fweh = kzalloc_flex(*fweh, evt_handler, BRCMF_BCA_E_LAST); if (!fweh) return -ENOMEM; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcdc.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcdc.c index 7e846cbf5157..ebf0305bf829 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcdc.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcdc.c @@ -450,7 +450,7 @@ int brcmf_proto_bcdc_attach(struct brcmf_pub *drvr) { struct brcmf_bcdc *bcdc; - bcdc = kzalloc(sizeof(*bcdc), GFP_ATOMIC); + bcdc = kzalloc_obj(*bcdc, GFP_ATOMIC); if (!bcdc) goto fail; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcmsdh.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcmsdh.c index 6a3f187320fc..d24b80e492e0 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcmsdh.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/bcmsdh.c @@ -794,7 +794,7 @@ static int brcmf_sdiod_freezer_attach(struct brcmf_sdio_dev *sdiodev) if (!IS_ENABLED(CONFIG_PM_SLEEP)) return 0; - sdiodev->freezer = kzalloc(sizeof(*sdiodev->freezer), GFP_KERNEL); + sdiodev->freezer = kzalloc_obj(*sdiodev->freezer); if (!sdiodev->freezer) return -ENOMEM; atomic_set(&sdiodev->freezer->thread_count, 0); @@ -951,11 +951,10 @@ int brcmf_sdiod_probe(struct brcmf_sdio_dev *sdiodev) goto out; /* try to attach to the target device */ - sdiodev->bus = brcmf_sdio_probe(sdiodev); - if (IS_ERR(sdiodev->bus)) { - ret = PTR_ERR(sdiodev->bus); + ret = brcmf_sdio_probe(sdiodev); + if (ret) goto out; - } + brcmf_sdiod_host_fixup(sdiodev->func2->card->host); out: if (ret) @@ -1067,10 +1066,10 @@ static int brcmf_ops_sdio_probe(struct sdio_func *func, if (func->num != 2) return -ENODEV; - bus_if = kzalloc(sizeof(*bus_if), GFP_KERNEL); + bus_if = kzalloc_obj(*bus_if); if (!bus_if) return -ENOMEM; - sdiodev = kzalloc(sizeof(*sdiodev), GFP_KERNEL); + sdiodev = kzalloc_obj(*sdiodev); if (!sdiodev) { kfree(bus_if); return -ENOMEM; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/btcoex.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/btcoex.c index 67c0c5a92f99..0ca7f8672803 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/btcoex.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/btcoex.c @@ -362,7 +362,7 @@ int brcmf_btcoex_attach(struct brcmf_cfg80211_info *cfg) struct brcmf_btcoex_info *btci; brcmf_dbg(TRACE, "enter\n"); - btci = kmalloc(sizeof(*btci), GFP_KERNEL); + btci = kmalloc_obj(*btci); if (!btci) return -ENOMEM; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/cfg80211.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/cfg80211.c index 43afaa5249a6..85199bc59098 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -984,7 +984,7 @@ static struct wireless_dev *brcmf_mon_add_vif(struct wiphy *wiphy, ndev->type = ARPHRD_IEEE80211_RADIOTAP; ndev->ieee80211_ptr = &vif->wdev; ndev->needs_free_netdev = true; - ndev->priv_destructor = brcmf_cfg80211_free_netdev; + ndev->priv_destructor = brcmf_cfg80211_free_vif; SET_NETDEV_DEV(ndev, wiphy_dev(cfg->wiphy)); ifp = netdev_priv(ndev); @@ -2592,7 +2592,7 @@ brcmf_cfg80211_connect(struct wiphy *wiphy, struct net_device *ndev, offsetof(struct brcmf_assoc_params_le, chanspec_list); if (cfg->channel) join_params_size += sizeof(u16); - ext_join_params = kzalloc(sizeof(*ext_join_params), GFP_KERNEL); + ext_join_params = kzalloc_obj(*ext_join_params); if (ext_join_params == NULL) { err = -ENOMEM; goto done; @@ -4418,7 +4418,7 @@ brcmf_pmksa_v3_op(struct brcmf_if *ifp, struct cfg80211_pmksa *pmksa, int length = offsetof(struct brcmf_pmk_op_v3_le, pmk); int ret; - pmk_op = kzalloc(sizeof(*pmk_op), GFP_KERNEL); + pmk_op = kzalloc_obj(*pmk_op); if (!pmk_op) return -ENOMEM; @@ -5748,7 +5748,7 @@ brcmf_cfg80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev, err = -EINVAL; goto exit; } - af_params = kzalloc(sizeof(*af_params), GFP_KERNEL); + af_params = kzalloc_obj(*af_params); if (af_params == NULL) { bphy_err(drvr, "unable to allocate frame\n"); err = -ENOMEM; @@ -6223,7 +6223,7 @@ struct brcmf_cfg80211_vif *brcmf_alloc_vif(struct brcmf_cfg80211_info *cfg, brcmf_dbg(TRACE, "allocating virtual interface (size=%zu)\n", sizeof(*vif)); - vif = kzalloc(sizeof(*vif), GFP_KERNEL); + vif = kzalloc_obj(*vif); if (!vif) return ERR_PTR(-ENOMEM); @@ -6255,7 +6255,7 @@ void brcmf_free_vif(struct brcmf_cfg80211_vif *vif) kfree(vif); } -void brcmf_cfg80211_free_netdev(struct net_device *ndev) +void brcmf_cfg80211_free_vif(struct net_device *ndev) { struct brcmf_cfg80211_vif *vif; struct brcmf_if *ifp; @@ -6713,7 +6713,7 @@ brcmf_notify_connect_status_ap(struct brcmf_cfg80211_info *cfg, return -EINVAL; } - sinfo = kzalloc(sizeof(*sinfo), GFP_KERNEL); + sinfo = kzalloc_obj(*sinfo); if (!sinfo) return -ENOMEM; @@ -7009,7 +7009,7 @@ static void brcmf_deinit_priv_mem(struct brcmf_cfg80211_info *cfg) static s32 brcmf_init_priv_mem(struct brcmf_cfg80211_info *cfg) { - cfg->conf = kzalloc(sizeof(*cfg->conf), GFP_KERNEL); + cfg->conf = kzalloc_obj(*cfg->conf); if (!cfg->conf) goto init_priv_mem_out; cfg->extra_buf = kzalloc(WL_EXTRA_BUF_MAX, GFP_KERNEL); @@ -7667,7 +7667,7 @@ static int brcmf_setup_ifmodes(struct wiphy *wiphy, struct brcmf_if *ifp) mchan = brcmf_feat_is_enabled(ifp, BRCMF_FEAT_MCHAN); n_combos = 1 + !!(p2p && !rsdb) + !!mbss; - combo = kcalloc(n_combos, sizeof(*combo), GFP_KERNEL); + combo = kzalloc_objs(*combo, n_combos); if (!combo) goto err; @@ -7684,7 +7684,7 @@ static int brcmf_setup_ifmodes(struct wiphy *wiphy, struct brcmf_if *ifp) c = 0; i = 0; n_limits = 1 + mon_flag + (p2p ? 2 : 0) + (rsdb || !p2p); - c0_limits = kcalloc(n_limits, sizeof(*c0_limits), GFP_KERNEL); + c0_limits = kzalloc_objs(*c0_limits, n_limits); if (!c0_limits) goto err; @@ -7723,7 +7723,7 @@ static int brcmf_setup_ifmodes(struct wiphy *wiphy, struct brcmf_if *ifp) if (p2p && !rsdb) { c++; i = 0; - p2p_limits = kcalloc(4, sizeof(*p2p_limits), GFP_KERNEL); + p2p_limits = kzalloc_objs(*p2p_limits, 4); if (!p2p_limits) goto err; p2p_limits[i].max = 1; @@ -7744,8 +7744,7 @@ static int brcmf_setup_ifmodes(struct wiphy *wiphy, struct brcmf_if *ifp) c++; i = 0; n_limits = 1 + mon_flag; - mbss_limits = kcalloc(n_limits, sizeof(*mbss_limits), - GFP_KERNEL); + mbss_limits = kzalloc_objs(*mbss_limits, n_limits); if (!mbss_limits) goto err; mbss_limits[i].max = 4; @@ -8512,7 +8511,7 @@ struct brcmf_cfg80211_info *brcmf_cfg80211_attach(struct brcmf_pub *drvr, return NULL; } - cfg = kzalloc(sizeof(*cfg), GFP_KERNEL); + cfg = kzalloc_obj(*cfg); if (!cfg) { bphy_err(drvr, "Could not allocate wiphy device\n"); return NULL; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/cfg80211.h b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/cfg80211.h index 273c80f2d483..6ceb30142905 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/cfg80211.h +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/cfg80211.h @@ -182,7 +182,7 @@ struct brcmf_cfg80211_profile { * @BRCMF_VIF_STATUS_CONNECTED: connected/joined successfully. * @BRCMF_VIF_STATUS_DISCONNECTING: disconnect/disable in progress. * @BRCMF_VIF_STATUS_AP_CREATED: AP operation started. - * @BRCMF_VIF_STATUS_EAP_SUCCUSS: EAPOL handshake successful. + * @BRCMF_VIF_STATUS_EAP_SUCCESS: EAPOL handshake successful. * @BRCMF_VIF_STATUS_ASSOC_SUCCESS: successful SET_SSID received. */ enum brcmf_vif_status { @@ -201,10 +201,12 @@ enum brcmf_vif_status { * @probe_req_ie: IE info for probe request. * @probe_res_ie: IE info for probe response. * @beacon_ie: IE info for beacon frame. + * @assoc_req_ie: IE info for association request frame. * @assoc_res_ie: IE info for association response frame. * @probe_req_ie_len: IE info length for probe request. * @probe_res_ie_len: IE info length for probe response. * @beacon_ie_len: IE info length for beacon frame. + * @assoc_req_ie_len: IE info length for association request frame. * @assoc_res_ie_len: IE info length for association response frame. */ struct vif_saved_ie { @@ -227,12 +229,14 @@ struct vif_saved_ie { * @wdev: wireless device. * @profile: profile information. * @sme_state: SME state using enum brcmf_vif_status bits. + * @saved_ie: saved IE info for a vif. * @list: linked list. * @mgmt_tx: completion for management frame transmit. * @mgmt_tx_status: status of last management frame sent to firmware. * @mgmt_tx_id: * @mgmt_rx_reg: registered rx mgmt frame types. * @mbss: Multiple BSS type, set if not first AP (not relevant for P2P). + * @is_11d: beacon contains country IE, enable regulatory 802.11d support * @cqm_rssi_low: Lower RSSI limit for CQM monitoring * @cqm_rssi_high: Upper RSSI limit for CQM monitoring * @cqm_rssi_last: Last RSSI reading for CQM monitoring @@ -489,7 +493,7 @@ s32 brcmf_notify_escan_complete(struct brcmf_cfg80211_info *cfg, void brcmf_set_mpc(struct brcmf_if *ndev, int mpc); bool brcmf_is_apmode_operating(struct wiphy *wiphy); void brcmf_abort_scanning(struct brcmf_cfg80211_info *cfg); -void brcmf_cfg80211_free_netdev(struct net_device *ndev); +void brcmf_cfg80211_free_vif(struct net_device *ndev); int brcmf_set_wsec(struct brcmf_if *ifp, const u8 *key, u16 key_len, u16 flags); int brcmf_cfg80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev, diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/chip.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/chip.c index 4239f2b21e54..a790f1693b82 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/chip.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/chip.c @@ -507,7 +507,7 @@ static struct brcmf_core *brcmf_chip_add_core(struct brcmf_chip_priv *ci, { struct brcmf_core_priv *core; - core = kzalloc(sizeof(*core), GFP_KERNEL); + core = kzalloc_obj(*core); if (!core) return ERR_PTR(-ENOMEM); @@ -1137,7 +1137,7 @@ struct brcmf_chip *brcmf_chip_attach(void *ctx, u16 devid, if (err < 0) return ERR_PTR(-EINVAL); - chip = kzalloc(sizeof(*chip), GFP_KERNEL); + chip = kzalloc_obj(*chip); if (!chip) return ERR_PTR(-ENOMEM); diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/common.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/common.c index 17e408b7fa23..ef16fa2747b9 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/common.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/common.c @@ -146,8 +146,7 @@ static int brcmf_c_download_blob(struct brcmf_if *ifp, brcmf_dbg(TRACE, "Enter\n"); - chunk_buf = kzalloc(struct_size(chunk_buf, data, MAX_CHUNK_LEN), - GFP_KERNEL); + chunk_buf = kzalloc_flex(*chunk_buf, data, MAX_CHUNK_LEN); if (!chunk_buf) { err = -ENOMEM; return -ENOMEM; @@ -556,7 +555,7 @@ struct brcmf_mp_device *brcmf_get_module_param(struct device *dev, brcmf_dbg(INFO, "Enter, bus=%d, chip=%d, rev=%d\n", bus_type, chip, chiprev); - settings = kzalloc(sizeof(*settings), GFP_ATOMIC); + settings = kzalloc_obj(*settings, GFP_ATOMIC); if (!settings) return NULL; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/core.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/core.c index 862a0336a0b5..ec170647800d 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/core.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/core.c @@ -674,7 +674,7 @@ int brcmf_net_attach(struct brcmf_if *ifp, bool locked) netif_carrier_off(ndev); - ndev->priv_destructor = brcmf_cfg80211_free_netdev; + ndev->priv_destructor = brcmf_cfg80211_free_vif; brcmf_dbg(INFO, "%s: Broadcom Dongle Host Driver\n", ndev->name); return 0; @@ -692,7 +692,7 @@ void brcmf_net_detach(struct net_device *ndev, bool locked) else unregister_netdev(ndev); } else { - brcmf_cfg80211_free_netdev(ndev); + brcmf_cfg80211_free_vif(ndev); free_netdev(ndev); } } @@ -879,7 +879,7 @@ struct brcmf_if *brcmf_add_if(struct brcmf_pub *drvr, s32 bsscfgidx, s32 ifidx, if (!drvr->settings->p2p_enable && is_p2pdev) { /* this is P2P_DEVICE interface */ brcmf_dbg(INFO, "allocate non-netdev interface\n"); - ifp = kzalloc(sizeof(*ifp), GFP_KERNEL); + ifp = kzalloc_obj(*ifp); if (!ifp) return ERR_PTR(-ENOMEM); } else { diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/cyw/core.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/cyw/core.c index 4f0ea4347840..ce09d44fa73c 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/cyw/core.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/cyw/core.c @@ -66,8 +66,7 @@ static int brcmf_cyw_alloc_fweh_info(struct brcmf_pub *drvr) { struct brcmf_fweh_info *fweh; - fweh = kzalloc(struct_size(fweh, evt_handler, BRCMF_CYW_E_LAST), - GFP_KERNEL); + fweh = kzalloc_flex(*fweh, evt_handler, BRCMF_CYW_E_LAST); if (!fweh) return -ENOMEM; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/firmware.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/firmware.c index 0ad9abd67fd6..315573ba35b4 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/firmware.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/firmware.c @@ -789,7 +789,7 @@ int brcmf_fw_get_firmwares(struct device *dev, struct brcmf_fw_request *req, if (!brcmf_fw_request_is_valid(req)) return -EINVAL; - fwctx = kzalloc(sizeof(*fwctx), GFP_KERNEL); + fwctx = kzalloc_obj(*fwctx); if (!fwctx) return -ENOMEM; @@ -849,7 +849,7 @@ brcmf_fw_alloc_request(u32 chip, u32 chiprev, return NULL; } - fwreq = kzalloc(struct_size(fwreq, items, n_fwnames), GFP_KERNEL); + fwreq = kzalloc_flex(*fwreq, items, n_fwnames); if (!fwreq) return NULL; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/flowring.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/flowring.c index 17387adb0301..d812e070003b 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/flowring.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/flowring.c @@ -161,7 +161,7 @@ u32 brcmf_flowring_create(struct brcmf_flowring *flow, u8 da[ETH_ALEN], if (i == flow->nrofrings) return -ENOMEM; - ring = kzalloc(sizeof(*ring), GFP_ATOMIC); + ring = kzalloc_obj(*ring, GFP_ATOMIC); if (!ring) return -ENOMEM; @@ -376,7 +376,7 @@ struct brcmf_flowring *brcmf_flowring_attach(struct device *dev, u16 nrofrings) struct brcmf_flowring *flow; u32 i; - flow = kzalloc(sizeof(*flow), GFP_KERNEL); + flow = kzalloc_obj(*flow); if (flow) { flow->dev = dev; flow->nrofrings = nrofrings; @@ -385,8 +385,7 @@ struct brcmf_flowring *brcmf_flowring_attach(struct device *dev, u16 nrofrings) flow->addr_mode[i] = ADDR_INDIRECT; for (i = 0; i < ARRAY_SIZE(flow->hash); i++) flow->hash[i].ifidx = BRCMF_FLOWRING_INVALID_IFIDX; - flow->rings = kcalloc(nrofrings, sizeof(*flow->rings), - GFP_KERNEL); + flow->rings = kzalloc_objs(*flow->rings, nrofrings); if (!flow->rings) { kfree(flow); flow = NULL; @@ -504,7 +503,7 @@ void brcmf_flowring_add_tdls_peer(struct brcmf_flowring *flow, int ifidx, struct brcmf_flowring_tdls_entry *tdls_entry; struct brcmf_flowring_tdls_entry *search; - tdls_entry = kzalloc(sizeof(*tdls_entry), GFP_ATOMIC); + tdls_entry = kzalloc_obj(*tdls_entry, GFP_ATOMIC); if (tdls_entry == NULL) return; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/fweh.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/fweh.c index c2d98ee6652f..1cff4ba76943 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/fweh.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/fweh.c @@ -153,6 +153,11 @@ static void brcmf_fweh_handle_if_event(struct brcmf_pub *drvr, bphy_err(drvr, "invalid interface index: %u\n", ifevent->ifidx); return; } + if (ifevent->bsscfgidx >= BRCMF_MAX_IFS) { + bphy_err(drvr, "invalid bsscfg index: %u\n", + ifevent->bsscfgidx); + return; + } ifp = drvr->iflist[ifevent->bsscfgidx]; @@ -497,7 +502,7 @@ void brcmf_fweh_process_event(struct brcmf_pub *drvr, datalen + sizeof(*event_packet) > packet_len) return; - event = kzalloc(struct_size(event, data, datalen), gfp); + event = kzalloc_flex(*event, data, datalen, gfp); if (!event) return; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/fwsignal.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/fwsignal.c index b70d20128f98..a43f1a38b0e3 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/fwsignal.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/fwsignal.c @@ -1712,8 +1712,7 @@ void brcmf_fws_rxreorder(struct brcmf_if *ifp, struct sk_buff *pkt) /* allocate space for flow reorder info */ brcmf_dbg(INFO, "flow-%d: start, maxidx %d\n", flow_id, max_idx); - rfi = kzalloc(struct_size(rfi, pktslots, max_idx + 1), - GFP_ATOMIC); + rfi = kzalloc_flex(*rfi, pktslots, max_idx + 1, GFP_ATOMIC); if (rfi == NULL) { bphy_err(drvr, "failed to alloc buffer\n"); brcmf_netif_rx(ifp, pkt); @@ -2343,7 +2342,7 @@ struct brcmf_fws_info *brcmf_fws_attach(struct brcmf_pub *drvr) int rc; u32 mode; - fws = kzalloc(sizeof(*fws), GFP_KERNEL); + fws = kzalloc_obj(*fws); if (!fws) { rc = -ENOMEM; goto fail; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/msgbuf.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/msgbuf.c index 1b7b3454a9be..2d4942e22844 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/msgbuf.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/msgbuf.c @@ -305,11 +305,11 @@ brcmf_msgbuf_init_pktids(u32 nr_array_entries, struct brcmf_msgbuf_pktid *array; struct brcmf_msgbuf_pktids *pktids; - array = kcalloc(nr_array_entries, sizeof(*array), GFP_KERNEL); + array = kzalloc_objs(*array, nr_array_entries); if (!array) return NULL; - pktids = kzalloc(sizeof(*pktids), GFP_KERNEL); + pktids = kzalloc_obj(*pktids); if (!pktids) { kfree(array); return NULL; @@ -680,7 +680,7 @@ static u32 brcmf_msgbuf_flowring_create(struct brcmf_msgbuf *msgbuf, int ifidx, u32 flowid; ulong flags; - create = kzalloc(sizeof(*create), GFP_ATOMIC); + create = kzalloc_obj(*create, GFP_ATOMIC); if (create == NULL) return BRCMF_FLOWRING_INVALID_ID; @@ -1569,7 +1569,7 @@ int brcmf_proto_msgbuf_attach(struct brcmf_pub *drvr) if_msgbuf->max_flowrings = BRCMF_FLOWRING_HASHSIZE - 1; } - msgbuf = kzalloc(sizeof(*msgbuf), GFP_KERNEL); + msgbuf = kzalloc_obj(*msgbuf); if (!msgbuf) goto fail; @@ -1618,8 +1618,8 @@ int brcmf_proto_msgbuf_attach(struct brcmf_pub *drvr) msgbuf->flowrings = (struct brcmf_commonring **)if_msgbuf->flowrings; msgbuf->max_flowrings = if_msgbuf->max_flowrings; msgbuf->flowring_dma_handle = - kcalloc(msgbuf->max_flowrings, - sizeof(*msgbuf->flowring_dma_handle), GFP_KERNEL); + kzalloc_objs(*msgbuf->flowring_dma_handle, + msgbuf->max_flowrings); if (!msgbuf->flowring_dma_handle) goto fail; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/pcie.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/pcie.c index a759401ecf86..b9846c3fcc99 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/pcie.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/pcie.c @@ -1227,7 +1227,7 @@ brcmf_pcie_alloc_dma_and_ring(struct brcmf_pciedev_info *devinfo, u32 ring_id, addr = tcm_ring_phys_addr + BRCMF_RING_LEN_ITEMS_OFFSET; brcmf_pcie_write_tcm16(devinfo, addr, ring_itemsize_array[ring_id]); - ring = kzalloc(sizeof(*ring), GFP_KERNEL); + ring = kzalloc_obj(*ring); if (!ring) { dma_free_coherent(&devinfo->pdev->dev, size, dma_buf, dma_handle); @@ -1427,7 +1427,7 @@ static int brcmf_pcie_init_ringbuffers(struct brcmf_pciedev_info *devinfo) devinfo->shared.max_flowrings = max_flowrings; devinfo->shared.max_submissionrings = max_submissionrings; devinfo->shared.max_completionrings = max_completionrings; - rings = kcalloc(max_flowrings, sizeof(*ring), GFP_KERNEL); + rings = kzalloc_objs(*ring, max_flowrings); if (!rings) goto fail; @@ -2316,8 +2316,7 @@ static void brcmf_pcie_setup(struct device *dev, int ret, bus->msgbuf->commonrings[i] = &devinfo->shared.commonrings[i]->commonring; - flowrings = kcalloc(devinfo->shared.max_flowrings, sizeof(*flowrings), - GFP_KERNEL); + flowrings = kzalloc_objs(*flowrings, devinfo->shared.max_flowrings); if (!flowrings) goto fail; @@ -2574,7 +2573,7 @@ brcmf_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *id) brcmf_dbg(PCIE, "Enter %x:%x\n", pdev->vendor, pdev->device); ret = -ENOMEM; - devinfo = kzalloc(sizeof(*devinfo), GFP_KERNEL); + devinfo = kzalloc_obj(*devinfo); if (devinfo == NULL) return ret; @@ -2594,7 +2593,7 @@ brcmf_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *id) else devinfo->reginfo = &brcmf_reginfo_default; - pcie_bus_dev = kzalloc(sizeof(*pcie_bus_dev), GFP_KERNEL); + pcie_bus_dev = kzalloc_obj(*pcie_bus_dev); if (pcie_bus_dev == NULL) { ret = -ENOMEM; goto fail; @@ -2612,12 +2611,12 @@ brcmf_pcie_probe(struct pci_dev *pdev, const struct pci_device_id *id) if (ret < 0) goto fail; - bus = kzalloc(sizeof(*bus), GFP_KERNEL); + bus = kzalloc_obj(*bus); if (!bus) { ret = -ENOMEM; goto fail; } - bus->msgbuf = kzalloc(sizeof(*bus->msgbuf), GFP_KERNEL); + bus->msgbuf = kzalloc_obj(*bus->msgbuf); if (!bus->msgbuf) { ret = -ENOMEM; kfree(bus); diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/pno.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/pno.c index 3d5fc69a98fd..cdf3c7740ae4 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/pno.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/pno.c @@ -334,7 +334,7 @@ static int brcmf_pno_prep_fwconfig(struct brcmf_pno_info *pi, } *buckets = NULL; - fw_buckets = kcalloc(pi->n_reqs, sizeof(*fw_buckets), GFP_KERNEL); + fw_buckets = kzalloc_objs(*fw_buckets, pi->n_reqs); if (!fw_buckets) return -ENOMEM; @@ -538,7 +538,7 @@ int brcmf_pno_attach(struct brcmf_cfg80211_info *cfg) struct brcmf_pno_info *pi; brcmf_dbg(TRACE, "enter\n"); - pi = kzalloc(sizeof(*pi), GFP_KERNEL); + pi = kzalloc_obj(*pi); if (!pi) return -ENOMEM; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/proto.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/proto.c index 2e911d4874af..7fc441859f52 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/proto.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/proto.c @@ -23,7 +23,7 @@ int brcmf_proto_attach(struct brcmf_pub *drvr) brcmf_dbg(TRACE, "Enter\n"); - proto = kzalloc(sizeof(*proto), GFP_ATOMIC); + proto = kzalloc_obj(*proto, GFP_ATOMIC); if (!proto) goto fail; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/sdio.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/sdio.c index 8cf9d7e7c3f7..30f6fcb68632 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/sdio.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/sdio.c @@ -4445,7 +4445,7 @@ brcmf_sdio_prepare_fw_request(struct brcmf_sdio *bus) return fwreq; } -struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev) +int brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev) { int ret; struct brcmf_sdio *bus; @@ -4455,7 +4455,7 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev) brcmf_dbg(TRACE, "Enter\n"); /* Allocate private bus interface state */ - bus = kzalloc(sizeof(*bus), GFP_ATOMIC); + bus = kzalloc_obj(*bus, GFP_ATOMIC); if (!bus) { ret = -ENOMEM; goto fail; @@ -4551,11 +4551,12 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev) goto fail; } - return bus; + return 0; fail: brcmf_sdio_remove(bus); - return ERR_PTR(ret); + sdiodev->bus = NULL; + return ret; } /* Detach and free everything */ diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/sdio.h b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/sdio.h index 0d18ed15b403..80180d5c6c87 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/sdio.h +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/sdio.h @@ -358,7 +358,7 @@ void brcmf_sdiod_freezer_uncount(struct brcmf_sdio_dev *sdiodev); int brcmf_sdiod_probe(struct brcmf_sdio_dev *sdiodev); int brcmf_sdiod_remove(struct brcmf_sdio_dev *sdiodev); -struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev); +int brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev); void brcmf_sdio_remove(struct brcmf_sdio *bus); void brcmf_sdio_isr(struct brcmf_sdio *bus, bool in_isr); diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/usb.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/usb.c index 46b7cf4380e6..7e8122795afb 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/usb.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/usb.c @@ -439,7 +439,7 @@ brcmf_usbdev_qinit(struct list_head *q, int qsize) int i; struct brcmf_usbreq *req, *reqs; - reqs = kcalloc(qsize, sizeof(struct brcmf_usbreq), GFP_ATOMIC); + reqs = kzalloc_objs(struct brcmf_usbreq, qsize, GFP_ATOMIC); if (reqs == NULL) return NULL; @@ -1303,7 +1303,7 @@ static int brcmf_usb_probe_cb(struct brcmf_usbdev_info *devinfo, if (!bus_pub) return -ENODEV; - bus = kzalloc(sizeof(*bus), GFP_ATOMIC); + bus = kzalloc_obj(*bus, GFP_ATOMIC); if (!bus) { ret = -ENOMEM; goto fail; @@ -1407,7 +1407,7 @@ brcmf_usb_probe(struct usb_interface *intf, const struct usb_device_id *id) brcmf_dbg(USB, "Enter 0x%04x:0x%04x\n", id->idVendor, id->idProduct); - devinfo = kzalloc(sizeof(*devinfo), GFP_ATOMIC); + devinfo = kzalloc_obj(*devinfo, GFP_ATOMIC); if (devinfo == NULL) return -ENOMEM; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/wcc/core.c b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/wcc/core.c index 05d7c2a4fba5..e14b5530f720 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmfmac/wcc/core.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmfmac/wcc/core.c @@ -24,8 +24,7 @@ static int brcmf_wcc_alloc_fweh_info(struct brcmf_pub *drvr) { struct brcmf_fweh_info *fweh; - fweh = kzalloc(struct_size(fweh, evt_handler, BRCMF_WCC_E_LAST), - GFP_KERNEL); + fweh = kzalloc_flex(*fweh, evt_handler, BRCMF_WCC_E_LAST); if (!fweh) return -ENOMEM; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmsmac/aiutils.c b/sys/contrib/dev/broadcom/brcm80211/brcmsmac/aiutils.c index 0cb64fc56783..6a67db07833e 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmsmac/aiutils.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmsmac/aiutils.c @@ -512,7 +512,7 @@ ai_attach(struct bcma_bus *pbus) struct si_info *sii; /* alloc struct si_info */ - sii = kzalloc(sizeof(*sii), GFP_ATOMIC); + sii = kzalloc_obj(*sii, GFP_ATOMIC); if (sii == NULL) return NULL; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmsmac/ampdu.c b/sys/contrib/dev/broadcom/brcm80211/brcmsmac/ampdu.c index e1d707a7c964..fc7a5dd2e5d8 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmsmac/ampdu.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmsmac/ampdu.c @@ -219,7 +219,7 @@ struct ampdu_info *brcms_c_ampdu_attach(struct brcms_c_info *wlc) struct ampdu_info *ampdu; int i; - ampdu = kzalloc(sizeof(*ampdu), GFP_ATOMIC); + ampdu = kzalloc_obj(*ampdu, GFP_ATOMIC); if (!ampdu) return NULL; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmsmac/antsel.c b/sys/contrib/dev/broadcom/brcm80211/brcmsmac/antsel.c index f411bc6d795d..9a3e40528ff7 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmsmac/antsel.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmsmac/antsel.c @@ -111,7 +111,7 @@ struct antsel_info *brcms_c_antsel_attach(struct brcms_c_info *wlc) struct antsel_info *asi; struct ssb_sprom *sprom = &wlc->hw->d11core->bus->sprom; - asi = kzalloc(sizeof(*asi), GFP_ATOMIC); + asi = kzalloc_obj(*asi, GFP_ATOMIC); if (!asi) return NULL; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmsmac/channel.c b/sys/contrib/dev/broadcom/brcm80211/brcmsmac/channel.c index 3878c4124e25..cdfe8635c012 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmsmac/channel.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmsmac/channel.c @@ -331,7 +331,7 @@ struct brcms_cm_info *brcms_c_channel_mgr_attach(struct brcms_c_info *wlc) const char *ccode = sprom->alpha2; int ccode_len = sizeof(sprom->alpha2); - wlc_cm = kzalloc(sizeof(*wlc_cm), GFP_ATOMIC); + wlc_cm = kzalloc_obj(*wlc_cm, GFP_ATOMIC); if (wlc_cm == NULL) return NULL; wlc_cm->pub = pub; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmsmac/dma.c b/sys/contrib/dev/broadcom/brcm80211/brcmsmac/dma.c index c739bf7463b3..a329c20e92fb 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmsmac/dma.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmsmac/dma.c @@ -483,7 +483,7 @@ static void *dma_ringalloc(struct dma_info *di, u32 boundary, uint size, if (((desc_strtaddr + size - 1) & boundary) != (desc_strtaddr & boundary)) { *alignbits = dma_align_sizetobits(size); - dma_free_coherent(di->dmadev, size, va, *descpa); + dma_free_coherent(di->dmadev, *alloced, va, *descpa); va = dma_alloc_consistent(di, size, *alignbits, alloced, descpa); } @@ -558,7 +558,7 @@ struct dma_pub *dma_attach(char *name, struct brcms_c_info *wlc, struct si_info *sii = container_of(sih, struct si_info, pub); /* allocate private info structure */ - di = kzalloc(sizeof(*di), GFP_ATOMIC); + di = kzalloc_obj(*di, GFP_ATOMIC); if (di == NULL) return NULL; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmsmac/mac80211_if.c b/sys/contrib/dev/broadcom/brcm80211/brcmsmac/mac80211_if.c index aadcff1e2b5d..6255d673d2d3 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmsmac/mac80211_if.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmsmac/mac80211_if.c @@ -1499,7 +1499,7 @@ struct brcms_timer *brcms_init_timer(struct brcms_info *wl, { struct brcms_timer *t; - t = kzalloc(sizeof(*t), GFP_ATOMIC); + t = kzalloc_obj(*t, GFP_ATOMIC); if (!t) return NULL; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmsmac/main.c b/sys/contrib/dev/broadcom/brcm80211/brcmsmac/main.c index c1a9c1e442ee..c7eaf160e1fa 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmsmac/main.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmsmac/main.c @@ -457,11 +457,11 @@ static struct brcms_bss_cfg *brcms_c_bsscfg_malloc(uint unit) { struct brcms_bss_cfg *cfg; - cfg = kzalloc(sizeof(*cfg), GFP_ATOMIC); + cfg = kzalloc_obj(*cfg, GFP_ATOMIC); if (cfg == NULL) goto fail; - cfg->current_bss = kzalloc(sizeof(*cfg->current_bss), GFP_ATOMIC); + cfg->current_bss = kzalloc_obj(*cfg->current_bss, GFP_ATOMIC); if (cfg->current_bss == NULL) goto fail; @@ -477,14 +477,14 @@ brcms_c_attach_malloc(uint unit, uint *err, uint devid) { struct brcms_c_info *wlc; - wlc = kzalloc(sizeof(*wlc), GFP_ATOMIC); + wlc = kzalloc_obj(*wlc, GFP_ATOMIC); if (wlc == NULL) { *err = 1002; goto fail; } /* allocate struct brcms_c_pub state structure */ - wlc->pub = kzalloc(sizeof(*wlc->pub), GFP_ATOMIC); + wlc->pub = kzalloc_obj(*wlc->pub, GFP_ATOMIC); if (wlc->pub == NULL) { *err = 1003; goto fail; @@ -493,7 +493,7 @@ brcms_c_attach_malloc(uint unit, uint *err, uint devid) /* allocate struct brcms_hardware state structure */ - wlc->hw = kzalloc(sizeof(*wlc->hw), GFP_ATOMIC); + wlc->hw = kzalloc_obj(*wlc->hw, GFP_ATOMIC); if (wlc->hw == NULL) { *err = 1005; goto fail; @@ -501,7 +501,7 @@ brcms_c_attach_malloc(uint unit, uint *err, uint devid) wlc->hw->wlc = wlc; wlc->hw->bandstate[0] = - kcalloc(MAXBANDS, sizeof(struct brcms_hw_band), GFP_ATOMIC); + kzalloc_objs(struct brcms_hw_band, MAXBANDS, GFP_ATOMIC); if (wlc->hw->bandstate[0] == NULL) { *err = 1006; goto fail; @@ -515,14 +515,13 @@ brcms_c_attach_malloc(uint unit, uint *err, uint devid) } wlc->modulecb = - kcalloc(BRCMS_MAXMODULES, sizeof(struct modulecb), - GFP_ATOMIC); + kzalloc_objs(struct modulecb, BRCMS_MAXMODULES, GFP_ATOMIC); if (wlc->modulecb == NULL) { *err = 1009; goto fail; } - wlc->default_bss = kzalloc(sizeof(*wlc->default_bss), GFP_ATOMIC); + wlc->default_bss = kzalloc_obj(*wlc->default_bss, GFP_ATOMIC); if (wlc->default_bss == NULL) { *err = 1010; goto fail; @@ -534,20 +533,20 @@ brcms_c_attach_malloc(uint unit, uint *err, uint devid) goto fail; } - wlc->protection = kzalloc(sizeof(*wlc->protection), GFP_ATOMIC); + wlc->protection = kzalloc_obj(*wlc->protection, GFP_ATOMIC); if (wlc->protection == NULL) { *err = 1016; goto fail; } - wlc->stf = kzalloc(sizeof(*wlc->stf), GFP_ATOMIC); + wlc->stf = kzalloc_obj(*wlc->stf, GFP_ATOMIC); if (wlc->stf == NULL) { *err = 1017; goto fail; } wlc->bandstate[0] = - kcalloc(MAXBANDS, sizeof(*wlc->bandstate[0]), GFP_ATOMIC); + kzalloc_objs(*wlc->bandstate[0], MAXBANDS, GFP_ATOMIC); if (wlc->bandstate[0] == NULL) { *err = 1025; goto fail; @@ -560,14 +559,14 @@ brcms_c_attach_malloc(uint unit, uint *err, uint devid) + (sizeof(struct brcms_band)*i)); } - wlc->corestate = kzalloc(sizeof(*wlc->corestate), GFP_ATOMIC); + wlc->corestate = kzalloc_obj(*wlc->corestate, GFP_ATOMIC); if (wlc->corestate == NULL) { *err = 1026; goto fail; } - wlc->corestate->macstat_snapshot = - kzalloc(sizeof(*wlc->corestate->macstat_snapshot), GFP_ATOMIC); + wlc->corestate->macstat_snapshot = kzalloc_obj(*wlc->corestate->macstat_snapshot, + GFP_ATOMIC); if (wlc->corestate->macstat_snapshot == NULL) { *err = 1027; goto fail; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c b/sys/contrib/dev/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c index ce6ce2dea39c..7eae73ef7e94 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmsmac/phy/phy_cmn.c @@ -333,7 +333,7 @@ struct shared_phy *wlc_phy_shared_attach(struct shared_phy_params *shp) { struct shared_phy *sh; - sh = kzalloc(sizeof(*sh), GFP_ATOMIC); + sh = kzalloc_obj(*sh, GFP_ATOMIC); if (sh == NULL) return NULL; @@ -420,7 +420,7 @@ wlc_phy_attach(struct shared_phy *sh, struct bcma_device *d11core, return &pi->pubpi_ro; } - pi = kzalloc(sizeof(*pi), GFP_ATOMIC); + pi = kzalloc_obj(*pi, GFP_ATOMIC); if (pi == NULL) return NULL; pi->wiphy = wiphy; diff --git a/sys/contrib/dev/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c b/sys/contrib/dev/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c index b4bba67a45ec..8cec5ad79fda 100644 --- a/sys/contrib/dev/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c +++ b/sys/contrib/dev/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c @@ -1319,7 +1319,7 @@ wlc_lcnphy_rx_iq_cal(struct brcms_phy *pi, s16 *ptr; struct brcms_phy_lcnphy *pi_lcn = pi->u.pi_lcnphy; - ptr = kmalloc_array(131, sizeof(s16), GFP_ATOMIC); + ptr = kmalloc_objs(s16, 131, GFP_ATOMIC); if (NULL == ptr) return false; if (module == 2) { @@ -3605,7 +3605,7 @@ wlc_lcnphy_a1(struct brcms_phy *pi, int cal_type, int num_levels, u16 *phy_c32; *** 73 LINES SKIPPED ***home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69e938fc.27cbc.57949d24>
