tree: git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git x86/vt-d
head: 6c37b5ba0e4df96647677fac5d87d9fd561c3ef8
commit: ebe05c7397dc63d99fb3ec69a37b4440952089bc [4/10] iommu/vt-d: Functions
to copy data from old mem
reproduce:
# apt-get install sparse
git checkout ebe05c7397dc63d99fb3ec69a37b4440952089bc
make ARCH=x86_64 allmodconfig
make C=1 CF=-D__CHECK_ENDIAN__
sparse warnings: (new ones prefixed by >>)
drivers/iommu/intel-iommu.c:1158:13: sparse: symbol 'domain_unmap' was not
declared. Should it be static?
drivers/iommu/intel-iommu.c:1184:6: sparse: symbol 'dma_free_pagelist' was
not declared. Should it be static?
>> drivers/iommu/intel-iommu.c:4875:17: sparse: incorrect type in argument 2
>> (different address spaces)
drivers/iommu/intel-iommu.c:4875:17: expected void const *from
drivers/iommu/intel-iommu.c:4875:17: got void [noderef]
<asn:2>*[assigned] virt_mem
>> drivers/iommu/intel-iommu.c:4912:17: sparse: incorrect type in argument 1
>> (different address spaces)
drivers/iommu/intel-iommu.c:4912:17: expected void *to
drivers/iommu/intel-iommu.c:4912:17: got void [noderef]
<asn:2>*[assigned] virt_mem
drivers/iommu/intel-iommu.c:4829:30: warning:
'device_to_existing_context_entry' defined but not used [-Wunused-function]
static struct context_entry *device_to_existing_context_entry(
^
vim +4875 drivers/iommu/intel-iommu.c
4869
4870 virt_mem = ioremap_cache((unsigned long)from, size);
4871 if (!virt_mem) {
4872 kfree(mapped);
4873 return -ENOMEM;
4874 }
> 4875 memcpy(to, virt_mem, size);
4876
4877 mutex_lock(&__iommu_mem_list_lock);
4878 mapped->mem = virt_mem;
4879 list_add_tail(&mapped->list, &__iommu_remapped_mem);
4880 mutex_unlock(&__iommu_mem_list_lock);
4881 }
4882 return size;
4883 }
4884
4885 /*
4886 * Copy memory from a virtually-addressed area into a
physically-addressed area
4887 */
4888 int __iommu_save_to_oldmem(unsigned long to, void *from, unsigned long
size)
4889 {
4890 unsigned long pfn; /* Page Frame Number */
4891 size_t csize = (size_t)size; /* Num(bytes to copy) */
4892 unsigned long offset; /* Lower 12 bits of to */
4893 void __iomem *virt_mem;
4894 struct iommu_remapped_entry *mapped;
4895
4896 pfn = to >> VTD_PAGE_SHIFT;
4897 offset = to & (~VTD_PAGE_MASK);
4898
4899 if (page_is_ram(pfn)) {
4900 memcpy(pfn_to_kaddr(pfn) + offset, from, csize);
4901 } else{
4902 mapped = kzalloc(sizeof(struct iommu_remapped_entry),
4903 GFP_KERNEL);
4904 if (!mapped)
4905 return -ENOMEM;
4906
4907 virt_mem = ioremap_cache((unsigned long)to, size);
4908 if (!virt_mem) {
4909 kfree(mapped);
4910 return -ENOMEM;
4911 }
> 4912 memcpy(virt_mem, from, size);
4913 mutex_lock(&__iommu_mem_list_lock);
4914 mapped->mem = virt_mem;
4915 list_add_tail(&mapped->list, &__iommu_remapped_mem);
---
0-DAY kernel test infrastructure Open Source Technology Center
http://lists.01.org/mailman/listinfo/kbuild Intel Corporation
_______________________________________________
iommu mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/iommu