tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: f296bfd5cd04cbb49b8fc9585adc280ab2b58624 commit: eeeee7193df015074c8302381356e8e617a5e2b0 KVM: arm64: Bootstrap PSCI SMC handler in nVHE EL2 date: 3 months ago config: arm64-randconfig-m031-20210312 (attached as .config) compiler: aarch64-linux-gcc (GCC) 9.3.0
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <l...@intel.com> smatch warnings: arch/arm64/kvm/arm.c:1726 init_hyp_mode() warn: missing error code 'err' vim +/err +1726 arch/arm64/kvm/arm.c 1606 1607 /** 1608 * Inits Hyp-mode on all online CPUs 1609 */ 1610 static int init_hyp_mode(void) 1611 { 1612 int cpu; 1613 int err = 0; 1614 1615 /* 1616 * Allocate Hyp PGD and setup Hyp identity mapping 1617 */ 1618 err = kvm_mmu_init(); 1619 if (err) 1620 goto out_err; 1621 1622 /* 1623 * Allocate stack pages for Hypervisor-mode 1624 */ 1625 for_each_possible_cpu(cpu) { 1626 unsigned long stack_page; 1627 1628 stack_page = __get_free_page(GFP_KERNEL); 1629 if (!stack_page) { 1630 err = -ENOMEM; 1631 goto out_err; 1632 } 1633 1634 per_cpu(kvm_arm_hyp_stack_page, cpu) = stack_page; 1635 } 1636 1637 /* 1638 * Allocate and initialize pages for Hypervisor-mode percpu regions. 1639 */ 1640 for_each_possible_cpu(cpu) { 1641 struct page *page; 1642 void *page_addr; 1643 1644 page = alloc_pages(GFP_KERNEL, nvhe_percpu_order()); 1645 if (!page) { 1646 err = -ENOMEM; 1647 goto out_err; 1648 } 1649 1650 page_addr = page_address(page); 1651 memcpy(page_addr, CHOOSE_NVHE_SYM(__per_cpu_start), nvhe_percpu_size()); 1652 kvm_arm_hyp_percpu_base[cpu] = (unsigned long)page_addr; 1653 } 1654 1655 /* 1656 * Map the Hyp-code called directly from the host 1657 */ 1658 err = create_hyp_mappings(kvm_ksym_ref(__hyp_text_start), 1659 kvm_ksym_ref(__hyp_text_end), PAGE_HYP_EXEC); 1660 if (err) { 1661 kvm_err("Cannot map world-switch code\n"); 1662 goto out_err; 1663 } 1664 1665 err = create_hyp_mappings(kvm_ksym_ref(__hyp_data_ro_after_init_start), 1666 kvm_ksym_ref(__hyp_data_ro_after_init_end), 1667 PAGE_HYP_RO); 1668 if (err) { 1669 kvm_err("Cannot map .hyp.data..ro_after_init section\n"); 1670 goto out_err; 1671 } 1672 1673 err = create_hyp_mappings(kvm_ksym_ref(__start_rodata), 1674 kvm_ksym_ref(__end_rodata), PAGE_HYP_RO); 1675 if (err) { 1676 kvm_err("Cannot map rodata section\n"); 1677 goto out_err; 1678 } 1679 1680 err = create_hyp_mappings(kvm_ksym_ref(__bss_start), 1681 kvm_ksym_ref(__bss_stop), PAGE_HYP_RO); 1682 if (err) { 1683 kvm_err("Cannot map bss section\n"); 1684 goto out_err; 1685 } 1686 1687 err = kvm_map_vectors(); 1688 if (err) { 1689 kvm_err("Cannot map vectors\n"); 1690 goto out_err; 1691 } 1692 1693 /* 1694 * Map the Hyp stack pages 1695 */ 1696 for_each_possible_cpu(cpu) { 1697 char *stack_page = (char *)per_cpu(kvm_arm_hyp_stack_page, cpu); 1698 err = create_hyp_mappings(stack_page, stack_page + PAGE_SIZE, 1699 PAGE_HYP); 1700 1701 if (err) { 1702 kvm_err("Cannot map hyp stack\n"); 1703 goto out_err; 1704 } 1705 } 1706 1707 /* 1708 * Map Hyp percpu pages 1709 */ 1710 for_each_possible_cpu(cpu) { 1711 char *percpu_begin = (char *)kvm_arm_hyp_percpu_base[cpu]; 1712 char *percpu_end = percpu_begin + nvhe_percpu_size(); 1713 1714 err = create_hyp_mappings(percpu_begin, percpu_end, PAGE_HYP); 1715 1716 if (err) { 1717 kvm_err("Cannot map hyp percpu region\n"); 1718 goto out_err; 1719 } 1720 } 1721 1722 if (is_protected_kvm_enabled()) { 1723 init_cpu_logical_map(); 1724 1725 if (!init_psci_relay()) > 1726 goto out_err; 1727 } 1728 1729 return 0; 1730 1731 out_err: 1732 teardown_hyp_mode(); 1733 kvm_err("error initializing Hyp mode: %d\n", err); 1734 return err; 1735 } 1736 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
.config.gz
Description: application/gzip