All of lore.kernel.org
 help / color / mirror / Atom feed
* arch/arm64/kvm/arm.c:1726 init_hyp_mode() warn: missing error code 'err'
@ 2021-03-13 20:17 ` kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2021-03-13 20:17 UTC (permalink / raw)
  To: David Brazdil; +Cc: kbuild-all, linux-kernel, Marc Zyngier

[-- Attachment #1: Type: text/plain, Size: 4317 bytes --]

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 <lkp@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-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 30637 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* arch/arm64/kvm/arm.c:1726 init_hyp_mode() warn: missing error code 'err'
@ 2021-03-13 20:17 ` kernel test robot
  0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2021-03-13 20:17 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 4469 bytes --]

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 <lkp@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-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 30637 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-03-13 20:18 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-13 20:17 arch/arm64/kvm/arm.c:1726 init_hyp_mode() warn: missing error code 'err' kernel test robot
2021-03-13 20:17 ` kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.