tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 979e52ca0469fb38646bc51d26a0263a740c9f03 commit: 759bdc168181abeff61399d0f7ecec2852cc3e61 RISC-V: Add kconfig option for QEMU virt machine date: 3 weeks ago config: riscv-randconfig-a001-20200324 (attached as .config) compiler: riscv32-linux-gcc (GCC) 9.2.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 759bdc168181abeff61399d0f7ecec2852cc3e61 # save the attached .config to linux build tree GCC_VERSION=9.2.0 make.cross ARCH=riscv If you fix the issue, kindly add following tag Reported-by: kbuild test robot All errors (new ones prefixed by >>): riscv32-linux-ld: drivers/virtio/virtio_balloon.o: in function `leak_balloon': drivers/virtio/virtio_balloon.c:250: undefined reference to `balloon_page_dequeue' riscv32-linux-ld: drivers/virtio/virtio_balloon.o: in function `towards_target': drivers/virtio/virtio_balloon.c:362: undefined reference to `balloon_page_alloc' riscv32-linux-ld: drivers/virtio/virtio_balloon.o: in function `fill_balloon': drivers/virtio/virtio_balloon.c:187: undefined reference to `balloon_page_enqueue' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_drv.o: in function `virtio_gpu_remove': drivers/gpu/drm/virtio/virtgpu_drv.c:138: undefined reference to `drm_dev_unregister' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_drv.c:140: undefined reference to `drm_dev_put' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_drv.o: in function `virtio_gpu_probe': drivers/gpu/drm/virtio/virtgpu_drv.c:107: undefined reference to `drm_dev_alloc' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_drv.c:118: undefined reference to `drm_dev_put' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_drv.c:132: undefined reference to `drm_dev_register' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_drv.o: in function `virtio_gpu_pci_quirk': drivers/gpu/drm/virtio/virtgpu_drv.c:92: undefined reference to `drm_dev_set_unique' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_drv.o: in function `.LANCHOR0': virtgpu_drv.c:(.data+0xdc): undefined reference to `drm_gem_prime_handle_to_fd' riscv32-linux-ld: virtgpu_drv.c:(.data+0xe0): undefined reference to `drm_gem_prime_fd_to_handle' riscv32-linux-ld: virtgpu_drv.c:(.data+0x104): undefined reference to `drm_gem_prime_mmap' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_drv.o:(.rodata+0x8): undefined reference to `drm_read' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_drv.o:(.rodata+0x24): undefined reference to `drm_poll' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_drv.o:(.rodata+0x28): undefined reference to `drm_ioctl' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_drv.o:(.rodata+0x30): undefined reference to `drm_gem_mmap' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_drv.o:(.rodata+0x38): undefined reference to `drm_open' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_drv.o:(.rodata+0x40): undefined reference to `drm_release' riscv32-linux-ld: drivers/scsi/virtio_scsi.o: in function `virtscsi_change_queue_depth': drivers/scsi/virtio_scsi.c:677: undefined reference to `scsi_change_queue_depth' riscv32-linux-ld: drivers/scsi/virtio_scsi.o: in function `virtscsi_device_reset': drivers/scsi/virtio_scsi.c:623: undefined reference to `sdev_prefix_printk' riscv32-linux-ld: drivers/scsi/virtio_scsi.c:630: undefined reference to `scsi_remove_host' riscv32-linux-ld: drivers/scsi/virtio_scsi.o: in function `virtio_scsi_host': drivers/scsi/virtio_scsi.c:94: undefined reference to `scsi_host_put' riscv32-linux-ld: drivers/scsi/virtio_scsi.o: in function `virtscsi_complete_cmd': drivers/scsi/virtio_scsi.c:119: undefined reference to `scmd_printk' riscv32-linux-ld: drivers/scsi/virtio_scsi.o: in function `virtio_scsi_host': drivers/scsi/virtio_scsi.c:94: undefined reference to `scsi_device_lookup' riscv32-linux-ld: drivers/scsi/virtio_scsi.o: in function `virtscsi_handle_param_change': drivers/scsi/virtio_scsi.c:311: undefined reference to `scsi_device_put' riscv32-linux-ld: drivers/scsi/virtio_scsi.o: in function `virtscsi_handle_transport_reset': drivers/scsi/virtio_scsi.c:285: undefined reference to `scsi_device_lookup' riscv32-linux-ld: drivers/scsi/virtio_scsi.c:285: undefined reference to `scsi_remove_device' riscv32-linux-ld: drivers/scsi/virtio_scsi.c:285: undefined reference to `scsi_device_put' riscv32-linux-ld: drivers/scsi/virtio_scsi.o: in function `virtscsi_handle_event': drivers/scsi/virtio_scsi.c:368: undefined reference to `__scsi_iterate_devices' riscv32-linux-ld: drivers/scsi/virtio_scsi.o: in function `virtscsi_rescan_hotunplug': drivers/scsi/virtio_scsi.c:340: undefined reference to `__scsi_execute' riscv32-linux-ld: drivers/scsi/virtio_scsi.o: in function `scsi_execute_req': include/scsi/scsi_device.h:455: undefined reference to `__scsi_iterate_devices' riscv32-linux-ld: include/scsi/scsi_device.h:455: undefined reference to `scsi_remove_device' riscv32-linux-ld: drivers/scsi/virtio_scsi.o: in function `virtscsi_rescan_hotunplug': drivers/scsi/virtio_scsi.c:350: undefined reference to `__scsi_iterate_devices' riscv32-linux-ld: drivers/scsi/virtio_scsi.c:338: undefined reference to `scsi_scan_host' riscv32-linux-ld: drivers/scsi/virtio_scsi.o: in function `virtscsi_handle_event': drivers/scsi/virtio_scsi.c:371: undefined reference to `scsi_add_device' riscv32-linux-ld: drivers/scsi/virtio_scsi.c:371: undefined reference to `scsi_rescan_device' riscv32-linux-ld: drivers/scsi/virtio_scsi.o: in function `virtscsi_queuecommand': drivers/scsi/virtio_scsi.c:588: undefined reference to `scmd_printk' riscv32-linux-ld: drivers/scsi/virtio_scsi.o: in function `virtscsi_probe': drivers/scsi/virtio_scsi.c:850: undefined reference to `scsi_host_alloc' riscv32-linux-ld: drivers/scsi/virtio_scsi.o: in function `virtio_find_vqs': include/linux/virtio_config.h:197: undefined reference to `scsi_host_put' riscv32-linux-ld: drivers/scsi/virtio_scsi.o: in function `virtio_cread32': include/linux/virtio_config.h:423: undefined reference to `scsi_add_host_with_dma' riscv32-linux-ld: drivers/scsi/virtio_scsi.o: in function `virtio_device_ready': >> include/linux/virtio_config.h:223: undefined reference to `scsi_scan_host' riscv32-linux-ld: drivers/crypto/virtio/virtio_crypto_core.o: in function `virtcrypto_clear_crypto_engines': drivers/crypto/virtio/virtio_crypto_core.c:273: undefined reference to `crypto_engine_exit' riscv32-linux-ld: drivers/crypto/virtio/virtio_crypto_core.o: in function `virtcrypto_find_vqs': drivers/crypto/virtio/virtio_crypto_core.c:94: undefined reference to `crypto_engine_alloc_init' riscv32-linux-ld: drivers/crypto/virtio/virtio_crypto_core.o: in function `virtqueue_set_affinity': include/linux/virtio_config.h:249: undefined reference to `crypto_engine_start' riscv32-linux-ld: drivers/crypto/virtio/virtio_crypto_core.o: in function `virtcrypto_probe': drivers/crypto/virtio/virtio_crypto_core.c:412: undefined reference to `crypto_engine_exit' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_kms.o: in function `virtio_gpu_config_changed_work_func': drivers/gpu/drm/virtio/virtgpu_kms.c:47: undefined reference to `drm_helper_hpd_irq_event' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_kms.o: in function `virtio_find_vqs': include/linux/virtio_config.h:197: undefined reference to `__drm_err' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_kms.o: in function `virtio_gpu_init': drivers/gpu/drm/virtio/virtgpu_kms.c:173: undefined reference to `__drm_err' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_kms.c:183: undefined reference to `__drm_err' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_kms.o: in function `kmalloc_array': include/linux/slab.h:593: undefined reference to `__drm_err' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_kms.o: in function `virtio_gpu_init': drivers/gpu/drm/virtio/virtgpu_kms.c:206: undefined reference to `__drm_err' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_gem.o: in function `virtio_gpu_gem_create': drivers/gpu/drm/virtio/virtgpu_gem.c:46: undefined reference to `drm_gem_handle_create' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_gem.c:52: undefined reference to `drm_gem_object_put_unlocked' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_gem.c:59: undefined reference to `drm_gem_object_release' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_gem.o: in function `virtio_gpu_mode_dumb_mmap': drivers/gpu/drm/virtio/virtgpu_gem.c:97: undefined reference to `drm_gem_object_lookup' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_gem.o: in function `drm_vma_node_offset_addr': include/drm/drm_vma_manager.h:204: undefined reference to `drm_gem_object_put_unlocked' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_gem.o: in function `virtio_gpu_array_lock_resv': drivers/gpu/drm/virtio/virtgpu_gem.c:201: undefined reference to `drm_gem_lock_reservations' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_gem.o: in function `virtio_gpu_array_unlock_resv': drivers/gpu/drm/virtio/virtgpu_gem.c:221: undefined reference to `drm_gem_unlock_reservations' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_gem.o: in function `virtio_gpu_array_put_free': drivers/gpu/drm/virtio/virtgpu_gem.c:233: undefined reference to `drm_gem_object_put_unlocked' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_gem.o: in function `virtio_gpu_array_from_handles': drivers/gpu/drm/virtio/virtgpu_gem.c:174: undefined reference to `drm_gem_object_lookup' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.o: in function `vgdev_atomic_commit_tail': drivers/gpu/drm/virtio/virtgpu_display.c:331: undefined reference to `drm_atomic_helper_commit_modeset_disables' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.c:332: undefined reference to `drm_atomic_helper_commit_modeset_enables' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.c:333: undefined reference to `drm_atomic_helper_commit_planes' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.c:335: undefined reference to `drm_atomic_helper_commit_hw_done' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.c:337: undefined reference to `drm_atomic_helper_wait_for_vblanks' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.c:338: undefined reference to `drm_atomic_helper_cleanup_planes' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.o: in function `virtio_gpu_conn_mode_valid': drivers/gpu/drm/virtio/virtgpu_display.c:206: undefined reference to `__drm_dbg' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.o: in function `virtio_gpu_conn_get_modes': drivers/gpu/drm/virtio/virtgpu_display.c:163: undefined reference to `drm_add_edid_modes' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.c:170: undefined reference to `drm_add_modes_noedid' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.c:175: undefined reference to `drm_set_preferred_mode' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.c:177: undefined reference to `__drm_dbg' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.c:178: undefined reference to `drm_cvt_mode' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.c:181: undefined reference to `drm_mode_probed_add' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.o: in function `virtio_gpu_conn_destroy': drivers/gpu/drm/virtio/virtgpu_display.c:236: undefined reference to `drm_connector_unregister' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.c:237: undefined reference to `drm_connector_cleanup' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.o: in function `virtio_gpu_crtc_atomic_flush': drivers/gpu/drm/virtio/virtgpu_display.c:127: undefined reference to `drm_crtc_send_vblank_event' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.o: in function `virtio_gpu_user_framebuffer_create': drivers/gpu/drm/virtio/virtgpu_display.c:309: undefined reference to `drm_gem_object_lookup' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.o: in function `virtio_gpu_framebuffer_init': drivers/gpu/drm/virtio/virtgpu_display.c:75: undefined reference to `drm_helper_mode_fill_fb_struct' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.c:77: undefined reference to `drm_framebuffer_init' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.o: in function `virtio_gpu_user_framebuffer_create': drivers/gpu/drm/virtio/virtgpu_display.c:319: undefined reference to `drm_gem_object_put_unlocked' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.o: in function `virtio_gpu_modeset_init': drivers/gpu/drm/virtio/virtgpu_display.c:357: undefined reference to `drm_mode_config_init' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.o: in function `vgdev_output_init': drivers/gpu/drm/virtio/virtgpu_display.c:285: undefined reference to `drm_encoder_init' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.c:290: undefined reference to `drm_connector_attach_encoder' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.c:290: undefined reference to `drm_connector_register' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.c:275: undefined reference to `drm_crtc_init_with_planes' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.o: in function `drm_crtc_helper_add': include/drm/drm_modeset_helper_vtables.h:463: undefined reference to `drm_connector_init' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.o: in function `drm_connector_helper_add': include/drm/drm_modeset_helper_vtables.h:1061: undefined reference to `drm_connector_attach_edid_property' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.o: in function `vgdev_output_init': drivers/gpu/drm/virtio/virtgpu_display.c:283: undefined reference to `drm_mode_config_reset' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.o: in function `virtio_gpu_modeset_fini': drivers/gpu/drm/virtio/virtgpu_display.c:377: undefined reference to `drm_atomic_helper_shutdown' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.c:378: undefined reference to `drm_mode_config_cleanup' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.o: in function `.LANCHOR0': drivers/gpu/drm/virtio/virtgpu_display.c:59: undefined reference to `drm_gem_fb_destroy' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.o: in function `.LANCHOR0': virtgpu_display.c:(.rodata+0x4): undefined reference to `drm_gem_fb_create_handle' riscv32-linux-ld: virtgpu_display.c:(.rodata+0x8): undefined reference to `drm_atomic_helper_dirtyfb' riscv32-linux-ld: virtgpu_display.c:(.rodata+0x1c): undefined reference to `drm_atomic_helper_check' riscv32-linux-ld: virtgpu_display.c:(.rodata+0x20): undefined reference to `drm_atomic_helper_commit' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.o: in function `.LANCHOR0': drivers/gpu/drm/virtio/virtgpu_display.c:49: undefined reference to `drm_atomic_helper_crtc_reset' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_display.o: in function `.LANCHOR0': virtgpu_display.c:(.rodata+0x44): undefined reference to `drm_crtc_cleanup' riscv32-linux-ld: virtgpu_display.c:(.rodata+0x48): undefined reference to `drm_atomic_helper_set_config' riscv32-linux-ld: virtgpu_display.c:(.rodata+0x4c): undefined reference to `drm_atomic_helper_page_flip' riscv32-linux-ld: virtgpu_display.c:(.rodata+0x58): undefined reference to `drm_atomic_helper_crtc_duplicate_state' riscv32-linux-ld: virtgpu_display.c:(.rodata+0x5c): undefined reference to `drm_atomic_helper_crtc_destroy_state' riscv32-linux-ld: virtgpu_display.c:(.rodata+0xcc): undefined reference to `drm_atomic_helper_connector_reset' riscv32-linux-ld: virtgpu_display.c:(.rodata+0xd8): undefined reference to `drm_helper_probe_single_connector_modes' riscv32-linux-ld: virtgpu_display.c:(.rodata+0xec): undefined reference to `drm_atomic_helper_connector_duplicate_state' riscv32-linux-ld: virtgpu_display.c:(.rodata+0xf0): undefined reference to `drm_atomic_helper_connector_destroy_state' riscv32-linux-ld: virtgpu_display.c:(.rodata+0x128): undefined reference to `drm_encoder_cleanup' riscv32-linux-ld: drivers/gpu/drm/virtio/virtgpu_vq.o: in function `virtio_gpu_cmd_get_display_info_cb': vim +223 include/linux/virtio_config.h 66846048f55c6c Rick Jones 2011-11-14 190 9b2bbdb2275884 Michael S. Tsirkin 2017-03-06 191 static inline 9b2bbdb2275884 Michael S. Tsirkin 2017-03-06 192 int virtio_find_vqs(struct virtio_device *vdev, unsigned nvqs, 9b2bbdb2275884 Michael S. Tsirkin 2017-03-06 193 struct virtqueue *vqs[], vq_callback_t *callbacks[], 9b2bbdb2275884 Michael S. Tsirkin 2017-03-06 194 const char * const names[], 9b2bbdb2275884 Michael S. Tsirkin 2017-03-06 195 struct irq_affinity *desc) 9b2bbdb2275884 Michael S. Tsirkin 2017-03-06 196 { f94682dde5ed23 Michael S. Tsirkin 2017-03-06 @197 return vdev->config->find_vqs(vdev, nvqs, vqs, callbacks, names, NULL, desc); f94682dde5ed23 Michael S. Tsirkin 2017-03-06 198 } f94682dde5ed23 Michael S. Tsirkin 2017-03-06 199 f94682dde5ed23 Michael S. Tsirkin 2017-03-06 200 static inline f94682dde5ed23 Michael S. Tsirkin 2017-03-06 201 int virtio_find_vqs_ctx(struct virtio_device *vdev, unsigned nvqs, f94682dde5ed23 Michael S. Tsirkin 2017-03-06 202 struct virtqueue *vqs[], vq_callback_t *callbacks[], f94682dde5ed23 Michael S. Tsirkin 2017-03-06 203 const char * const names[], const bool *ctx, f94682dde5ed23 Michael S. Tsirkin 2017-03-06 204 struct irq_affinity *desc) f94682dde5ed23 Michael S. Tsirkin 2017-03-06 205 { f94682dde5ed23 Michael S. Tsirkin 2017-03-06 206 return vdev->config->find_vqs(vdev, nvqs, vqs, callbacks, names, ctx, f94682dde5ed23 Michael S. Tsirkin 2017-03-06 207 desc); 9b2bbdb2275884 Michael S. Tsirkin 2017-03-06 208 } 9b2bbdb2275884 Michael S. Tsirkin 2017-03-06 209 3569db593081fd Michael S. Tsirkin 2014-10-15 210 /** 3569db593081fd Michael S. Tsirkin 2014-10-15 211 * virtio_device_ready - enable vq use in probe function 3569db593081fd Michael S. Tsirkin 2014-10-15 212 * @vdev: the device 3569db593081fd Michael S. Tsirkin 2014-10-15 213 * 3569db593081fd Michael S. Tsirkin 2014-10-15 214 * Driver must call this to use vqs in the probe function. 3569db593081fd Michael S. Tsirkin 2014-10-15 215 * 3569db593081fd Michael S. Tsirkin 2014-10-15 216 * Note: vqs are enabled automatically after probe returns. 3569db593081fd Michael S. Tsirkin 2014-10-15 217 */ 3569db593081fd Michael S. Tsirkin 2014-10-15 218 static inline 3569db593081fd Michael S. Tsirkin 2014-10-15 219 void virtio_device_ready(struct virtio_device *dev) 3569db593081fd Michael S. Tsirkin 2014-10-15 220 { 3569db593081fd Michael S. Tsirkin 2014-10-15 221 unsigned status = dev->config->get_status(dev); 3569db593081fd Michael S. Tsirkin 2014-10-15 222 3569db593081fd Michael S. Tsirkin 2014-10-15 @223 BUG_ON(status & VIRTIO_CONFIG_S_DRIVER_OK); 3569db593081fd Michael S. Tsirkin 2014-10-15 224 dev->config->set_status(dev, status | VIRTIO_CONFIG_S_DRIVER_OK); 3569db593081fd Michael S. Tsirkin 2014-10-15 225 } 3569db593081fd Michael S. Tsirkin 2014-10-15 226 :::::: The code at line 223 was first introduced by commit :::::: 3569db593081fd88bbd6df21b9b0531873f2042c virtio: add API to enable VQs early :::::: TO: Michael S. Tsirkin :::::: CC: Rusty Russell --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org