MLXSW_AFA_VLAN_CODE,
                                                  MLXSW_AFA_VLAN_SIZE);
  
-       if (!act) {
 -      if (IS_ERR(act))
++      if (IS_ERR(act)) {
 +              NL_SET_ERR_MSG_MOD(extack, "Cannot append vlan_modify action");
-               return -ENOBUFS;
+               return PTR_ERR(act);
 +      }
        mlxsw_afa_vlan_pack(act, MLXSW_AFA_VLAN_VLAN_TAG_CMD_NOP,
                            MLXSW_AFA_VLAN_CMD_SET_OUTER, vid,
                            MLXSW_AFA_VLAN_CMD_SET_OUTER, pcp,
  
        act = mlxsw_afa_block_append_action(block, MLXSW_AFA_FORWARD_CODE,
                                            MLXSW_AFA_FORWARD_SIZE);
-       if (!act) {
-               err = -ENOBUFS;
+       if (IS_ERR(act)) {
 +              NL_SET_ERR_MSG_MOD(extack, "Cannot append forward action");
+               err = PTR_ERR(act);
                goto err_append_action;
        }
        mlxsw_afa_forward_pack(act, MLXSW_AFA_FORWARD_TYPE_PBS,
        char *act = mlxsw_afa_block_append_action(block,
                                                  MLXSW_AFA_VIRFWD_CODE,
                                                  MLXSW_AFA_VIRFWD_SIZE);
-       if (!act) {
 -      if (IS_ERR(act))
++      if (IS_ERR(act)) {
 +              NL_SET_ERR_MSG_MOD(extack, "Cannot append fid_set action");
-               return -ENOBUFS;
+               return PTR_ERR(act);
 +      }
        mlxsw_afa_virfwd_pack(act, MLXSW_AFA_VIRFWD_FID_CMD_SET, fid);
        return 0;
  }
 
  #include <assert.h>
  #include <errno.h>
  #include <fcntl.h>
 +#include <linux/err.h>
+ #include <linux/kernel.h>
  #include <stdbool.h>
  #include <stdio.h>
  #include <stdlib.h>
                print_hex_data_json(key, info->key_size);
                jsonw_name(json_wtr, "value");
                print_hex_data_json(value, info->value_size);
 +              if (btf) {
 +                      struct btf_dumper d = {
 +                              .btf = btf,
 +                              .jw = json_wtr,
 +                              .is_plain_text = false,
 +                      };
 +
 +                      jsonw_name(json_wtr, "formatted");
 +                      do_dump_btf(&d, info, key, value);
 +              }
        } else {
-               unsigned int i, n;
+               unsigned int i, n, step;
  
                n = get_possible_cpus();
+               step = round_up(info->value_size, 8);
  
                jsonw_name(json_wtr, "key");
                print_hex_data_json(key, info->key_size);