[PATCH] ath10k: fix kernel panic while reading tpc_stats
kbuild test robot
lkp at intel.com
Sun Mar 25 05:35:20 PDT 2018
Hi Tamizh,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on ath6kl/ath-next]
[also build test ERROR on v4.16-rc6 next-20180323]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Tamizh-chelvam/ath10k-fix-kernel-panic-while-reading-tpc_stats/20180325-093724
base: https://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git ath-next
config: i386-randconfig-h0-03251902 (attached as .config)
compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4
reproduce:
# save the attached .config to linux build tree
make ARCH=i386
All errors (new ones prefixed by >>):
drivers/net/wireless/ath/ath10k/wmi.c: In function 'ath10k_wmi_event_pdev_tpc_config':
>> drivers/net/wireless/ath/ath10k/wmi.c:4465:14: error: 'struct ath10k' has no member named 'debug'
complete(&ar->debug.tpc_complete);
^
vim +4465 drivers/net/wireless/ath/ath10k/wmi.c
4315
4316 void ath10k_wmi_event_pdev_tpc_config(struct ath10k *ar, struct sk_buff *skb)
4317 {
4318 u32 i, j, pream_idx, num_tx_chain;
4319 u8 rate_code[WMI_TPC_RATE_MAX], rate_idx;
4320 u16 pream_table[WMI_TPC_PREAM_TABLE_MAX];
4321 struct wmi_pdev_tpc_config_event *ev;
4322 struct ath10k_tpc_stats *tpc_stats;
4323
4324 ev = (struct wmi_pdev_tpc_config_event *)skb->data;
4325
4326 tpc_stats = kzalloc(sizeof(*tpc_stats), GFP_ATOMIC);
4327 if (!tpc_stats)
4328 goto exit;
4329
4330 /* Create the rate code table based on the chains supported */
4331 rate_idx = 0;
4332 pream_idx = 0;
4333
4334 /* Fill CCK rate code */
4335 for (i = 0; i < 4; i++) {
4336 rate_code[rate_idx] =
4337 ATH10K_HW_RATECODE(i, 0, WMI_RATE_PREAMBLE_CCK);
4338 rate_idx++;
4339 }
4340 pream_table[pream_idx] = rate_idx;
4341 pream_idx++;
4342
4343 /* Fill OFDM rate code */
4344 for (i = 0; i < 8; i++) {
4345 rate_code[rate_idx] =
4346 ATH10K_HW_RATECODE(i, 0, WMI_RATE_PREAMBLE_OFDM);
4347 rate_idx++;
4348 }
4349 pream_table[pream_idx] = rate_idx;
4350 pream_idx++;
4351
4352 num_tx_chain = __le32_to_cpu(ev->num_tx_chain);
4353
4354 if (num_tx_chain > WMI_TPC_TX_N_CHAIN) {
4355 ath10k_warn(ar, "number of tx chain is %d greater than TPC configured tx chain %d\n",
4356 num_tx_chain, WMI_TPC_TX_N_CHAIN);
4357 goto exit;
4358 }
4359
4360 /* Fill HT20 rate code */
4361 for (i = 0; i < num_tx_chain; i++) {
4362 for (j = 0; j < 8; j++) {
4363 rate_code[rate_idx] =
4364 ATH10K_HW_RATECODE(j, i, WMI_RATE_PREAMBLE_HT);
4365 rate_idx++;
4366 }
4367 }
4368 pream_table[pream_idx] = rate_idx;
4369 pream_idx++;
4370
4371 /* Fill HT40 rate code */
4372 for (i = 0; i < num_tx_chain; i++) {
4373 for (j = 0; j < 8; j++) {
4374 rate_code[rate_idx] =
4375 ATH10K_HW_RATECODE(j, i, WMI_RATE_PREAMBLE_HT);
4376 rate_idx++;
4377 }
4378 }
4379 pream_table[pream_idx] = rate_idx;
4380 pream_idx++;
4381
4382 /* Fill VHT20 rate code */
4383 for (i = 0; i < __le32_to_cpu(ev->num_tx_chain); i++) {
4384 for (j = 0; j < 10; j++) {
4385 rate_code[rate_idx] =
4386 ATH10K_HW_RATECODE(j, i, WMI_RATE_PREAMBLE_VHT);
4387 rate_idx++;
4388 }
4389 }
4390 pream_table[pream_idx] = rate_idx;
4391 pream_idx++;
4392
4393 /* Fill VHT40 rate code */
4394 for (i = 0; i < num_tx_chain; i++) {
4395 for (j = 0; j < 10; j++) {
4396 rate_code[rate_idx] =
4397 ATH10K_HW_RATECODE(j, i, WMI_RATE_PREAMBLE_VHT);
4398 rate_idx++;
4399 }
4400 }
4401 pream_table[pream_idx] = rate_idx;
4402 pream_idx++;
4403
4404 /* Fill VHT80 rate code */
4405 for (i = 0; i < num_tx_chain; i++) {
4406 for (j = 0; j < 10; j++) {
4407 rate_code[rate_idx] =
4408 ATH10K_HW_RATECODE(j, i, WMI_RATE_PREAMBLE_VHT);
4409 rate_idx++;
4410 }
4411 }
4412 pream_table[pream_idx] = rate_idx;
4413 pream_idx++;
4414
4415 rate_code[rate_idx++] =
4416 ATH10K_HW_RATECODE(0, 0, WMI_RATE_PREAMBLE_CCK);
4417 rate_code[rate_idx++] =
4418 ATH10K_HW_RATECODE(0, 0, WMI_RATE_PREAMBLE_OFDM);
4419 rate_code[rate_idx++] =
4420 ATH10K_HW_RATECODE(0, 0, WMI_RATE_PREAMBLE_CCK);
4421 rate_code[rate_idx++] =
4422 ATH10K_HW_RATECODE(0, 0, WMI_RATE_PREAMBLE_OFDM);
4423 rate_code[rate_idx++] =
4424 ATH10K_HW_RATECODE(0, 0, WMI_RATE_PREAMBLE_OFDM);
4425
4426 pream_table[pream_idx] = ATH10K_TPC_PREAM_TABLE_END;
4427
4428 tpc_stats->chan_freq = __le32_to_cpu(ev->chan_freq);
4429 tpc_stats->phy_mode = __le32_to_cpu(ev->phy_mode);
4430 tpc_stats->ctl = __le32_to_cpu(ev->ctl);
4431 tpc_stats->reg_domain = __le32_to_cpu(ev->reg_domain);
4432 tpc_stats->twice_antenna_gain = a_sle32_to_cpu(ev->twice_antenna_gain);
4433 tpc_stats->twice_antenna_reduction =
4434 __le32_to_cpu(ev->twice_antenna_reduction);
4435 tpc_stats->power_limit = __le32_to_cpu(ev->power_limit);
4436 tpc_stats->twice_max_rd_power = __le32_to_cpu(ev->twice_max_rd_power);
4437 tpc_stats->num_tx_chain = __le32_to_cpu(ev->num_tx_chain);
4438 tpc_stats->rate_max = __le32_to_cpu(ev->rate_max);
4439
4440 ath10k_tpc_config_disp_tables(ar, ev, tpc_stats,
4441 rate_code, pream_table,
4442 WMI_TPC_TABLE_TYPE_CDD);
4443 ath10k_tpc_config_disp_tables(ar, ev, tpc_stats,
4444 rate_code, pream_table,
4445 WMI_TPC_TABLE_TYPE_STBC);
4446 ath10k_tpc_config_disp_tables(ar, ev, tpc_stats,
4447 rate_code, pream_table,
4448 WMI_TPC_TABLE_TYPE_TXBF);
4449
4450 ath10k_debug_tpc_stats_process(ar, tpc_stats);
4451
4452 ath10k_dbg(ar, ATH10K_DBG_WMI,
4453 "wmi event tpc config channel %d mode %d ctl %d regd %d gain %d %d limit %d max_power %d tx_chanins %d rates %d\n",
4454 __le32_to_cpu(ev->chan_freq),
4455 __le32_to_cpu(ev->phy_mode),
4456 __le32_to_cpu(ev->ctl),
4457 __le32_to_cpu(ev->reg_domain),
4458 a_sle32_to_cpu(ev->twice_antenna_gain),
4459 __le32_to_cpu(ev->twice_antenna_reduction),
4460 __le32_to_cpu(ev->power_limit),
4461 __le32_to_cpu(ev->twice_max_rd_power) / 2,
4462 __le32_to_cpu(ev->num_tx_chain),
4463 __le32_to_cpu(ev->rate_max));
4464 exit:
> 4465 complete(&ar->debug.tpc_complete);
4466 }
4467
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 29490 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/ath10k/attachments/20180325/1bc17f9b/attachment-0001.gz>
More information about the ath10k
mailing list