From: kernel test robot <lkp@intel.com> To: Johannes Berg <johannes@sipsolutions.net>, linux-wireless@vger.kernel.org Cc: kbuild-all@lists.01.org, Johannes Berg <johannes.berg@intel.com> Subject: Re: [PATCH] mac80211_hwsim: check TX and STA bandwidth Date: Sat, 5 Feb 2022 02:39:29 +0800 [thread overview] Message-ID: <202202050254.pz3jVGvO-lkp@intel.com> (raw) In-Reply-To: <20220204174105.5026d3892bf6.Ia0cd152357a373149bab017d479ab7d5ded289c0@changeid> Hi Johannes, I love your patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v5.17-rc2 next-20220204] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Johannes-Berg/mac80211_hwsim-check-TX-and-STA-bandwidth/20220205-004233 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git dcb85f85fa6f142aae1fe86f399d4503d49f2b60 config: mips-allyesconfig (https://download.01.org/0day-ci/archive/20220205/202202050254.pz3jVGvO-lkp@intel.com/config) compiler: mips-linux-gcc (GCC) 11.2.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/99f1c0b151e550eed22429c2eb48876108bf3de7 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Johannes-Berg/mac80211_hwsim-check-TX-and-STA-bandwidth/20220205-004233 git checkout 99f1c0b151e550eed22429c2eb48876108bf3de7 # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=mips SHELL=/bin/bash drivers/net/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): drivers/net/wireless/mac80211_hwsim.c: In function 'mac80211_hwsim_tx': >> drivers/net/wireless/mac80211_hwsim.c:1631:33: warning: variable 'confbw' set but not used [-Wunused-but-set-variable] 1631 | enum nl80211_chan_width confbw = NL80211_CHAN_WIDTH_20_NOHT; | ^~~~~~ vim +/confbw +1631 drivers/net/wireless/mac80211_hwsim.c 1620 1621 static void mac80211_hwsim_tx(struct ieee80211_hw *hw, 1622 struct ieee80211_tx_control *control, 1623 struct sk_buff *skb) 1624 { 1625 struct mac80211_hwsim_data *data = hw->priv; 1626 struct ieee80211_tx_info *txi = IEEE80211_SKB_CB(skb); 1627 struct ieee80211_hdr *hdr = (void *)skb->data; 1628 struct ieee80211_chanctx_conf *chanctx_conf; 1629 struct ieee80211_channel *channel; 1630 bool ack; > 1631 enum nl80211_chan_width confbw = NL80211_CHAN_WIDTH_20_NOHT; 1632 u32 _portid, i; 1633 1634 if (WARN_ON(skb->len < 10)) { 1635 /* Should not happen; just a sanity check for addr1 use */ 1636 ieee80211_free_txskb(hw, skb); 1637 return; 1638 } 1639 1640 if (!data->use_chanctx) { 1641 channel = data->channel; 1642 confbw = data->bw; 1643 } else if (txi->hw_queue == 4) { 1644 channel = data->tmp_chan; 1645 } else { 1646 chanctx_conf = rcu_dereference(txi->control.vif->chanctx_conf); 1647 if (chanctx_conf) { 1648 channel = chanctx_conf->def.chan; 1649 confbw = chanctx_conf->def.width; 1650 } else { 1651 channel = NULL; 1652 } 1653 } 1654 1655 if (WARN(!channel, "TX w/o channel - queue = %d\n", txi->hw_queue)) { 1656 ieee80211_free_txskb(hw, skb); 1657 return; 1658 } 1659 1660 if (data->idle && !data->tmp_chan) { 1661 wiphy_dbg(hw->wiphy, "Trying to TX when idle - reject\n"); 1662 ieee80211_free_txskb(hw, skb); 1663 return; 1664 } 1665 1666 if (txi->control.vif) 1667 hwsim_check_magic(txi->control.vif); 1668 if (control->sta) 1669 hwsim_check_sta_magic(control->sta); 1670 1671 if (ieee80211_hw_check(hw, SUPPORTS_RC_TABLE)) 1672 ieee80211_get_tx_rates(txi->control.vif, control->sta, skb, 1673 txi->control.rates, 1674 ARRAY_SIZE(txi->control.rates)); 1675 1676 for (i = 0; i < ARRAY_SIZE(txi->control.rates); i++) { 1677 u16 rflags = txi->control.rates[i].flags; 1678 /* initialize to data->bw for 5/10 MHz handling */ 1679 enum nl80211_chan_width bw = data->bw; 1680 1681 if (txi->control.rates[i].idx == -1) 1682 break; 1683 1684 if (rflags & IEEE80211_TX_RC_40_MHZ_WIDTH) 1685 bw = NL80211_CHAN_WIDTH_40; 1686 else if (rflags & IEEE80211_TX_RC_80_MHZ_WIDTH) 1687 bw = NL80211_CHAN_WIDTH_80; 1688 else if (rflags & IEEE80211_TX_RC_160_MHZ_WIDTH) 1689 bw = NL80211_CHAN_WIDTH_160; 1690 1691 if (WARN_ON(hwsim_get_chanwidth(bw) > hwsim_get_chanwidth(data->bw))) 1692 return; 1693 } 1694 1695 if (skb->len >= 24 + 8 && 1696 ieee80211_is_probe_resp(hdr->frame_control)) { 1697 /* fake header transmission time */ 1698 struct ieee80211_mgmt *mgmt; 1699 struct ieee80211_rate *txrate; 1700 /* TODO: get MCS */ 1701 int bitrate = 100; 1702 u64 ts; 1703 1704 mgmt = (struct ieee80211_mgmt *)skb->data; 1705 txrate = ieee80211_get_tx_rate(hw, txi); 1706 if (txrate) 1707 bitrate = txrate->bitrate; 1708 ts = mac80211_hwsim_get_tsf_raw(); 1709 mgmt->u.probe_resp.timestamp = 1710 cpu_to_le64(ts + data->tsf_offset + 1711 24 * 8 * 10 / bitrate); 1712 } 1713 1714 mac80211_hwsim_monitor_rx(hw, skb, channel); 1715 1716 /* wmediumd mode check */ 1717 _portid = READ_ONCE(data->wmediumd); 1718 1719 if (_portid || hwsim_virtio_enabled) 1720 return mac80211_hwsim_tx_frame_nl(hw, skb, _portid, channel); 1721 1722 /* NO wmediumd detected, perfect medium simulation */ 1723 data->tx_pkts++; 1724 data->tx_bytes += skb->len; 1725 ack = mac80211_hwsim_tx_frame_no_nl(hw, skb, channel); 1726 1727 if (ack && skb->len >= 16) 1728 mac80211_hwsim_monitor_ack(channel, hdr->addr2); 1729 1730 ieee80211_tx_info_clear_status(txi); 1731 1732 /* frame was transmitted at most favorable rate at first attempt */ 1733 txi->control.rates[0].count = 1; 1734 txi->control.rates[1].idx = -1; 1735 1736 if (!(txi->flags & IEEE80211_TX_CTL_NO_ACK) && ack) 1737 txi->flags |= IEEE80211_TX_STAT_ACK; 1738 ieee80211_tx_status_irqsafe(hw, skb); 1739 } 1740 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com> To: kbuild-all@lists.01.org Subject: Re: [PATCH] mac80211_hwsim: check TX and STA bandwidth Date: Sat, 05 Feb 2022 02:39:29 +0800 [thread overview] Message-ID: <202202050254.pz3jVGvO-lkp@intel.com> (raw) In-Reply-To: <20220204174105.5026d3892bf6.Ia0cd152357a373149bab017d479ab7d5ded289c0@changeid> [-- Attachment #1: Type: text/plain, Size: 6477 bytes --] Hi Johannes, I love your patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v5.17-rc2 next-20220204] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Johannes-Berg/mac80211_hwsim-check-TX-and-STA-bandwidth/20220205-004233 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git dcb85f85fa6f142aae1fe86f399d4503d49f2b60 config: mips-allyesconfig (https://download.01.org/0day-ci/archive/20220205/202202050254.pz3jVGvO-lkp(a)intel.com/config) compiler: mips-linux-gcc (GCC) 11.2.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/99f1c0b151e550eed22429c2eb48876108bf3de7 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Johannes-Berg/mac80211_hwsim-check-TX-and-STA-bandwidth/20220205-004233 git checkout 99f1c0b151e550eed22429c2eb48876108bf3de7 # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=mips SHELL=/bin/bash drivers/net/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): drivers/net/wireless/mac80211_hwsim.c: In function 'mac80211_hwsim_tx': >> drivers/net/wireless/mac80211_hwsim.c:1631:33: warning: variable 'confbw' set but not used [-Wunused-but-set-variable] 1631 | enum nl80211_chan_width confbw = NL80211_CHAN_WIDTH_20_NOHT; | ^~~~~~ vim +/confbw +1631 drivers/net/wireless/mac80211_hwsim.c 1620 1621 static void mac80211_hwsim_tx(struct ieee80211_hw *hw, 1622 struct ieee80211_tx_control *control, 1623 struct sk_buff *skb) 1624 { 1625 struct mac80211_hwsim_data *data = hw->priv; 1626 struct ieee80211_tx_info *txi = IEEE80211_SKB_CB(skb); 1627 struct ieee80211_hdr *hdr = (void *)skb->data; 1628 struct ieee80211_chanctx_conf *chanctx_conf; 1629 struct ieee80211_channel *channel; 1630 bool ack; > 1631 enum nl80211_chan_width confbw = NL80211_CHAN_WIDTH_20_NOHT; 1632 u32 _portid, i; 1633 1634 if (WARN_ON(skb->len < 10)) { 1635 /* Should not happen; just a sanity check for addr1 use */ 1636 ieee80211_free_txskb(hw, skb); 1637 return; 1638 } 1639 1640 if (!data->use_chanctx) { 1641 channel = data->channel; 1642 confbw = data->bw; 1643 } else if (txi->hw_queue == 4) { 1644 channel = data->tmp_chan; 1645 } else { 1646 chanctx_conf = rcu_dereference(txi->control.vif->chanctx_conf); 1647 if (chanctx_conf) { 1648 channel = chanctx_conf->def.chan; 1649 confbw = chanctx_conf->def.width; 1650 } else { 1651 channel = NULL; 1652 } 1653 } 1654 1655 if (WARN(!channel, "TX w/o channel - queue = %d\n", txi->hw_queue)) { 1656 ieee80211_free_txskb(hw, skb); 1657 return; 1658 } 1659 1660 if (data->idle && !data->tmp_chan) { 1661 wiphy_dbg(hw->wiphy, "Trying to TX when idle - reject\n"); 1662 ieee80211_free_txskb(hw, skb); 1663 return; 1664 } 1665 1666 if (txi->control.vif) 1667 hwsim_check_magic(txi->control.vif); 1668 if (control->sta) 1669 hwsim_check_sta_magic(control->sta); 1670 1671 if (ieee80211_hw_check(hw, SUPPORTS_RC_TABLE)) 1672 ieee80211_get_tx_rates(txi->control.vif, control->sta, skb, 1673 txi->control.rates, 1674 ARRAY_SIZE(txi->control.rates)); 1675 1676 for (i = 0; i < ARRAY_SIZE(txi->control.rates); i++) { 1677 u16 rflags = txi->control.rates[i].flags; 1678 /* initialize to data->bw for 5/10 MHz handling */ 1679 enum nl80211_chan_width bw = data->bw; 1680 1681 if (txi->control.rates[i].idx == -1) 1682 break; 1683 1684 if (rflags & IEEE80211_TX_RC_40_MHZ_WIDTH) 1685 bw = NL80211_CHAN_WIDTH_40; 1686 else if (rflags & IEEE80211_TX_RC_80_MHZ_WIDTH) 1687 bw = NL80211_CHAN_WIDTH_80; 1688 else if (rflags & IEEE80211_TX_RC_160_MHZ_WIDTH) 1689 bw = NL80211_CHAN_WIDTH_160; 1690 1691 if (WARN_ON(hwsim_get_chanwidth(bw) > hwsim_get_chanwidth(data->bw))) 1692 return; 1693 } 1694 1695 if (skb->len >= 24 + 8 && 1696 ieee80211_is_probe_resp(hdr->frame_control)) { 1697 /* fake header transmission time */ 1698 struct ieee80211_mgmt *mgmt; 1699 struct ieee80211_rate *txrate; 1700 /* TODO: get MCS */ 1701 int bitrate = 100; 1702 u64 ts; 1703 1704 mgmt = (struct ieee80211_mgmt *)skb->data; 1705 txrate = ieee80211_get_tx_rate(hw, txi); 1706 if (txrate) 1707 bitrate = txrate->bitrate; 1708 ts = mac80211_hwsim_get_tsf_raw(); 1709 mgmt->u.probe_resp.timestamp = 1710 cpu_to_le64(ts + data->tsf_offset + 1711 24 * 8 * 10 / bitrate); 1712 } 1713 1714 mac80211_hwsim_monitor_rx(hw, skb, channel); 1715 1716 /* wmediumd mode check */ 1717 _portid = READ_ONCE(data->wmediumd); 1718 1719 if (_portid || hwsim_virtio_enabled) 1720 return mac80211_hwsim_tx_frame_nl(hw, skb, _portid, channel); 1721 1722 /* NO wmediumd detected, perfect medium simulation */ 1723 data->tx_pkts++; 1724 data->tx_bytes += skb->len; 1725 ack = mac80211_hwsim_tx_frame_no_nl(hw, skb, channel); 1726 1727 if (ack && skb->len >= 16) 1728 mac80211_hwsim_monitor_ack(channel, hdr->addr2); 1729 1730 ieee80211_tx_info_clear_status(txi); 1731 1732 /* frame was transmitted at most favorable rate at first attempt */ 1733 txi->control.rates[0].count = 1; 1734 txi->control.rates[1].idx = -1; 1735 1736 if (!(txi->flags & IEEE80211_TX_CTL_NO_ACK) && ack) 1737 txi->flags |= IEEE80211_TX_STAT_ACK; 1738 ieee80211_tx_status_irqsafe(hw, skb); 1739 } 1740 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
next prev parent reply other threads:[~2022-02-04 18:39 UTC|newest] Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-02-04 16:41 [PATCH] mac80211_hwsim: check TX and STA bandwidth Johannes Berg 2022-02-04 18:39 ` kernel test robot [this message] 2022-02-04 18:39 ` kernel test robot 2022-02-04 22:33 ` kernel test robot 2022-02-04 22:33 ` kernel test robot
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=202202050254.pz3jVGvO-lkp@intel.com \ --to=lkp@intel.com \ --cc=johannes.berg@intel.com \ --cc=johannes@sipsolutions.net \ --cc=kbuild-all@lists.01.org \ --cc=linux-wireless@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.