[intel-lts:5.4/preempt-rt 17782/19040] drivers/platform/x86/intel_isi_hstd.c:572:5: warning: no previous prototype for 'hstd_init'
by kernel test robot
Hi Karthik,
FYI, the error/warning still remains.
tree: https://github.com/intel/linux-intel-lts.git 5.4/preempt-rt
head: 36a2ba81b7c7178b0612363a1af6f22887905cc6
commit: 6e9c23a32b60ca1e35e154e8d857c73b3c313734 [17782/19040] driver: platform: x86: ISI: [Hstd] Host STL Linux Driver for EHL FuSa
config: i386-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/intel/linux-intel-lts/commit/6e9c23a32b60ca1e35e154e8d...
git remote add intel-lts https://github.com/intel/linux-intel-lts.git
git fetch --no-tags intel-lts 5.4/preempt-rt
git checkout 6e9c23a32b60ca1e35e154e8d857c73b3c313734
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from include/linux/bitops.h:5,
from include/linux/kernel.h:12,
from include/linux/list.h:9,
from include/linux/module.h:9,
from drivers/platform/x86/intel_isi_hstd.c:8:
drivers/platform/x86/intel_isi_hstd.c: In function 'global_ctrl_check':
include/linux/bits.h:8:26: warning: left shift count >= width of type [-Wshift-count-overflow]
8 | #define BIT(nr) (UL(1) << (nr))
| ^~
drivers/platform/x86/intel_isi_hstd.c:138:26: note: in expansion of macro 'BIT'
138 | uint64_t m = ~(BIT(0) | BIT(33));
| ^~~
drivers/platform/x86/intel_isi_hstd.c: In function 'global_ovfctrl_check':
include/linux/bits.h:8:26: warning: left shift count >= width of type [-Wshift-count-overflow]
8 | #define BIT(nr) (UL(1) << (nr))
| ^~
drivers/platform/x86/intel_isi_hstd.c:155:26: note: in expansion of macro 'BIT'
155 | uint64_t m = ~(BIT(0) | BIT(33));
| ^~~
include/linux/bits.h:8:26: warning: left shift count >= width of type [-Wshift-count-overflow]
8 | #define BIT(nr) (UL(1) << (nr))
| ^~
drivers/platform/x86/intel_isi_hstd.c:162:29: note: in expansion of macro 'BIT'
162 | if (!(v & BIT(0)) || !(v & BIT(33)))
| ^~~
drivers/platform/x86/intel_isi_hstd.c: At top level:
>> drivers/platform/x86/intel_isi_hstd.c:572:5: warning: no previous prototype for 'hstd_init' [-Wmissing-prototypes]
572 | int hstd_init(void)
| ^~~~~~~~~
vim +/hstd_init +572 drivers/platform/x86/intel_isi_hstd.c
571
> 572 int hstd_init(void)
573 {
574 int err = 0;
575
576 hstd_major_num = register_chrdev(0, DEVICE_NAME, &fops);
577 if (hstd_major_num < 0)
578 return hstd_major_num;
579
580 hstd_class = class_create(THIS_MODULE, CLASS_NAME);
581 if (IS_ERR(hstd_class)) {
582 err = PTR_ERR(hstd_class);
583 goto out_chrdev;
584 }
585
586 hstd_dev = device_create(hstd_class, NULL,
587 MKDEV(hstd_major_num, 0), NULL, DEVICE_NAME);
588 if (IS_ERR(hstd_dev)) {
589 err = PTR_ERR(hstd_dev);
590 goto out_class;
591 }
592 err = do_init();
593 if (err)
594 goto out_init;
595
596 pr_info(PFX "Module version %s successfuly initilized\n", DRV_VERSION);
597 return 0;
598
599 out_init:
600 device_destroy(hstd_class, MKDEV(hstd_major_num, 0));
601 out_class:
602 class_destroy(hstd_class);
603 out_chrdev:
604 unregister_chrdev(hstd_major_num, DEVICE_NAME);
605 return err;
606 }
607
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 2 weeks
[oracle-dtrace:v1/5.15 21/35] make[3]: *** No rule to make target 'crypto/aes_generic.sdtinfo.o', needed by 'crypto/aes_generic.ko'.
by kernel test robot
tree: https://github.com/oracle/dtrace-linux-kernel v1/5.15
head: 0fee66d7ce96317146609675767971d0f35c3e74
commit: 9bb7076b2261cf2470e94df26762679a950a0b1e [21/35] dtrace: sdt provider core components
config: ia64-defconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 11.2.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://github.com/oracle/dtrace-linux-kernel/commit/9bb7076b2261cf2470e9...
git remote add oracle-dtrace https://github.com/oracle/dtrace-linux-kernel
git fetch --no-tags oracle-dtrace v1/5.15
git checkout 9bb7076b2261cf2470e94df26762679a950a0b1e
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=ia64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
>> make[3]: *** No rule to make target 'crypto/aes_generic.sdtinfo.o', needed by 'crypto/aes_generic.ko'.
>> make[3]: *** No rule to make target 'crypto/authenc.sdtinfo.o', needed by 'crypto/authenc.ko'.
>> make[3]: *** No rule to make target 'crypto/authencesn.sdtinfo.o', needed by 'crypto/authencesn.ko'.
>> make[3]: *** No rule to make target 'crypto/cbc.sdtinfo.o', needed by 'crypto/cbc.ko'.
>> make[3]: *** No rule to make target 'crypto/ccm.sdtinfo.o', needed by 'crypto/ccm.ko'.
>> make[3]: *** No rule to make target 'crypto/cmac.sdtinfo.o', needed by 'crypto/cmac.ko'.
>> make[3]: *** No rule to make target 'crypto/ctr.sdtinfo.o', needed by 'crypto/ctr.ko'.
>> make[3]: *** No rule to make target 'crypto/ecb.sdtinfo.o', needed by 'crypto/ecb.ko'.
>> make[3]: *** No rule to make target 'crypto/essiv.sdtinfo.o', needed by 'crypto/essiv.ko'.
>> make[3]: *** No rule to make target 'crypto/gcm.sdtinfo.o', needed by 'crypto/gcm.ko'.
>> make[3]: *** No rule to make target 'crypto/gf128mul.sdtinfo.o', needed by 'crypto/gf128mul.ko'.
>> make[3]: *** No rule to make target 'crypto/ghash-generic.sdtinfo.o', needed by 'crypto/ghash-generic.ko'.
>> make[3]: *** No rule to make target 'crypto/hmac.sdtinfo.o', needed by 'crypto/hmac.ko'.
>> make[3]: *** No rule to make target 'crypto/pcbc.sdtinfo.o', needed by 'crypto/pcbc.ko'.
>> make[3]: *** No rule to make target 'crypto/sha256_generic.sdtinfo.o', needed by 'crypto/sha256_generic.ko'.
>> make[3]: *** No rule to make target 'crypto/sha512_generic.sdtinfo.o', needed by 'crypto/sha512_generic.ko'.
make[3]: Target '__modfinal' not remade because of errors.
--
>> make[3]: *** No rule to make target 'drivers/acpi/button.sdtinfo.o', needed by 'drivers/acpi/button.ko'.
>> make[3]: *** No rule to make target 'drivers/acpi/fan.sdtinfo.o', needed by 'drivers/acpi/fan.ko'.
>> make[3]: *** No rule to make target 'drivers/acpi/processor.sdtinfo.o', needed by 'drivers/acpi/processor.ko'.
>> make[3]: *** No rule to make target 'drivers/acpi/thermal.sdtinfo.o', needed by 'drivers/acpi/thermal.ko'.
make[3]: Target '__modfinal' not remade because of errors.
--
>> make[3]: *** No rule to make target 'drivers/block/cryptoloop.sdtinfo.o', needed by 'drivers/block/cryptoloop.ko'.
>> make[3]: *** No rule to make target 'drivers/block/loop.sdtinfo.o', needed by 'drivers/block/loop.ko'.
>> make[3]: *** No rule to make target 'drivers/block/nbd.sdtinfo.o', needed by 'drivers/block/nbd.ko'.
make[3]: Target '__modfinal' not remade because of errors.
--
>> make[3]: *** No rule to make target 'drivers/cdrom/cdrom.sdtinfo.o', needed by 'drivers/cdrom/cdrom.ko'.
make[3]: Target '__modfinal' not remade because of errors.
--
>> make[3]: *** No rule to make target 'drivers/char/agp/agpgart.sdtinfo.o', needed by 'drivers/char/agp/agpgart.ko'.
>> make[3]: *** No rule to make target 'drivers/char/agp/hp-agp.sdtinfo.o', needed by 'drivers/char/agp/hp-agp.ko'.
>> make[3]: *** No rule to make target 'drivers/char/agp/i460-agp.sdtinfo.o', needed by 'drivers/char/agp/i460-agp.ko'.
>> make[3]: *** No rule to make target 'drivers/char/mspec.sdtinfo.o', needed by 'drivers/char/mspec.ko'.
make[3]: Target '__modfinal' not remade because of errors.
--
>> make[3]: *** No rule to make target 'drivers/hid/hid-gyration.sdtinfo.o', needed by 'drivers/hid/hid-gyration.ko'.
>> make[3]: *** No rule to make target 'drivers/hid/hid-petalynx.sdtinfo.o', needed by 'drivers/hid/hid-petalynx.ko'.
>> make[3]: *** No rule to make target 'drivers/hid/hid-pl.sdtinfo.o', needed by 'drivers/hid/hid-pl.ko'.
>> make[3]: *** No rule to make target 'drivers/hid/hid-samsung.sdtinfo.o', needed by 'drivers/hid/hid-samsung.ko'.
>> make[3]: *** No rule to make target 'drivers/hid/hid-sunplus.sdtinfo.o', needed by 'drivers/hid/hid-sunplus.ko'.
>> make[3]: *** No rule to make target 'drivers/hid/usbhid/usbhid.sdtinfo.o', needed by 'drivers/hid/usbhid/usbhid.ko'.
make[3]: Target '__modfinal' not remade because of errors.
--
>> make[3]: *** No rule to make target 'drivers/md/dm-bufio.sdtinfo.o', needed by 'drivers/md/dm-bufio.ko'.
>> make[3]: *** No rule to make target 'drivers/md/dm-crypt.sdtinfo.o', needed by 'drivers/md/dm-crypt.ko'.
>> make[3]: *** No rule to make target 'drivers/md/dm-log.sdtinfo.o', needed by 'drivers/md/dm-log.ko'.
>> make[3]: *** No rule to make target 'drivers/md/dm-mirror.sdtinfo.o', needed by 'drivers/md/dm-mirror.ko'.
>> make[3]: *** No rule to make target 'drivers/md/dm-mod.sdtinfo.o', needed by 'drivers/md/dm-mod.ko'.
>> make[3]: *** No rule to make target 'drivers/md/dm-multipath.sdtinfo.o', needed by 'drivers/md/dm-multipath.ko'.
>> make[3]: *** No rule to make target 'drivers/md/dm-region-hash.sdtinfo.o', needed by 'drivers/md/dm-region-hash.ko'.
>> make[3]: *** No rule to make target 'drivers/md/dm-round-robin.sdtinfo.o', needed by 'drivers/md/dm-round-robin.ko'.
>> make[3]: *** No rule to make target 'drivers/md/dm-snapshot.sdtinfo.o', needed by 'drivers/md/dm-snapshot.ko'.
>> make[3]: *** No rule to make target 'drivers/md/dm-zero.sdtinfo.o', needed by 'drivers/md/dm-zero.ko'.
>> make[3]: *** No rule to make target 'drivers/md/linear.sdtinfo.o', needed by 'drivers/md/linear.ko'.
>> make[3]: *** No rule to make target 'drivers/md/md-mod.sdtinfo.o', needed by 'drivers/md/md-mod.ko'.
>> make[3]: *** No rule to make target 'drivers/md/multipath.sdtinfo.o', needed by 'drivers/md/multipath.ko'.
>> make[3]: *** No rule to make target 'drivers/md/raid0.sdtinfo.o', needed by 'drivers/md/raid0.ko'.
>> make[3]: *** No rule to make target 'drivers/md/raid1.sdtinfo.o', needed by 'drivers/md/raid1.ko'.
make[3]: Target '__modfinal' not remade because of errors.
--
>> make[3]: *** No rule to make target 'drivers/message/fusion/mptfc.sdtinfo.o', needed by 'drivers/message/fusion/mptfc.ko'.
make[3]: Target '__modfinal' not remade because of errors.
--
>> make[3]: *** No rule to make target 'drivers/net/dummy.sdtinfo.o', needed by 'drivers/net/dummy.ko'.
>> make[3]: *** No rule to make target 'drivers/net/ethernet/dec/tulip/tulip.sdtinfo.o', needed by 'drivers/net/ethernet/dec/tulip/tulip.ko'.
>> make[3]: *** No rule to make target 'drivers/net/ethernet/intel/e100.sdtinfo.o', needed by 'drivers/net/ethernet/intel/e100.ko'.
>> make[3]: *** No rule to make target 'drivers/net/mii.sdtinfo.o', needed by 'drivers/net/mii.ko'.
make[3]: Target '__modfinal' not remade because of errors.
--
>> make[3]: *** No rule to make target 'drivers/scsi/sg.sdtinfo.o', needed by 'drivers/scsi/sg.ko'.
>> make[3]: *** No rule to make target 'drivers/scsi/sr_mod.sdtinfo.o', needed by 'drivers/scsi/sr_mod.ko'.
>> make[3]: *** No rule to make target 'drivers/scsi/st.sdtinfo.o', needed by 'drivers/scsi/st.ko'.
make[3]: Target '__modfinal' not remade because of errors.
--
>> make[3]: *** No rule to make target 'drivers/usb/common/usb-common.sdtinfo.o', needed by 'drivers/usb/common/usb-common.ko'.
>> make[3]: *** No rule to make target 'drivers/usb/core/usbcore.sdtinfo.o', needed by 'drivers/usb/core/usbcore.ko'.
>> make[3]: *** No rule to make target 'drivers/usb/host/ehci-hcd.sdtinfo.o', needed by 'drivers/usb/host/ehci-hcd.ko'.
>> make[3]: *** No rule to make target 'drivers/usb/host/ehci-pci.sdtinfo.o', needed by 'drivers/usb/host/ehci-pci.ko'.
>> make[3]: *** No rule to make target 'drivers/usb/host/ohci-hcd.sdtinfo.o', needed by 'drivers/usb/host/ohci-hcd.ko'.
>> make[3]: *** No rule to make target 'drivers/usb/host/ohci-pci.sdtinfo.o', needed by 'drivers/usb/host/ohci-pci.ko'.
>> make[3]: *** No rule to make target 'drivers/usb/host/uhci-hcd.sdtinfo.o', needed by 'drivers/usb/host/uhci-hcd.ko'.
>> make[3]: *** No rule to make target 'drivers/usb/mon/usbmon.sdtinfo.o', needed by 'drivers/usb/mon/usbmon.ko'.
>> make[3]: *** No rule to make target 'drivers/usb/storage/usb-storage.sdtinfo.o', needed by 'drivers/usb/storage/usb-storage.ko'.
make[3]: Target '__modfinal' not remade because of errors.
..
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 2 weeks
[intel-lts:4.19/android_s 15445/25248] kernel/dma/removed.c:71:7: warning: no previous prototype for 'removed_alloc'
by kernel test robot
tree: https://github.com/intel/linux-intel-lts.git 4.19/android_s
head: d47c20847da6957c8b15960571893193936c8c1e
commit: c9a574054dbbc299aac39781a1d19a36fe0bc35a [15445/25248] ANDROID: GKI: drivers: Add dma removed ops
config: mips-randconfig-r016-20211028 (attached as .config)
compiler: mipsel-linux-gcc (GCC) 11.2.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://github.com/intel/linux-intel-lts/commit/c9a574054dbbc299aac39781a...
git remote add intel-lts https://github.com/intel/linux-intel-lts.git
git fetch --no-tags intel-lts 4.19/android_s
git checkout c9a574054dbbc299aac39781a1d19a36fe0bc35a
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=mips
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
>> kernel/dma/removed.c:71:7: warning: no previous prototype for 'removed_alloc' [-Wmissing-prototypes]
71 | void *removed_alloc(struct device *dev, size_t size, dma_addr_t *handle,
| ^~~~~~~~~~~~~
>> kernel/dma/removed.c:131:5: warning: no previous prototype for 'removed_mmap' [-Wmissing-prototypes]
131 | int removed_mmap(struct device *dev, struct vm_area_struct *vma,
| ^~~~~~~~~~~~
>> kernel/dma/removed.c:138:6: warning: no previous prototype for 'removed_free' [-Wmissing-prototypes]
138 | void removed_free(struct device *dev, size_t size, void *cpu_addr,
| ^~~~~~~~~~~~
>> kernel/dma/removed.c:187:6: warning: no previous prototype for 'removed_sync_single_for_device' [-Wmissing-prototypes]
187 | void removed_sync_single_for_device(struct device *dev,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> kernel/dma/removed.c:193:6: warning: no previous prototype for 'removed_sync_sg_for_cpu' [-Wmissing-prototypes]
193 | void removed_sync_sg_for_cpu(struct device *dev,
| ^~~~~~~~~~~~~~~~~~~~~~~
>> kernel/dma/removed.c:199:6: warning: no previous prototype for 'removed_sync_sg_for_device' [-Wmissing-prototypes]
199 | void removed_sync_sg_for_device(struct device *dev,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> kernel/dma/removed.c:211:6: warning: no previous prototype for 'removed_unremap' [-Wmissing-prototypes]
211 | void removed_unremap(struct device *dev, void *remapped_address, size_t size)
| ^~~~~~~~~~~~~~~
kernel/dma/removed.c:61:12: warning: 'dma_assign_removed_region' defined but not used [-Wunused-function]
61 | static int dma_assign_removed_region(struct device *dev,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
kernel/dma/removed.c:33:12: warning: 'dma_init_removed_memory' defined but not used [-Wunused-function]
33 | static int dma_init_removed_memory(phys_addr_t phys_addr, size_t size,
| ^~~~~~~~~~~~~~~~~~~~~~~
vim +/removed_alloc +71 kernel/dma/removed.c
70
> 71 void *removed_alloc(struct device *dev, size_t size, dma_addr_t *handle,
72 gfp_t gfp, unsigned long attrs)
73 {
74 bool no_kernel_mapping = attrs & DMA_ATTR_NO_KERNEL_MAPPING;
75 bool skip_zeroing = attrs & DMA_ATTR_SKIP_ZEROING;
76 int pageno;
77 unsigned long order;
78 void __iomem *addr = NULL;
79 struct removed_region *dma_mem = dev->removed_mem;
80 int nbits;
81 unsigned int align;
82
83 if (!gfpflags_allow_blocking(gfp))
84 return NULL;
85
86 size = PAGE_ALIGN(size);
87 nbits = size >> PAGE_SHIFT;
88 order = get_order(size);
89
90 if (order > get_order(SZ_1M))
91 order = get_order(SZ_1M);
92
93 align = (1 << order) - 1;
94
95
96 mutex_lock(&dma_mem->lock);
97 pageno = bitmap_find_next_zero_area(dma_mem->bitmap, dma_mem->nr_pages,
98 0, nbits, align);
99
100 if (pageno < dma_mem->nr_pages) {
101 phys_addr_t base = dma_mem->base + pageno * PAGE_SIZE;
102 *handle = base;
103
104 bitmap_set(dma_mem->bitmap, pageno, nbits);
105
106 if (no_kernel_mapping && skip_zeroing) {
107 addr = (void *)NO_KERNEL_MAPPING_DUMMY;
108 goto out;
109 }
110
111 addr = ioremap_wc(base, size);
112 if (WARN_ON(!addr)) {
113 bitmap_clear(dma_mem->bitmap, pageno, nbits);
114 } else {
115 if (!skip_zeroing)
116 memset_io(addr, 0, size);
117 if (no_kernel_mapping) {
118 iounmap(addr);
119 addr = (void *)NO_KERNEL_MAPPING_DUMMY;
120 }
121 *handle = base;
122 }
123 }
124
125 out:
126 mutex_unlock(&dma_mem->lock);
127 return addr;
128 }
129
130
> 131 int removed_mmap(struct device *dev, struct vm_area_struct *vma,
132 void *cpu_addr, dma_addr_t dma_addr, size_t size,
133 unsigned long attrs)
134 {
135 return -ENXIO;
136 }
137
> 138 void removed_free(struct device *dev, size_t size, void *cpu_addr,
139 dma_addr_t handle, unsigned long attrs)
140 {
141 bool no_kernel_mapping = attrs & DMA_ATTR_NO_KERNEL_MAPPING;
142 struct removed_region *dma_mem = dev->removed_mem;
143
144 size = PAGE_ALIGN(size);
145 if (!no_kernel_mapping)
146 iounmap(cpu_addr);
147 mutex_lock(&dma_mem->lock);
148 bitmap_clear(dma_mem->bitmap, (handle - dma_mem->base) >> PAGE_SHIFT,
149 size >> PAGE_SHIFT);
150 mutex_unlock(&dma_mem->lock);
151 }
152
153 static dma_addr_t removed_map_page(struct device *dev, struct page *page,
154 unsigned long offset, size_t size,
155 enum dma_data_direction dir,
156 unsigned long attrs)
157 {
158 return ~(dma_addr_t)0;
159 }
160
161 static void removed_unmap_page(struct device *dev, dma_addr_t dma_handle,
162 size_t size, enum dma_data_direction dir,
163 unsigned long attrs)
164 {
165 }
166
167 static int removed_map_sg(struct device *dev, struct scatterlist *sg,
168 int nents, enum dma_data_direction dir,
169 unsigned long attrs)
170 {
171 return 0;
172 }
173
174 static void removed_unmap_sg(struct device *dev,
175 struct scatterlist *sg, int nents,
176 enum dma_data_direction dir,
177 unsigned long attrs)
178 {
179 }
180
181 static void removed_sync_single_for_cpu(struct device *dev,
182 dma_addr_t dma_handle, size_t size,
183 enum dma_data_direction dir)
184 {
185 }
186
> 187 void removed_sync_single_for_device(struct device *dev,
188 dma_addr_t dma_handle, size_t size,
189 enum dma_data_direction dir)
190 {
191 }
192
> 193 void removed_sync_sg_for_cpu(struct device *dev,
194 struct scatterlist *sg, int nents,
195 enum dma_data_direction dir)
196 {
197 }
198
> 199 void removed_sync_sg_for_device(struct device *dev,
200 struct scatterlist *sg, int nents,
201 enum dma_data_direction dir)
202 {
203 }
204
205 static void __iomem *removed_remap(struct device *dev, void *cpu_addr,
206 dma_addr_t handle, size_t size, unsigned long attrs)
207 {
208 return ioremap_wc(handle, size);
209 }
210
> 211 void removed_unremap(struct device *dev, void *remapped_address, size_t size)
212 {
213 iounmap(remapped_address);
214 }
215
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 2 weeks
[intel-lts:5.4/preempt-rt 17562/19040] drivers/ptp/ptp-intel-pmc-tgpio.c:484:44: warning: missing braces around initializer
by kernel test robot
Hi Lakshmi,
FYI, the error/warning still remains.
tree: https://github.com/intel/linux-intel-lts.git 5.4/preempt-rt
head: 36a2ba81b7c7178b0612363a1af6f22887905cc6
commit: 2948bbdc34f98909857c23acd79584143ea9e0b3 [17562/19040] ptp: S/W workaround for PMC TGPIO h/w bug
config: i386-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/intel/linux-intel-lts/commit/2948bbdc34f98909857c23acd...
git remote add intel-lts https://github.com/intel/linux-intel-lts.git
git fetch --no-tags intel-lts 5.4/preempt-rt
git checkout 2948bbdc34f98909857c23acd79584143ea9e0b3
# save the attached .config to linux build tree
make W=1 ARCH=i386
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
drivers/ptp/ptp-intel-pmc-tgpio.c: In function 'intel_pmc_tgpio_counttstamp':
>> drivers/ptp/ptp-intel-pmc-tgpio.c:484:44: warning: missing braces around initializer [-Wmissing-braces]
484 | static struct timespec64 dt_ts_prev[2] = {0, 0};
| ^
| { }
At top level:
drivers/ptp/ptp-intel-pmc-tgpio.c:754:36: warning: 'intel_pmc_acpi_match' defined but not used [-Wunused-const-variable=]
754 | static const struct acpi_device_id intel_pmc_acpi_match[] = {
| ^~~~~~~~~~~~~~~~~~~~
vim +484 drivers/ptp/ptp-intel-pmc-tgpio.c
473
474 static int intel_pmc_tgpio_counttstamp
475 (struct ptp_clock_info *info, struct ptp_event_count_tstamp *count)
476 {
477 struct intel_pmc_tgpio_t *tgpio = to_intel_pmc_tgpio(info);
478 u32 dt_hi_s;
479 u32 dt_hi_e;
480 u32 dt_lo;
481 struct timespec64 dt_ts;
482 struct timespec64 tsc_now;
483 static u32 dt_lo_prev[2] = {0, 0};
> 484 static struct timespec64 dt_ts_prev[2] = {0, 0};
485 static unsigned long long prev_count[2] = {0, 0};
486
487 mutex_lock(&intel_pmc_tgpio->lock);
488 while (intel_pmc_tgpio->pin[count->index].busy) {
489 mutex_unlock(&intel_pmc_tgpio->lock);
490 wait_for_completion
491 (&intel_pmc_tgpio->pin[count->index].transact_comp);
492 mutex_lock(&intel_pmc_tgpio->lock);
493 }
494 intel_pmc_tgpio->pin[count->index].busy = true;
495 mutex_unlock(&intel_pmc_tgpio->lock);
496
497 tsc_now = get_tsc_ns_now(NULL);
498 dt_hi_s = convert_tsc_ns_to_art(&tsc_now) >> 32;
499
500 /* Reading lower 32-bit word of Time Capture Value (TCV) loads */
501 /* the event time and event count capture */
502 dt_lo = INTEL_PMC_TGPIO_RD_REG(TGPIOTCV31_0, count->index);
503 count->event_count =
504 INTEL_PMC_TGPIO_RD_REG(TGPIOECCV63_32, count->index);
505 count->event_count <<= 32;
506 count->event_count |=
507 INTEL_PMC_TGPIO_RD_REG(TGPIOECCV31_0, count->index);
508 dt_hi_e = INTEL_PMC_TGPIO_RD_REG(TGPIOTCV63_32, count->index);
509
510 if (dt_hi_e != dt_hi_s && dt_lo >> 31)
511 dt_ts = convert_art_to_tsc_ns(((u64)dt_hi_s << 32) | dt_lo);
512 else
513 dt_ts = convert_art_to_tsc_ns(((u64)dt_hi_e << 32) | dt_lo);
514
515 /* Return previous device time if the event_count
516 * isn't incremented with TCV value
517 */
518 if (count->event_count == prev_count[count->index] ||
519 dt_lo_prev[count->index] == dt_lo) {
520 count->event_count = prev_count[count->index];
521 dt_lo = dt_lo_prev[count->index];
522 dt_ts = dt_ts_prev[count->index];
523 }
524
525 count->device_time = ts64_to_ptp_clock_time(dt_ts);
526 prev_count[count->index] = count->event_count;
527 dt_lo_prev[count->index] = dt_lo;
528 dt_ts_prev[count->index] = dt_ts;
529
530 mutex_lock(&intel_pmc_tgpio->lock);
531 intel_pmc_tgpio->pin[count->index].busy = false;
532 complete(&intel_pmc_tgpio->pin[count->index].transact_comp);
533 mutex_unlock(&intel_pmc_tgpio->lock);
534
535 return 0;
536 }
537
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 2 weeks
[asahilinux:tipd/v2 1497/2972] fs/smbfs_client/cifsroot.c:83:12: error: no previous prototype for 'cifs_root_data'
by kernel test robot
Hi Steve,
First bad commit (maybe != root cause):
tree: https://github.com/AsahiLinux/linux tipd/v2
head: 33646424fbe83c154fa7bfee199e261631e445ed
commit: b4a8c8f8fa8b7b86bb62257fbb27e7bde58ac97e [1497/2972] cifs: rename fs/cifs directory to fs/smbfs_client
config: nios2-allyesconfig (attached as .config)
compiler: nios2-linux-gcc (GCC) 11.2.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://github.com/AsahiLinux/linux/commit/b4a8c8f8fa8b7b86bb62257fbb27e7...
git remote add asahilinux https://github.com/AsahiLinux/linux
git fetch --no-tags asahilinux tipd/v2
git checkout b4a8c8f8fa8b7b86bb62257fbb27e7bde58ac97e
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=nios2
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
>> fs/smbfs_client/cifsroot.c:83:12: error: no previous prototype for 'cifs_root_data' [-Werror=missing-prototypes]
83 | int __init cifs_root_data(char **dev, char **opts)
| ^~~~~~~~~~~~~~
cc1: all warnings being treated as errors
vim +/cifs_root_data +83 fs/smbfs_client/cifsroot.c
8eecd1c2e5bc73 fs/cifs/cifsroot.c Paulo Alcantara (SUSE 2019-07-16 82)
8eecd1c2e5bc73 fs/cifs/cifsroot.c Paulo Alcantara (SUSE 2019-07-16 @83) int __init cifs_root_data(char **dev, char **opts)
:::::: The code at line 83 was first introduced by commit
:::::: 8eecd1c2e5bc73d33f3a544751305679dbf88eb4 cifs: Add support for root file systems
:::::: TO: Paulo Alcantara (SUSE) <paulo(a)paulo.ac>
:::::: CC: Steve French <stfrench(a)microsoft.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 2 weeks
[xilinx-xlnx:master 10433/12535] drivers/net/ethernet/xilinx/xilinx_tsn_ep.c:251:9: error: implicit declaration of function 'axienet_mcdma_rx_probe'; did you mean 'axienet_tsn_probe'?
by kernel test robot
tree: https://github.com/Xilinx/linux-xlnx master
head: 0a88ef03d3015782318b4bc94ceb20dca375a01b
commit: a798643cd83ffa136df8a0938526671d424758fc [10433/12535] net: xilinx: Add a separate mcdma probe function for TSN IP
config: sparc64-randconfig-r021-20211103 (attached as .config)
compiler: sparc64-linux-gcc (GCC) 11.2.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://github.com/Xilinx/linux-xlnx/commit/a798643cd83ffa136df8a09385266...
git remote add xilinx-xlnx https://github.com/Xilinx/linux-xlnx
git fetch --no-tags xilinx-xlnx master
git checkout a798643cd83ffa136df8a0938526671d424758fc
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=sparc64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
drivers/net/ethernet/xilinx/xilinx_tsn_ep.c: In function 'tsn_ep_open':
drivers/net/ethernet/xilinx/xilinx_tsn_ep.c:57:23: error: implicit declaration of function 'axienet_mcdma_rx_q_init'; did you mean 'axienet_dma_q_init'? [-Werror=implicit-function-declaration]
57 | ret = axienet_mcdma_rx_q_init(ndev, q);
| ^~~~~~~~~~~~~~~~~~~~~~~
| axienet_dma_q_init
drivers/net/ethernet/xilinx/xilinx_tsn_ep.c:60:46: error: 'axienet_mcdma_rx_irq' undeclared (first use in this function); did you mean 'axienet_rx_irq'?
60 | ret = request_irq(q->rx_irq, axienet_mcdma_rx_irq,
| ^~~~~~~~~~~~~~~~~~~~
| axienet_rx_irq
drivers/net/ethernet/xilinx/xilinx_tsn_ep.c:60:46: note: each undeclared identifier is reported only once for each function it appears in
drivers/net/ethernet/xilinx/xilinx_tsn_ep.c:66:30: error: 'axienet_mcdma_err_handler' undeclared (first use in this function); did you mean 'axienet_dma_err_handler'?
66 | axienet_mcdma_err_handler,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| axienet_dma_err_handler
drivers/net/ethernet/xilinx/xilinx_tsn_ep.c:74:23: error: implicit declaration of function 'axienet_mcdma_tx_q_init'; did you mean 'axienet_dma_q_init'? [-Werror=implicit-function-declaration]
74 | ret = axienet_mcdma_tx_q_init(ndev, q);
| ^~~~~~~~~~~~~~~~~~~~~~~
| axienet_dma_q_init
drivers/net/ethernet/xilinx/xilinx_tsn_ep.c:76:46: error: 'axienet_mcdma_tx_irq' undeclared (first use in this function); did you mean 'axienet_tx_irq'?
76 | ret = request_irq(q->tx_irq, axienet_mcdma_tx_irq,
| ^~~~~~~~~~~~~~~~~~~~
| axienet_tx_irq
drivers/net/ethernet/xilinx/xilinx_tsn_ep.c: In function 'tsn_mcdma_probe':
>> drivers/net/ethernet/xilinx/xilinx_tsn_ep.c:251:9: error: implicit declaration of function 'axienet_mcdma_rx_probe'; did you mean 'axienet_tsn_probe'? [-Werror=implicit-function-declaration]
251 | axienet_mcdma_rx_probe(pdev, lp, ndev);
| ^~~~~~~~~~~~~~~~~~~~~~
| axienet_tsn_probe
>> drivers/net/ethernet/xilinx/xilinx_tsn_ep.c:252:9: error: implicit declaration of function 'axienet_mcdma_tx_probe'; did you mean 'axienet_tsn_probe'? [-Werror=implicit-function-declaration]
252 | axienet_mcdma_tx_probe(pdev, np, lp);
| ^~~~~~~~~~~~~~~~~~~~~~
| axienet_tsn_probe
cc1: some warnings being treated as errors
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for PTP_1588_CLOCK
Depends on NET && POSIX_TIMERS
Selected by
- XILINX_TSN_PTP && NETDEVICES && ETHERNET && NET_VENDOR_XILINX && XILINX_TSN
Selected by
- XILINX_AXI_EMAC_HWTSTAMP && NETDEVICES && ETHERNET && NET_VENDOR_XILINX && XILINX_AXI_EMAC
vim +251 drivers/net/ethernet/xilinx/xilinx_tsn_ep.c
30
31 /**
32 * tsn_ep_open - TSN EP driver open routine.
33 * @ndev: Pointer to net_device structure
34 *
35 * Return: 0, on success.
36 * non-zero error value on failure
37 *
38 * This is the driver open routine. It also allocates interrupt service
39 * routines, enables the interrupt lines and ISR handling. Axi Ethernet
40 * core is reset through Axi DMA core. Buffer descriptors are initialized.
41 */
42 static int tsn_ep_open(struct net_device *ndev)
43 {
44 int ret, i = 0;
45 struct axienet_local *lp = netdev_priv(ndev);
46 struct axienet_dma_q *q;
47
48 for_each_tx_dma_queue(lp, i) {
49 q = lp->dq[i];
50 /*MCDMA TX RESET*/
51 __axienet_device_reset(q);
52 }
53
54 for_each_rx_dma_queue(lp, i) {
55 q = lp->dq[i];
56
57 ret = axienet_mcdma_rx_q_init(ndev, q);
58 /* Enable interrupts for Axi MCDMA Rx
59 */
60 ret = request_irq(q->rx_irq, axienet_mcdma_rx_irq,
61 IRQF_SHARED, ndev->name, ndev);
62 if (ret)
63 goto err_dma_rx_irq;
64
65 tasklet_init(&lp->dma_err_tasklet[i],
66 axienet_mcdma_err_handler,
67 (unsigned long)lp->dq[i]);
68 napi_enable(&lp->napi[i]);
69 }
70
71 for_each_tx_dma_queue(lp, i) {
72 q = lp->dq[i];
73
> 74 ret = axienet_mcdma_tx_q_init(ndev, q);
75 /* Enable interrupts for Axi MCDMA Tx */
> 76 ret = request_irq(q->tx_irq, axienet_mcdma_tx_irq,
77 IRQF_SHARED, ndev->name, ndev);
78 if (ret)
79 goto err_dma_tx_irq;
80 }
81
82 netif_tx_start_all_queues(ndev);
83 return 0;
84
85 err_dma_tx_irq:
86 for_each_rx_dma_queue(lp, i) {
87 q = lp->dq[i];
88 free_irq(q->rx_irq, ndev);
89 }
90 err_dma_rx_irq:
91 return ret;
92 }
93
94 /**
95 * tsn_ep_stop - TSN EP driver stop routine.
96 * @ndev: Pointer to net_device structure
97 *
98 * Return: 0, on success.
99 *
100 * This is the driver stop routine. It also removes the interrupt handlers
101 * and disables the interrupts. The Axi DMA Tx/Rx BDs are released.
102 */
103 static int tsn_ep_stop(struct net_device *ndev)
104 {
105 u32 cr;
106 u32 i;
107 struct axienet_local *lp = netdev_priv(ndev);
108 struct axienet_dma_q *q;
109
110 for_each_tx_dma_queue(lp, i) {
111 q = lp->dq[i];
112 cr = axienet_dma_in32(q, XAXIDMA_TX_CR_OFFSET);
113 axienet_dma_out32(q, XAXIDMA_TX_CR_OFFSET,
114 cr & (~XAXIDMA_CR_RUNSTOP_MASK));
115 if (netif_running(ndev))
116 netif_stop_queue(ndev);
117 free_irq(q->tx_irq, ndev);
118 }
119 for_each_rx_dma_queue(lp, i) {
120 q = lp->dq[i];
121 cr = axienet_dma_in32(q, XAXIDMA_RX_CR_OFFSET);
122 axienet_dma_out32(q, XAXIDMA_RX_CR_OFFSET,
123 cr & (~XAXIDMA_CR_RUNSTOP_MASK));
124 if (netif_running(ndev))
125 netif_stop_queue(ndev);
126 napi_disable(&lp->napi[i]);
127 tasklet_kill(&lp->dma_err_tasklet[i]);
128
129 free_irq(q->rx_irq, ndev);
130 }
131
132 return 0;
133 }
134
135 /**
136 * tsn_ep_ioctl - TSN endpoint ioctl interface.
137 * @dev: Pointer to the net_device structure
138 * @rq: Socket ioctl interface request structure
139 * @cmd: Ioctl case
140 *
141 * Return: 0 on success, Non-zero error value on failure.
142 *
143 * This is the ioctl interface for TSN end point. Currently this
144 * supports only gate programming.
145 */
146 static int tsn_ep_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
147 {
148 switch (cmd) {
149 #ifdef CONFIG_XILINX_TSN_QBV
150 case SIOCCHIOCTL:
151 return axienet_set_schedule(dev, rq->ifr_data);
152 case SIOC_GET_SCHED:
153 return axienet_get_schedule(dev, rq->ifr_data);
154 #endif
155 default:
156 return -EOPNOTSUPP;
157 }
158 }
159
160 /**
161 * tsn_ep_xmit - TSN endpoint xmit routine.
162 * @skb: Packet data
163 * @dev: Pointer to the net_device structure
164 *
165 * Return: Always returns NETDEV_TX_OK.
166 *
167 * This is dummy xmit function for endpoint as all the data path is assumed to
168 * be connected by TEMAC1 as per linux view
169 */
170 static int tsn_ep_xmit(struct sk_buff *skb, struct net_device *dev)
171 {
172 kfree_skb(skb);
173 return NETDEV_TX_OK;
174 }
175
176 static const struct net_device_ops ep_netdev_ops = {
177 .ndo_open = tsn_ep_open,
178 .ndo_stop = tsn_ep_stop,
179 .ndo_do_ioctl = tsn_ep_ioctl,
180 .ndo_start_xmit = tsn_ep_xmit,
181 };
182
183 static const struct of_device_id tsn_ep_of_match[] = {
184 { .compatible = "xlnx,tsn-ep"},
185 {},
186 };
187
188 MODULE_DEVICE_TABLE(of, tsn_ep_of_match);
189
190 /* separate function is needed to probe tsn mcdma
191 * as there is asymmetry between rx channels and tx channels
192 * having unique probe for both tsn and axienet with mcdma is not possible
193 */
194 static int __maybe_unused tsn_mcdma_probe(struct platform_device *pdev,
195 struct axienet_local *lp,
196 struct net_device *ndev)
197 {
198 int i, ret = 0;
199 struct axienet_dma_q *q;
200 struct device_node *np;
201 struct resource dmares;
202 const char *str;
203 u32 num;
204
205 ret = of_property_count_strings(pdev->dev.of_node, "xlnx,channel-ids");
206 if (ret < 0)
207 return -EINVAL;
208
209 np = of_parse_phandle(pdev->dev.of_node, "axistream-connected-rx",
210 0);
211 /* get number of associated queues */
212 ret = of_property_read_u32(np, "xlnx,num-s2mm-channels", &num);
213 if (ret < 0)
214 return -EINVAL;
215
216 lp->num_rx_queues = num;
217 pr_info("%s: num_rx_queues: %d\n", __func__, lp->num_rx_queues);
218
219 for_each_rx_dma_queue(lp, i) {
220 q = kzalloc(sizeof(*q), GFP_KERNEL);
221
222 /* parent */
223 q->lp = lp;
224 lp->dq[i] = q;
225 ret = of_property_read_string_index(pdev->dev.of_node,
226 "xlnx,channel-ids", i,
227 &str);
228 ret = kstrtou16(str, 16, &q->chan_id);
229 lp->qnum[i] = i;
230 lp->chan_num[i] = q->chan_id;
231 }
232
233 if (IS_ERR(np)) {
234 dev_err(&pdev->dev, "could not find DMA node\n");
235 return ret;
236 }
237
238 ret = of_address_to_resource(np, 0, &dmares);
239 if (ret) {
240 dev_err(&pdev->dev, "unable to get DMA resource\n");
241 return ret;
242 }
243
244 lp->mcdma_regs = devm_ioremap_resource(&pdev->dev, &dmares);
245 if (IS_ERR(lp->mcdma_regs)) {
246 dev_err(&pdev->dev, "iormeap failed for the dma\n");
247 ret = PTR_ERR(lp->mcdma_regs);
248 return ret;
249 }
250
> 251 axienet_mcdma_rx_probe(pdev, lp, ndev);
> 252 axienet_mcdma_tx_probe(pdev, np, lp);
253
254 return 0;
255 }
256
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
10 months, 2 weeks