* [lpieralisi:gic/v4-1-vsgi-disable 2/4] drivers/misc/smmu-test-engine.c:1748:4: error: implicit declaration of function 'pci_msix_vec_count'
@ 2021-03-16 19:25 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-03-16 19:25 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 13392 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/linux.git gic/v4-1-vsgi-disable
head: 028f565ab5e5e9eb425fc4a976073afa455ed40b
commit: ac343379cbdfd6dee5b781f1f0e1dfb8d6d607a1 [2/4] smmute: driver for the SMMUv3TestEngine
config: arm64-randconfig-r024-20210316 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/linux.git/commit/?id=ac343379cbdfd6dee5b781f1f0e1dfb8d6d607a1
git remote add lpieralisi https://git.kernel.org/pub/scm/linux/kernel/git/lpieralisi/linux.git
git fetch --no-tags lpieralisi gic/v4-1-vsgi-disable
git checkout ac343379cbdfd6dee5b781f1f0e1dfb8d6d607a1
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All error/warnings (new ones prefixed by >>):
>> drivers/misc/smmu-test-engine.c:348:6: warning: no previous prototype for '__smmute_task_put' [-Wmissing-prototypes]
348 | void __smmute_task_put(struct smmute_task *smmute_task)
| ^~~~~~~~~~~~~~~~~
>> drivers/misc/smmu-test-engine.c:484:6: warning: no previous prototype for 'smmute_task_fd_put_all' [-Wmissing-prototypes]
484 | void smmute_task_fd_put_all(struct smmute_file_desc *fd)
| ^~~~~~~~~~~~~~~~~~~~~~
>> drivers/misc/smmu-test-engine.c:502:6: warning: no previous prototype for 'smmute_task_put' [-Wmissing-prototypes]
502 | void smmute_task_put(struct smmute_file_desc *fd,
| ^~~~~~~~~~~~~~~
>> drivers/misc/smmu-test-engine.c:1206:6: warning: no previous prototype for 'smmute_vm_close' [-Wmissing-prototypes]
1206 | void smmute_vm_close(struct vm_area_struct *vma)
| ^~~~~~~~~~~~~~~
In file included from include/linux/device.h:15,
from include/linux/cdev.h:8,
from drivers/misc/smmu-test-engine.c:13:
drivers/misc/smmu-test-engine.c: In function 'smmute_pci_msi_enable':
>> drivers/misc/smmu-test-engine.c:1748:4: error: implicit declaration of function 'pci_msix_vec_count' [-Werror=implicit-function-declaration]
1748 | pci_msix_vec_count(pdev));
| ^~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:131:47: note: in definition of macro 'dev_dbg'
131 | dev_printk(KERN_DEBUG, dev, dev_fmt(fmt), ##__VA_ARGS__); \
| ^~~~~~~~~~~
>> drivers/misc/smmu-test-engine.c:1752:44: error: invalid application of 'sizeof' to incomplete type 'struct msix_entry'
1752 | entries = devm_kmalloc(&pdev->dev, sizeof(struct msix_entry) * nr_msis,
| ^~~~~~
>> drivers/misc/smmu-test-engine.c:1763:10: error: invalid use of undefined type 'struct msix_entry'
1763 | entries[i].entry = i;
| ^
>> drivers/misc/smmu-test-engine.c:1763:10: error: dereferencing pointer to incomplete type 'struct msix_entry'
>> drivers/misc/smmu-test-engine.c:1765:8: error: implicit declaration of function 'pci_enable_msix_range' [-Werror=implicit-function-declaration]
1765 | ret = pci_enable_msix_range(pdev, entries, 1, nr_msis);
| ^~~~~~~~~~~~~~~~~~~~~
drivers/misc/smmu-test-engine.c: In function 'smmute_init_msi_pool':
drivers/misc/smmu-test-engine.c:155:53: error: invalid use of undefined type 'struct msix_entry'
155 | (dev_is_pci((smmute)->dev) ? (smmute)->msix_entries[idx].vector : \
| ^
drivers/misc/smmu-test-engine.c:1793:9: note: in expansion of macro 'smmute_get_msi_vector'
1793 | vec = smmute_get_msi_vector(smmute, i);
| ^~~~~~~~~~~~~~~~~~~~~
drivers/misc/smmu-test-engine.c: In function 'smmute_free_msi_pool':
drivers/misc/smmu-test-engine.c:155:53: error: invalid use of undefined type 'struct msix_entry'
155 | (dev_is_pci((smmute)->dev) ? (smmute)->msix_entries[idx].vector : \
| ^
drivers/misc/smmu-test-engine.c:1813:12: note: in expansion of macro 'smmute_get_msi_vector'
1813 | free_irq(smmute_get_msi_vector(smmute, i),
| ^~~~~~~~~~~~~~~~~~~~~
drivers/misc/smmu-test-engine.c: In function 'smmute_common_probe':
>> drivers/misc/smmu-test-engine.c:1888:9: error: implicit declaration of function 'iommu_dev_has_feature'; did you mean 'iommu_dev_enable_feature'? [-Werror=implicit-function-declaration]
1888 | ret = iommu_dev_has_feature(dev, IOMMU_DEV_FEAT_SVA);
| ^~~~~~~~~~~~~~~~~~~~~
| iommu_dev_enable_feature
drivers/misc/smmu-test-engine.c: In function 'smmute_pci_probe':
>> drivers/misc/smmu-test-engine.c:2047:2: error: implicit declaration of function 'pci_disable_msix'; did you mean 'pci_disable_sriov'? [-Werror=implicit-function-declaration]
2047 | pci_disable_msix(pdev);
| ^~~~~~~~~~~~~~~~
| pci_disable_sriov
cc1: some warnings being treated as errors
vim +/pci_msix_vec_count +1748 drivers/misc/smmu-test-engine.c
1735
1736 static int smmute_pci_msi_enable(struct pci_dev *pdev)
1737 {
1738 int ret, i;
1739 int nr_msis;
1740 struct smmute_device *smmute;
1741 struct msix_entry *entries;
1742
1743 smmute = pci_get_drvdata(pdev);
1744 if (!smmute)
1745 return -EINVAL;
1746
1747 dev_dbg(&pdev->dev, "max number of MSI-X vectors: %d\n",
> 1748 pci_msix_vec_count(pdev));
1749
1750 nr_msis = min_t(size_t, SMMUTE_MAX_MSIS,
1751 smmute->nr_pairs * SMMUTE_FRAMES_PER_PAGE);
> 1752 entries = devm_kmalloc(&pdev->dev, sizeof(struct msix_entry) * nr_msis,
1753 GFP_KERNEL);
1754
1755 if (!entries) {
1756 dev_err(&pdev->dev, "could not allocate MSI-X entries\n");
1757 return -ENOMEM;
1758 }
1759
1760 smmute->msix_entries = entries;
1761
1762 for (i = 0; i < nr_msis; i++)
> 1763 entries[i].entry = i;
1764
> 1765 ret = pci_enable_msix_range(pdev, entries, 1, nr_msis);
1766 if (ret <= 0) {
1767 devm_kfree(&pdev->dev, entries);
1768 return ret;
1769 }
1770
1771 smmute->nr_msix_entries = ret;
1772 dev_dbg(&pdev->dev, "requested %d MSIs, got %d\n", nr_msis, ret);
1773
1774 return 0;
1775 }
1776
1777 static int smmute_init_msi_pool(struct smmute_device *smmute)
1778 {
1779 int vec, ret, i;
1780 struct smmute_msi_pool *pool;
1781 int nr_pools = smmute->nr_msix_entries;
1782
1783 smmute->msi_pools = devm_kcalloc(smmute->dev, nr_pools, sizeof(*pool),
1784 GFP_KERNEL);
1785 if (!smmute->msi_pools)
1786 return -ENOMEM;
1787
1788 for (i = 0; i < nr_pools; i++) {
1789 pool = &smmute->msi_pools[i];
1790 spin_lock_init(&pool->lock);
1791 INIT_LIST_HEAD(&pool->transactions);
1792
1793 vec = smmute_get_msi_vector(smmute, i);
1794 ret = request_irq(vec, smmute_msi_handler, 0,
1795 dev_name(smmute->dev), pool);
1796 if (ret)
1797 break;
1798 }
1799
1800 return ret;
1801 }
1802
1803 static void smmute_free_msi_pool(struct smmute_device *smmute)
1804 {
1805 int i;
1806
1807 /*
1808 * Other resources are managed (freed automatically), but we don't use
1809 * devm for MSIs, because they have to be unregistered before MSIs are
1810 * freed by pci_disable_msix.
1811 */
1812 for (i = 0; i < smmute->nr_msix_entries; i++)
1813 free_irq(smmute_get_msi_vector(smmute, i),
1814 &smmute->msi_pools[i]);
1815 }
1816
1817 static int smmute_common_probe(struct smmute_device *smmute)
1818 {
1819 int minor;
1820 size_t nr_frames;
1821 int ret = -ENOMEM;
1822 int cache_flags = 0;
1823 struct device *dev = smmute->dev;
1824
1825 #ifdef DEBUG
1826 /* prevents merging caches, allows to get stats from /proc/slabinfo */
1827 cache_flags = SLAB_POISON | SLAB_CONSISTENCY_CHECKS;
1828 #endif
1829
1830 mutex_init(&smmute->task_mutex);
1831 mutex_init(&smmute->resources_mutex);
1832 INIT_LIST_HEAD(&smmute->tasks);
1833
1834 nr_frames = smmute->nr_pairs * SMMUTE_FRAMES_PER_PAGE;
1835 smmute->reserved_frames = devm_kzalloc(dev, BITS_TO_LONGS(nr_frames),
1836 GFP_KERNEL);
1837 if (!smmute->reserved_frames)
1838 return ret;
1839
1840 smmute->transaction_cache = kmem_cache_create("smmute_transactions",
1841 sizeof(struct smmute_transaction), 0, cache_flags, NULL);
1842 if (!smmute->transaction_cache)
1843 goto err_free_frames;
1844
1845 smmute->dma_regions_cache = kmem_cache_create("smmute_dma_regions",
1846 sizeof(struct smmute_dma), 0, cache_flags, NULL);
1847 if (!smmute->dma_regions_cache)
1848 goto err_destroy_transaction_cache;
1849
1850 smmute->file_desc_cache = kmem_cache_create("smmute_file_descs",
1851 sizeof(struct smmute_file_desc), 0, cache_flags, NULL);
1852 if (!smmute->file_desc_cache)
1853 goto err_destroy_dma_cache;
1854
1855 minor = ida_simple_get(&smmute_minor_ida, 0, SMMUTE_MAX_DEVICES,
1856 GFP_KERNEL);
1857 if (minor < 0) {
1858 dev_dbg(dev, "idr_alloc failed with %d\n", minor);
1859 goto err_destroy_fd_cache;
1860 }
1861
1862 smmute->chrdev = device_create(smmute_class, dev,
1863 MKDEV(smmute_major, minor), smmute,
1864 "smmute%d", minor);
1865 if (IS_ERR(smmute->chrdev)) {
1866 dev_err(dev, "unable to create char dev (%d, %d)\n",
1867 smmute_major, minor);
1868 ret = PTR_ERR(smmute->chrdev);
1869 goto err_free_minor;
1870 }
1871 smmute->minor = minor;
1872
1873 atomic64_set(&smmute->files_ida, 0);
1874 smmute->files_set = kset_create_and_add("files", NULL, &smmute->chrdev->kobj);
1875 if (!smmute->files_set)
1876 goto err_device_destroy;
1877
1878 smmute->tasks_set = kset_create_and_add("tasks", NULL, &smmute->chrdev->kobj);
1879 if (!smmute->tasks_set)
1880 goto err_release_files;
1881
1882 ret = iommu_dev_enable_feature(dev, IOMMU_DEV_FEAT_SVA);
1883 if (ret) {
1884 dev_warn(dev, "failed to initialize SVA (%d)\n", ret);
1885 } else {
1886 dev_info(dev, "enabled SVA feature\n");
1887 /* Sanity-check for the API */
> 1888 ret = iommu_dev_has_feature(dev, IOMMU_DEV_FEAT_SVA);
1889 if (!ret)
1890 dev_warn(dev, "enabled SVA feature but IOMMU reports unsupported?\n");
1891 ret = iommu_dev_feature_enabled(dev, IOMMU_DEV_FEAT_SVA);
1892 if (!ret)
1893 dev_warn(dev, "SVA feature not enabled?\n");
1894 smmute->sva = true;
1895 }
1896
1897 ret = iommu_dev_enable_feature(dev, IOMMU_DEV_FEAT_AUX);
1898 if (ret) {
1899 dev_warn(dev, "failed to initalize AUX (%d)\n", ret);
1900 } else {
1901 dev_info(dev, "enabled AUX feature\n");
1902
1903 ret = iommu_dev_has_feature(dev, IOMMU_DEV_FEAT_AUX);
1904 if (!ret)
1905 dev_warn(dev, "enabled AUX feature but IOMMU reports unsupported?\n");
1906 ret = iommu_dev_feature_enabled(dev, IOMMU_DEV_FEAT_AUX);
1907 if (!ret)
1908 dev_warn(dev, "AUX feature not enabled?\n");
1909 smmute->aux = true;
1910 }
1911
1912 ret = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64));
1913 if (ret) {
1914 dev_warn(dev, "failed to set requested DMA mask\n");
1915 ret = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(32));
1916 if (ret) {
1917 dev_err(dev, "failed to set DMA mask\n");
1918 goto err_release_tasks;
1919 }
1920 }
1921
1922 ret = smmute_init_msi_pool(smmute);
1923 if (ret)
1924 goto err_release_tasks;
1925
1926 mutex_lock(&smmute_devices_mutex);
1927 list_add(&smmute->list, &smmute_devices);
1928 mutex_unlock(&smmute_devices_mutex);
1929
1930 dev_info(dev, "has %zux2 pages of %zu frames\n", smmute->nr_pairs,
1931 SMMUTE_FRAMES_PER_PAGE);
1932
1933 /* TODO: self-test */
1934
1935 return 0;
1936
1937 err_release_tasks:
1938 kset_unregister(smmute->tasks_set);
1939 err_release_files:
1940 kset_unregister(smmute->files_set);
1941 err_device_destroy:
1942 device_destroy(smmute_class, MKDEV(smmute_major, smmute->minor));
1943 err_free_minor:
1944 ida_simple_remove(&smmute_minor_ida, minor);
1945 err_destroy_fd_cache:
1946 kmem_cache_destroy(smmute->file_desc_cache);
1947 err_destroy_dma_cache:
1948 kmem_cache_destroy(smmute->dma_regions_cache);
1949 err_destroy_transaction_cache:
1950 kmem_cache_destroy(smmute->transaction_cache);
1951 err_free_frames:
1952 devm_kfree(smmute->dev, smmute->reserved_frames);
1953
1954 return ret;
1955 }
1956
---
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: 41686 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-03-16 19:25 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-16 19:25 [lpieralisi:gic/v4-1-vsgi-disable 2/4] drivers/misc/smmu-test-engine.c:1748:4: error: implicit declaration of function 'pci_msix_vec_count' 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.