Re: [PATCH v4 15/15] Drivers: hv: Add modules to expose /dev/mshv to VMMs running on Hyper-V

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Nuno,

kernel test robot noticed the following build warnings:

[auto build test WARNING on arnd-asm-generic/master]
[also build test WARNING on tip/x86/core arm64/for-next/core linus/master v6.6 next-20231103]
[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#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Nuno-Das-Neves/hyperv-tlfs-Change-shared-HV_REGISTER_-defines-to-HV_MSR_/20230930-041305
base:   https://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic.git master
patch link:    https://lore.kernel.org/r/1696010501-24584-16-git-send-email-nunodasneves%40linux.microsoft.com
patch subject: [PATCH v4 15/15] Drivers: hv: Add modules to expose /dev/mshv to VMMs running on Hyper-V
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20231106/202311061139.Zrlkam3w-lkp@xxxxxxxxx/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231106/202311061139.Zrlkam3w-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202311061139.Zrlkam3w-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

>> drivers/hv/hv_call.c:21:5: warning: no previous prototype for 'hv_call_get_vp_registers' [-Wmissing-prototypes]
      21 | int hv_call_get_vp_registers(u32 vp_index, u64 partition_id, u16 count,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/hv/hv_call.c:65:5: warning: no previous prototype for 'hv_call_set_vp_registers' [-Wmissing-prototypes]
      65 | int hv_call_set_vp_registers(u32 vp_index, u64 partition_id, u16 count,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~
--
>> drivers/hv/mshv_root_main.c:1816:12: warning: no previous prototype for 'mshv_root_init' [-Wmissing-prototypes]
    1816 | int __init mshv_root_init(void)
         |            ^~~~~~~~~~~~~~
>> drivers/hv/mshv_root_main.c:1896:13: warning: no previous prototype for 'mshv_root_exit' [-Wmissing-prototypes]
    1896 | void __exit mshv_root_exit(void)
         |             ^~~~~~~~~~~~~~
--
>> drivers/hv/mshv_synic.c:27:1: warning: no previous prototype for 'synic_event_ring_get_queued_port' [-Wmissing-prototypes]
      27 | synic_event_ring_get_queued_port(u32 sint_index)
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--
>> drivers/hv/mshv_root_hv_call.c:46:5: warning: no previous prototype for 'hv_call_withdraw_memory' [-Wmissing-prototypes]
      46 | int hv_call_withdraw_memory(u64 count, int node, u64 partition_id)
         |     ^~~~~~~~~~~~~~~~~~~~~~~
>> drivers/hv/mshv_root_hv_call.c:94:5: warning: no previous prototype for 'hv_call_create_partition' [-Wmissing-prototypes]
      94 | int hv_call_create_partition(u64 flags,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/hv/mshv_root_hv_call.c:139:5: warning: no previous prototype for 'hv_call_initialize_partition' [-Wmissing-prototypes]
     139 | int hv_call_initialize_partition(u64 partition_id)
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/hv/mshv_root_hv_call.c:166:5: warning: no previous prototype for 'hv_call_finalize_partition' [-Wmissing-prototypes]
     166 | int hv_call_finalize_partition(u64 partition_id)
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/hv/mshv_root_hv_call.c:177:5: warning: no previous prototype for 'hv_call_delete_partition' [-Wmissing-prototypes]
     177 | int hv_call_delete_partition(u64 partition_id)
         |     ^~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/hv/mshv_root_hv_call.c:188:5: warning: no previous prototype for 'hv_call_map_gpa_pages' [-Wmissing-prototypes]
     188 | int hv_call_map_gpa_pages(u64 partition_id, u64 gpa_target, u64 page_count,
         |     ^~~~~~~~~~~~~~~~~~~~~
>> drivers/hv/mshv_root_hv_call.c:241:5: warning: no previous prototype for 'hv_call_unmap_gpa_pages' [-Wmissing-prototypes]
     241 | int hv_call_unmap_gpa_pages(u64 partition_id, u64 gpa_target, u64 page_count,
         |     ^~~~~~~~~~~~~~~~~~~~~~~
>> drivers/hv/mshv_root_hv_call.c:277:5: warning: no previous prototype for 'hv_call_get_gpa_access_states' [-Wmissing-prototypes]
     277 | int hv_call_get_gpa_access_states(u64 partition_id, u32 count,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/hv/mshv_root_hv_call.c:320:5: warning: no previous prototype for 'hv_call_install_intercept' [-Wmissing-prototypes]
     320 | int hv_call_install_intercept(u64 partition_id, u32 access_type,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/hv/mshv_root_hv_call.c:350:5: warning: no previous prototype for 'hv_call_assert_virtual_interrupt' [-Wmissing-prototypes]
     350 | int hv_call_assert_virtual_interrupt(u64 partition_id, u32 vector, u64 dest_addr,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/hv/mshv_root_hv_call.c:372:5: warning: no previous prototype for 'hv_call_get_vp_state' [-Wmissing-prototypes]
     372 | int hv_call_get_vp_state(u32 vp_index, u64 partition_id,
         |     ^~~~~~~~~~~~~~~~~~~~
>> drivers/hv/mshv_root_hv_call.c:429:5: warning: no previous prototype for 'hv_call_set_vp_state' [-Wmissing-prototypes]
     429 | int hv_call_set_vp_state(u32 vp_index, u64 partition_id,
         |     ^~~~~~~~~~~~~~~~~~~~
>> drivers/hv/mshv_root_hv_call.c:494:5: warning: no previous prototype for 'hv_call_map_vp_state_page' [-Wmissing-prototypes]
     494 | int hv_call_map_vp_state_page(u64 partition_id, u32 vp_index, u32 type,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/hv/mshv_root_hv_call.c:531:5: warning: no previous prototype for 'hv_call_unmap_vp_state_page' [-Wmissing-prototypes]
     531 | int hv_call_unmap_vp_state_page(u64 partition_id, u32 vp_index, u32 type)
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/hv/mshv_root_hv_call.c:554:5: warning: no previous prototype for 'hv_call_get_partition_property' [-Wmissing-prototypes]
     554 | int hv_call_get_partition_property(u64 partition_id, u64 property_code,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/hv/mshv_root_hv_call.c:581:5: warning: no previous prototype for 'hv_call_set_partition_property' [-Wmissing-prototypes]
     581 | int hv_call_set_partition_property(u64 partition_id, u64 property_code,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/hv/mshv_root_hv_call.c:609:5: warning: no previous prototype for 'hv_call_translate_virtual_address' [-Wmissing-prototypes]
     609 | int hv_call_translate_virtual_address(u32 vp_index, u64 partition_id, u64 flags,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/hv/mshv_root_hv_call.c:648:1: warning: no previous prototype for 'hv_call_clear_virtual_interrupt' [-Wmissing-prototypes]
     648 | hv_call_clear_virtual_interrupt(u64 partition_id)
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/hv/mshv_root_hv_call.c:662:1: warning: no previous prototype for 'hv_call_create_port' [-Wmissing-prototypes]
     662 | hv_call_create_port(u64 port_partition_id, union hv_port_id port_id,
         | ^~~~~~~~~~~~~~~~~~~
>> drivers/hv/mshv_root_hv_call.c:703:1: warning: no previous prototype for 'hv_call_delete_port' [-Wmissing-prototypes]
     703 | hv_call_delete_port(u64 port_partition_id, union hv_port_id port_id)
         | ^~~~~~~~~~~~~~~~~~~
   drivers/hv/mshv_root_hv_call.c:721:1: warning: no previous prototype for 'hv_call_connect_port' [-Wmissing-prototypes]
     721 | hv_call_connect_port(u64 port_partition_id, union hv_port_id port_id,
         | ^~~~~~~~~~~~~~~~~~~~
   drivers/hv/mshv_root_hv_call.c:761:1: warning: no previous prototype for 'hv_call_disconnect_port' [-Wmissing-prototypes]
     761 | hv_call_disconnect_port(u64 connection_partition_id,
         | ^~~~~~~~~~~~~~~~~~~~~~~
   drivers/hv/mshv_root_hv_call.c:781:1: warning: no previous prototype for 'hv_call_notify_port_ring_empty' [-Wmissing-prototypes]
     781 | hv_call_notify_port_ring_empty(u32 sint_index)
         | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/hv/mshv_root_hv_call.c:798:5: warning: no previous prototype for 'hv_call_register_intercept_result' [-Wmissing-prototypes]
     798 | int hv_call_register_intercept_result(u32 vp_index, u64 partition_id,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/hv/mshv_root_hv_call.c:834:5: warning: no previous prototype for 'hv_call_signal_event_direct' [-Wmissing-prototypes]
     834 | int hv_call_signal_event_direct(u32 vp_index, u64 partition_id, u8 vtl,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/hv/mshv_root_hv_call.c:861:5: warning: no previous prototype for 'hv_call_post_message_direct' [-Wmissing-prototypes]
     861 | int hv_call_post_message_direct(u32 vp_index, u64 partition_id, u8 vtl,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/hv/mshv_root_hv_call.c:883:5: warning: no previous prototype for 'hv_call_get_vp_cpuid_values' [-Wmissing-prototypes]
     883 | int hv_call_get_vp_cpuid_values(u32 vp_index, u64 partition_id,
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
--
>> drivers/hv/xfer_to_guest.c:15:5: warning: no previous prototype for 'mshv_xfer_to_guest_mode_handle_work' [-Wmissing-prototypes]
      15 | int mshv_xfer_to_guest_mode_handle_work(unsigned long ti_work)
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


vim +/hv_call_get_vp_registers +21 drivers/hv/hv_call.c

    14	
    15	#define HV_GET_REGISTER_BATCH_SIZE	\
    16		(HV_HYP_PAGE_SIZE / sizeof(union hv_register_value))
    17	#define HV_SET_REGISTER_BATCH_SIZE	\
    18		((HV_HYP_PAGE_SIZE - sizeof(struct hv_input_set_vp_registers)) \
    19			/ sizeof(struct hv_register_assoc))
    20	
  > 21	int hv_call_get_vp_registers(u32 vp_index, u64 partition_id, u16 count,
    22				     union hv_input_vtl input_vtl,
    23				     struct hv_register_assoc *registers)
    24	{
    25		struct hv_input_get_vp_registers *input_page;
    26		union hv_register_value *output_page;
    27		u16 completed = 0;
    28		unsigned long remaining = count;
    29		int rep_count, i;
    30		u64 status = HV_STATUS_SUCCESS;
    31		unsigned long flags;
    32	
    33		local_irq_save(flags);
    34	
    35		input_page = *this_cpu_ptr(hyperv_pcpu_input_arg);
    36		output_page = *this_cpu_ptr(hyperv_pcpu_output_arg);
    37	
    38		input_page->partition_id = partition_id;
    39		input_page->vp_index = vp_index;
    40		input_page->input_vtl.as_uint8 = input_vtl.as_uint8;
    41		input_page->rsvd_z8 = 0;
    42		input_page->rsvd_z16 = 0;
    43	
    44		while (remaining) {
    45			rep_count = min(remaining, HV_GET_REGISTER_BATCH_SIZE);
    46			for (i = 0; i < rep_count; ++i)
    47				input_page->names[i] = registers[i].name;
    48	
    49			status = hv_do_rep_hypercall(HVCALL_GET_VP_REGISTERS, rep_count,
    50						     0, input_page, output_page);
    51			if (!hv_result_success(status))
    52				break;
    53			completed = hv_repcomp(status);
    54			for (i = 0; i < completed; ++i)
    55				registers[i].value = output_page[i];
    56	
    57			registers += completed;
    58			remaining -= completed;
    59		}
    60		local_irq_restore(flags);
    61	
    62		return hv_status_to_errno(status);
    63	}
    64	
  > 65	int hv_call_set_vp_registers(u32 vp_index, u64 partition_id, u16 count,
    66				     union hv_input_vtl input_vtl,
    67				     struct hv_register_assoc *registers)
    68	{
    69		struct hv_input_set_vp_registers *input_page;
    70		u16 completed = 0;
    71		unsigned long remaining = count;
    72		int rep_count;
    73		u64 status = HV_STATUS_SUCCESS;
    74		unsigned long flags;
    75	
    76		local_irq_save(flags);
    77		input_page = *this_cpu_ptr(hyperv_pcpu_input_arg);
    78	
    79		input_page->partition_id = partition_id;
    80		input_page->vp_index = vp_index;
    81		input_page->input_vtl.as_uint8 = input_vtl.as_uint8;
    82		input_page->rsvd_z8 = 0;
    83		input_page->rsvd_z16 = 0;
    84	
    85		while (remaining) {
    86			rep_count = min(remaining, HV_SET_REGISTER_BATCH_SIZE);
    87			memcpy(input_page->elements, registers,
    88			       sizeof(struct hv_register_assoc) * rep_count);
    89	
    90			status = hv_do_rep_hypercall(HVCALL_SET_VP_REGISTERS, rep_count,
    91						     0, input_page, NULL);
    92			if (!hv_result_success(status))
    93				break;
    94			completed = hv_repcomp(status);
    95			registers += completed;
    96			remaining -= completed;
    97		}
    98	
    99		local_irq_restore(flags);
   100	
   101		return hv_status_to_errno(status);
   102	}
   103	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux