[peterz-queue:modules/WIP 22/23] module.c:undefined reference to `ftrace_module_release'
by kbuild test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git modules/WIP
head: d4334fbbfc2d716f1e9f8002d51c40a681f047ba
commit: 1a3729608e2468f1f559b7584281e4fe07e9c3ee [22/23] ftrace: Merge ftrace_module_{init,enable}()
config: powerpc-rhel-kconfig (attached as .config)
compiler: powerpc64le-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 1a3729608e2468f1f559b7584281e4fe07e9c3ee
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>, old ones prefixed by <<):
powerpc64le-linux-ld: kernel/module.o: in function `__se_sys_delete_module':
>> module.c:(.text+0x6790): undefined reference to `ftrace_module_release'
powerpc64le-linux-ld: kernel/module.o: in function `do_init_module':
module.c:(.text+0x6b60): undefined reference to `ftrace_module_release'
powerpc64le-linux-ld: kernel/module.o: in function `load_module':
module.c:(.text+0x9cac): undefined reference to `ftrace_module_release'
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 4 months
Re: [patch 5/7] x86/kvm/svm: Move guest enter/exit into .noinstr.text
by kbuild test robot
Hi Thomas,
I love your patch! Yet something to improve:
[auto build test ERROR on kvm/linux-next]
[cannot apply to tip/auto-latest linus/master linux/master v5.7-rc6 next-20200519]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Thomas-Gleixner/x86-KVM-Async-PF...
base: https://git.kernel.org/pub/scm/virt/kvm/kvm.git linux-next
config: x86_64-allyesconfig (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project e6658079aca6d971b4e9d7137a3a2ecbc9c34aec)
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>, old ones prefixed by <<):
>> arch/x86/kvm/svm/svm.c:3330:8: error: unknown type name 'noinstr'
static noinstr void svm_vcpu_enter_exit(struct kvm_vcpu *vcpu,
^
>> arch/x86/kvm/svm/svm.c:3345:2: error: implicit declaration of function 'instrumentation_begin' [-Werror,-Wimplicit-function-declaration]
instrumentation_begin();
^
arch/x86/kvm/svm/svm.c:3346:2: error: implicit declaration of function 'trace_hardirqs_on_prepare' [-Werror,-Wimplicit-function-declaration]
trace_hardirqs_on_prepare();
^
arch/x86/kvm/svm/svm.c:3346:2: note: did you mean 'trace_hardirqs_on'?
include/linux/irqflags.h:32:15: note: 'trace_hardirqs_on' declared here
extern void trace_hardirqs_on(void);
^
arch/x86/kvm/svm/svm.c:3347:2: error: implicit declaration of function 'lockdep_hardirqs_on_prepare' [-Werror,-Wimplicit-function-declaration]
lockdep_hardirqs_on_prepare(CALLER_ADDR0);
^
arch/x86/kvm/svm/svm.c:3347:2: note: did you mean 'trace_hardirqs_on_prepare'?
arch/x86/kvm/svm/svm.c:3346:2: note: 'trace_hardirqs_on_prepare' declared here
trace_hardirqs_on_prepare();
^
>> arch/x86/kvm/svm/svm.c:3348:2: error: implicit declaration of function 'instrumentation_end' [-Werror,-Wimplicit-function-declaration]
instrumentation_end();
^
arch/x86/kvm/svm/svm.c:3348:2: note: did you mean 'instrumentation_begin'?
arch/x86/kvm/svm/svm.c:3345:2: note: 'instrumentation_begin' declared here
instrumentation_begin();
^
arch/x86/kvm/svm/svm.c:3380:2: error: implicit declaration of function 'trace_hardirqs_off_prepare' [-Werror,-Wimplicit-function-declaration]
trace_hardirqs_off_prepare();
^
arch/x86/kvm/svm/svm.c:3380:2: note: did you mean 'trace_hardirqs_on_prepare'?
arch/x86/kvm/svm/svm.c:3346:2: note: 'trace_hardirqs_on_prepare' declared here
trace_hardirqs_on_prepare();
^
6 errors generated.
vim +/noinstr +3330 arch/x86/kvm/svm/svm.c
3329
> 3330 static noinstr void svm_vcpu_enter_exit(struct kvm_vcpu *vcpu,
3331 struct vcpu_svm *svm)
3332 {
3333 /*
3334 * VMENTER enables interrupts (host state), but the kernel state is
3335 * interrupts disabled when this is invoked. Also tell RCU about
3336 * it. This is the same logic as for exit_to_user_mode().
3337 *
3338 * This ensures that e.g. latency analysis on the host observes
3339 * guest mode as interrupt enabled.
3340 *
3341 * guest_enter_irqoff() informs context tracking about the
3342 * transition to guest mode and if enabled adjusts RCU state
3343 * accordingly.
3344 */
> 3345 instrumentation_begin();
3346 trace_hardirqs_on_prepare();
3347 lockdep_hardirqs_on_prepare(CALLER_ADDR0);
> 3348 instrumentation_end();
3349
3350 guest_enter_irqoff();
3351 lockdep_hardirqs_on(CALLER_ADDR0);
3352
3353 __svm_vcpu_run(svm->vmcb_pa, (unsigned long *)&svm->vcpu.arch.regs);
3354
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 4 months
[linux-next:master 10257/10701] drivers/gpu/drm/msm/adreno/a6xx_hfi.c:345:5: warning: no previous prototype for 'a6xx_hfi_send_start'
by kbuild test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: fb57b1fabcb28f358901b2df90abd2b48abc1ca8
commit: 8167e6fa76c8f7174dc9643f60c63bc083b35787 [10257/10701] drm/msm/a6xx: HFI v2 for A640 and A650
config: arm-randconfig-r013-20200519 (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 8167e6fa76c8f7174dc9643f60c63bc083b35787
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
>> drivers/gpu/drm/msm/adreno/a6xx_hfi.c:345:5: warning: no previous prototype for 'a6xx_hfi_send_start' [-Wmissing-prototypes]
345 | int a6xx_hfi_send_start(struct a6xx_gmu *gmu)
| ^~~~~~~~~~~~~~~~~~~
>> drivers/gpu/drm/msm/adreno/a6xx_hfi.c:353:5: warning: no previous prototype for 'a6xx_hfi_send_core_fw_start' [-Wmissing-prototypes]
353 | int a6xx_hfi_send_core_fw_start(struct a6xx_gmu *gmu)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/a6xx_hfi_send_start +345 drivers/gpu/drm/msm/adreno/a6xx_hfi.c
344
> 345 int a6xx_hfi_send_start(struct a6xx_gmu *gmu)
346 {
347 struct a6xx_hfi_msg_start msg = { 0 };
348
349 return a6xx_hfi_send_msg(gmu, HFI_H2F_MSG_START, &msg, sizeof(msg),
350 NULL, 0);
351 }
352
> 353 int a6xx_hfi_send_core_fw_start(struct a6xx_gmu *gmu)
354 {
355 struct a6xx_hfi_msg_core_fw_start msg = { 0 };
356
357 return a6xx_hfi_send_msg(gmu, HFI_H2F_MSG_CORE_FW_START, &msg,
358 sizeof(msg), NULL, 0);
359 }
360
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 4 months
[linux-next:master 10024/10701] drivers/net/wireless/realtek/rtw88/pci.c:1477:5: warning: no previous prototype for function 'rtw_pci_probe'
by kbuild test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: fb57b1fabcb28f358901b2df90abd2b48abc1ca8
commit: 72f256c2b948622cc45ff8bc0456dd6039d8fe36 [10024/10701] rtw88: extract: export symbols about pci interface
config: x86_64-allyesconfig (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project e6658079aca6d971b4e9d7137a3a2ecbc9c34aec)
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
git checkout 72f256c2b948622cc45ff8bc0456dd6039d8fe36
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
>> drivers/net/wireless/realtek/rtw88/pci.c:1477:5: warning: no previous prototype for function 'rtw_pci_probe' [-Wmissing-prototypes]
int rtw_pci_probe(struct pci_dev *pdev,
^
drivers/net/wireless/realtek/rtw88/pci.c:1477:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
int rtw_pci_probe(struct pci_dev *pdev,
^
static
>> drivers/net/wireless/realtek/rtw88/pci.c:1557:6: warning: no previous prototype for function 'rtw_pci_remove' [-Wmissing-prototypes]
void rtw_pci_remove(struct pci_dev *pdev)
^
drivers/net/wireless/realtek/rtw88/pci.c:1557:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void rtw_pci_remove(struct pci_dev *pdev)
^
static
>> drivers/net/wireless/realtek/rtw88/pci.c:1579:6: warning: no previous prototype for function 'rtw_pci_shutdown' [-Wmissing-prototypes]
void rtw_pci_shutdown(struct pci_dev *pdev)
^
drivers/net/wireless/realtek/rtw88/pci.c:1579:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
void rtw_pci_shutdown(struct pci_dev *pdev)
^
static
drivers/net/wireless/realtek/rtw88/pci.c:88:21: warning: unused function 'rtw_pci_get_tx_desc' [-Wunused-function]
static inline void *rtw_pci_get_tx_desc(struct rtw_pci_tx_ring *tx_ring, u8 idx)
^
4 warnings generated.
vim +/rtw_pci_probe +1477 drivers/net/wireless/realtek/rtw88/pci.c
1476
> 1477 int rtw_pci_probe(struct pci_dev *pdev,
1478 const struct pci_device_id *id)
1479 {
1480 struct ieee80211_hw *hw;
1481 struct rtw_dev *rtwdev;
1482 int drv_data_size;
1483 int ret;
1484
1485 drv_data_size = sizeof(struct rtw_dev) + sizeof(struct rtw_pci);
1486 hw = ieee80211_alloc_hw(drv_data_size, &rtw_ops);
1487 if (!hw) {
1488 dev_err(&pdev->dev, "failed to allocate hw\n");
1489 return -ENOMEM;
1490 }
1491
1492 rtwdev = hw->priv;
1493 rtwdev->hw = hw;
1494 rtwdev->dev = &pdev->dev;
1495 rtwdev->chip = (struct rtw_chip_info *)id->driver_data;
1496 rtwdev->hci.ops = &rtw_pci_ops;
1497 rtwdev->hci.type = RTW_HCI_TYPE_PCIE;
1498
1499 ret = rtw_core_init(rtwdev);
1500 if (ret)
1501 goto err_release_hw;
1502
1503 rtw_dbg(rtwdev, RTW_DBG_PCI,
1504 "rtw88 pci probe: vendor=0x%4.04X device=0x%4.04X rev=%d\n",
1505 pdev->vendor, pdev->device, pdev->revision);
1506
1507 ret = rtw_pci_claim(rtwdev, pdev);
1508 if (ret) {
1509 rtw_err(rtwdev, "failed to claim pci device\n");
1510 goto err_deinit_core;
1511 }
1512
1513 ret = rtw_pci_setup_resource(rtwdev, pdev);
1514 if (ret) {
1515 rtw_err(rtwdev, "failed to setup pci resources\n");
1516 goto err_pci_declaim;
1517 }
1518
1519 ret = rtw_chip_info_setup(rtwdev);
1520 if (ret) {
1521 rtw_err(rtwdev, "failed to setup chip information\n");
1522 goto err_destroy_pci;
1523 }
1524
1525 rtw_pci_phy_cfg(rtwdev);
1526
1527 ret = rtw_register_hw(rtwdev, hw);
1528 if (ret) {
1529 rtw_err(rtwdev, "failed to register hw\n");
1530 goto err_destroy_pci;
1531 }
1532
1533 ret = rtw_pci_request_irq(rtwdev, pdev);
1534 if (ret) {
1535 ieee80211_unregister_hw(hw);
1536 goto err_destroy_pci;
1537 }
1538
1539 return 0;
1540
1541 err_destroy_pci:
1542 rtw_pci_destroy(rtwdev, pdev);
1543
1544 err_pci_declaim:
1545 rtw_pci_declaim(rtwdev, pdev);
1546
1547 err_deinit_core:
1548 rtw_core_deinit(rtwdev);
1549
1550 err_release_hw:
1551 ieee80211_free_hw(hw);
1552
1553 return ret;
1554 }
1555 EXPORT_SYMBOL(rtw_pci_probe);
1556
> 1557 void rtw_pci_remove(struct pci_dev *pdev)
1558 {
1559 struct ieee80211_hw *hw = pci_get_drvdata(pdev);
1560 struct rtw_dev *rtwdev;
1561 struct rtw_pci *rtwpci;
1562
1563 if (!hw)
1564 return;
1565
1566 rtwdev = hw->priv;
1567 rtwpci = (struct rtw_pci *)rtwdev->priv;
1568
1569 rtw_unregister_hw(rtwdev, hw);
1570 rtw_pci_disable_interrupt(rtwdev, rtwpci);
1571 rtw_pci_destroy(rtwdev, pdev);
1572 rtw_pci_declaim(rtwdev, pdev);
1573 rtw_pci_free_irq(rtwdev, pdev);
1574 rtw_core_deinit(rtwdev);
1575 ieee80211_free_hw(hw);
1576 }
1577 EXPORT_SYMBOL(rtw_pci_remove);
1578
> 1579 void rtw_pci_shutdown(struct pci_dev *pdev)
1580 {
1581 struct ieee80211_hw *hw = pci_get_drvdata(pdev);
1582 struct rtw_dev *rtwdev;
1583 struct rtw_chip_info *chip;
1584
1585 if (!hw)
1586 return;
1587
1588 rtwdev = hw->priv;
1589 chip = rtwdev->chip;
1590
1591 if (chip->ops->shutdown)
1592 chip->ops->shutdown(rtwdev);
1593 }
1594 EXPORT_SYMBOL(rtw_pci_shutdown);
1595
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 4 months
[linux-review:UPDATE-20200520-030218/Amit-Singh-Tomar/Add-MMC-and-DMA-support-for-Actions-S700/20200520-023031 2/10] drivers/dma/owl-dma.c:1102:14: warning: cast to smaller integer type 'enum owl_dma_id' from 'const void *'
by kbuild test robot
tree: https://github.com/0day-ci/linux/commits/UPDATE-20200520-030218/Amit-Sing...
head: 30a3477955a596b3241870068e2d9d302b4d771e
commit: 1300c19650ba56ad2bc9ac33772af7083e30c652 [2/10] dmaengine: Actions: Add support for S700 DMA engine
config: arm64-randconfig-r026-20200519 (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project e6658079aca6d971b4e9d7137a3a2ecbc9c34aec)
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
git checkout 1300c19650ba56ad2bc9ac33772af7083e30c652
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
>> drivers/dma/owl-dma.c:1102:14: warning: cast to smaller integer type 'enum owl_dma_id' from 'const void *' [-Wvoid-pointer-to-enum-cast]
od->devid = (enum owl_dma_id)of_id->data;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning generated.
vim +1102 drivers/dma/owl-dma.c
1070
1071 static int owl_dma_probe(struct platform_device *pdev)
1072 {
1073 struct device_node *np = pdev->dev.of_node;
1074 struct owl_dma *od;
1075 int ret, i, nr_channels, nr_requests;
1076 const struct of_device_id *of_id =
1077 of_match_device(owl_dma_match, &pdev->dev);
1078
1079 od = devm_kzalloc(&pdev->dev, sizeof(*od), GFP_KERNEL);
1080 if (!od)
1081 return -ENOMEM;
1082
1083 od->base = devm_platform_ioremap_resource(pdev, 0);
1084 if (IS_ERR(od->base))
1085 return PTR_ERR(od->base);
1086
1087 ret = of_property_read_u32(np, "dma-channels", &nr_channels);
1088 if (ret) {
1089 dev_err(&pdev->dev, "can't get dma-channels\n");
1090 return ret;
1091 }
1092
1093 ret = of_property_read_u32(np, "dma-requests", &nr_requests);
1094 if (ret) {
1095 dev_err(&pdev->dev, "can't get dma-requests\n");
1096 return ret;
1097 }
1098
1099 dev_info(&pdev->dev, "dma-channels %d, dma-requests %d\n",
1100 nr_channels, nr_requests);
1101
> 1102 od->devid = (enum owl_dma_id)of_id->data;
1103
1104 od->nr_pchans = nr_channels;
1105 od->nr_vchans = nr_requests;
1106
1107 pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32);
1108
1109 platform_set_drvdata(pdev, od);
1110 spin_lock_init(&od->lock);
1111
1112 dma_cap_set(DMA_MEMCPY, od->dma.cap_mask);
1113 dma_cap_set(DMA_SLAVE, od->dma.cap_mask);
1114 dma_cap_set(DMA_CYCLIC, od->dma.cap_mask);
1115
1116 od->dma.dev = &pdev->dev;
1117 od->dma.device_free_chan_resources = owl_dma_free_chan_resources;
1118 od->dma.device_tx_status = owl_dma_tx_status;
1119 od->dma.device_issue_pending = owl_dma_issue_pending;
1120 od->dma.device_prep_dma_memcpy = owl_dma_prep_memcpy;
1121 od->dma.device_prep_slave_sg = owl_dma_prep_slave_sg;
1122 od->dma.device_prep_dma_cyclic = owl_prep_dma_cyclic;
1123 od->dma.device_config = owl_dma_config;
1124 od->dma.device_pause = owl_dma_pause;
1125 od->dma.device_resume = owl_dma_resume;
1126 od->dma.device_terminate_all = owl_dma_terminate_all;
1127 od->dma.src_addr_widths = BIT(DMA_SLAVE_BUSWIDTH_4_BYTES);
1128 od->dma.dst_addr_widths = BIT(DMA_SLAVE_BUSWIDTH_4_BYTES);
1129 od->dma.directions = BIT(DMA_MEM_TO_MEM);
1130 od->dma.residue_granularity = DMA_RESIDUE_GRANULARITY_BURST;
1131
1132 INIT_LIST_HEAD(&od->dma.channels);
1133
1134 od->clk = devm_clk_get(&pdev->dev, NULL);
1135 if (IS_ERR(od->clk)) {
1136 dev_err(&pdev->dev, "unable to get clock\n");
1137 return PTR_ERR(od->clk);
1138 }
1139
1140 /*
1141 * Eventhough the DMA controller is capable of generating 4
1142 * IRQ's for DMA priority feature, we only use 1 IRQ for
1143 * simplification.
1144 */
1145 od->irq = platform_get_irq(pdev, 0);
1146 ret = devm_request_irq(&pdev->dev, od->irq, owl_dma_interrupt, 0,
1147 dev_name(&pdev->dev), od);
1148 if (ret) {
1149 dev_err(&pdev->dev, "unable to request IRQ\n");
1150 return ret;
1151 }
1152
1153 /* Init physical channel */
1154 od->pchans = devm_kcalloc(&pdev->dev, od->nr_pchans,
1155 sizeof(struct owl_dma_pchan), GFP_KERNEL);
1156 if (!od->pchans)
1157 return -ENOMEM;
1158
1159 for (i = 0; i < od->nr_pchans; i++) {
1160 struct owl_dma_pchan *pchan = &od->pchans[i];
1161
1162 pchan->id = i;
1163 pchan->base = od->base + OWL_DMA_CHAN_BASE(i);
1164 }
1165
1166 /* Init virtual channel */
1167 od->vchans = devm_kcalloc(&pdev->dev, od->nr_vchans,
1168 sizeof(struct owl_dma_vchan), GFP_KERNEL);
1169 if (!od->vchans)
1170 return -ENOMEM;
1171
1172 for (i = 0; i < od->nr_vchans; i++) {
1173 struct owl_dma_vchan *vchan = &od->vchans[i];
1174
1175 vchan->vc.desc_free = owl_dma_desc_free;
1176 vchan_init(&vchan->vc, &od->dma);
1177 }
1178
1179 /* Create a pool of consistent memory blocks for hardware descriptors */
1180 od->lli_pool = dma_pool_create(dev_name(od->dma.dev), od->dma.dev,
1181 sizeof(struct owl_dma_lli),
1182 __alignof__(struct owl_dma_lli),
1183 0);
1184 if (!od->lli_pool) {
1185 dev_err(&pdev->dev, "unable to allocate DMA descriptor pool\n");
1186 return -ENOMEM;
1187 }
1188
1189 clk_prepare_enable(od->clk);
1190
1191 ret = dma_async_device_register(&od->dma);
1192 if (ret) {
1193 dev_err(&pdev->dev, "failed to register DMA engine device\n");
1194 goto err_pool_free;
1195 }
1196
1197 /* Device-tree DMA controller registration */
1198 ret = of_dma_controller_register(pdev->dev.of_node,
1199 owl_dma_of_xlate, od);
1200 if (ret) {
1201 dev_err(&pdev->dev, "of_dma_controller_register failed\n");
1202 goto err_dma_unregister;
1203 }
1204
1205 return 0;
1206
1207 err_dma_unregister:
1208 dma_async_device_unregister(&od->dma);
1209 err_pool_free:
1210 clk_disable_unprepare(od->clk);
1211 dma_pool_destroy(od->lli_pool);
1212
1213 return ret;
1214 }
1215
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 4 months
Re: [patch 3/7] x86/kvm/svm: Add hardirq tracing on guest enter/exit
by kbuild test robot
Hi Thomas,
I love your patch! Yet something to improve:
[auto build test ERROR on kvm/linux-next]
[also build test ERROR on tip/auto-latest linus/master v5.7-rc6 next-20200519]
[cannot apply to linux/master]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Thomas-Gleixner/x86-KVM-Async-PF...
base: https://git.kernel.org/pub/scm/virt/kvm/kvm.git linux-next
config: x86_64-allyesconfig (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project e6658079aca6d971b4e9d7137a3a2ecbc9c34aec)
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>, old ones prefixed by <<):
>> arch/x86/kvm/svm/svm.c:3404:2: error: implicit declaration of function 'trace_hardirqs_on_prepare' [-Werror,-Wimplicit-function-declaration]
trace_hardirqs_on_prepare();
^
arch/x86/kvm/svm/svm.c:3404:2: note: did you mean 'trace_hardirqs_on'?
include/linux/irqflags.h:32:15: note: 'trace_hardirqs_on' declared here
extern void trace_hardirqs_on(void);
^
>> arch/x86/kvm/svm/svm.c:3405:2: error: implicit declaration of function 'lockdep_hardirqs_on_prepare' [-Werror,-Wimplicit-function-declaration]
lockdep_hardirqs_on_prepare(CALLER_ADDR0);
^
arch/x86/kvm/svm/svm.c:3405:2: note: did you mean 'trace_hardirqs_on_prepare'?
arch/x86/kvm/svm/svm.c:3404:2: note: 'trace_hardirqs_on_prepare' declared here
trace_hardirqs_on_prepare();
^
>> arch/x86/kvm/svm/svm.c:3434:2: error: implicit declaration of function 'trace_hardirqs_off_prepare' [-Werror,-Wimplicit-function-declaration]
trace_hardirqs_off_prepare();
^
arch/x86/kvm/svm/svm.c:3434:2: note: did you mean 'trace_hardirqs_on_prepare'?
arch/x86/kvm/svm/svm.c:3404:2: note: 'trace_hardirqs_on_prepare' declared here
trace_hardirqs_on_prepare();
^
3 errors generated.
vim +/trace_hardirqs_on_prepare +3404 arch/x86/kvm/svm/svm.c
3329
3330 static fastpath_t svm_vcpu_run(struct kvm_vcpu *vcpu)
3331 {
3332 fastpath_t exit_fastpath;
3333 struct vcpu_svm *svm = to_svm(vcpu);
3334
3335 svm->vmcb->save.rax = vcpu->arch.regs[VCPU_REGS_RAX];
3336 svm->vmcb->save.rsp = vcpu->arch.regs[VCPU_REGS_RSP];
3337 svm->vmcb->save.rip = vcpu->arch.regs[VCPU_REGS_RIP];
3338
3339 /*
3340 * A vmexit emulation is required before the vcpu can be executed
3341 * again.
3342 */
3343 if (unlikely(svm->nested.exit_required))
3344 return EXIT_FASTPATH_NONE;
3345
3346 /*
3347 * Disable singlestep if we're injecting an interrupt/exception.
3348 * We don't want our modified rflags to be pushed on the stack where
3349 * we might not be able to easily reset them if we disabled NMI
3350 * singlestep later.
3351 */
3352 if (svm->nmi_singlestep && svm->vmcb->control.event_inj) {
3353 /*
3354 * Event injection happens before external interrupts cause a
3355 * vmexit and interrupts are disabled here, so smp_send_reschedule
3356 * is enough to force an immediate vmexit.
3357 */
3358 disable_nmi_singlestep(svm);
3359 smp_send_reschedule(vcpu->cpu);
3360 }
3361
3362 pre_svm_run(svm);
3363
3364 sync_lapic_to_cr8(vcpu);
3365
3366 svm->vmcb->save.cr2 = vcpu->arch.cr2;
3367
3368 /*
3369 * Run with all-zero DR6 unless needed, so that we can get the exact cause
3370 * of a #DB.
3371 */
3372 if (unlikely(svm->vcpu.arch.switch_db_regs & KVM_DEBUGREG_WONT_EXIT))
3373 svm_set_dr6(svm, vcpu->arch.dr6);
3374 else
3375 svm_set_dr6(svm, DR6_FIXED_1 | DR6_RTM);
3376
3377 clgi();
3378 kvm_load_guest_xsave_state(vcpu);
3379
3380 if (lapic_in_kernel(vcpu) &&
3381 vcpu->arch.apic->lapic_timer.timer_advance_ns)
3382 kvm_wait_lapic_expire(vcpu);
3383
3384 /*
3385 * If this vCPU has touched SPEC_CTRL, restore the guest's value if
3386 * it's non-zero. Since vmentry is serialising on affected CPUs, there
3387 * is no need to worry about the conditional branch over the wrmsr
3388 * being speculatively taken.
3389 */
3390 x86_spec_ctrl_set_guest(svm->spec_ctrl, svm->virt_spec_ctrl);
3391
3392 /*
3393 * VMENTER enables interrupts (host state), but the kernel state is
3394 * interrupts disabled when this is invoked. Also tell RCU about
3395 * it. This is the same logic as for exit_to_user_mode().
3396 *
3397 * This ensures that e.g. latency analysis on the host observes
3398 * guest mode as interrupt enabled.
3399 *
3400 * guest_enter_irqoff() informs context tracking about the
3401 * transition to guest mode and if enabled adjusts RCU state
3402 * accordingly.
3403 */
> 3404 trace_hardirqs_on_prepare();
> 3405 lockdep_hardirqs_on_prepare(CALLER_ADDR0);
3406 guest_enter_irqoff();
3407 lockdep_hardirqs_on(CALLER_ADDR0);
3408
3409 __svm_vcpu_run(svm->vmcb_pa, (unsigned long *)&svm->vcpu.arch.regs);
3410
3411 #ifdef CONFIG_X86_64
3412 wrmsrl(MSR_GS_BASE, svm->host.gs_base);
3413 #else
3414 loadsegment(fs, svm->host.fs);
3415 #ifndef CONFIG_X86_32_LAZY_GS
3416 loadsegment(gs, svm->host.gs);
3417 #endif
3418 #endif
3419
3420 /*
3421 * VMEXIT disables interrupts (host state), but tracing and lockdep
3422 * have them in state 'on' as recorded before entering guest mode.
3423 * Same as enter_from_user_mode().
3424 *
3425 * guest_exit_irqoff() restores host context and reinstates RCU if
3426 * enabled and required.
3427 *
3428 * This needs to be done before the below as native_read_msr()
3429 * contains a tracepoint and x86_spec_ctrl_restore_host() calls
3430 * into world and some more.
3431 */
3432 lockdep_hardirqs_off(CALLER_ADDR0);
3433 guest_exit_irqoff();
> 3434 trace_hardirqs_off_prepare();
3435
3436 /*
3437 * We do not use IBRS in the kernel. If this vCPU has used the
3438 * SPEC_CTRL MSR it may have left it on; save the value and
3439 * turn it off. This is much more efficient than blindly adding
3440 * it to the atomic save/restore list. Especially as the former
3441 * (Saving guest MSRs on vmexit) doesn't even exist in KVM.
3442 *
3443 * For non-nested case:
3444 * If the L01 MSR bitmap does not intercept the MSR, then we need to
3445 * save it.
3446 *
3447 * For nested case:
3448 * If the L02 MSR bitmap does not intercept the MSR, then we need to
3449 * save it.
3450 */
3451 if (unlikely(!msr_write_intercepted(vcpu, MSR_IA32_SPEC_CTRL)))
3452 svm->spec_ctrl = native_read_msr(MSR_IA32_SPEC_CTRL);
3453
3454 reload_tss(vcpu);
3455
3456 x86_spec_ctrl_restore_host(svm->spec_ctrl, svm->virt_spec_ctrl);
3457
3458 vcpu->arch.cr2 = svm->vmcb->save.cr2;
3459 vcpu->arch.regs[VCPU_REGS_RAX] = svm->vmcb->save.rax;
3460 vcpu->arch.regs[VCPU_REGS_RSP] = svm->vmcb->save.rsp;
3461 vcpu->arch.regs[VCPU_REGS_RIP] = svm->vmcb->save.rip;
3462
3463 if (unlikely(svm->vmcb->control.exit_code == SVM_EXIT_NMI))
3464 kvm_before_interrupt(&svm->vcpu);
3465
3466 kvm_load_host_xsave_state(vcpu);
3467 stgi();
3468
3469 /* Any pending NMI will happen here */
3470 exit_fastpath = svm_exit_handlers_fastpath(vcpu);
3471
3472 if (unlikely(svm->vmcb->control.exit_code == SVM_EXIT_NMI))
3473 kvm_after_interrupt(&svm->vcpu);
3474
3475 sync_cr8_to_lapic(vcpu);
3476
3477 svm->next_rip = 0;
3478 svm->nested.nested_run_pending = 0;
3479
3480 svm->vmcb->control.tlb_ctl = TLB_CONTROL_DO_NOTHING;
3481
3482 /* if exit due to PF check for async PF */
3483 if (svm->vmcb->control.exit_code == SVM_EXIT_EXCP_BASE + PF_VECTOR)
3484 svm->vcpu.arch.apf.host_apf_reason = kvm_read_and_reset_pf_reason();
3485
3486 if (npt_enabled) {
3487 vcpu->arch.regs_avail &= ~(1 << VCPU_EXREG_PDPTR);
3488 vcpu->arch.regs_dirty &= ~(1 << VCPU_EXREG_PDPTR);
3489 }
3490
3491 /*
3492 * We need to handle MC intercepts here before the vcpu has a chance to
3493 * change the physical cpu
3494 */
3495 if (unlikely(svm->vmcb->control.exit_code ==
3496 SVM_EXIT_EXCP_BASE + MC_VECTOR))
3497 svm_handle_mce(svm);
3498
3499 mark_all_clean(svm->vmcb);
3500 return exit_fastpath;
3501 }
3502
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 4 months
Re: [RFC v2 PATCH 2/8] qaic: Add and init a basic mhi controller
by kbuild test robot
Hi Jeffrey,
[FYI, it's a private test report for your RFC patch.]
[auto build test ERROR on char-misc/char-misc-testing]
[also build test ERROR on soc/for-next linus/master v5.7-rc6 next-20200519]
[cannot apply to linux/master]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Jeffrey-Hugo/Qualcomm-Cloud-AI-1...
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git 57c76221d5af648c8355a55c09b050c5d8d38189
config: x86_64-randconfig-r022-20200519 (attached as .config)
compiler: clang version 11.0.0 (https://github.com/llvm/llvm-project 135b877874fae96b4372c8a3fbfaa8ff44ff86e3)
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install x86_64 cross compiling tool for clang build
# apt-get install binutils-x86-64-linux-gnu
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>, old ones prefixed by <<):
>> drivers/misc/qaic/mhi_controller.c:457:12: error: no member named 'link_status' in 'struct mhi_controller'
mhi_cntl->link_status = mhi_link_status;
~~~~~~~~ ^
1 error generated.
vim +457 drivers/misc/qaic/mhi_controller.c
430
431 struct mhi_controller *qaic_mhi_register_controller(struct pci_dev *pci_dev,
432 void __iomem *mhi_bar,
433 int mhi_irq)
434 {
435 struct mhi_controller *mhi_cntl;
436 int ret;
437
438 pci_dbg(pci_dev, "%s\n", __func__);
439
440 mhi_cntl = kzalloc(sizeof(*mhi_cntl), GFP_KERNEL);
441 if (!mhi_cntl)
442 return ERR_PTR(-ENOMEM);
443
444 mhi_cntl->cntrl_dev = &pci_dev->dev;
445
446 /*
447 * Covers the entire possible physical ram region. Remote side is
448 * going to calculate a size of this range, so subtract 1 to prevent
449 * rollover.
450 */
451 mhi_cntl->iova_start = 0;
452 mhi_cntl->iova_stop = PHYS_ADDR_MAX - 1;
453
454 mhi_cntl->status_cb = mhi_status_cb;
455 mhi_cntl->runtime_get = mhi_runtime_get;
456 mhi_cntl->runtime_put = mhi_runtime_put;
> 457 mhi_cntl->link_status = mhi_link_status;
458 mhi_cntl->regs = mhi_bar;
459 mhi_cntl->nr_irqs = 1;
460 mhi_cntl->irq = kmalloc(sizeof(*mhi_cntl->irq), GFP_KERNEL);
461
462 if (!mhi_cntl->irq)
463 return ERR_PTR(-ENOMEM);
464
465 mhi_cntl->irq[0] = mhi_irq;
466
467 mhi_cntl->fw_image = "qcom/aic100/sbl.bin";
468
469 /* use latest configured timeout */
470 aic100_config.timeout_ms = mhi_timeout;
471 ret = mhi_register_controller(mhi_cntl, &aic100_config);
472 if (ret) {
473 pci_err(pci_dev, "register_mhi_controller failed %d\n", ret);
474 kfree(mhi_cntl->irq);
475 kfree(mhi_cntl);
476 return ERR_PTR(ret);
477 }
478
479 ret = mhi_async_power_up(mhi_cntl);
480 if (ret) {
481 pci_err(pci_dev, "mhi_async_power_up failed %d\n", ret);
482 mhi_unregister_controller(mhi_cntl);
483 kfree(mhi_cntl->irq);
484 kfree(mhi_cntl);
485 return ERR_PTR(ret);
486 }
487
488 return mhi_cntl;
489 }
490
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 4 months
[wireless-testsing2:master 6/6] drivers/net/ethernet/pensando/ionic/ionic_main.c:433:2: warning: 'strncpy' output truncated copying 31 bytes from a string of length 33
by kbuild test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless-testing... master
head: 3cbd2cabbd29fd3883bfd479b44e7059139fe2ea
commit: 3cbd2cabbd29fd3883bfd479b44e7059139fe2ea [6/6] Add localversion to identify builds from this tree
config: ia64-randconfig-r005-20200519 (attached as .config)
compiler: ia64-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 3cbd2cabbd29fd3883bfd479b44e7059139fe2ea
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=ia64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kbuild test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
drivers/net/ethernet/pensando/ionic/ionic_main.c: In function 'ionic_identify':
>> drivers/net/ethernet/pensando/ionic/ionic_main.c:433:2: warning: 'strncpy' output truncated copying 31 bytes from a string of length 33 [-Wstringop-truncation]
433 | strncpy(ident->drv.driver_ver_str, UTS_RELEASE,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
434 | sizeof(ident->drv.driver_ver_str) - 1);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/strncpy +433 drivers/net/ethernet/pensando/ionic/ionic_main.c
fbfb8031533c92 Shannon Nelson 2019-09-03 422
fbfb8031533c92 Shannon Nelson 2019-09-03 423 int ionic_identify(struct ionic *ionic)
fbfb8031533c92 Shannon Nelson 2019-09-03 424 {
fbfb8031533c92 Shannon Nelson 2019-09-03 425 struct ionic_identity *ident = &ionic->ident;
fbfb8031533c92 Shannon Nelson 2019-09-03 426 struct ionic_dev *idev = &ionic->idev;
fbfb8031533c92 Shannon Nelson 2019-09-03 427 size_t sz;
fbfb8031533c92 Shannon Nelson 2019-09-03 428 int err;
fbfb8031533c92 Shannon Nelson 2019-09-03 429
fbfb8031533c92 Shannon Nelson 2019-09-03 430 memset(ident, 0, sizeof(*ident));
fbfb8031533c92 Shannon Nelson 2019-09-03 431
fbfb8031533c92 Shannon Nelson 2019-09-03 432 ident->drv.os_type = cpu_to_le32(IONIC_OS_TYPE_LINUX);
1fcbebf115d9ce Shannon Nelson 2020-03-06 @433 strncpy(ident->drv.driver_ver_str, UTS_RELEASE,
fbfb8031533c92 Shannon Nelson 2019-09-03 434 sizeof(ident->drv.driver_ver_str) - 1);
fbfb8031533c92 Shannon Nelson 2019-09-03 435
fbfb8031533c92 Shannon Nelson 2019-09-03 436 mutex_lock(&ionic->dev_cmd_lock);
fbfb8031533c92 Shannon Nelson 2019-09-03 437
fbfb8031533c92 Shannon Nelson 2019-09-03 438 sz = min(sizeof(ident->drv), sizeof(idev->dev_cmd_regs->data));
fbfb8031533c92 Shannon Nelson 2019-09-03 439 memcpy_toio(&idev->dev_cmd_regs->data, &ident->drv, sz);
fbfb8031533c92 Shannon Nelson 2019-09-03 440
fbfb8031533c92 Shannon Nelson 2019-09-03 441 ionic_dev_cmd_identify(idev, IONIC_IDENTITY_VERSION_1);
fbfb8031533c92 Shannon Nelson 2019-09-03 442 err = ionic_dev_cmd_wait(ionic, DEVCMD_TIMEOUT);
fbfb8031533c92 Shannon Nelson 2019-09-03 443 if (!err) {
fbfb8031533c92 Shannon Nelson 2019-09-03 444 sz = min(sizeof(ident->dev), sizeof(idev->dev_cmd_regs->data));
fbfb8031533c92 Shannon Nelson 2019-09-03 445 memcpy_fromio(&ident->dev, &idev->dev_cmd_regs->data, sz);
fbfb8031533c92 Shannon Nelson 2019-09-03 446 }
fbfb8031533c92 Shannon Nelson 2019-09-03 447
fbfb8031533c92 Shannon Nelson 2019-09-03 448 mutex_unlock(&ionic->dev_cmd_lock);
fbfb8031533c92 Shannon Nelson 2019-09-03 449
fbfb8031533c92 Shannon Nelson 2019-09-03 450 if (err)
fbfb8031533c92 Shannon Nelson 2019-09-03 451 goto err_out_unmap;
fbfb8031533c92 Shannon Nelson 2019-09-03 452
fbfb8031533c92 Shannon Nelson 2019-09-03 453 ionic_debugfs_add_ident(ionic);
fbfb8031533c92 Shannon Nelson 2019-09-03 454
fbfb8031533c92 Shannon Nelson 2019-09-03 455 return 0;
fbfb8031533c92 Shannon Nelson 2019-09-03 456
fbfb8031533c92 Shannon Nelson 2019-09-03 457 err_out_unmap:
fbfb8031533c92 Shannon Nelson 2019-09-03 458 return err;
fbfb8031533c92 Shannon Nelson 2019-09-03 459 }
fbfb8031533c92 Shannon Nelson 2019-09-03 460
:::::: The code at line 433 was first introduced by commit
:::::: 1fcbebf115d9ce077c2ba5ecfb521cc1eedcb467 ionic: drop ethtool driver version
:::::: TO: Shannon Nelson <snelson(a)pensando.io>
:::::: CC: David S. Miller <davem(a)davemloft.net>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
2 years, 4 months