--- a/src/USB/driver_fw/drivers/aic8800/aic8800_fdrv/rwnx_main.c +++ b/src/USB/driver_fw/drivers/aic8800/aic8800_fdrv/rwnx_main.c @@ -1072,7 +1072,7 @@ static void rwnx_csa_finish(struct work_ } else rwnx_txq_vif_stop(vif, RWNX_TXQ_STOP_CHAN, rwnx_hw); spin_unlock_bh(&rwnx_hw->cb_lock); -#if (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION3) +#if (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION3) && !defined(BUILD_OPENWRT) cfg80211_ch_switch_notify(vif->ndev, &csa->chandef, 0, 0); #elif (LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION) cfg80211_ch_switch_notify(vif->ndev, &csa->chandef, 0); @@ -6045,7 +6045,7 @@ int rwnx_cfg80211_channel_switch(struct goto end; } else { INIT_WORK(&csa->work, rwnx_csa_finish); -#if LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION4 +#if LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION4 && !defined(BUILD_OPENWRT) cfg80211_ch_switch_started_notify(dev, &csa->chandef, 0, params->count, false, 0); #elif LINUX_VERSION_CODE >= HIGH_KERNEL_VERSION2 cfg80211_ch_switch_started_notify(dev, &csa->chandef, 0, params->count, false); --- a/src/USB/driver_fw/drivers/aic8800/aic8800_fdrv/rwnx_rx.c +++ b/src/USB/driver_fw/drivers/aic8800/aic8800_fdrv/rwnx_rx.c @@ -464,8 +464,13 @@ static bool rwnx_rx_data_skb(struct rwnx if (amsdu) { int count; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 3, 0) || defined(BUILD_OPENWRT) + ieee80211_amsdu_to_8023s(skb, &list, rwnx_vif->ndev->dev_addr, + RWNX_VIF_TYPE(rwnx_vif), 0, NULL, NULL, false); +#else ieee80211_amsdu_to_8023s(skb, &list, rwnx_vif->ndev->dev_addr, RWNX_VIF_TYPE(rwnx_vif), 0, NULL, NULL); +#endif count = skb_queue_len(&list); if (count > ARRAY_SIZE(rwnx_hw->stats.amsdus_rx))