Re: [PATCH] cifsd: fix error handling in ksmbd_server_init()
by kernel test robot
Hi Dan,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on next-20210319]
[cannot apply to linus/master v5.12-rc3 v5.12-rc2 v5.12-rc1 v5.12-rc3]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Dan-Carpenter/cifsd-fix-error-ha...
base: f00397ee41c79b6155b9b44abd0055b2c0621349
config: sh-allmodconfig (attached as .config)
compiler: sh4-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://github.com/0day-ci/linux/commit/cc0b000677e90ef32431e535861911bdc...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Dan-Carpenter/cifsd-fix-error-handling-in-ksmbd_server_init/20210319-225716
git checkout cc0b000677e90ef32431e535861911bdcc4670b4
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=sh
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All error/warnings (new ones prefixed by >>, old ones prefixed by <<):
>> WARNING: modpost: fs/cifsd/ksmbd.o(.init.text+0x1c0): Section mismatch in reference from the function init_module() to the function .exit.text:ksmbd_release_inode_hash()
The function __init init_module() references
a function __exit ksmbd_release_inode_hash().
This is often seen when error handling in the init function
uses functionality in the exit path.
The fix is often to remove the __exit annotation of
ksmbd_release_inode_hash() so it may be used outside an exit section.
--
>> ERROR: modpost: "__delay" undefined!
>> ERROR: modpost: "__udivdi3" undefined!
>> ERROR: modpost: "__umoddi3" undefined!
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for SND_ATMEL_SOC_PDC
Depends on SOUND && !UML && SND && SND_SOC && SND_ATMEL_SOC && HAS_DMA
Selected by
- SND_ATMEL_SOC_SSC && SOUND && !UML && SND && SND_SOC && SND_ATMEL_SOC
- SND_ATMEL_SOC_SSC_PDC && SOUND && !UML && SND && SND_SOC && SND_ATMEL_SOC && ATMEL_SSC
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
[peterz-queue:locking/jump_label 9/12] arch/x86/kernel/jump_label.c:23:9: error: variable 'insn' has initializer but incomplete type
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git locking/jump_label
head: 3d1eb043696ac09420e73f9ef415ad7b5752be05
commit: a3f4ffd0446ee1ecf86a76420f341f428d6c9b3c [9/12] jump_label,x86: Emit short JMP
config: i386-randconfig-s001-20210318 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.3-277-gc089cd2d-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git/commit/?...
git remote add peterz-queue https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git
git fetch --no-tags peterz-queue locking/jump_label
git checkout a3f4ffd0446ee1ecf86a76420f341f428d6c9b3c
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386
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 >>):
arch/x86/kernel/jump_label.c: In function 'arch_jump_entry_size':
>> arch/x86/kernel/jump_label.c:23:9: error: variable 'insn' has initializer but incomplete type
23 | struct insn insn = {};
| ^~~~
arch/x86/kernel/jump_label.c:23:14: error: storage size of 'insn' isn't known
23 | struct insn insn = {};
| ^~~~
>> arch/x86/kernel/jump_label.c:25:2: error: implicit declaration of function 'insn_decode_kernel' [-Werror=implicit-function-declaration]
25 | insn_decode_kernel(&insn, (void *)jump_entry_code(entry));
| ^~~~~~~~~~~~~~~~~~
arch/x86/kernel/jump_label.c:23:14: warning: unused variable 'insn' [-Wunused-variable]
23 | struct insn insn = {};
| ^~~~
arch/x86/kernel/jump_label.c:29:1: error: control reaches end of non-void function [-Werror=return-type]
29 | }
| ^
cc1: some warnings being treated as errors
vim +/insn +23 arch/x86/kernel/jump_label.c
20
21 int arch_jump_entry_size(struct jump_entry *entry)
22 {
> 23 struct insn insn = {};
24
> 25 insn_decode_kernel(&insn, (void *)jump_entry_code(entry));
26 BUG_ON(insn.length != 2 && insn.length != 5);
27
28 return insn.length;
29 }
30
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
[thierryreding:for-5.13/work 27/49] include/linux/iommu.h:1064:36: error: redefinition of 'dev_iommu_fwspec_get'
by kernel test robot
tree: https://github.com/thierryreding/linux for-5.13/work
head: 009ea3ee74a12859073a37d2ef800fa154ff7705
commit: d006496f132a87d2a36130b1e3d7b471e530c459 [27/49] iommu: Add dummy dev_iommu_fwspec_get() helper
config: nds32-defconfig (attached as .config)
compiler: nds32le-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://github.com/thierryreding/linux/commit/d006496f132a87d2a36130b1e3d...
git remote add thierryreding https://github.com/thierryreding/linux
git fetch --no-tags thierryreding for-5.13/work
git checkout d006496f132a87d2a36130b1e3d7b471e530c459
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=nds32
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 >>):
In file included from include/linux/of_iommu.h:6,
from drivers/of/device.c:7:
>> include/linux/iommu.h:1064:36: error: redefinition of 'dev_iommu_fwspec_get'
1064 | static inline struct iommu_fwspec *dev_iommu_fwspec_get(struct device *dev)
| ^~~~~~~~~~~~~~~~~~~~
include/linux/iommu.h:982:36: note: previous definition of 'dev_iommu_fwspec_get' was here
982 | static inline struct iommu_fwspec *dev_iommu_fwspec_get(struct device *dev)
| ^~~~~~~~~~~~~~~~~~~~
vim +/dev_iommu_fwspec_get +1064 include/linux/iommu.h
4c7c171f85b261 Yi L Liu 2019-10-02 1063
0008d0c3b1ab03 Joerg Roedel 2020-03-26 @1064 static inline struct iommu_fwspec *dev_iommu_fwspec_get(struct device *dev)
0008d0c3b1ab03 Joerg Roedel 2020-03-26 1065 {
0008d0c3b1ab03 Joerg Roedel 2020-03-26 1066 return NULL;
0008d0c3b1ab03 Joerg Roedel 2020-03-26 1067 }
4a77a6cf6d9bf9 Joerg Roedel 2008-11-26 1068 #endif /* CONFIG_IOMMU_API */
4a77a6cf6d9bf9 Joerg Roedel 2008-11-26 1069
:::::: The code at line 1064 was first introduced by commit
:::::: 0008d0c3b1ab03b046b04b7bd9d70df1e2fffbfc iommu: Define dev_iommu_fwspec_get() for !CONFIG_IOMMU_API
:::::: TO: Joerg Roedel <jroedel(a)suse.de>
:::::: CC: Joerg Roedel <jroedel(a)suse.de>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
[linux-stable-rc:linux-4.19.y 2415/3689] arch/riscv/include/asm/processor.h:82:2: error: implicit declaration of function 'barrier'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.19.y
head: 7281e11121f6fb47ea1e757b7781c5c15e3781fe
commit: b207caff4176e3a6ba273243da2db2e595e4aad2 [2415/3689] compiler.h: fix barrier_data() on clang
config: riscv-allyesconfig (attached as .config)
compiler: riscv64-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/stable/linux-stable-rc.gi...
git remote add linux-stable-rc https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
git fetch --no-tags linux-stable-rc linux-4.19.y
git checkout b207caff4176e3a6ba273243da2db2e595e4aad2
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=riscv
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 >>):
In file included from include/linux/prefetch.h:15,
from drivers/net/ethernet/mellanox/mlx5/core/en_rx.c:33:
arch/riscv/include/asm/processor.h: In function 'cpu_relax':
>> arch/riscv/include/asm/processor.h:82:2: error: implicit declaration of function 'barrier' [-Werror=implicit-function-declaration]
82 | barrier();
| ^~~~~~~
In file included from drivers/net/ethernet/mellanox/mlx5/core/en_rx.c:41:
At top level:
drivers/net/ethernet/mellanox/mlx5/core/en.h:208:19: warning: 'mlx5e_priv_flags' defined but not used [-Wunused-const-variable=]
208 | static const char mlx5e_priv_flags[][ETH_GSTRING_LEN] = {
| ^~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +/barrier +82 arch/riscv/include/asm/processor.h
7db91e57a0acde Palmer Dabbelt 2017-07-10 73
7db91e57a0acde Palmer Dabbelt 2017-07-10 74
7db91e57a0acde Palmer Dabbelt 2017-07-10 75 static inline void cpu_relax(void)
7db91e57a0acde Palmer Dabbelt 2017-07-10 76 {
7db91e57a0acde Palmer Dabbelt 2017-07-10 77 #ifdef __riscv_muldiv
7db91e57a0acde Palmer Dabbelt 2017-07-10 78 int dummy;
7db91e57a0acde Palmer Dabbelt 2017-07-10 79 /* In lieu of a halt instruction, induce a long-latency stall. */
7db91e57a0acde Palmer Dabbelt 2017-07-10 80 __asm__ __volatile__ ("div %0, %0, zero" : "=r" (dummy));
7db91e57a0acde Palmer Dabbelt 2017-07-10 81 #endif
7db91e57a0acde Palmer Dabbelt 2017-07-10 @82 barrier();
7db91e57a0acde Palmer Dabbelt 2017-07-10 83 }
7db91e57a0acde Palmer Dabbelt 2017-07-10 84
:::::: The code at line 82 was first introduced by commit
:::::: 7db91e57a0acde126a162ababfb1e0ab190130cb RISC-V: Task implementation
:::::: TO: Palmer Dabbelt <palmer(a)dabbelt.com>
:::::: CC: Palmer Dabbelt <palmer(a)dabbelt.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
[chrome-os:chromeos-4.4 60/216] drivers/staging/media/rkisp1/rkisp1-stats.c:384:21: error: 'struct vb2_buffer' has no member named 'timestamp'
by kernel test robot
tree: https://chromium.googlesource.com/chromiumos/third_party/kernel chromeos-4.4
head: a321cfdc9afc13deeb29da992f74141226f914c8
commit: 4aca6a37205e1af1aedd516811fa10ae8aea6b3b [60/216] UPSTREAM: media: staging: rkisp1: add capture device for statistics
config: nios2-allyesconfig (attached as .config)
compiler: nios2-linux-gcc (GCC) 7.5.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
git remote add chrome-os https://chromium.googlesource.com/chromiumos/third_party/kernel
git fetch --no-tags chrome-os chromeos-4.4
git checkout 4aca6a37205e1af1aedd516811fa10ae8aea6b3b
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-7.5.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>
Note: the chrome-os/chromeos-4.4 HEAD a321cfdc9afc13deeb29da992f74141226f914c8 builds fine.
It only hurts bisectibility.
All error/warnings (new ones prefixed by >>):
In file included from include/linux/poll.h:5:0,
from include/media/v4l2-dev.h:12,
from include/media/v4l2-common.h:29,
from drivers/staging/media/rkisp1/rkisp1-stats.c:8:
include/linux/scatterlist.h: In function 'sg_set_buf':
arch/nios2/include/asm/page.h:90:33: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
# define pfn_valid(pfn) ((pfn) >= ARCH_PFN_OFFSET && \
^
include/linux/compiler.h:182:42: note: in definition of macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
include/linux/scatterlist.h:140:2: note: in expansion of macro 'BUG_ON'
BUG_ON(!virt_addr_valid(buf));
^~~~~~
arch/nios2/include/asm/page.h:94:33: note: in expansion of macro 'pfn_valid'
# define virt_addr_valid(vaddr) pfn_valid(PFN_DOWN(virt_to_phys(vaddr)))
^~~~~~~~~
include/linux/scatterlist.h:140:10: note: in expansion of macro 'virt_addr_valid'
BUG_ON(!virt_addr_valid(buf));
^~~~~~~~~~~~~~~
In file included from drivers/staging/media/rkisp1/rkisp1-common.h:14:0,
from drivers/staging/media/rkisp1/rkisp1-stats.c:14:
include/linux/clk.h: At top level:
include/linux/clk.h:199:70: warning: 'struct clk_bulk_data' declared inside parameter list will not be visible outside of this definition or declaration
static inline int __must_check clk_bulk_prepare(int num_clks, struct clk_bulk_data *clks)
^~~~~~~~~~~~~
include/linux/clk.h:223:60: warning: 'struct clk_bulk_data' declared inside parameter list will not be visible outside of this definition or declaration
static inline void clk_bulk_unprepare(int num_clks, struct clk_bulk_data *clks)
^~~~~~~~~~~~~
include/linux/clk.h:528:17: warning: 'struct clk_bulk_data' declared inside parameter list will not be visible outside of this definition or declaration
struct clk_bulk_data *clks)
^~~~~~~~~~~~~
include/linux/clk.h:539:15: warning: 'struct clk_bulk_data' declared inside parameter list will not be visible outside of this definition or declaration
struct clk_bulk_data *clks)
^~~~~~~~~~~~~
include/linux/clk.h:546:54: warning: 'struct clk_bulk_data' declared inside parameter list will not be visible outside of this definition or declaration
static inline void clk_bulk_put(int num_clks, struct clk_bulk_data *clks) {}
^~~~~~~~~~~~~
include/linux/clk.h:555:69: warning: 'struct clk_bulk_data' declared inside parameter list will not be visible outside of this definition or declaration
static inline int __must_check clk_bulk_enable(int num_clks, struct clk_bulk_data *clks)
^~~~~~~~~~~~~
include/linux/clk.h:564:16: warning: 'struct clk_bulk_data' declared inside parameter list will not be visible outside of this definition or declaration
struct clk_bulk_data *clks) {}
^~~~~~~~~~~~~
include/linux/clk.h:624:13: warning: 'struct clk_bulk_data' declared inside parameter list will not be visible outside of this definition or declaration
struct clk_bulk_data *clks)
^~~~~~~~~~~~~
include/linux/clk.h: In function 'clk_bulk_prepare_enable':
include/linux/clk.h:628:35: warning: passing argument 2 of 'clk_bulk_prepare' from incompatible pointer type [-Wincompatible-pointer-types]
ret = clk_bulk_prepare(num_clks, clks);
^~~~
include/linux/clk.h:199:32: note: expected 'struct clk_bulk_data *' but argument is of type 'struct clk_bulk_data *'
static inline int __must_check clk_bulk_prepare(int num_clks, struct clk_bulk_data *clks)
^~~~~~~~~~~~~~~~
include/linux/clk.h:631:34: warning: passing argument 2 of 'clk_bulk_enable' from incompatible pointer type [-Wincompatible-pointer-types]
ret = clk_bulk_enable(num_clks, clks);
^~~~
include/linux/clk.h:555:32: note: expected 'struct clk_bulk_data *' but argument is of type 'struct clk_bulk_data *'
static inline int __must_check clk_bulk_enable(int num_clks, struct clk_bulk_data *clks)
^~~~~~~~~~~~~~~
include/linux/clk.h:633:32: warning: passing argument 2 of 'clk_bulk_unprepare' from incompatible pointer type [-Wincompatible-pointer-types]
clk_bulk_unprepare(num_clks, clks);
^~~~
include/linux/clk.h:223:20: note: expected 'struct clk_bulk_data *' but argument is of type 'struct clk_bulk_data *'
static inline void clk_bulk_unprepare(int num_clks, struct clk_bulk_data *clks)
^~~~~~~~~~~~~~~~~~
include/linux/clk.h: At top level:
include/linux/clk.h:639:19: warning: 'struct clk_bulk_data' declared inside parameter list will not be visible outside of this definition or declaration
struct clk_bulk_data *clks)
^~~~~~~~~~~~~
include/linux/clk.h: In function 'clk_bulk_disable_unprepare':
include/linux/clk.h:641:29: warning: passing argument 2 of 'clk_bulk_disable' from incompatible pointer type [-Wincompatible-pointer-types]
clk_bulk_disable(num_clks, clks);
^~~~
include/linux/clk.h:563:20: note: expected 'struct clk_bulk_data *' but argument is of type 'struct clk_bulk_data *'
static inline void clk_bulk_disable(int num_clks,
^~~~~~~~~~~~~~~~
include/linux/clk.h:642:31: warning: passing argument 2 of 'clk_bulk_unprepare' from incompatible pointer type [-Wincompatible-pointer-types]
clk_bulk_unprepare(num_clks, clks);
^~~~
include/linux/clk.h:223:20: note: expected 'struct clk_bulk_data *' but argument is of type 'struct clk_bulk_data *'
static inline void clk_bulk_unprepare(int num_clks, struct clk_bulk_data *clks)
^~~~~~~~~~~~~~~~~~
In file included from drivers/staging/media/rkisp1/rkisp1-stats.c:14:0:
drivers/staging/media/rkisp1/rkisp1-common.h: At top level:
drivers/staging/media/rkisp1/rkisp1-common.h:231:23: error: array type has incomplete element type 'struct clk_bulk_data'
struct clk_bulk_data clks[RKISP1_MAX_BUS_CLK];
^~~~
>> drivers/staging/media/rkisp1/rkisp1-stats.c:189:17: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types]
.queue_setup = rkisp1_stats_vb2_queue_setup,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/staging/media/rkisp1/rkisp1-stats.c:189:17: note: (near initialization for 'rkisp1_stats_vb2_ops.queue_setup')
drivers/staging/media/rkisp1/rkisp1-stats.c: In function 'rkisp1_stats_send_measurement':
>> drivers/staging/media/rkisp1/rkisp1-stats.c:384:21: error: 'struct vb2_buffer' has no member named 'timestamp'
cur_buf->vb.vb2_buf.timestamp = timestamp;
^
drivers/staging/media/rkisp1/rkisp1-stats.c: In function 'rkisp1_stats_register':
>> drivers/staging/media/rkisp1/rkisp1-stats.c:486:8: error: implicit declaration of function 'media_entity_pads_init'; did you mean 'media_entity_init'? [-Werror=implicit-function-declaration]
ret = media_entity_pads_init(&vdev->entity, 1, &node->pad);
^~~~~~~~~~~~~~~~~~~~~~
media_entity_init
cc1: some warnings being treated as errors
vim +384 drivers/staging/media/rkisp1/rkisp1-stats.c
187
188 static const struct vb2_ops rkisp1_stats_vb2_ops = {
> 189 .queue_setup = rkisp1_stats_vb2_queue_setup,
190 .buf_queue = rkisp1_stats_vb2_buf_queue,
191 .buf_prepare = rkisp1_stats_vb2_buf_prepare,
192 .wait_prepare = vb2_ops_wait_prepare,
193 .wait_finish = vb2_ops_wait_finish,
194 .stop_streaming = rkisp1_stats_vb2_stop_streaming,
195 .start_streaming = rkisp1_stats_vb2_start_streaming,
196 };
197
198 static int
199 rkisp1_stats_init_vb2_queue(struct vb2_queue *q, struct rkisp1_stats *stats)
200 {
201 struct rkisp1_vdev_node *node;
202
203 node = container_of(q, struct rkisp1_vdev_node, buf_queue);
204
205 q->type = V4L2_BUF_TYPE_META_CAPTURE;
206 q->io_modes = VB2_MMAP | VB2_USERPTR | VB2_DMABUF;
207 q->drv_priv = stats;
208 q->ops = &rkisp1_stats_vb2_ops;
209 q->mem_ops = &vb2_vmalloc_memops;
210 q->buf_struct_size = sizeof(struct rkisp1_buffer);
211 q->timestamp_flags = V4L2_BUF_FLAG_TIMESTAMP_MONOTONIC;
212 q->lock = &node->vlock;
213
214 return vb2_queue_init(q);
215 }
216
217 static void rkisp1_stats_get_awb_meas(struct rkisp1_stats *stats,
218 struct rkisp1_stat_buffer *pbuf)
219 {
220 /* Protect against concurrent access from ISR? */
221 struct rkisp1_device *rkisp1 = stats->rkisp1;
222 u32 reg_val;
223
224 pbuf->meas_type |= RKISP1_CIF_ISP_STAT_AWB;
225 reg_val = rkisp1_read(rkisp1, RKISP1_CIF_ISP_AWB_WHITE_CNT);
226 pbuf->params.awb.awb_mean[0].cnt =
227 RKISP1_CIF_ISP_AWB_GET_PIXEL_CNT(reg_val);
228 reg_val = rkisp1_read(rkisp1, RKISP1_CIF_ISP_AWB_MEAN);
229
230 pbuf->params.awb.awb_mean[0].mean_cr_or_r =
231 RKISP1_CIF_ISP_AWB_GET_MEAN_CR_R(reg_val);
232 pbuf->params.awb.awb_mean[0].mean_cb_or_b =
233 RKISP1_CIF_ISP_AWB_GET_MEAN_CB_B(reg_val);
234 pbuf->params.awb.awb_mean[0].mean_y_or_g =
235 RKISP1_CIF_ISP_AWB_GET_MEAN_Y_G(reg_val);
236 }
237
238 static void rkisp1_stats_get_aec_meas(struct rkisp1_stats *stats,
239 struct rkisp1_stat_buffer *pbuf)
240 {
241 struct rkisp1_device *rkisp1 = stats->rkisp1;
242 unsigned int i;
243
244 pbuf->meas_type |= RKISP1_CIF_ISP_STAT_AUTOEXP;
245 for (i = 0; i < RKISP1_CIF_ISP_AE_MEAN_MAX; i++)
246 pbuf->params.ae.exp_mean[i] =
247 (u8)rkisp1_read(rkisp1,
248 RKISP1_CIF_ISP_EXP_MEAN_00 + i * 4);
249 }
250
251 static void rkisp1_stats_get_afc_meas(struct rkisp1_stats *stats,
252 struct rkisp1_stat_buffer *pbuf)
253 {
254 struct rkisp1_device *rkisp1 = stats->rkisp1;
255 struct rkisp1_cif_isp_af_stat *af;
256
257 pbuf->meas_type = RKISP1_CIF_ISP_STAT_AFM_FIN;
258
259 af = &pbuf->params.af;
260 af->window[0].sum = rkisp1_read(rkisp1, RKISP1_CIF_ISP_AFM_SUM_A);
261 af->window[0].lum = rkisp1_read(rkisp1, RKISP1_CIF_ISP_AFM_LUM_A);
262 af->window[1].sum = rkisp1_read(rkisp1, RKISP1_CIF_ISP_AFM_SUM_B);
263 af->window[1].lum = rkisp1_read(rkisp1, RKISP1_CIF_ISP_AFM_LUM_B);
264 af->window[2].sum = rkisp1_read(rkisp1, RKISP1_CIF_ISP_AFM_SUM_C);
265 af->window[2].lum = rkisp1_read(rkisp1, RKISP1_CIF_ISP_AFM_LUM_C);
266 }
267
268 static void rkisp1_stats_get_hst_meas(struct rkisp1_stats *stats,
269 struct rkisp1_stat_buffer *pbuf)
270 {
271 struct rkisp1_device *rkisp1 = stats->rkisp1;
272 unsigned int i;
273
274 pbuf->meas_type |= RKISP1_CIF_ISP_STAT_HIST;
275 for (i = 0; i < RKISP1_CIF_ISP_HIST_BIN_N_MAX; i++)
276 pbuf->params.hist.hist_bins[i] =
277 (u8)rkisp1_read(rkisp1,
278 RKISP1_CIF_ISP_HIST_BIN_0 + i * 4);
279 }
280
281 static void rkisp1_stats_get_bls_meas(struct rkisp1_stats *stats,
282 struct rkisp1_stat_buffer *pbuf)
283 {
284 struct rkisp1_device *rkisp1 = stats->rkisp1;
285 const struct rkisp1_isp_mbus_info *in_fmt = rkisp1->isp.sink_fmt;
286 struct rkisp1_cif_isp_bls_meas_val *bls_val;
287
288 bls_val = &pbuf->params.ae.bls_val;
289 if (in_fmt->bayer_pat == RKISP1_RAW_BGGR) {
290 bls_val->meas_b =
291 rkisp1_read(rkisp1, RKISP1_CIF_ISP_BLS_A_MEASURED);
292 bls_val->meas_gb =
293 rkisp1_read(rkisp1, RKISP1_CIF_ISP_BLS_B_MEASURED);
294 bls_val->meas_gr =
295 rkisp1_read(rkisp1, RKISP1_CIF_ISP_BLS_C_MEASURED);
296 bls_val->meas_r =
297 rkisp1_read(rkisp1, RKISP1_CIF_ISP_BLS_D_MEASURED);
298 } else if (in_fmt->bayer_pat == RKISP1_RAW_GBRG) {
299 bls_val->meas_gb =
300 rkisp1_read(rkisp1, RKISP1_CIF_ISP_BLS_A_MEASURED);
301 bls_val->meas_b =
302 rkisp1_read(rkisp1, RKISP1_CIF_ISP_BLS_B_MEASURED);
303 bls_val->meas_r =
304 rkisp1_read(rkisp1, RKISP1_CIF_ISP_BLS_C_MEASURED);
305 bls_val->meas_gr =
306 rkisp1_read(rkisp1, RKISP1_CIF_ISP_BLS_D_MEASURED);
307 } else if (in_fmt->bayer_pat == RKISP1_RAW_GRBG) {
308 bls_val->meas_gr =
309 rkisp1_read(rkisp1, RKISP1_CIF_ISP_BLS_A_MEASURED);
310 bls_val->meas_r =
311 rkisp1_read(rkisp1, RKISP1_CIF_ISP_BLS_B_MEASURED);
312 bls_val->meas_b =
313 rkisp1_read(rkisp1, RKISP1_CIF_ISP_BLS_C_MEASURED);
314 bls_val->meas_gb =
315 rkisp1_read(rkisp1, RKISP1_CIF_ISP_BLS_D_MEASURED);
316 } else if (in_fmt->bayer_pat == RKISP1_RAW_RGGB) {
317 bls_val->meas_r =
318 rkisp1_read(rkisp1, RKISP1_CIF_ISP_BLS_A_MEASURED);
319 bls_val->meas_gr =
320 rkisp1_read(rkisp1, RKISP1_CIF_ISP_BLS_B_MEASURED);
321 bls_val->meas_gb =
322 rkisp1_read(rkisp1, RKISP1_CIF_ISP_BLS_C_MEASURED);
323 bls_val->meas_b =
324 rkisp1_read(rkisp1, RKISP1_CIF_ISP_BLS_D_MEASURED);
325 }
326 }
327
328 static void
329 rkisp1_stats_send_measurement(struct rkisp1_stats *stats,
330 struct rkisp1_isp_readout_work *meas_work)
331 {
332 struct rkisp1_stat_buffer *cur_stat_buf;
333 struct rkisp1_buffer *cur_buf = NULL;
334 unsigned int frame_sequence =
335 atomic_read(&stats->rkisp1->isp.frame_sequence);
336 u64 timestamp = ktime_get_ns();
337
338 if (frame_sequence != meas_work->frame_id) {
339 dev_warn(stats->rkisp1->dev,
340 "Measurement late(%d, %d)\n",
341 frame_sequence, meas_work->frame_id);
342 frame_sequence = meas_work->frame_id;
343 }
344
345 mutex_lock(&stats->wq_lock);
346 /* get one empty buffer */
347 if (!list_empty(&stats->stat)) {
348 cur_buf = list_first_entry(&stats->stat,
349 struct rkisp1_buffer, queue);
350 list_del(&cur_buf->queue);
351 }
352 mutex_unlock(&stats->wq_lock);
353
354 if (!cur_buf)
355 return;
356
357 cur_stat_buf =
358 (struct rkisp1_stat_buffer *)(cur_buf->vaddr[0]);
359
360 if (meas_work->isp_ris & RKISP1_CIF_ISP_AWB_DONE) {
361 rkisp1_stats_get_awb_meas(stats, cur_stat_buf);
362 cur_stat_buf->meas_type |= RKISP1_CIF_ISP_STAT_AWB;
363 }
364
365 if (meas_work->isp_ris & RKISP1_CIF_ISP_AFM_FIN) {
366 rkisp1_stats_get_afc_meas(stats, cur_stat_buf);
367 cur_stat_buf->meas_type |= RKISP1_CIF_ISP_STAT_AFM_FIN;
368 }
369
370 if (meas_work->isp_ris & RKISP1_CIF_ISP_EXP_END) {
371 rkisp1_stats_get_aec_meas(stats, cur_stat_buf);
372 rkisp1_stats_get_bls_meas(stats, cur_stat_buf);
373 cur_stat_buf->meas_type |= RKISP1_CIF_ISP_STAT_AUTOEXP;
374 }
375
376 if (meas_work->isp_ris & RKISP1_CIF_ISP_HIST_MEASURE_RDY) {
377 rkisp1_stats_get_hst_meas(stats, cur_stat_buf);
378 cur_stat_buf->meas_type |= RKISP1_CIF_ISP_STAT_HIST;
379 }
380
381 vb2_set_plane_payload(&cur_buf->vb.vb2_buf, 0,
382 sizeof(struct rkisp1_stat_buffer));
383 cur_buf->vb.sequence = frame_sequence;
> 384 cur_buf->vb.vb2_buf.timestamp = timestamp;
385 vb2_buffer_done(&cur_buf->vb.vb2_buf, VB2_BUF_STATE_DONE);
386 }
387
388 static void rkisp1_stats_readout_work(struct work_struct *work)
389 {
390 struct rkisp1_isp_readout_work *readout_work =
391 container_of(work, struct rkisp1_isp_readout_work, work);
392 struct rkisp1_stats *stats = readout_work->stats;
393
394 if (readout_work->readout == RKISP1_ISP_READOUT_MEAS)
395 rkisp1_stats_send_measurement(stats, readout_work);
396
397 kfree(readout_work);
398 }
399
400 void rkisp1_stats_isr(struct rkisp1_stats *stats, u32 isp_ris)
401 {
402 unsigned int frame_sequence =
403 atomic_read(&stats->rkisp1->isp.frame_sequence);
404 struct rkisp1_device *rkisp1 = stats->rkisp1;
405 struct rkisp1_isp_readout_work *work;
406 unsigned int isp_mis_tmp = 0;
407 u32 val;
408
409 spin_lock(&stats->irq_lock);
410
411 val = RKISP1_CIF_ISP_AWB_DONE | RKISP1_CIF_ISP_AFM_FIN |
412 RKISP1_CIF_ISP_EXP_END | RKISP1_CIF_ISP_HIST_MEASURE_RDY;
413 rkisp1_write(rkisp1, val, RKISP1_CIF_ISP_ICR);
414
415 isp_mis_tmp = rkisp1_read(rkisp1, RKISP1_CIF_ISP_MIS);
416 if (isp_mis_tmp &
417 (RKISP1_CIF_ISP_AWB_DONE | RKISP1_CIF_ISP_AFM_FIN |
418 RKISP1_CIF_ISP_EXP_END | RKISP1_CIF_ISP_HIST_MEASURE_RDY))
419 rkisp1->debug.stats_error++;
420
421 if (!stats->is_streaming)
422 goto unlock;
423 if (isp_ris & (RKISP1_CIF_ISP_AWB_DONE |
424 RKISP1_CIF_ISP_AFM_FIN |
425 RKISP1_CIF_ISP_EXP_END |
426 RKISP1_CIF_ISP_HIST_MEASURE_RDY)) {
427 work = kzalloc(sizeof(*work), GFP_ATOMIC);
428 if (work) {
429 INIT_WORK(&work->work,
430 rkisp1_stats_readout_work);
431 work->readout = RKISP1_ISP_READOUT_MEAS;
432 work->stats = stats;
433 work->frame_id = frame_sequence;
434 work->isp_ris = isp_ris;
435 if (!queue_work(stats->readout_wq,
436 &work->work))
437 kfree(work);
438 } else {
439 dev_err(stats->rkisp1->dev,
440 "Could not allocate work\n");
441 }
442 }
443
444 unlock:
445 spin_unlock(&stats->irq_lock);
446 }
447
448 static void rkisp1_init_stats(struct rkisp1_stats *stats)
449 {
450 stats->vdev_fmt.fmt.meta.dataformat =
451 V4L2_META_FMT_RK_ISP1_STAT_3A;
452 stats->vdev_fmt.fmt.meta.buffersize =
453 sizeof(struct rkisp1_stat_buffer);
454 }
455
456 int rkisp1_stats_register(struct rkisp1_stats *stats,
457 struct v4l2_device *v4l2_dev,
458 struct rkisp1_device *rkisp1)
459 {
460 struct rkisp1_vdev_node *node = &stats->vnode;
461 struct video_device *vdev = &node->vdev;
462 int ret;
463
464 stats->rkisp1 = rkisp1;
465 mutex_init(&stats->wq_lock);
466 mutex_init(&node->vlock);
467 INIT_LIST_HEAD(&stats->stat);
468 spin_lock_init(&stats->irq_lock);
469
470 strscpy(vdev->name, RKISP1_STATS_DEV_NAME, sizeof(vdev->name));
471
472 video_set_drvdata(vdev, stats);
473 vdev->ioctl_ops = &rkisp1_stats_ioctl;
474 vdev->fops = &rkisp1_stats_fops;
475 vdev->release = video_device_release_empty;
476 vdev->lock = &node->vlock;
477 vdev->v4l2_dev = v4l2_dev;
478 vdev->queue = &node->buf_queue;
479 vdev->device_caps = V4L2_CAP_META_CAPTURE | V4L2_CAP_STREAMING;
480 vdev->vfl_dir = VFL_DIR_RX;
481 rkisp1_stats_init_vb2_queue(vdev->queue, stats);
482 rkisp1_init_stats(stats);
483 video_set_drvdata(vdev, stats);
484
485 node->pad.flags = MEDIA_PAD_FL_SINK;
> 486 ret = media_entity_pads_init(&vdev->entity, 1, &node->pad);
487 if (ret)
488 goto err_release_queue;
489
490 ret = video_register_device(vdev, VFL_TYPE_GRABBER, -1);
491 if (ret) {
492 dev_err(&vdev->dev,
493 "failed to register %s, ret=%d\n", vdev->name, ret);
494 goto err_cleanup_media_entity;
495 }
496
497 stats->readout_wq = alloc_workqueue("measurement_queue",
498 WQ_UNBOUND | WQ_MEM_RECLAIM,
499 1);
500
501 if (!stats->readout_wq) {
502 ret = -ENOMEM;
503 goto err_unreg_vdev;
504 }
505
506 return 0;
507
508 err_unreg_vdev:
509 video_unregister_device(vdev);
510 err_cleanup_media_entity:
511 media_entity_cleanup(&vdev->entity);
512 err_release_queue:
513 vb2_queue_release(vdev->queue);
514 mutex_destroy(&node->vlock);
515 mutex_destroy(&stats->wq_lock);
516 return ret;
517 }
518
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
[mel:mm-bulk-rebase-v5r7 13/15] net/sunrpc/svc_xprt.c:666:13: error: implicit declaration of function 'alloc_pages_bulk'; did you mean
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/mel/linux.git mm-bulk-rebase-v5r7
head: 4421e102e22b8958c4a06e33d5a628f1d0b6110e
commit: e0184c95d87dcd562f509145ada6da38e5b5f252 [13/15] SUNRPC: Refresh rq_pages using a bulk page allocator
config: m68k-allmodconfig (attached as .config)
compiler: m68k-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/mel/linux.git/commit/?id=...
git remote add mel https://git.kernel.org/pub/scm/linux/kernel/git/mel/linux.git
git fetch --no-tags mel mm-bulk-rebase-v5r7
git checkout e0184c95d87dcd562f509145ada6da38e5b5f252
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k
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 >>):
In file included from include/linux/kernel.h:10,
from include/linux/list.h:9,
from include/linux/rculist.h:10,
from include/linux/pid.h:5,
from include/linux/sched.h:14,
from net/sunrpc/svc_xprt.c:8:
include/linux/scatterlist.h: In function 'sg_set_buf':
arch/m68k/include/asm/page_mm.h:174:49: warning: ordered comparison of pointer with null pointer [-Wextra]
174 | #define virt_addr_valid(kaddr) ((void *)(kaddr) >= (void *)PAGE_OFFSET && (void *)(kaddr) < high_memory)
| ^~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
include/linux/scatterlist.h:137:2: note: in expansion of macro 'BUG_ON'
137 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~
include/linux/scatterlist.h:137:10: note: in expansion of macro 'virt_addr_valid'
137 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~~~~~~~~~~
net/sunrpc/svc_xprt.c: In function 'svc_alloc_arg':
>> net/sunrpc/svc_xprt.c:666:13: error: implicit declaration of function 'alloc_pages_bulk'; did you mean 'alloc_pages_node'? [-Werror=implicit-function-declaration]
666 | needed -= alloc_pages_bulk(GFP_KERNEL, needed, &list);
| ^~~~~~~~~~~~~~~~
| alloc_pages_node
cc1: some warnings being treated as errors
vim +666 net/sunrpc/svc_xprt.c
641
642 static int svc_alloc_arg(struct svc_rqst *rqstp)
643 {
644 struct svc_serv *serv = rqstp->rq_server;
645 unsigned long needed;
646 struct xdr_buf *arg;
647 struct page *page;
648 LIST_HEAD(list);
649 int pages;
650 int i;
651
652 pages = (serv->sv_max_mesg + 2 * PAGE_SIZE) >> PAGE_SHIFT;
653 if (pages > RPCSVC_MAXPAGES) {
654 pr_warn_once("svc: warning: pages=%u > RPCSVC_MAXPAGES=%lu\n",
655 pages, RPCSVC_MAXPAGES);
656 /* use as many pages as possible */
657 pages = RPCSVC_MAXPAGES;
658 }
659
660 for (needed = 0, i = 0; i < pages ; i++) {
661 if (!rqstp->rq_pages[i])
662 needed++;
663 }
664 i = 0;
665 while (needed) {
> 666 needed -= alloc_pages_bulk(GFP_KERNEL, needed, &list);
667 for (; i < pages; i++) {
668 if (rqstp->rq_pages[i])
669 continue;
670 page = list_first_entry_or_null(&list, struct page, lru);
671 if (likely(page)) {
672 list_del(&page->lru);
673 rqstp->rq_pages[i] = page;
674 continue;
675 }
676 set_current_state(TASK_INTERRUPTIBLE);
677 if (signalled() || kthread_should_stop()) {
678 set_current_state(TASK_RUNNING);
679 return -EINTR;
680 }
681 schedule_timeout(msecs_to_jiffies(500));
682 break;
683 }
684 }
685 rqstp->rq_page_end = &rqstp->rq_pages[pages];
686 rqstp->rq_pages[pages] = NULL; /* this might be seen in nfsd_splice_actor() */
687
688 /* Make arg->head point to first page and arg->pages point to rest */
689 arg = &rqstp->rq_arg;
690 arg->head[0].iov_base = page_address(rqstp->rq_pages[0]);
691 arg->head[0].iov_len = PAGE_SIZE;
692 arg->pages = rqstp->rq_pages + 1;
693 arg->page_base = 0;
694 /* save at least one page for response */
695 arg->page_len = (pages-2)*PAGE_SIZE;
696 arg->len = (pages-1)*PAGE_SIZE;
697 arg->tail[0].iov_len = 0;
698 return 0;
699 }
700
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
arch/alpha/lib/csum_partial_copy.c:328:1: error: no previous prototype for 'csum_and_copy_from_user'
by kernel test robot
Hi Al,
FYI, the error/warning still remains.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 8b12a62a4e3ed4ae99c715034f557eb391d6b196
commit: 808b49da54e640cba5c5c92dee658018a529226b alpha: turn csum_partial_copy_from_user() into csum_and_copy_from_user()
date: 10 months ago
config: alpha-defconfig (attached as .config)
compiler: alpha-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/torvalds/linux.git/commit...
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 808b49da54e640cba5c5c92dee658018a529226b
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=alpha
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 >>):
>> arch/alpha/lib/csum_partial_copy.c:328:1: error: no previous prototype for 'csum_and_copy_from_user' [-Werror=missing-prototypes]
328 | csum_and_copy_from_user(const void __user *src, void *dst, int len,
| ^~~~~~~~~~~~~~~~~~~~~~~
arch/alpha/lib/csum_partial_copy.c:375:1: error: no previous prototype for 'csum_partial_copy_nocheck' [-Werror=missing-prototypes]
375 | csum_partial_copy_nocheck(const void *src, void *dst, int len, __wsum sum)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
vim +/csum_and_copy_from_user +328 arch/alpha/lib/csum_partial_copy.c
326
327 __wsum
> 328 csum_and_copy_from_user(const void __user *src, void *dst, int len,
329 __wsum sum, int *errp)
330 {
331 unsigned long checksum = (__force u32) sum;
332 unsigned long soff = 7 & (unsigned long) src;
333 unsigned long doff = 7 & (unsigned long) dst;
334
335 if (len) {
336 if (!access_ok(src, len)) {
337 if (errp) *errp = -EFAULT;
338 memset(dst, 0, len);
339 return sum;
340 }
341 if (!doff) {
342 if (!soff)
343 checksum = csum_partial_cfu_aligned(
344 (const unsigned long __user *) src,
345 (unsigned long *) dst,
346 len-8, checksum, errp);
347 else
348 checksum = csum_partial_cfu_dest_aligned(
349 (const unsigned long __user *) src,
350 (unsigned long *) dst,
351 soff, len-8, checksum, errp);
352 } else {
353 unsigned long partial_dest;
354 ldq_u(partial_dest, dst);
355 if (!soff)
356 checksum = csum_partial_cfu_src_aligned(
357 (const unsigned long __user *) src,
358 (unsigned long *) dst,
359 doff, len-8, checksum,
360 partial_dest, errp);
361 else
362 checksum = csum_partial_cfu_unaligned(
363 (const unsigned long __user *) src,
364 (unsigned long *) dst,
365 soff, doff, len-8, checksum,
366 partial_dest, errp);
367 }
368 checksum = from64to16 (checksum);
369 }
370 return (__force __wsum)checksum;
371 }
372 EXPORT_SYMBOL(csum_and_copy_from_user);
373
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
Re: [PATCH RFC 3/3] mm/vmalloc: remove vwrite()
by kernel test robot
Hi David,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on m68k/for-next]
[also build test WARNING on sparc/master char-misc/char-misc-testing linus/master v5.12-rc3 next-20210319]
[cannot apply to uclinux-h8/h8300-next hnaz-linux-mm/master]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/David-Hildenbrand/drivers-char-r...
base: https://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k.git for-next
config: arm-randconfig-r014-20210318 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project fcc1ce00931751ac02498986feb37744e9ace8de)
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
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://github.com/0day-ci/linux/commit/7c68ea58a063d3f2d811e4b9cc0cee351...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review David-Hildenbrand/drivers-char-remove-dev-kmem-for-good/20210319-223811
git checkout 7c68ea58a063d3f2d811e4b9cc0cee3514bed08f
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm
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 >>):
>> mm/nommu.c:213:6: warning: no previous prototype for function 'vwrite' [-Wmissing-prototypes]
long vwrite(char *buf, char *addr, unsigned long count)
^
mm/nommu.c:213:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
long vwrite(char *buf, char *addr, unsigned long count)
^
static
mm/nommu.c:1658:15: warning: no previous prototype for function 'arch_get_unmapped_area' [-Wmissing-prototypes]
unsigned long arch_get_unmapped_area(struct file *file, unsigned long addr,
^
mm/nommu.c:1658:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
unsigned long arch_get_unmapped_area(struct file *file, unsigned long addr,
^
static
2 warnings generated.
vim +/vwrite +213 mm/nommu.c
^1da177e4c3f41 Linus Torvalds 2005-04-16 212
^1da177e4c3f41 Linus Torvalds 2005-04-16 @213 long vwrite(char *buf, char *addr, unsigned long count)
^1da177e4c3f41 Linus Torvalds 2005-04-16 214 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 215 /* Don't allow overflow */
^1da177e4c3f41 Linus Torvalds 2005-04-16 216 if ((unsigned long) addr + count < count)
^1da177e4c3f41 Linus Torvalds 2005-04-16 217 count = -(unsigned long) addr;
^1da177e4c3f41 Linus Torvalds 2005-04-16 218
^1da177e4c3f41 Linus Torvalds 2005-04-16 219 memcpy(addr, buf, count);
ac7149045d9fcc Choi Gi-yong 2014-04-07 220 return count;
^1da177e4c3f41 Linus Torvalds 2005-04-16 221 }
^1da177e4c3f41 Linus Torvalds 2005-04-16 222
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
[chrome-os:chromeos-4.4 58/215] drivers/staging/media/rkisp1/rkisp1-capture.c:17:10: fatal error: media/v4l2-mc.h: No such file or directory
by kernel test robot
tree: https://chromium.googlesource.com/chromiumos/third_party/kernel chromeos-4.4
head: d78843bdba14be5be451753e78a3753413fda6a2
commit: a4204813632adf637b28be8a4c7445bc11c420c2 [58/215] UPSTREAM: media: staging: rkisp1: add streaming paths
config: nios2-allyesconfig (attached as .config)
compiler: nios2-linux-gcc (GCC) 7.5.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
git remote add chrome-os https://chromium.googlesource.com/chromiumos/third_party/kernel
git fetch --no-tags chrome-os chromeos-4.4
git checkout a4204813632adf637b28be8a4c7445bc11c420c2
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-7.5.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>
Note: the chrome-os/chromeos-4.4 HEAD d78843bdba14be5be451753e78a3753413fda6a2 builds fine.
It only hurts bisectibility.
All errors (new ones prefixed by >>):
In file included from include/linux/linkage.h:4:0,
from include/linux/kernel.h:6,
from include/linux/delay.h:10,
from drivers/staging/media/rkisp1/rkisp1-capture.c:11:
include/linux/scatterlist.h: In function 'sg_set_buf':
arch/nios2/include/asm/page.h:90:33: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
# define pfn_valid(pfn) ((pfn) >= ARCH_PFN_OFFSET && \
^
include/linux/compiler.h:182:42: note: in definition of macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
include/linux/scatterlist.h:140:2: note: in expansion of macro 'BUG_ON'
BUG_ON(!virt_addr_valid(buf));
^~~~~~
arch/nios2/include/asm/page.h:94:33: note: in expansion of macro 'pfn_valid'
# define virt_addr_valid(vaddr) pfn_valid(PFN_DOWN(virt_to_phys(vaddr)))
^~~~~~~~~
include/linux/scatterlist.h:140:10: note: in expansion of macro 'virt_addr_valid'
BUG_ON(!virt_addr_valid(buf));
^~~~~~~~~~~~~~~
drivers/staging/media/rkisp1/rkisp1-capture.c: At top level:
>> drivers/staging/media/rkisp1/rkisp1-capture.c:17:10: fatal error: media/v4l2-mc.h: No such file or directory
#include <media/v4l2-mc.h>
^~~~~~~~~~~~~~~~~
compilation terminated.
--
In file included from drivers/staging/media/rkisp1/rkisp1-common.h:14:0,
from drivers/staging/media/rkisp1/rkisp1-resizer.c:11:
include/linux/clk.h:199:70: warning: 'struct clk_bulk_data' declared inside parameter list will not be visible outside of this definition or declaration
static inline int __must_check clk_bulk_prepare(int num_clks, struct clk_bulk_data *clks)
^~~~~~~~~~~~~
include/linux/clk.h:223:60: warning: 'struct clk_bulk_data' declared inside parameter list will not be visible outside of this definition or declaration
static inline void clk_bulk_unprepare(int num_clks, struct clk_bulk_data *clks)
^~~~~~~~~~~~~
include/linux/clk.h:528:17: warning: 'struct clk_bulk_data' declared inside parameter list will not be visible outside of this definition or declaration
struct clk_bulk_data *clks)
^~~~~~~~~~~~~
include/linux/clk.h:539:15: warning: 'struct clk_bulk_data' declared inside parameter list will not be visible outside of this definition or declaration
struct clk_bulk_data *clks)
^~~~~~~~~~~~~
include/linux/clk.h:546:54: warning: 'struct clk_bulk_data' declared inside parameter list will not be visible outside of this definition or declaration
static inline void clk_bulk_put(int num_clks, struct clk_bulk_data *clks) {}
^~~~~~~~~~~~~
include/linux/clk.h:555:69: warning: 'struct clk_bulk_data' declared inside parameter list will not be visible outside of this definition or declaration
static inline int __must_check clk_bulk_enable(int num_clks, struct clk_bulk_data *clks)
^~~~~~~~~~~~~
include/linux/clk.h:564:16: warning: 'struct clk_bulk_data' declared inside parameter list will not be visible outside of this definition or declaration
struct clk_bulk_data *clks) {}
^~~~~~~~~~~~~
include/linux/clk.h:624:13: warning: 'struct clk_bulk_data' declared inside parameter list will not be visible outside of this definition or declaration
struct clk_bulk_data *clks)
^~~~~~~~~~~~~
include/linux/clk.h: In function 'clk_bulk_prepare_enable':
include/linux/clk.h:628:35: warning: passing argument 2 of 'clk_bulk_prepare' from incompatible pointer type [-Wincompatible-pointer-types]
ret = clk_bulk_prepare(num_clks, clks);
^~~~
include/linux/clk.h:199:32: note: expected 'struct clk_bulk_data *' but argument is of type 'struct clk_bulk_data *'
static inline int __must_check clk_bulk_prepare(int num_clks, struct clk_bulk_data *clks)
^~~~~~~~~~~~~~~~
include/linux/clk.h:631:34: warning: passing argument 2 of 'clk_bulk_enable' from incompatible pointer type [-Wincompatible-pointer-types]
ret = clk_bulk_enable(num_clks, clks);
^~~~
include/linux/clk.h:555:32: note: expected 'struct clk_bulk_data *' but argument is of type 'struct clk_bulk_data *'
static inline int __must_check clk_bulk_enable(int num_clks, struct clk_bulk_data *clks)
^~~~~~~~~~~~~~~
include/linux/clk.h:633:32: warning: passing argument 2 of 'clk_bulk_unprepare' from incompatible pointer type [-Wincompatible-pointer-types]
clk_bulk_unprepare(num_clks, clks);
^~~~
include/linux/clk.h:223:20: note: expected 'struct clk_bulk_data *' but argument is of type 'struct clk_bulk_data *'
static inline void clk_bulk_unprepare(int num_clks, struct clk_bulk_data *clks)
^~~~~~~~~~~~~~~~~~
include/linux/clk.h: At top level:
include/linux/clk.h:639:19: warning: 'struct clk_bulk_data' declared inside parameter list will not be visible outside of this definition or declaration
struct clk_bulk_data *clks)
^~~~~~~~~~~~~
include/linux/clk.h: In function 'clk_bulk_disable_unprepare':
include/linux/clk.h:641:29: warning: passing argument 2 of 'clk_bulk_disable' from incompatible pointer type [-Wincompatible-pointer-types]
clk_bulk_disable(num_clks, clks);
^~~~
include/linux/clk.h:563:20: note: expected 'struct clk_bulk_data *' but argument is of type 'struct clk_bulk_data *'
static inline void clk_bulk_disable(int num_clks,
^~~~~~~~~~~~~~~~
include/linux/clk.h:642:31: warning: passing argument 2 of 'clk_bulk_unprepare' from incompatible pointer type [-Wincompatible-pointer-types]
clk_bulk_unprepare(num_clks, clks);
^~~~
include/linux/clk.h:223:20: note: expected 'struct clk_bulk_data *' but argument is of type 'struct clk_bulk_data *'
static inline void clk_bulk_unprepare(int num_clks, struct clk_bulk_data *clks)
^~~~~~~~~~~~~~~~~~
In file included from include/linux/err.h:4:0,
from include/linux/clk.h:15,
from drivers/staging/media/rkisp1/rkisp1-common.h:14,
from drivers/staging/media/rkisp1/rkisp1-resizer.c:11:
include/linux/scatterlist.h: In function 'sg_set_buf':
arch/nios2/include/asm/page.h:90:33: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
# define pfn_valid(pfn) ((pfn) >= ARCH_PFN_OFFSET && \
^
include/linux/compiler.h:182:42: note: in definition of macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
include/linux/scatterlist.h:140:2: note: in expansion of macro 'BUG_ON'
BUG_ON(!virt_addr_valid(buf));
^~~~~~
arch/nios2/include/asm/page.h:94:33: note: in expansion of macro 'pfn_valid'
# define virt_addr_valid(vaddr) pfn_valid(PFN_DOWN(virt_to_phys(vaddr)))
^~~~~~~~~
include/linux/scatterlist.h:140:10: note: in expansion of macro 'virt_addr_valid'
BUG_ON(!virt_addr_valid(buf));
^~~~~~~~~~~~~~~
In file included from drivers/staging/media/rkisp1/rkisp1-resizer.c:11:0:
drivers/staging/media/rkisp1/rkisp1-common.h: At top level:
drivers/staging/media/rkisp1/rkisp1-common.h:208:23: error: array type has incomplete element type 'struct clk_bulk_data'
struct clk_bulk_data clks[RKISP1_MAX_BUS_CLK];
^~~~
drivers/staging/media/rkisp1/rkisp1-resizer.c: In function 'rkisp1_rsz_register':
>> drivers/staging/media/rkisp1/rkisp1-resizer.c:712:12: error: 'struct media_entity' has no member named 'function'
sd->entity.function = MEDIA_ENT_F_PROC_VIDEO_SCALER;
^
>> drivers/staging/media/rkisp1/rkisp1-resizer.c:712:24: error: 'MEDIA_ENT_F_PROC_VIDEO_SCALER' undeclared (first use in this function); did you mean 'MEDIA_ENT_T_DEVNODE_ALSA'?
sd->entity.function = MEDIA_ENT_F_PROC_VIDEO_SCALER;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MEDIA_ENT_T_DEVNODE_ALSA
drivers/staging/media/rkisp1/rkisp1-resizer.c:712:24: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/staging/media/rkisp1/rkisp1-resizer.c:723:8: error: implicit declaration of function 'media_entity_pads_init'; did you mean 'media_entity_init'? [-Werror=implicit-function-declaration]
ret = media_entity_pads_init(&sd->entity, 2, pads);
^~~~~~~~~~~~~~~~~~~~~~
media_entity_init
cc1: some warnings being treated as errors
vim +17 drivers/staging/media/rkisp1/rkisp1-capture.c
> 17 #include <media/v4l2-mc.h>
18 #include <media/v4l2-subdev.h>
19 #include <media/videobuf2-dma-contig.h>
20
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months