All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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: link
Be 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.