* [linux-next:master 788/6276] drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c:5198:24: sparse: sparse: invalid assignment: |=
@ 2023-01-19 8:20 kernel test robot
2023-01-19 11:38 ` Ping-Ke Shih
0 siblings, 1 reply; 2+ messages in thread
From: kernel test robot @ 2023-01-19 8:20 UTC (permalink / raw)
To: Jes Sorensen
Cc: oe-kbuild-all, Linux Memory Management List, Kalle Valo,
Andrea Merello, Taehee Yoo, Bitterblue Smith, Ping-Ke Shih
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: aa5c49149a823599764e6953229b028e4bf6e9cc
commit: 3dfb8e844fa30cceb4b810613e2c35f628eb3e70 [788/6276] wifi: rtl8xxxu: Support new chip RTL8188EU
config: openrisc-randconfig-s043-20230119 (https://download.01.org/0day-ci/archive/20230119/202301191616.R33Dvxk4-lkp@intel.com/config)
compiler: or1k-linux-gcc (GCC) 12.1.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.4-39-gce1a6720-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=3dfb8e844fa30cceb4b810613e2c35f628eb3e70
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout 3dfb8e844fa30cceb4b810613e2c35f628eb3e70
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=openrisc olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=openrisc SHELL=/bin/bash drivers/net/wireless/realtek/rtl8xxxu/
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c:5198:24: sparse: sparse: invalid assignment: |=
>> drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c:5198:24: sparse: left side has type restricted __le16
>> drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c:5198:24: sparse: right side has type restricted __le32
vim +5198 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c
5110
5111 /*
5112 * Fill in v3 (gen1) specific TX descriptor bits.
5113 * This format is a hybrid between the v1 and v2 formats, only seen
5114 * on 8188eu devices so far.
5115 */
5116 void
5117 rtl8xxxu_fill_txdesc_v3(struct ieee80211_hw *hw, struct ieee80211_hdr *hdr,
5118 struct ieee80211_tx_info *tx_info,
5119 struct rtl8xxxu_txdesc32 *tx_desc, bool sgi,
5120 bool short_preamble, bool ampdu_enable, u32 rts_rate)
5121 {
5122 struct ieee80211_rate *tx_rate = ieee80211_get_tx_rate(hw, tx_info);
5123 struct rtl8xxxu_priv *priv = hw->priv;
5124 struct device *dev = &priv->udev->dev;
5125 u8 *qc = ieee80211_get_qos_ctl(hdr);
5126 u8 tid = qc[0] & IEEE80211_QOS_CTL_TID_MASK;
5127 u32 rate;
5128 u16 rate_flags = tx_info->control.rates[0].flags;
5129 u16 seq_number;
5130
5131 if (rate_flags & IEEE80211_TX_RC_MCS &&
5132 !ieee80211_is_mgmt(hdr->frame_control))
5133 rate = tx_info->control.rates[0].idx + DESC_RATE_MCS0;
5134 else
5135 rate = tx_rate->hw_value;
5136
5137 seq_number = IEEE80211_SEQ_TO_SN(le16_to_cpu(hdr->seq_ctrl));
5138
5139 if (ieee80211_is_data(hdr->frame_control)) {
5140 rate = DESC_RATE_MCS7; /* TODO: software rate control */
5141 tx_desc->txdw5 = cpu_to_le32(rate);
5142 tx_desc->txdw4 |= cpu_to_le32(TXDESC32_USE_DRIVER_RATE);
5143 /* Data/RTS rate FB limit */
5144 tx_desc->txdw5 |= cpu_to_le32(0x0001ff00);
5145 }
5146
5147 if (rtl8xxxu_debug & RTL8XXXU_DEBUG_TX)
5148 dev_info(dev, "%s: TX rate: %d, pkt size %d\n",
5149 __func__, rate, le16_to_cpu(tx_desc->pkt_size));
5150
5151 tx_desc->txdw3 = cpu_to_le32((u32)seq_number << TXDESC32_SEQ_SHIFT);
5152
5153 if (ampdu_enable && test_bit(tid, priv->tid_tx_operational))
5154 tx_desc->txdw2 |= cpu_to_le32(TXDESC40_AGG_ENABLE);
5155 else
5156 tx_desc->txdw2 |= cpu_to_le32(TXDESC40_AGG_BREAK);
5157
5158 if (ieee80211_is_mgmt(hdr->frame_control)) {
5159 tx_desc->txdw5 = cpu_to_le32(rate);
5160 tx_desc->txdw4 |= cpu_to_le32(TXDESC32_USE_DRIVER_RATE);
5161 tx_desc->txdw5 |= cpu_to_le32(6 << TXDESC32_RETRY_LIMIT_SHIFT);
5162 tx_desc->txdw5 |= cpu_to_le32(TXDESC32_RETRY_LIMIT_ENABLE);
5163 }
5164
5165 if (ieee80211_is_data_qos(hdr->frame_control)) {
5166 tx_desc->txdw4 |= cpu_to_le32(TXDESC32_QOS);
5167
5168 if (conf_is_ht40(&hw->conf)) {
5169 tx_desc->txdw4 |= cpu_to_le32(TXDESC_DATA_BW);
5170
5171 if (conf_is_ht40_minus(&hw->conf))
5172 tx_desc->txdw4 |= cpu_to_le32(TXDESC_PRIME_CH_OFF_UPPER);
5173 else
5174 tx_desc->txdw4 |= cpu_to_le32(TXDESC_PRIME_CH_OFF_LOWER);
5175 }
5176 }
5177
5178 if (short_preamble)
5179 tx_desc->txdw4 |= cpu_to_le32(TXDESC32_SHORT_PREAMBLE);
5180
5181 if (sgi)
5182 tx_desc->txdw5 |= cpu_to_le32(TXDESC32_SHORT_GI);
5183
5184 /*
5185 * rts_rate is zero if RTS/CTS or CTS to SELF are not enabled
5186 */
5187 tx_desc->txdw4 |= cpu_to_le32(rts_rate << TXDESC32_RTS_RATE_SHIFT);
5188 if (ampdu_enable || (rate_flags & IEEE80211_TX_RC_USE_RTS_CTS)) {
5189 tx_desc->txdw4 |= cpu_to_le32(TXDESC32_RTS_CTS_ENABLE);
5190 tx_desc->txdw4 |= cpu_to_le32(TXDESC32_HW_RTS_ENABLE);
5191 } else if (rate_flags & IEEE80211_TX_RC_USE_CTS_PROTECT) {
5192 tx_desc->txdw4 |= cpu_to_le32(TXDESC32_CTS_SELF_ENABLE);
5193 tx_desc->txdw4 |= cpu_to_le32(TXDESC32_HW_RTS_ENABLE);
5194 }
5195
5196 tx_desc->txdw2 |= cpu_to_le32(TXDESC_ANTENNA_SELECT_A |
5197 TXDESC_ANTENNA_SELECT_B);
> 5198 tx_desc->txdw7 |= cpu_to_le32(TXDESC_ANTENNA_SELECT_C);
5199 }
5200
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [linux-next:master 788/6276] drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c:5198:24: sparse: sparse: invalid assignment: |=
2023-01-19 8:20 [linux-next:master 788/6276] drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c:5198:24: sparse: sparse: invalid assignment: |= kernel test robot
@ 2023-01-19 11:38 ` Ping-Ke Shih
0 siblings, 0 replies; 2+ messages in thread
From: Ping-Ke Shih @ 2023-01-19 11:38 UTC (permalink / raw)
To: Jes.Sorensen, lkp
Cc: kvalo, linux-mm, andrea.merello, rtl8821cerfe2, oe-kbuild-all, ap420073
On Thu, 2023-01-19 at 16:20 +0800, kernel test robot wrote:
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> head: aa5c49149a823599764e6953229b028e4bf6e9cc
> commit: 3dfb8e844fa30cceb4b810613e2c35f628eb3e70 [788/6276] wifi: rtl8xxxu: Support new chip
> RTL8188EU
> config: openrisc-randconfig-s043-20230119 (
> https://download.01.org/0day-ci/archive/20230119/202301191616.R33Dvxk4-lkp@intel.com/config)
> compiler: or1k-linux-gcc (GCC) 12.1.0
> reproduce:
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
> ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # apt-get install sparse
> # sparse version: v0.6.4-39-gce1a6720-dirty
> #
> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=3dfb8e844fa30cceb4b810613e2c35f628eb3e70
> git remote add linux-next
> https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
> git fetch --no-tags linux-next master
> git checkout 3dfb8e844fa30cceb4b810613e2c35f628eb3e70
> # save the config file
> mkdir build_dir && cp config build_dir/.config
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-
> prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=openrisc olddefconfig
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-
> prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=openrisc SHELL=/bin/bash
> drivers/net/wireless/realtek/rtl8xxxu/
>
> If you fix the issue, kindly add following tag where applicable
> > Reported-by: kernel test robot <lkp@intel.com>
>
> sparse warnings: (new ones prefixed by >>)
> > > drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c:5198:24: sparse: sparse: invalid
> > > assignment: |=
> > > drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c:5198:24: sparse: left side has type
> > > restricted __le16
> > > drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c:5198:24: sparse: right side has type
> > > restricted __le32
>
>
[...]
> 5184 /*
> 5185 * rts_rate is zero if RTS/CTS or CTS to SELF are not enabled
> 5186 */
> 5187 tx_desc->txdw4 |= cpu_to_le32(rts_rate << TXDESC32_RTS_RATE_SHIFT);
> 5188 if (ampdu_enable || (rate_flags & IEEE80211_TX_RC_USE_RTS_CTS)) {
> 5189 tx_desc->txdw4 |= cpu_to_le32(TXDESC32_RTS_CTS_ENABLE);
> 5190 tx_desc->txdw4 |= cpu_to_le32(TXDESC32_HW_RTS_ENABLE);
> 5191 } else if (rate_flags & IEEE80211_TX_RC_USE_CTS_PROTECT) {
> 5192 tx_desc->txdw4 |= cpu_to_le32(TXDESC32_CTS_SELF_ENABLE);
> 5193 tx_desc->txdw4 |= cpu_to_le32(TXDESC32_HW_RTS_ENABLE);
> 5194 }
> 5195
> 5196 tx_desc->txdw2 |= cpu_to_le32(TXDESC_ANTENNA_SELECT_A |
> 5197 TXDESC_ANTENNA_SELECT_B);
> > 5198 tx_desc->txdw7 |= cpu_to_le32(TXDESC_ANTENNA_SELECT_C);
I send a patch to fix this [1], but I don't have a card on hand, so only compile test.
Therefore, real test is welcome.
[1] https://lore.kernel.org/linux-wireless/20230119113146.9640-1-pkshih@realtek.com/T/#u
Ping-Ke
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-01-19 11:38 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-01-19 8:20 [linux-next:master 788/6276] drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c:5198:24: sparse: sparse: invalid assignment: |= kernel test robot
2023-01-19 11:38 ` Ping-Ke Shih
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox