Re: [PATCH bpf-next v6 1/3] bpf: make common crypto API for TC/XDP programs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Vadim,

kernel test robot noticed the following build errors:

[auto build test ERROR on bpf-next/master]

url:    https://github.com/intel-lab-lkp/linux/commits/Vadim-Fedorenko/bpf-crypto-add-skcipher-to-bpf-crypto/20231130-014813
base:   https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
patch link:    https://lore.kernel.org/r/20231129173312.31008-1-vadfed%40meta.com
patch subject: [PATCH bpf-next v6 1/3] bpf: make common crypto API for TC/XDP programs
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231130/202311300843.welZEZkm-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202311300843.welZEZkm-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

    3103 |                          psmouse->ps2dev.serio->phys);
         |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/input/mouse/lifebook.c: In function 'lifebook_init':
   drivers/input/mouse/lifebook.c:283:21: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
     283 |                  "%s/input1", psmouse->ps2dev.serio->phys);
         |                     ^~~~~~~
   In function 'lifebook_create_relative_device',
       inlined from 'lifebook_init' at drivers/input/mouse/lifebook.c:331:11:
   drivers/input/mouse/lifebook.c:282:9: note: 'snprintf' output between 8 and 39 bytes into a destination of size 32
     282 |         snprintf(priv->phys, sizeof(priv->phys),
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     283 |                  "%s/input1", psmouse->ps2dev.serio->phys);
         |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/input/mouse/elantech.c: In function 'elantech_setup_ps2':
   drivers/input/mouse/elantech.c:2090:65: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
    2090 |                 snprintf(etd->tp_phys, sizeof(etd->tp_phys), "%s/input1",
         |                                                                 ^~~~~~~
   drivers/input/mouse/elantech.c:2090:17: note: 'snprintf' output between 8 and 39 bytes into a destination of size 32
    2090 |                 snprintf(etd->tp_phys, sizeof(etd->tp_phys), "%s/input1",
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    2091 |                         psmouse->ps2dev.serio->phys);
         |                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/bpf/btf.c: In function 'btf_seq_show':
   kernel/bpf/btf.c:7091:29: warning: function 'btf_seq_show' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format]
    7091 |         seq_vprintf((struct seq_file *)show->target, fmt, args);
         |                             ^~~~~~~~
   kernel/bpf/btf.c: In function 'btf_snprintf_show':
   kernel/bpf/btf.c:7128:9: warning: function 'btf_snprintf_show' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format]
    7128 |         len = vsnprintf(show->target, ssnprintf->len_left, fmt, args);
         |         ^~~
   drivers/input/mouse/vmmouse.c: In function 'vmmouse_init':
   drivers/input/mouse/vmmouse.c:455:53: warning: '/input1' directive output may be truncated writing 7 bytes into a region of size between 1 and 32 [-Wformat-truncation=]
     455 |         snprintf(priv->phys, sizeof(priv->phys), "%s/input1",
         |                                                     ^~~~~~~
   drivers/input/mouse/vmmouse.c:455:9: note: 'snprintf' output between 8 and 39 bytes into a destination of size 32
     455 |         snprintf(priv->phys, sizeof(priv->phys), "%s/input1",
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     456 |                  psmouse->ps2dev.serio->phys);
         |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/trace/trace_events_synth.c:1165: warning: Excess function parameter 'args' description in '__synth_event_gen_cmd_start'
   kernel/trace/trace_events_synth.c:1714: warning: Excess function parameter 'args' description in 'synth_event_trace'
   drivers/thermal/thermal_sysfs.c: In function 'create_trip_attrs':
   drivers/thermal/thermal_sysfs.c:475:38: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size 9 [-Wformat-truncation=]
     475 |                          "trip_point_%d_type", indx);
         |                                      ^~
   drivers/thermal/thermal_sysfs.c:475:26: note: directive argument in the range [-2147483644, 2147483646]
     475 |                          "trip_point_%d_type", indx);
         |                          ^~~~~~~~~~~~~~~~~~~~
   drivers/thermal/thermal_sysfs.c:474:17: note: 'snprintf' output between 18 and 28 bytes into a destination of size 20
     474 |                 snprintf(tz->trip_type_attrs[indx].name, THERMAL_NAME_LENGTH,
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     475 |                          "trip_point_%d_type", indx);
         |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/thermal/thermal_sysfs.c:486:38: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size 9 [-Wformat-truncation=]
     486 |                          "trip_point_%d_temp", indx);
         |                                      ^~
   drivers/thermal/thermal_sysfs.c:486:26: note: directive argument in the range [-2147483644, 2147483646]
     486 |                          "trip_point_%d_temp", indx);
         |                          ^~~~~~~~~~~~~~~~~~~~
   drivers/thermal/thermal_sysfs.c:485:17: note: 'snprintf' output between 18 and 28 bytes into a destination of size 20
     485 |                 snprintf(tz->trip_temp_attrs[indx].name, THERMAL_NAME_LENGTH,
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     486 |                          "trip_point_%d_temp", indx);
         |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/thermal/thermal_sysfs.c:502:38: warning: '%d' directive output may be truncated writing between 1 and 11 bytes into a region of size 9 [-Wformat-truncation=]
     502 |                          "trip_point_%d_hyst", indx);
         |                                      ^~
   drivers/thermal/thermal_sysfs.c:502:26: note: directive argument in the range [-2147483644, 2147483646]
     502 |                          "trip_point_%d_hyst", indx);
         |                          ^~~~~~~~~~~~~~~~~~~~
   drivers/thermal/thermal_sysfs.c:501:17: note: 'snprintf' output between 18 and 28 bytes into a destination of size 20
     501 |                 snprintf(tz->trip_hyst_attrs[indx].name, THERMAL_NAME_LENGTH,
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     502 |                          "trip_point_%d_hyst", indx);
         |                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~
   In file included from drivers/net/usb/asix.h:28,
                    from drivers/net/usb/ax88172a.c:15:
   drivers/net/usb/ax88172a.c: In function 'ax88172a_reset':
   include/linux/phy.h:300:20: warning: '%s' directive output may be truncated writing up to 60 bytes into a region of size 20 [-Wformat-truncation=]
     300 | #define PHY_ID_FMT "%s:%02x"
         |                    ^~~~~~~~~
   drivers/net/usb/ax88172a.c:309:38: note: in expansion of macro 'PHY_ID_FMT'
     309 |         snprintf(priv->phy_name, 20, PHY_ID_FMT,
         |                                      ^~~~~~~~~~
   include/linux/phy.h:300:21: note: format string is defined here
     300 | #define PHY_ID_FMT "%s:%02x"
         |                     ^~
   include/linux/phy.h:300:20: note: directive argument in the range [0, 65535]
     300 | #define PHY_ID_FMT "%s:%02x"
         |                    ^~~~~~~~~
   drivers/net/usb/ax88172a.c:309:38: note: in expansion of macro 'PHY_ID_FMT'
     309 |         snprintf(priv->phy_name, 20, PHY_ID_FMT,
         |                                      ^~~~~~~~~~
   drivers/net/usb/ax88172a.c:309:9: note: 'snprintf' output between 4 and 66 bytes into a destination of size 20
     309 |         snprintf(priv->phy_name, 20, PHY_ID_FMT,
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     310 |                  priv->mdio->id, priv->phy_addr);
         |                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/usb/host/xhci.c:1350: warning: Function parameter or member 'desc' not described in 'xhci_get_endpoint_index'
   kernel/bpf/crypto.c: In function 'bpf_crypto_ctx_create':
>> kernel/bpf/crypto.c:179:60: error: expected ')' before ';' token
     179 |                 *err = type->setauthsize(ctx->tfm, authsize;
         |                                         ~                  ^
         |                                                            )
>> kernel/bpf/crypto.c:181:34: error: expected ';' before '}' token
     181 |                         goto err;
         |                                  ^
         |                                  ;
     182 |         }
         |         ~                         
   make[5]: *** [scripts/Makefile.build:243: kernel/bpf/crypto.o] Error 1
   drivers/cpuidle/governors/ladder.c:54: warning: Function parameter or member 'dev' not described in 'ladder_do_selection'
   make[5]: Target 'kernel/bpf/' not remade because of errors.
   make[4]: *** [scripts/Makefile.build:480: kernel/bpf] Error 2
   drivers/cpufreq/intel_pstate.c:264: warning: Function parameter or member 'epp_cached' not described in 'cpudata'
   make[4]: Target 'kernel/' not remade because of errors.
   make[3]: *** [scripts/Makefile.build:480: kernel] Error 2
   drivers/leds/led-core.c: In function 'led_compose_name':
   drivers/leds/led-core.c:514:78: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
     514 |                         snprintf(led_classdev_name, LED_MAX_NAME_SIZE, "%s:%s",
         |                                                                              ^
   drivers/leds/led-core.c:514:25: note: 'snprintf' output 2 or more bytes (assuming 65) into a destination of size 64
     514 |                         snprintf(led_classdev_name, LED_MAX_NAME_SIZE, "%s:%s",
         |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     515 |                                  devicename, tmp_buf);
         |                                  ~~~~~~~~~~~~~~~~~~~~
   drivers/hid/hid-magicmouse.c:148: warning: Function parameter or member 'hdev' not described in 'magicmouse_sc'
   drivers/hid/hid-magicmouse.c:148: warning: Function parameter or member 'work' not described in 'magicmouse_sc'
   drivers/hid/hid-magicmouse.c:148: warning: Function parameter or member 'battery_timer' not described in 'magicmouse_sc'
   drivers/hwspinlock/hwspinlock_core.c:208: warning: Function parameter or member 'to' not described in '__hwspin_lock_timeout'
   drivers/hwspinlock/hwspinlock_core.c:208: warning: Excess function parameter 'timeout' description in '__hwspin_lock_timeout'
   drivers/hwspinlock/hwspinlock_core.c:318: warning: Excess function parameter 'bank' description in 'of_hwspin_lock_simple_xlate'
   drivers/hwspinlock/hwspinlock_core.c:647: warning: Function parameter or member 'hwlock' not described in '__hwspin_lock_request'
   drivers/firmware/efi/memmap.c:132: warning: Function parameter or member 'addr' not described in 'efi_memmap_init_late'
   drivers/firmware/efi/memmap.c:132: warning: Excess function parameter 'phys_addr' description in 'efi_memmap_init_late'
   drivers/hv/channel.c:597: warning: Function parameter or member 'size' not described in 'request_arr_init'
   drivers/firmware/efi/cper-x86.c: In function 'cper_print_proc_ia':
   drivers/firmware/efi/cper-x86.c:295:72: warning: 'snprintf' output may be truncated before the last format character [-Wformat-truncation=]
     295 |                                 snprintf(infopfx, sizeof(infopfx), "%s ",
         |                                                                        ^
   drivers/firmware/efi/cper-x86.c:295:33: note: 'snprintf' output between 2 and 65 bytes into a destination of size 64
     295 |                                 snprintf(infopfx, sizeof(infopfx), "%s ",
         |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     296 |                                          newpfx);
         |                                          ~~~~~~~
   drivers/firmware/efi/libstub/efi-stub-helper.c:563: warning: Function parameter or member 'out' not described in 'efi_load_initrd'
   drivers/firmware/efi/libstub/alignedmem.c:27: warning: Function parameter or member 'memory_type' not described in 'efi_allocate_pages_aligned'
   make[3]: Target './' not remade because of errors.
   make[2]: *** [Makefile:1911: .] Error 2
   make[2]: Target 'vmlinux' not remade because of errors.
   make[1]: *** [Makefile:234: __sub-make] Error 2
   make[1]: Target 'vmlinux' not remade because of errors.
   make: *** [Makefile:234: __sub-make] Error 2
   make: Target 'vmlinux' not remade because of errors.


vim +179 kernel/bpf/crypto.c

   105	
   106	/**
   107	 * bpf_crypto_ctx_create() - Create a mutable BPF crypto context.
   108	 *
   109	 * Allocates a crypto context that can be used, acquired, and released by
   110	 * a BPF program. The crypto context returned by this function must either
   111	 * be embedded in a map as a kptr, or freed with bpf_crypto_ctx_release().
   112	 * As crypto API functions use GFP_KERNEL allocations, this function can
   113	 * only be used in sleepable BPF programs.
   114	 *
   115	 * bpf_crypto_ctx_create() allocates memory for crypto context.
   116	 * It may return NULL if no memory is available.
   117	 * @type__str: pointer to string representation of crypto type.
   118	 * @algo__str: pointer to string representation of algorithm.
   119	 * @pkey:      bpf_dynptr which holds cipher key to do crypto.
   120	 * @err:       integer to store error code when NULL is returned
   121	 */
   122	__bpf_kfunc struct bpf_crypto_ctx *
   123	bpf_crypto_ctx_create(const char *type__str, const char *algo__str,
   124			      const struct bpf_dynptr_kern *pkey,
   125			      unsigned int authsize, int *err)
   126	{
   127		const struct bpf_crypto_type *type = bpf_crypto_get_type(type__str);
   128		struct bpf_crypto_ctx *ctx;
   129		const u8 *key;
   130		u32 key_len;
   131	
   132		//type = bpf_crypto_get_type(type__str);
   133		if (IS_ERR(type)) {
   134			*err = PTR_ERR(type);
   135			return NULL;
   136		}
   137	
   138		if (!type->has_algo(algo__str)) {
   139			*err = -EOPNOTSUPP;
   140			goto err;
   141		}
   142	
   143		if (!authsize && type->setauthsize) {
   144			*err = -EOPNOTSUPP;
   145			goto err;
   146		}
   147	
   148		if (authsize && !type->setauthsize) {
   149			*err = -EOPNOTSUPP;
   150			goto err;
   151		}
   152	
   153		key_len = __bpf_dynptr_size(pkey);
   154		if (!key_len) {
   155			*err = -EINVAL;
   156			goto err;
   157		}
   158		key = __bpf_dynptr_data(pkey, key_len);
   159		if (!key) {
   160			*err = -EINVAL;
   161			goto err;
   162		}
   163	
   164		ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
   165		if (!ctx) {
   166			*err = -ENOMEM;
   167			goto err;
   168		}
   169	
   170		ctx->type = type;
   171		ctx->tfm = type->alloc_tfm(algo__str);
   172		if (IS_ERR(ctx->tfm)) {
   173			*err = PTR_ERR(ctx->tfm);
   174			ctx->tfm = NULL;
   175			goto err;
   176		}
   177	
   178		if (authsize) {
 > 179			*err = type->setauthsize(ctx->tfm, authsize;
   180			if (*err)
 > 181				goto err;
   182		}
   183	
   184		*err = type->setkey(ctx->tfm, key, key_len);
   185		if (*err)
   186			goto err;
   187	
   188		refcount_set(&ctx->usage, 1);
   189	
   190		return ctx;
   191	err:
   192		if (ctx->tfm)
   193			type->free_tfm(ctx->tfm);
   194		kfree(ctx);
   195		module_put(type->owner);
   196	
   197		return NULL;
   198	}
   199	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki




[Index of Archives]     [Kernel]     [Gnu Classpath]     [Gnu Crypto]     [DM Crypt]     [Netfilter]     [Bugtraq]
  Powered by Linux