[sashal-linux-stable:queue-5.10 58/74] arch/x86/kvm/mmu/mmu_internal.h:87:20: error: 'struct kvm_x86_ops' has no member named 'cpu_dirty_log_size'
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git queue-5.10
head: 9ced6633127bd25a94939777d9ecda54800859fc
commit: 2022a67e630a25e8274ad36e0437d8230d8d716d [58/74] KVM: x86/mmu: Set SPTE_AD_WRPROT_ONLY_MASK if and only if PML is enabled
config: x86_64-randconfig-s021-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/sashal/linux-stable.git/c...
git remote add sashal-linux-stable https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git
git fetch --no-tags sashal-linux-stable queue-5.10
git checkout 2022a67e630a25e8274ad36e0437d8230d8d716d
# save the attached .config to linux build tree
make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64
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 arch/x86/kvm/mmu/mmu.c:21:
arch/x86/kvm/mmu/mmu_internal.h: In function 'kvm_vcpu_ad_need_write_protect':
>> arch/x86/kvm/mmu/mmu_internal.h:87:20: error: 'struct kvm_x86_ops' has no member named 'cpu_dirty_log_size'
87 | kvm_x86_ops.cpu_dirty_log_size;
| ^
--
In file included from arch/x86/kvm/mmu/spte.c:14:
arch/x86/kvm/mmu/mmu_internal.h: In function 'kvm_vcpu_ad_need_write_protect':
>> arch/x86/kvm/mmu/mmu_internal.h:87:20: error: 'struct kvm_x86_ops' has no member named 'cpu_dirty_log_size'
87 | kvm_x86_ops.cpu_dirty_log_size;
| ^
arch/x86/kvm/mmu/mmu_internal.h:88:1: error: control reaches end of non-void function [-Werror=return-type]
88 | }
| ^
cc1: some warnings being treated as errors
--
In file included from arch/x86/kvm/mmu/tdp_iter.c:3:
arch/x86/kvm/mmu/mmu_internal.h: In function 'kvm_vcpu_ad_need_write_protect':
>> arch/x86/kvm/mmu/mmu_internal.h:87:20: error: 'struct kvm_x86_ops' has no member named 'cpu_dirty_log_size'
87 | kvm_x86_ops.cpu_dirty_log_size;
| ^
In file included from arch/x86/kvm/mmu/tdp_iter.c:4:
arch/x86/kvm/mmu/tdp_iter.h: At top level:
arch/x86/kvm/mmu/tdp_iter.h:8:10: fatal error: mmu.h: No such file or directory
8 | #include "mmu.h"
| ^~~~~~~
compilation terminated.
vim +87 arch/x86/kvm/mmu/mmu_internal.h
75
76 static inline bool kvm_vcpu_ad_need_write_protect(struct kvm_vcpu *vcpu)
77 {
78 /*
79 * When using the EPT page-modification log, the GPAs in the CPU dirty
80 * log would come from L2 rather than L1. Therefore, we need to rely
81 * on write protection to record dirty pages, which bypasses PML, since
82 * writes now result in a vmexit. Note, the check on CPU dirty logging
83 * being enabled is mandatory as the bits used to denote WP-only SPTEs
84 * are reserved for NPT w/ PAE (32-bit KVM).
85 */
86 return vcpu->arch.mmu == &vcpu->arch.guest_mmu &&
> 87 kvm_x86_ops.cpu_dirty_log_size;
88 }
89
---
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 v5 05/13] media: hevc: Add decode params control
by kernel test robot
Hi Benjamin,
I love your patch! Yet something to improve:
[auto build test ERROR on sunxi/sunxi/for-next]
[also build test ERROR on robh/for-next v5.12-rc3 next-20210317]
[cannot apply to linuxtv-media/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/Benjamin-Gaignard/Add-HANTRO-G2-...
base: https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux.git sunxi/for-next
config: nios2-allyesconfig (attached as .config)
compiler: nios2-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/8388a521cb8632e99a90afe38654f1810...
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Benjamin-Gaignard/Add-HANTRO-G2-HEVC-decoder-support-for-IMX8MQ/20210318-013515
git checkout 8388a521cb8632e99a90afe38654f1810c60a549
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.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 >>):
In file included from drivers/staging/media/sunxi/cedrus/cedrus_h265.c:17:
drivers/staging/media/sunxi/cedrus/cedrus_h265.c: In function 'cedrus_h265_setup':
>> drivers/staging/media/sunxi/cedrus/cedrus_h265.c:492:82: error: 'const struct v4l2_ctrl_hevc_decode_params' has no member named 'num_rps_poc_st_curr_after'; did you mean 'num_poc_st_curr_after'?
492 | VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_POC_BIGEST_IN_RPS_ST(decode_params->num_rps_poc_st_curr_after == 0) |
| ^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/staging/media/sunxi/cedrus/cedrus_regs.h:386:4: note: in definition of macro 'VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_POC_BIGEST_IN_RPS_ST'
386 | ((v) ? BIT(21) : 0)
| ^
>> drivers/staging/media/sunxi/cedrus/cedrus_h265.c:532:52: error: 'const struct v4l2_ctrl_hevc_slice_params' has no member named 'dpb'
532 | cedrus_h265_frame_info_write_dpb(ctx, slice_params->dpb,
| ^~
drivers/staging/media/sunxi/cedrus/cedrus_h265.c:550:51: error: 'const struct v4l2_ctrl_hevc_slice_params' has no member named 'dpb'
550 | cedrus_h265_ref_pic_list_write(dev, slice_params->dpb,
| ^~
drivers/staging/media/sunxi/cedrus/cedrus_h265.c:569:51: error: 'const struct v4l2_ctrl_hevc_slice_params' has no member named 'dpb'
569 | cedrus_h265_ref_pic_list_write(dev, slice_params->dpb,
| ^~
vim +492 drivers/staging/media/sunxi/cedrus/cedrus_h265.c
240
241 static void cedrus_h265_setup(struct cedrus_ctx *ctx,
242 struct cedrus_run *run)
243 {
244 struct cedrus_dev *dev = ctx->dev;
245 const struct v4l2_ctrl_hevc_sps *sps;
246 const struct v4l2_ctrl_hevc_pps *pps;
247 const struct v4l2_ctrl_hevc_slice_params *slice_params;
248 const struct v4l2_ctrl_hevc_decode_params *decode_params;
249 const struct v4l2_hevc_pred_weight_table *pred_weight_table;
250 dma_addr_t src_buf_addr;
251 dma_addr_t src_buf_end_addr;
252 u32 chroma_log2_weight_denom;
253 u32 output_pic_list_index;
254 u32 pic_order_cnt[2];
255 u32 reg;
256
257 sps = run->h265.sps;
258 pps = run->h265.pps;
259 slice_params = run->h265.slice_params;
260 decode_params = run->h265.decode_params;
261 pred_weight_table = &slice_params->pred_weight_table;
262
263 /* MV column buffer size and allocation. */
264 if (!ctx->codec.h265.mv_col_buf_size) {
265 unsigned int num_buffers =
266 run->dst->vb2_buf.vb2_queue->num_buffers;
267 unsigned int log2_max_luma_coding_block_size =
268 sps->log2_min_luma_coding_block_size_minus3 + 3 +
269 sps->log2_diff_max_min_luma_coding_block_size;
270 unsigned int ctb_size_luma =
271 1UL << log2_max_luma_coding_block_size;
272
273 /*
274 * Each CTB requires a MV col buffer with a specific unit size.
275 * Since the address is given with missing lsb bits, 1 KiB is
276 * added to each buffer to ensure proper alignment.
277 */
278 ctx->codec.h265.mv_col_buf_unit_size =
279 DIV_ROUND_UP(ctx->src_fmt.width, ctb_size_luma) *
280 DIV_ROUND_UP(ctx->src_fmt.height, ctb_size_luma) *
281 CEDRUS_H265_MV_COL_BUF_UNIT_CTB_SIZE + SZ_1K;
282
283 ctx->codec.h265.mv_col_buf_size = num_buffers *
284 ctx->codec.h265.mv_col_buf_unit_size;
285
286 ctx->codec.h265.mv_col_buf =
287 dma_alloc_coherent(dev->dev,
288 ctx->codec.h265.mv_col_buf_size,
289 &ctx->codec.h265.mv_col_buf_addr,
290 GFP_KERNEL);
291 if (!ctx->codec.h265.mv_col_buf) {
292 ctx->codec.h265.mv_col_buf_size = 0;
293 // TODO: Abort the process here.
294 return;
295 }
296 }
297
298 /* Activate H265 engine. */
299 cedrus_engine_enable(ctx, CEDRUS_CODEC_H265);
300
301 /* Source offset and length in bits. */
302
303 cedrus_write(dev, VE_DEC_H265_BITS_OFFSET, 0);
304
305 reg = slice_params->bit_size;
306 cedrus_write(dev, VE_DEC_H265_BITS_LEN, reg);
307
308 /* Source beginning and end addresses. */
309
310 src_buf_addr = vb2_dma_contig_plane_dma_addr(&run->src->vb2_buf, 0);
311
312 reg = VE_DEC_H265_BITS_ADDR_BASE(src_buf_addr);
313 reg |= VE_DEC_H265_BITS_ADDR_VALID_SLICE_DATA;
314 reg |= VE_DEC_H265_BITS_ADDR_LAST_SLICE_DATA;
315 reg |= VE_DEC_H265_BITS_ADDR_FIRST_SLICE_DATA;
316
317 cedrus_write(dev, VE_DEC_H265_BITS_ADDR, reg);
318
319 src_buf_end_addr = src_buf_addr +
320 DIV_ROUND_UP(slice_params->bit_size, 8);
321
322 reg = VE_DEC_H265_BITS_END_ADDR_BASE(src_buf_end_addr);
323 cedrus_write(dev, VE_DEC_H265_BITS_END_ADDR, reg);
324
325 /* Coding tree block address: start at the beginning. */
326 reg = VE_DEC_H265_DEC_CTB_ADDR_X(0) | VE_DEC_H265_DEC_CTB_ADDR_Y(0);
327 cedrus_write(dev, VE_DEC_H265_DEC_CTB_ADDR, reg);
328
329 cedrus_write(dev, VE_DEC_H265_TILE_START_CTB, 0);
330 cedrus_write(dev, VE_DEC_H265_TILE_END_CTB, 0);
331
332 /* Clear the number of correctly-decoded coding tree blocks. */
333 cedrus_write(dev, VE_DEC_H265_DEC_CTB_NUM, 0);
334
335 /* Initialize bitstream access. */
336 cedrus_write(dev, VE_DEC_H265_TRIGGER, VE_DEC_H265_TRIGGER_INIT_SWDEC);
337
338 cedrus_h265_skip_bits(dev, slice_params->data_bit_offset);
339
340 /* Bitstream parameters. */
341
342 reg = VE_DEC_H265_DEC_NAL_HDR_NAL_UNIT_TYPE(slice_params->nal_unit_type) |
343 VE_DEC_H265_DEC_NAL_HDR_NUH_TEMPORAL_ID_PLUS1(slice_params->nuh_temporal_id_plus1);
344
345 cedrus_write(dev, VE_DEC_H265_DEC_NAL_HDR, reg);
346
347 /* SPS. */
348
349 reg = VE_DEC_H265_DEC_SPS_HDR_MAX_TRANSFORM_HIERARCHY_DEPTH_INTRA(sps->max_transform_hierarchy_depth_intra) |
350 VE_DEC_H265_DEC_SPS_HDR_MAX_TRANSFORM_HIERARCHY_DEPTH_INTER(sps->max_transform_hierarchy_depth_inter) |
351 VE_DEC_H265_DEC_SPS_HDR_LOG2_DIFF_MAX_MIN_TRANSFORM_BLOCK_SIZE(sps->log2_diff_max_min_luma_transform_block_size) |
352 VE_DEC_H265_DEC_SPS_HDR_LOG2_MIN_TRANSFORM_BLOCK_SIZE_MINUS2(sps->log2_min_luma_transform_block_size_minus2) |
353 VE_DEC_H265_DEC_SPS_HDR_LOG2_DIFF_MAX_MIN_LUMA_CODING_BLOCK_SIZE(sps->log2_diff_max_min_luma_coding_block_size) |
354 VE_DEC_H265_DEC_SPS_HDR_LOG2_MIN_LUMA_CODING_BLOCK_SIZE_MINUS3(sps->log2_min_luma_coding_block_size_minus3) |
355 VE_DEC_H265_DEC_SPS_HDR_BIT_DEPTH_CHROMA_MINUS8(sps->bit_depth_chroma_minus8) |
356 VE_DEC_H265_DEC_SPS_HDR_BIT_DEPTH_LUMA_MINUS8(sps->bit_depth_luma_minus8) |
357 VE_DEC_H265_DEC_SPS_HDR_CHROMA_FORMAT_IDC(sps->chroma_format_idc);
358
359 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_SPS_HDR_FLAG_STRONG_INTRA_SMOOTHING_ENABLE,
360 V4L2_HEVC_SPS_FLAG_STRONG_INTRA_SMOOTHING_ENABLED,
361 sps->flags);
362
363 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_SPS_HDR_FLAG_SPS_TEMPORAL_MVP_ENABLED,
364 V4L2_HEVC_SPS_FLAG_SPS_TEMPORAL_MVP_ENABLED,
365 sps->flags);
366
367 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_SPS_HDR_FLAG_SAMPLE_ADAPTIVE_OFFSET_ENABLED,
368 V4L2_HEVC_SPS_FLAG_SAMPLE_ADAPTIVE_OFFSET,
369 sps->flags);
370
371 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_SPS_HDR_FLAG_AMP_ENABLED,
372 V4L2_HEVC_SPS_FLAG_AMP_ENABLED, sps->flags);
373
374 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_SPS_HDR_FLAG_SEPARATE_COLOUR_PLANE,
375 V4L2_HEVC_SPS_FLAG_SEPARATE_COLOUR_PLANE,
376 sps->flags);
377
378 cedrus_write(dev, VE_DEC_H265_DEC_SPS_HDR, reg);
379
380 reg = VE_DEC_H265_DEC_PCM_CTRL_LOG2_DIFF_MAX_MIN_PCM_LUMA_CODING_BLOCK_SIZE(sps->log2_diff_max_min_pcm_luma_coding_block_size) |
381 VE_DEC_H265_DEC_PCM_CTRL_LOG2_MIN_PCM_LUMA_CODING_BLOCK_SIZE_MINUS3(sps->log2_min_pcm_luma_coding_block_size_minus3) |
382 VE_DEC_H265_DEC_PCM_CTRL_PCM_SAMPLE_BIT_DEPTH_CHROMA_MINUS1(sps->pcm_sample_bit_depth_chroma_minus1) |
383 VE_DEC_H265_DEC_PCM_CTRL_PCM_SAMPLE_BIT_DEPTH_LUMA_MINUS1(sps->pcm_sample_bit_depth_luma_minus1);
384
385 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_PCM_CTRL_FLAG_PCM_ENABLED,
386 V4L2_HEVC_SPS_FLAG_PCM_ENABLED, sps->flags);
387
388 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_PCM_CTRL_FLAG_PCM_LOOP_FILTER_DISABLED,
389 V4L2_HEVC_SPS_FLAG_PCM_LOOP_FILTER_DISABLED,
390 sps->flags);
391
392 cedrus_write(dev, VE_DEC_H265_DEC_PCM_CTRL, reg);
393
394 /* PPS. */
395
396 reg = VE_DEC_H265_DEC_PPS_CTRL0_PPS_CR_QP_OFFSET(pps->pps_cr_qp_offset) |
397 VE_DEC_H265_DEC_PPS_CTRL0_PPS_CB_QP_OFFSET(pps->pps_cb_qp_offset) |
398 VE_DEC_H265_DEC_PPS_CTRL0_INIT_QP_MINUS26(pps->init_qp_minus26) |
399 VE_DEC_H265_DEC_PPS_CTRL0_DIFF_CU_QP_DELTA_DEPTH(pps->diff_cu_qp_delta_depth);
400
401 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_PPS_CTRL0_FLAG_CU_QP_DELTA_ENABLED,
402 V4L2_HEVC_PPS_FLAG_CU_QP_DELTA_ENABLED,
403 pps->flags);
404
405 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_PPS_CTRL0_FLAG_TRANSFORM_SKIP_ENABLED,
406 V4L2_HEVC_PPS_FLAG_TRANSFORM_SKIP_ENABLED,
407 pps->flags);
408
409 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_PPS_CTRL0_FLAG_CONSTRAINED_INTRA_PRED,
410 V4L2_HEVC_PPS_FLAG_CONSTRAINED_INTRA_PRED,
411 pps->flags);
412
413 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_PPS_CTRL0_FLAG_SIGN_DATA_HIDING_ENABLED,
414 V4L2_HEVC_PPS_FLAG_SIGN_DATA_HIDING_ENABLED,
415 pps->flags);
416
417 cedrus_write(dev, VE_DEC_H265_DEC_PPS_CTRL0, reg);
418
419 reg = VE_DEC_H265_DEC_PPS_CTRL1_LOG2_PARALLEL_MERGE_LEVEL_MINUS2(pps->log2_parallel_merge_level_minus2);
420
421 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_PPS_CTRL1_FLAG_PPS_LOOP_FILTER_ACROSS_SLICES_ENABLED,
422 V4L2_HEVC_PPS_FLAG_PPS_LOOP_FILTER_ACROSS_SLICES_ENABLED,
423 pps->flags);
424
425 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_PPS_CTRL1_FLAG_LOOP_FILTER_ACROSS_TILES_ENABLED,
426 V4L2_HEVC_PPS_FLAG_LOOP_FILTER_ACROSS_TILES_ENABLED,
427 pps->flags);
428
429 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_PPS_CTRL1_FLAG_ENTROPY_CODING_SYNC_ENABLED,
430 V4L2_HEVC_PPS_FLAG_ENTROPY_CODING_SYNC_ENABLED,
431 pps->flags);
432
433 /* TODO: VE_DEC_H265_DEC_PPS_CTRL1_FLAG_TILES_ENABLED */
434
435 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_PPS_CTRL1_FLAG_TRANSQUANT_BYPASS_ENABLED,
436 V4L2_HEVC_PPS_FLAG_TRANSQUANT_BYPASS_ENABLED,
437 pps->flags);
438
439 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_PPS_CTRL1_FLAG_WEIGHTED_BIPRED,
440 V4L2_HEVC_PPS_FLAG_WEIGHTED_BIPRED, pps->flags);
441
442 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_PPS_CTRL1_FLAG_WEIGHTED_PRED,
443 V4L2_HEVC_PPS_FLAG_WEIGHTED_PRED, pps->flags);
444
445 cedrus_write(dev, VE_DEC_H265_DEC_PPS_CTRL1, reg);
446
447 /* Slice Parameters. */
448
449 reg = VE_DEC_H265_DEC_SLICE_HDR_INFO0_PICTURE_TYPE(slice_params->pic_struct) |
450 VE_DEC_H265_DEC_SLICE_HDR_INFO0_FIVE_MINUS_MAX_NUM_MERGE_CAND(slice_params->five_minus_max_num_merge_cand) |
451 VE_DEC_H265_DEC_SLICE_HDR_INFO0_NUM_REF_IDX_L1_ACTIVE_MINUS1(slice_params->num_ref_idx_l1_active_minus1) |
452 VE_DEC_H265_DEC_SLICE_HDR_INFO0_NUM_REF_IDX_L0_ACTIVE_MINUS1(slice_params->num_ref_idx_l0_active_minus1) |
453 VE_DEC_H265_DEC_SLICE_HDR_INFO0_COLLOCATED_REF_IDX(slice_params->collocated_ref_idx) |
454 VE_DEC_H265_DEC_SLICE_HDR_INFO0_COLOUR_PLANE_ID(slice_params->colour_plane_id) |
455 VE_DEC_H265_DEC_SLICE_HDR_INFO0_SLICE_TYPE(slice_params->slice_type);
456
457 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_SLICE_HDR_INFO0_FLAG_COLLOCATED_FROM_L0,
458 V4L2_HEVC_SLICE_PARAMS_FLAG_COLLOCATED_FROM_L0,
459 slice_params->flags);
460
461 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_SLICE_HDR_INFO0_FLAG_CABAC_INIT,
462 V4L2_HEVC_SLICE_PARAMS_FLAG_CABAC_INIT,
463 slice_params->flags);
464
465 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_SLICE_HDR_INFO0_FLAG_MVD_L1_ZERO,
466 V4L2_HEVC_SLICE_PARAMS_FLAG_MVD_L1_ZERO,
467 slice_params->flags);
468
469 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_SLICE_HDR_INFO0_FLAG_SLICE_SAO_CHROMA,
470 V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_CHROMA,
471 slice_params->flags);
472
473 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_SLICE_HDR_INFO0_FLAG_SLICE_SAO_LUMA,
474 V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_SAO_LUMA,
475 slice_params->flags);
476
477 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_SLICE_HDR_INFO0_FLAG_SLICE_TEMPORAL_MVP_ENABLE,
478 V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_TEMPORAL_MVP_ENABLED,
479 slice_params->flags);
480
481 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_SLICE_HDR_INFO0_FLAG_DEPENDENT_SLICE_SEGMENT,
482 V4L2_HEVC_PPS_FLAG_DEPENDENT_SLICE_SEGMENT,
483 pps->flags);
484
485 /* FIXME: For multi-slice support. */
486 reg |= VE_DEC_H265_DEC_SLICE_HDR_INFO0_FLAG_FIRST_SLICE_SEGMENT_IN_PIC;
487
488 cedrus_write(dev, VE_DEC_H265_DEC_SLICE_HDR_INFO0, reg);
489
490 reg = VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_TC_OFFSET_DIV2(slice_params->slice_tc_offset_div2) |
491 VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_BETA_OFFSET_DIV2(slice_params->slice_beta_offset_div2) |
> 492 VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_POC_BIGEST_IN_RPS_ST(decode_params->num_rps_poc_st_curr_after == 0) |
493 VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_CR_QP_OFFSET(slice_params->slice_cr_qp_offset) |
494 VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_CB_QP_OFFSET(slice_params->slice_cb_qp_offset) |
495 VE_DEC_H265_DEC_SLICE_HDR_INFO1_SLICE_QP_DELTA(slice_params->slice_qp_delta);
496
497 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_SLICE_HDR_INFO1_FLAG_SLICE_DEBLOCKING_FILTER_DISABLED,
498 V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_DEBLOCKING_FILTER_DISABLED,
499 slice_params->flags);
500
501 reg |= VE_DEC_H265_FLAG(VE_DEC_H265_DEC_SLICE_HDR_INFO1_FLAG_SLICE_LOOP_FILTER_ACROSS_SLICES_ENABLED,
502 V4L2_HEVC_SLICE_PARAMS_FLAG_SLICE_LOOP_FILTER_ACROSS_SLICES_ENABLED,
503 slice_params->flags);
504
505 cedrus_write(dev, VE_DEC_H265_DEC_SLICE_HDR_INFO1, reg);
506
507 chroma_log2_weight_denom = pred_weight_table->luma_log2_weight_denom +
508 pred_weight_table->delta_chroma_log2_weight_denom;
509 reg = VE_DEC_H265_DEC_SLICE_HDR_INFO2_NUM_ENTRY_POINT_OFFSETS(0) |
510 VE_DEC_H265_DEC_SLICE_HDR_INFO2_CHROMA_LOG2_WEIGHT_DENOM(chroma_log2_weight_denom) |
511 VE_DEC_H265_DEC_SLICE_HDR_INFO2_LUMA_LOG2_WEIGHT_DENOM(pred_weight_table->luma_log2_weight_denom);
512
513 cedrus_write(dev, VE_DEC_H265_DEC_SLICE_HDR_INFO2, reg);
514
515 /* Decoded picture size. */
516
517 reg = VE_DEC_H265_DEC_PIC_SIZE_WIDTH(ctx->src_fmt.width) |
518 VE_DEC_H265_DEC_PIC_SIZE_HEIGHT(ctx->src_fmt.height);
519
520 cedrus_write(dev, VE_DEC_H265_DEC_PIC_SIZE, reg);
521
522 /* Scaling list. */
523
524 reg = VE_DEC_H265_SCALING_LIST_CTRL0_DEFAULT;
525 cedrus_write(dev, VE_DEC_H265_SCALING_LIST_CTRL0, reg);
526
527 /* Neightbor information address. */
528 reg = VE_DEC_H265_NEIGHBOR_INFO_ADDR_BASE(ctx->codec.h265.neighbor_info_buf_addr);
529 cedrus_write(dev, VE_DEC_H265_NEIGHBOR_INFO_ADDR, reg);
530
531 /* Write decoded picture buffer in pic list. */
> 532 cedrus_h265_frame_info_write_dpb(ctx, slice_params->dpb,
533 decode_params->num_active_dpb_entries);
534
535 /* Output frame. */
536
537 output_pic_list_index = V4L2_HEVC_DPB_ENTRIES_NUM_MAX;
538 pic_order_cnt[0] = slice_params->slice_pic_order_cnt;
539 pic_order_cnt[1] = slice_params->slice_pic_order_cnt;
540
541 cedrus_h265_frame_info_write_single(ctx, output_pic_list_index,
542 slice_params->pic_struct != 0,
543 pic_order_cnt,
544 run->dst->vb2_buf.index);
545
546 cedrus_write(dev, VE_DEC_H265_OUTPUT_FRAME_IDX, output_pic_list_index);
547
548 /* Reference picture list 0 (for P/B frames). */
549 if (slice_params->slice_type != V4L2_HEVC_SLICE_TYPE_I) {
550 cedrus_h265_ref_pic_list_write(dev, slice_params->dpb,
551 slice_params->ref_idx_l0,
552 slice_params->num_ref_idx_l0_active_minus1 + 1,
553 VE_DEC_H265_SRAM_OFFSET_REF_PIC_LIST0);
554
555 if ((pps->flags & V4L2_HEVC_PPS_FLAG_WEIGHTED_PRED) ||
556 (pps->flags & V4L2_HEVC_PPS_FLAG_WEIGHTED_BIPRED))
557 cedrus_h265_pred_weight_write(dev,
558 pred_weight_table->delta_luma_weight_l0,
559 pred_weight_table->luma_offset_l0,
560 pred_weight_table->delta_chroma_weight_l0,
561 pred_weight_table->chroma_offset_l0,
562 slice_params->num_ref_idx_l0_active_minus1 + 1,
563 VE_DEC_H265_SRAM_OFFSET_PRED_WEIGHT_LUMA_L0,
564 VE_DEC_H265_SRAM_OFFSET_PRED_WEIGHT_CHROMA_L0);
565 }
566
567 /* Reference picture list 1 (for B frames). */
568 if (slice_params->slice_type == V4L2_HEVC_SLICE_TYPE_B) {
569 cedrus_h265_ref_pic_list_write(dev, slice_params->dpb,
570 slice_params->ref_idx_l1,
571 slice_params->num_ref_idx_l1_active_minus1 + 1,
572 VE_DEC_H265_SRAM_OFFSET_REF_PIC_LIST1);
573
574 if (pps->flags & V4L2_HEVC_PPS_FLAG_WEIGHTED_BIPRED)
575 cedrus_h265_pred_weight_write(dev,
576 pred_weight_table->delta_luma_weight_l1,
577 pred_weight_table->luma_offset_l1,
578 pred_weight_table->delta_chroma_weight_l1,
579 pred_weight_table->chroma_offset_l1,
580 slice_params->num_ref_idx_l1_active_minus1 + 1,
581 VE_DEC_H265_SRAM_OFFSET_PRED_WEIGHT_LUMA_L1,
582 VE_DEC_H265_SRAM_OFFSET_PRED_WEIGHT_CHROMA_L1);
583 }
584
585 /* Enable appropriate interruptions. */
586 cedrus_write(dev, VE_DEC_H265_CTRL, VE_DEC_H265_CTRL_IRQ_MASK);
587 }
588
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
[sashal-linux-stable:queue-5.10 46/74] fs/io_uring.c:6108:3: error: implicit declaration of function 'io_req_task_work_add_fallback'; did you mean
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git queue-5.10
head: 9ced6633127bd25a94939777d9ecda54800859fc
commit: 28095f9cb8c185be018e34390a9cbdd5a39648d7 [46/74] io_uring: don't take uring_lock during iowq cancel
config: nios2-defconfig (attached as .config)
compiler: nios2-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/sashal/linux-stable.git/c...
git remote add sashal-linux-stable https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git
git fetch --no-tags sashal-linux-stable queue-5.10
git checkout 28095f9cb8c185be018e34390a9cbdd5a39648d7
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.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/io_uring.c: In function 'io_prep_async_work':
fs/io_uring.c:1431:22: warning: variable 'id' set but not used [-Wunused-but-set-variable]
1431 | struct io_identity *id;
| ^~
fs/io_uring.c: In function 'io_close':
fs/io_uring.c:4283:22: error: 'IO_WQ_WORK_NO_CANCEL' undeclared (first use in this function); did you mean 'IO_WQ_WORK_CANCEL'?
4283 | req->work.flags |= IO_WQ_WORK_NO_CANCEL;
| ^~~~~~~~~~~~~~~~~~~~
| IO_WQ_WORK_CANCEL
fs/io_uring.c:4283:22: note: each undeclared identifier is reported only once for each function it appears in
fs/io_uring.c: In function 'io_wq_submit_work':
>> fs/io_uring.c:6108:3: error: implicit declaration of function 'io_req_task_work_add_fallback'; did you mean 'io_req_task_work_add'? [-Werror=implicit-function-declaration]
6108 | io_req_task_work_add_fallback(req, io_req_task_cancel);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| io_req_task_work_add
fs/io_uring.c:6109:3: error: 'return' with no value, in function returning non-void [-Werror=return-type]
6109 | return;
| ^~~~~~
fs/io_uring.c:6094:27: note: declared here
6094 | static struct io_wq_work *io_wq_submit_work(struct io_wq_work *work)
| ^~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +6108 fs/io_uring.c
6093
6094 static struct io_wq_work *io_wq_submit_work(struct io_wq_work *work)
6095 {
6096 struct io_kiocb *req = container_of(work, struct io_kiocb, work);
6097 struct io_kiocb *timeout;
6098 int ret = 0;
6099
6100 timeout = io_prep_linked_timeout(req);
6101 if (timeout)
6102 io_queue_linked_timeout(timeout);
6103
6104 if (work->flags & IO_WQ_WORK_CANCEL) {
6105 /* io-wq is going to take down one */
6106 refcount_inc(&req->refs);
6107 percpu_ref_get(&req->ctx->refs);
> 6108 io_req_task_work_add_fallback(req, io_req_task_cancel);
6109 return;
6110 }
6111
6112 if (!ret) {
6113 do {
6114 ret = io_issue_sqe(req, false, NULL);
6115 /*
6116 * We can get EAGAIN for polled IO even though we're
6117 * forcing a sync submission from here, since we can't
6118 * wait for request slots on the block side.
6119 */
6120 if (ret != -EAGAIN)
6121 break;
6122 cond_resched();
6123 } while (1);
6124 }
6125
6126 if (ret) {
6127 struct io_ring_ctx *lock_ctx = NULL;
6128
6129 if (req->ctx->flags & IORING_SETUP_IOPOLL)
6130 lock_ctx = req->ctx;
6131
6132 /*
6133 * io_iopoll_complete() does not hold completion_lock to
6134 * complete polled io, so here for polled io, we can not call
6135 * io_req_complete() directly, otherwise there maybe concurrent
6136 * access to cqring, defer_list, etc, which is not safe. Given
6137 * that io_iopoll_complete() is always called under uring_lock,
6138 * so here for polled io, we also get uring_lock to complete
6139 * it.
6140 */
6141 if (lock_ctx)
6142 mutex_lock(&lock_ctx->uring_lock);
6143
6144 req_set_fail_links(req);
6145 io_req_complete(req, ret);
6146
6147 if (lock_ctx)
6148 mutex_unlock(&lock_ctx->uring_lock);
6149 }
6150
6151 return io_steal_work(req);
6152 }
6153
---
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-5.10.y 2728/3218] ld.lld: error: debug_core.c:(.text+0x2CD4): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
by kernel test robot
TO: Sumit Garg <sumit.garg(a)linaro.org>
CC: "Greg Kroah-Hartman" <gregkh(a)linuxfoundation.org>
CC: Andrew Morton <akpm(a)linux-foundation.org>
CC: Linux Memory Management List <linux-mm(a)kvack.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.10.y
head: 05d125f7524e9ad200375c52799575184755d340
commit: 13e83186c91a1e0990cbd2d4ef6b7d572bcc9277 [2728/3218] kgdb: fix to kill breakpoints on initmem after boot
config: riscv-randconfig-r011-20210317 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 8ef111222a3dd12a9175f69c3bff598c46e8bdf7)
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 riscv cross compiling tool for clang build
# apt-get install binutils-riscv64-linux-gnu
# 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-5.10.y
git checkout 13e83186c91a1e0990cbd2d4ef6b7d572bcc9277
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang 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 >>):
ld.lld: error: arch/riscv/kernel/head.o:(.head.text+0x8): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: debug_core.c:(.text+0x281C): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: debug_core.c:(.text+0x2836): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: debug_core.c:(.text+0x294E): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
>> ld.lld: error: debug_core.c:(.text+0x2CD4): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
>> ld.lld: error: debug_core.c:(.text+0x2F14): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
>> ld.lld: error: debug_core.c:(.text+0x2FFA): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: debug_core.c:(.text+0x3048): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: debug_core.c:(.text+0x3082): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
>> ld.lld: error: debug_core.c:(.text+0x31C4): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: debug_core.c:(.text+0x31F2): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: debug_core.c:(.text+0x3210): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
>> ld.lld: error: debug_core.c:(.text+0x32D6): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: debug_core.c:(.init.text+0x120): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
ld.lld: error: debug_core.c:(.init.text+0x222): relocation R_RISCV_ALIGN requires unimplemented linker relaxation; recompile with -mno-relax
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
[sashal-linux-stable:queue-5.10 45/74] fs/io_uring.c:4281:22: error: 'IO_WQ_WORK_NO_CANCEL' undeclared; did you mean
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git queue-5.10
head: 9ced6633127bd25a94939777d9ecda54800859fc
commit: 0b80f78d907debe5f8ba3cef42b659b89352310a [45/74] io_uring/io-wq: kill off now unused IO_WQ_WORK_NO_CANCEL
config: nios2-defconfig (attached as .config)
compiler: nios2-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/sashal/linux-stable.git/c...
git remote add sashal-linux-stable https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git
git fetch --no-tags sashal-linux-stable queue-5.10
git checkout 0b80f78d907debe5f8ba3cef42b659b89352310a
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.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/io_uring.c: In function 'io_prep_async_work':
fs/io_uring.c:1431:22: warning: variable 'id' set but not used [-Wunused-but-set-variable]
1431 | struct io_identity *id;
| ^~
fs/io_uring.c: In function 'io_close':
>> fs/io_uring.c:4281:22: error: 'IO_WQ_WORK_NO_CANCEL' undeclared (first use in this function); did you mean 'IO_WQ_WORK_CANCEL'?
4281 | req->work.flags |= IO_WQ_WORK_NO_CANCEL;
| ^~~~~~~~~~~~~~~~~~~~
| IO_WQ_WORK_CANCEL
fs/io_uring.c:4281:22: note: each undeclared identifier is reported only once for each function it appears in
vim +4281 fs/io_uring.c
b5dba59e0cf7e2 Jens Axboe 2019-12-11 4264
229a7b63507a3e Jens Axboe 2020-06-22 4265 static int io_close(struct io_kiocb *req, bool force_nonblock,
229a7b63507a3e Jens Axboe 2020-06-22 4266 struct io_comp_state *cs)
b5dba59e0cf7e2 Jens Axboe 2019-12-11 4267 {
3af73b286ccee4 Pavel Begunkov 2020-06-08 4268 struct io_close *close = &req->close;
b5dba59e0cf7e2 Jens Axboe 2019-12-11 4269 int ret;
b5dba59e0cf7e2 Jens Axboe 2019-12-11 4270
3af73b286ccee4 Pavel Begunkov 2020-06-08 4271 /* might be already done during nonblock submission */
3af73b286ccee4 Pavel Begunkov 2020-06-08 4272 if (!close->put_file) {
3af73b286ccee4 Pavel Begunkov 2020-06-08 4273 ret = __close_fd_get_file(close->fd, &close->put_file);
b5dba59e0cf7e2 Jens Axboe 2019-12-11 4274 if (ret < 0)
0bf0eefdab52d9 Pavel Begunkov 2020-05-26 4275 return (ret == -ENOENT) ? -EBADF : ret;
3af73b286ccee4 Pavel Begunkov 2020-06-08 4276 }
b5dba59e0cf7e2 Jens Axboe 2019-12-11 4277
b5dba59e0cf7e2 Jens Axboe 2019-12-11 4278 /* if the file has a flush method, be safe and punt to async */
3af73b286ccee4 Pavel Begunkov 2020-06-08 4279 if (close->put_file->f_op->flush && force_nonblock) {
f3ac7a5996d7cd Jens Axboe 2021-01-19 4280 /* not safe to cancel at this point */
f3ac7a5996d7cd Jens Axboe 2021-01-19 @4281 req->work.flags |= IO_WQ_WORK_NO_CANCEL;
24c74678634b3c Pavel Begunkov 2020-06-21 4282 /* was never set, but play safe */
24c74678634b3c Pavel Begunkov 2020-06-21 4283 req->flags &= ~REQ_F_NOWAIT;
0bf0eefdab52d9 Pavel Begunkov 2020-05-26 4284 /* avoid grabbing files - we don't need the files */
24c74678634b3c Pavel Begunkov 2020-06-21 4285 req->flags |= REQ_F_NO_FILE_TABLE;
0bf0eefdab52d9 Pavel Begunkov 2020-05-26 4286 return -EAGAIN;
b5dba59e0cf7e2 Jens Axboe 2019-12-11 4287 }
b5dba59e0cf7e2 Jens Axboe 2019-12-11 4288
3af73b286ccee4 Pavel Begunkov 2020-06-08 4289 /* No ->flush() or already async, safely close from here */
98447d65b4a7a5 Jens Axboe 2020-10-14 4290 ret = filp_close(close->put_file, req->work.identity->files);
3af73b286ccee4 Pavel Begunkov 2020-06-08 4291 if (ret < 0)
3af73b286ccee4 Pavel Begunkov 2020-06-08 4292 req_set_fail_links(req);
3af73b286ccee4 Pavel Begunkov 2020-06-08 4293 fput(close->put_file);
3af73b286ccee4 Pavel Begunkov 2020-06-08 4294 close->put_file = NULL;
229a7b63507a3e Jens Axboe 2020-06-22 4295 __io_req_complete(req, ret, 0, cs);
a2100672f3b2af Pavel Begunkov 2020-03-02 4296 return 0;
a2100672f3b2af Pavel Begunkov 2020-03-02 4297 }
a2100672f3b2af Pavel Begunkov 2020-03-02 4298
:::::: The code at line 4281 was first introduced by commit
:::::: f3ac7a5996d7cd739664c5f71cab4f8da03937e7 io_uring: fix SQPOLL IORING_OP_CLOSE cancelation state
:::::: TO: Jens Axboe <axboe(a)kernel.dk>
:::::: CC: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months
[congwang:bpf-timer 1/1] kernel/bpf/helpers.c:735:15: warning: initialized field overwritten
by kernel test robot
tree: https://github.com/congwang/linux.git bpf-timer
head: 78245045626bf039d5e1ccc3a2f2f8b3a7079e8e
commit: 78245045626bf039d5e1ccc3a2f2f8b3a7079e8e [1/1] bpf: introduce bpf timer
config: arc-randconfig-r014-20210317 (attached as .config)
compiler: arceb-elf-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/congwang/linux/commit/78245045626bf039d5e1ccc3a2f2f8b3...
git remote add congwang https://github.com/congwang/linux.git
git fetch --no-tags congwang bpf-timer
git checkout 78245045626bf039d5e1ccc3a2f2f8b3a7079e8e
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arc
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 >>):
include/linux/filter.h:456:47: error: unknown type name '__BPF_MAP_1'
456 | #define __BPF_MAP_2(m, v, t, a, ...) m(t, a), __BPF_MAP_1(m, v, __VA_ARGS__)
| ^~~~~~~~~~~
include/linux/filter.h:457:47: note: in expansion of macro '__BPF_MAP_2'
457 | #define __BPF_MAP_3(m, v, t, a, ...) m(t, a), __BPF_MAP_2(m, v, __VA_ARGS__)
| ^~~~~~~~~~~
include/linux/filter.h:458:47: note: in expansion of macro '__BPF_MAP_3'
458 | #define __BPF_MAP_4(m, v, t, a, ...) m(t, a), __BPF_MAP_3(m, v, __VA_ARGS__)
| ^~~~~~~~~~~
include/linux/filter.h:468:27: note: in expansion of macro '__BPF_MAP_4'
468 | #define __BPF_MAP(n, ...) __BPF_MAP_##n(__VA_ARGS__)
| ^~~~~~~~~~
include/linux/filter.h:465:26: note: in expansion of macro '__BPF_MAP'
465 | #define __BPF_REG_4(...) __BPF_MAP(4, __VA_ARGS__), __BPF_PAD(1)
| ^~~~~~~~~
include/linux/filter.h:469:27: note: in expansion of macro '__BPF_REG_4'
469 | #define __BPF_REG(n, ...) __BPF_REG_##n(__VA_ARGS__)
| ^~~~~~~~~~
include/linux/filter.h:490:11: note: in expansion of macro '__BPF_REG'
490 | u64 name(__BPF_REG(x, __BPF_DECL_REGS, __BPF_N, __VA_ARGS__)); \
| ^~~~~~~~~
include/linux/filter.h:502:31: note: in expansion of macro 'BPF_CALL_x'
502 | #define BPF_CALL_4(name, ...) BPF_CALL_x(4, name, __VA_ARGS__)
| ^~~~~~~~~~
kernel/bpf/helpers.c:684:9: note: in expansion of macro 'BPF_CALL_4'
684 | notrace BPF_CALL_4(bpf_timer_create, void *, callback_fn, void *, callback_arg,
| ^~~~~~~~~~
kernel/bpf/helpers.c:685:1: error: macro "__BPF_MAP_1" requires 5 arguments, but only 3 given
685 | u32, flags)
| ^ ~~~~~~
In file included from kernel/bpf/helpers.c:12:
include/linux/filter.h:455: note: macro "__BPF_MAP_1" defined here
455 | #define __BPF_MAP_1(m, v, t, a, ...) m(t, a)
|
include/linux/filter.h:456:47: error: unknown type name '__BPF_MAP_1'
456 | #define __BPF_MAP_2(m, v, t, a, ...) m(t, a), __BPF_MAP_1(m, v, __VA_ARGS__)
| ^~~~~~~~~~~
include/linux/filter.h:457:47: note: in expansion of macro '__BPF_MAP_2'
457 | #define __BPF_MAP_3(m, v, t, a, ...) m(t, a), __BPF_MAP_2(m, v, __VA_ARGS__)
| ^~~~~~~~~~~
include/linux/filter.h:458:47: note: in expansion of macro '__BPF_MAP_3'
458 | #define __BPF_MAP_4(m, v, t, a, ...) m(t, a), __BPF_MAP_3(m, v, __VA_ARGS__)
| ^~~~~~~~~~~
include/linux/filter.h:468:27: note: in expansion of macro '__BPF_MAP_4'
468 | #define __BPF_MAP(n, ...) __BPF_MAP_##n(__VA_ARGS__)
| ^~~~~~~~~~
include/linux/filter.h:465:26: note: in expansion of macro '__BPF_MAP'
465 | #define __BPF_REG_4(...) __BPF_MAP(4, __VA_ARGS__), __BPF_PAD(1)
| ^~~~~~~~~
include/linux/filter.h:469:27: note: in expansion of macro '__BPF_REG_4'
469 | #define __BPF_REG(n, ...) __BPF_REG_##n(__VA_ARGS__)
| ^~~~~~~~~~
include/linux/filter.h:491:11: note: in expansion of macro '__BPF_REG'
491 | u64 name(__BPF_REG(x, __BPF_DECL_REGS, __BPF_N, __VA_ARGS__)) \
| ^~~~~~~~~
include/linux/filter.h:502:31: note: in expansion of macro 'BPF_CALL_x'
502 | #define BPF_CALL_4(name, ...) BPF_CALL_x(4, name, __VA_ARGS__)
| ^~~~~~~~~~
kernel/bpf/helpers.c:684:9: note: in expansion of macro 'BPF_CALL_4'
684 | notrace BPF_CALL_4(bpf_timer_create, void *, callback_fn, void *, callback_arg,
| ^~~~~~~~~~
kernel/bpf/helpers.c:685:1: error: macro "__BPF_MAP_1" requires 5 arguments, but only 3 given
685 | u32, flags)
| ^ ~~~~~~
In file included from kernel/bpf/helpers.c:12:
include/linux/filter.h:455: note: macro "__BPF_MAP_1" defined here
455 | #define __BPF_MAP_1(m, v, t, a, ...) m(t, a)
|
kernel/bpf/helpers.c:685:1: error: macro "__BPF_MAP_1" requires 5 arguments, but only 3 given
685 | u32, flags)
| ^ ~~~~~~
In file included from kernel/bpf/helpers.c:12:
include/linux/filter.h:455: note: macro "__BPF_MAP_1" defined here
455 | #define __BPF_MAP_1(m, v, t, a, ...) m(t, a)
|
include/linux/filter.h:456:47: error: unknown type name '__BPF_MAP_1'
456 | #define __BPF_MAP_2(m, v, t, a, ...) m(t, a), __BPF_MAP_1(m, v, __VA_ARGS__)
| ^~~~~~~~~~~
include/linux/filter.h:457:47: note: in expansion of macro '__BPF_MAP_2'
457 | #define __BPF_MAP_3(m, v, t, a, ...) m(t, a), __BPF_MAP_2(m, v, __VA_ARGS__)
| ^~~~~~~~~~~
include/linux/filter.h:458:47: note: in expansion of macro '__BPF_MAP_3'
458 | #define __BPF_MAP_4(m, v, t, a, ...) m(t, a), __BPF_MAP_3(m, v, __VA_ARGS__)
| ^~~~~~~~~~~
include/linux/filter.h:468:27: note: in expansion of macro '__BPF_MAP_4'
468 | #define __BPF_MAP(n, ...) __BPF_MAP_##n(__VA_ARGS__)
| ^~~~~~~~~~
include/linux/filter.h:496:17: note: in expansion of macro '__BPF_MAP'
496 | u64 ____##name(__BPF_MAP(x, __BPF_DECL_ARGS, __BPF_V, __VA_ARGS__))
| ^~~~~~~~~
include/linux/filter.h:502:31: note: in expansion of macro 'BPF_CALL_x'
502 | #define BPF_CALL_4(name, ...) BPF_CALL_x(4, name, __VA_ARGS__)
| ^~~~~~~~~~
kernel/bpf/helpers.c:684:9: note: in expansion of macro 'BPF_CALL_4'
684 | notrace BPF_CALL_4(bpf_timer_create, void *, callback_fn, void *, callback_arg,
| ^~~~~~~~~~
kernel/bpf/helpers.c:707:11: error: 'bpf_timer_create' undeclared here (not in a function); did you mean 'bpf_timer_list'?
707 | .func = bpf_timer_create,
| ^~~~~~~~~~~~~~~~
| bpf_timer_list
>> kernel/bpf/helpers.c:735:15: warning: initialized field overwritten [-Woverride-init]
735 | .arg1_type = ARG_PTR_TO_LONG,
| ^~~~~~~~~~~~~~~
kernel/bpf/helpers.c:735:15: note: (near initialization for 'bpf_timer_gettime_proto.<anonymous>.<anonymous>.arg1_type')
In file included from include/linux/irqflags.h:15,
from arch/arc/include/asm/smp.h:102,
from arch/arc/include/asm/bitops.h:19,
from include/linux/bitops.h:32,
from include/linux/kernel.h:11,
from include/linux/list.h:9,
from include/linux/timer.h:5,
from include/linux/workqueue.h:9,
from include/linux/bpf.h:9,
from kernel/bpf/helpers.c:4:
kernel/bpf/helpers.c: In function '____bpf_timer_delete':
kernel/bpf/helpers.c:764:31: error: 'irq_flags' undeclared (first use in this function); did you mean 'ifr_flags'?
764 | spin_lock_irqsave(&idr_lock, irq_flags);
| ^~~~~~~~~
include/linux/typecheck.h:11:9: note: in definition of macro 'typecheck'
11 | typeof(x) __dummy2; \
| ^
include/linux/spinlock.h:384:2: note: in expansion of macro 'raw_spin_lock_irqsave'
384 | raw_spin_lock_irqsave(spinlock_check(lock), flags); \
| ^~~~~~~~~~~~~~~~~~~~~
kernel/bpf/helpers.c:764:2: note: in expansion of macro 'spin_lock_irqsave'
764 | spin_lock_irqsave(&idr_lock, irq_flags);
| ^~~~~~~~~~~~~~~~~
kernel/bpf/helpers.c:764:31: note: each undeclared identifier is reported only once for each function it appears in
764 | spin_lock_irqsave(&idr_lock, irq_flags);
| ^~~~~~~~~
include/linux/typecheck.h:11:9: note: in definition of macro 'typecheck'
11 | typeof(x) __dummy2; \
| ^
include/linux/spinlock.h:384:2: note: in expansion of macro 'raw_spin_lock_irqsave'
384 | raw_spin_lock_irqsave(spinlock_check(lock), flags); \
| ^~~~~~~~~~~~~~~~~~~~~
kernel/bpf/helpers.c:764:2: note: in expansion of macro 'spin_lock_irqsave'
764 | spin_lock_irqsave(&idr_lock, irq_flags);
| ^~~~~~~~~~~~~~~~~
>> include/linux/typecheck.h:12:18: warning: comparison of distinct pointer types lacks a cast
12 | (void)(&__dummy == &__dummy2); \
| ^~
include/linux/spinlock.h:251:3: note: in expansion of macro 'typecheck'
251 | typecheck(unsigned long, flags); \
| ^~~~~~~~~
include/linux/spinlock.h:384:2: note: in expansion of macro 'raw_spin_lock_irqsave'
384 | raw_spin_lock_irqsave(spinlock_check(lock), flags); \
| ^~~~~~~~~~~~~~~~~~~~~
kernel/bpf/helpers.c:764:2: note: in expansion of macro 'spin_lock_irqsave'
764 | spin_lock_irqsave(&idr_lock, irq_flags);
| ^~~~~~~~~~~~~~~~~
At top level:
kernel/bpf/helpers.c:675:13: warning: 'bpf_timer_callback' defined but not used [-Wunused-function]
675 | static void bpf_timer_callback(struct timer_list *t)
| ^~~~~~~~~~~~~~~~~~
vim +735 kernel/bpf/helpers.c
729
730 const struct bpf_func_proto bpf_timer_gettime_proto = {
731 .func = bpf_timer_gettime,
732 .gpl_only = false,
733 .ret_type = RET_INTEGER,
734 .arg1_type = ARG_ANYTHING,
> 735 .arg1_type = ARG_PTR_TO_LONG,
736 };
737
---
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 1864/3681] arch/ia64/kernel/kprobes.c:414:17: error: implicit declaration of function '__kretprobe_trampoline_handler'; did you mean
by kernel test robot
tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.19.y
head: a636947af93f0a20fdba2c08ae38b7825ebf9c56
commit: d3380de483d55d904fb94a241406b34ed2fada7d [1864/3681] ia64: kprobes: Use generic kretprobe trampoline handler
config: ia64-randconfig-r015-20210317 (attached as .config)
compiler: ia64-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 d3380de483d55d904fb94a241406b34ed2fada7d
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.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 >>):
In file included from arch/ia64/include/asm/pgtable.h:154,
from include/linux/memremap.h:7,
from include/linux/mm.h:27,
from include/linux/kallsyms.h:12,
from include/linux/ftrace.h:11,
from include/linux/kprobes.h:42,
from arch/ia64/kernel/kprobes.c:26:
arch/ia64/include/asm/mmu_context.h: In function 'reload_context':
arch/ia64/include/asm/mmu_context.h:137:41: warning: variable 'old_rr4' set but not used [-Wunused-but-set-variable]
137 | unsigned long rr0, rr1, rr2, rr3, rr4, old_rr4;
| ^~~~~~~
arch/ia64/kernel/kprobes.c: In function 'get_kprobe_inst':
arch/ia64/kernel/kprobes.c:338:15: warning: variable 'template' set but not used [-Wunused-but-set-variable]
338 | unsigned int template;
| ^~~~~~~~
arch/ia64/kernel/kprobes.c: At top level:
arch/ia64/kernel/kprobes.c:412:15: warning: no previous prototype for 'trampoline_probe_handler' [-Wmissing-prototypes]
412 | int __kprobes trampoline_probe_handler(struct kprobe *p, struct pt_regs *regs)
| ^~~~~~~~~~~~~~~~~~~~~~~~
arch/ia64/kernel/kprobes.c: In function 'trampoline_probe_handler':
>> arch/ia64/kernel/kprobes.c:414:17: error: implicit declaration of function '__kretprobe_trampoline_handler'; did you mean 'kretprobe_trampoline'? [-Werror=implicit-function-declaration]
414 | regs->cr_iip = __kretprobe_trampoline_handler(regs, kretprobe_trampoline, NULL);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| kretprobe_trampoline
At top level:
arch/ia64/kernel/kprobes.c:928:13: warning: 'ia64_get_bsp_cfm' defined but not used [-Wunused-function]
928 | static void ia64_get_bsp_cfm(struct unw_frame_info *info, void *arg)
| ^~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for NUMA
Depends on !IA64_HP_SIM && !FLATMEM
Selected by
- IA64_SGI_UV && <choice>
vim +414 arch/ia64/kernel/kprobes.c
411
412 int __kprobes trampoline_probe_handler(struct kprobe *p, struct pt_regs *regs)
413 {
> 414 regs->cr_iip = __kretprobe_trampoline_handler(regs, kretprobe_trampoline, NULL);
415 /*
416 * By returning a non-zero value, we are telling
417 * kprobe_handler() that we don't want the post_handler
418 * to run (and have re-enabled preemption)
419 */
420 return 1;
421 }
422
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
1 year, 6 months