| Seq | Timestamp | Type | Name | Duration |
|---|---|---|---|---|
| 0/0 | 2026/08/21 14:56 | flow | patch-triage |
0mArgs:null Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"KMSANReasoning": "",
"NeedsKMSAN": false,
"Reasoning": "The patch only changes memory allocation flags to include GFP_KERNEL_ACCOUNT across various netfilter modules. This is a mechanical change for memory cgroup accounting and does not functionally alter the execution flow of the kernel. Therefore, it is not worth fuzzing.",
"WorthFuzzing": false
} |
| 1/1 | 2026/08/21 14:56 | action | read-patch-diff |
0mArgs:null Results: {
"PatchDiff": "commit fcf7f93ac1f52caceec9aac3202ea39086bcf4ce\nAuthor: syz-cluster \u003ctriage@syzkaller.com\u003e\nDate: Fri Aug 21 14:56:18 2026 +0000\n\n syz-cluster: applied patch under review\n\ndiff --git a/net/bridge/netfilter/ebtables.c b/net/bridge/netfilter/ebtables.c\nindex 0bf541936f601..64b8f6f982119 100644\n--- a/net/bridge/netfilter/ebtables.c\n+++ b/net/bridge/netfilter/ebtables.c\n@@ -1304,7 +1304,7 @@ int ebt_register_template(const struct ebt_table *t, int (*table_init)(struct ne\n \t\t}\n \t}\n \n-\ttmpl = kzalloc_obj(*tmpl);\n+\ttmpl = kzalloc_obj(*tmpl, GFP_KERNEL_ACCOUNT);\n \tif (!tmpl) {\n \t\tmutex_unlock(\u0026ebt_mutex);\n \t\treturn -ENOMEM;\ndiff --git a/net/netfilter/ipset/ip_set_bitmap_ip.c b/net/netfilter/ipset/ip_set_bitmap_ip.c\nindex ac7febce074f1..e152cf35d8596 100644\n--- a/net/netfilter/ipset/ip_set_bitmap_ip.c\n+++ b/net/netfilter/ipset/ip_set_bitmap_ip.c\n@@ -217,7 +217,7 @@ init_map_ip(struct ip_set *set, struct bitmap_ip *map,\n \t u32 first_ip, u32 last_ip,\n \t u32 elements, u32 hosts, u8 netmask)\n {\n-\tmap-\u003emembers = bitmap_zalloc(elements, GFP_KERNEL | __GFP_NOWARN);\n+\tmap-\u003emembers = bitmap_zalloc(elements, GFP_KERNEL_ACCOUNT | __GFP_NOWARN);\n \tif (!map-\u003emembers)\n \t\treturn false;\n \tmap-\u003efirst_ip = first_ip;\ndiff --git a/net/netfilter/ipset/ip_set_bitmap_ipmac.c b/net/netfilter/ipset/ip_set_bitmap_ipmac.c\nindex 5921fd9d2dca0..a1179352220a4 100644\n--- a/net/netfilter/ipset/ip_set_bitmap_ipmac.c\n+++ b/net/netfilter/ipset/ip_set_bitmap_ipmac.c\n@@ -300,7 +300,7 @@ static bool\n init_map_ipmac(struct ip_set *set, struct bitmap_ipmac *map,\n \t u32 first_ip, u32 last_ip, u32 elements)\n {\n-\tmap-\u003emembers = bitmap_zalloc(elements, GFP_KERNEL | __GFP_NOWARN);\n+\tmap-\u003emembers = bitmap_zalloc(elements, GFP_KERNEL_ACCOUNT | __GFP_NOWARN);\n \tif (!map-\u003emembers)\n \t\treturn false;\n \tmap-\u003efirst_ip = first_ip;\ndiff --git a/net/netfilter/ipset/ip_set_bitmap_port.c b/net/netfilter/ipset/ip_set_bitmap_port.c\nindex ca875c9824245..0a0027cdb1937 100644\n--- a/net/netfilter/ipset/ip_set_bitmap_port.c\n+++ b/net/netfilter/ipset/ip_set_bitmap_port.c\n@@ -231,7 +231,7 @@ static bool\n init_map_port(struct ip_set *set, struct bitmap_port *map,\n \t u16 first_port, u16 last_port)\n {\n-\tmap-\u003emembers = bitmap_zalloc(map-\u003eelements, GFP_KERNEL | __GFP_NOWARN);\n+\tmap-\u003emembers = bitmap_zalloc(map-\u003eelements, GFP_KERNEL_ACCOUNT | __GFP_NOWARN);\n \tif (!map-\u003emembers)\n \t\treturn false;\n \tmap-\u003efirst_port = first_port;\ndiff --git a/net/netfilter/ipset/ip_set_core.c b/net/netfilter/ipset/ip_set_core.c\nindex 0a86a170ba906..28ac8cba3d68c 100644\n--- a/net/netfilter/ipset/ip_set_core.c\n+++ b/net/netfilter/ipset/ip_set_core.c\n@@ -1085,7 +1085,7 @@ static int ip_set_create(struct sk_buff *skb, const struct nfnl_info *info,\n \t/* First, and without any locks, allocate and initialize\n \t * a normal base set structure.\n \t */\n-\tset = kzalloc_obj(*set);\n+\tset = kzalloc_obj(*set, GFP_KERNEL_ACCOUNT);\n \tif (!set)\n \t\treturn -ENOMEM;\n \tspin_lock_init(\u0026set-\u003elock);\n@@ -1143,7 +1143,7 @@ static int ip_set_create(struct sk_buff *skb, const struct nfnl_info *info,\n \t\t\t/* Wraparound */\n \t\t\tgoto cleanup;\n \n-\t\tlist = kvzalloc_objs(struct ip_set *, i);\n+\t\tlist = kvzalloc_objs(struct ip_set *, i, GFP_KERNEL_ACCOUNT);\n \t\tif (!list)\n \t\t\tgoto cleanup;\n \t\t/* nfnl mutex is held, both lists are valid */\n@@ -2397,7 +2397,8 @@ ip_set_net_init(struct net *net)\n \tif (inst-\u003eip_set_max \u003e= IPSET_INVALID_ID)\n \t\tinst-\u003eip_set_max = IPSET_INVALID_ID - 1;\n \n-\tlist = kvzalloc_objs(struct ip_set *, inst-\u003eip_set_max);\n+\tlist = kvzalloc_objs(struct ip_set *, inst-\u003eip_set_max,\n+\t\t\t GFP_KERNEL_ACCOUNT);\n \tif (!list)\n \t\treturn -ENOMEM;\n \tinst-\u003eis_deleted = false;\ndiff --git a/net/netfilter/ipset/ip_set_hash_gen.h b/net/netfilter/ipset/ip_set_hash_gen.h\nindex 80ca523f304bb..39dec9285052a 100644\n--- a/net/netfilter/ipset/ip_set_hash_gen.h\n+++ b/net/netfilter/ipset/ip_set_hash_gen.h\n@@ -768,7 +768,7 @@ mtype_resize(struct ip_set *set, bool retried)\n \tint ret;\n \n #ifdef IP_SET_HASH_WITH_NETS\n-\ttmp = kmalloc(dsize, GFP_KERNEL);\n+\ttmp = kmalloc(dsize, GFP_KERNEL_ACCOUNT);\n \tif (!tmp)\n \t\treturn -ENOMEM;\n #endif\n@@ -1754,7 +1754,7 @@ IPSET_TOKEN(HTYPE, _create)(struct net *net, struct ip_set *set,\n \t\tsizeof(struct IPSET_TOKEN(HTYPE, 6)) :\n \t\tsizeof(struct IPSET_TOKEN(HTYPE, 4));\n #endif\n-\th = kzalloc(hsize, GFP_KERNEL);\n+\th = kzalloc(hsize, GFP_KERNEL_ACCOUNT);\n \tif (!h)\n \t\treturn -ENOMEM;\n \n@@ -1774,7 +1774,7 @@ IPSET_TOKEN(HTYPE, _create)(struct net *net, struct ip_set *set,\n \t\tgoto free_t;\n #ifdef IP_SET_HASH_WITH_NETS\n \tfor (i = 0; i \u003c IPSET_NET_COUNT; i++) {\n-\t\tnets = kzalloc_obj(*nets);\n+\t\tnets = kzalloc_obj(*nets, GFP_KERNEL_ACCOUNT);\n \t\tif (!nets) {\n \t\t\twhile (i \u003e 0)\n \t\t\t\tkfree(rcu_dereference_raw(h-\u003ernets[--i]));\ndiff --git a/net/netfilter/ipset/ip_set_list_set.c b/net/netfilter/ipset/ip_set_list_set.c\nindex f070088742d60..750fe38261c37 100644\n--- a/net/netfilter/ipset/ip_set_list_set.c\n+++ b/net/netfilter/ipset/ip_set_list_set.c\n@@ -600,7 +600,7 @@ init_list_set(struct net *net, struct ip_set *set, u32 size)\n {\n \tstruct list_set *map;\n \n-\tmap = kzalloc_obj(*map);\n+\tmap = kzalloc_obj(*map, GFP_KERNEL_ACCOUNT);\n \tif (!map)\n \t\treturn false;\n \ndiff --git a/net/netfilter/nf_conncount.c b/net/netfilter/nf_conncount.c\nindex 85487f92af506..b09c176a521d1 100644\n--- a/net/netfilter/nf_conncount.c\n+++ b/net/netfilter/nf_conncount.c\n@@ -691,7 +691,7 @@ struct nf_conncount_data *nf_conncount_init(struct net *net, unsigned int keylen\n \t keylen == 0)\n \t\treturn ERR_PTR(-EINVAL);\n \n-\tdata = kvzalloc_obj(*data);\n+\tdata = kvzalloc_obj(*data, GFP_KERNEL_ACCOUNT);\n \tif (!data)\n \t\treturn ERR_PTR(-ENOMEM);\n \ndiff --git a/net/netfilter/nf_conntrack_ovs.c b/net/netfilter/nf_conntrack_ovs.c\nindex b4085af3ad1ce..fe525b324af41 100644\n--- a/net/netfilter/nf_conntrack_ovs.c\n+++ b/net/netfilter/nf_conntrack_ovs.c\n@@ -93,7 +93,7 @@ int nf_ct_add_helper(struct nf_conn *ct, const char *name, u8 family,\n \tif (!helper)\n \t\treturn -EINVAL;\n \n-\thelp = nf_ct_helper_ext_add(ct, GFP_KERNEL);\n+\thelp = nf_ct_helper_ext_add(ct, GFP_KERNEL_ACCOUNT);\n \tif (!help) {\n \t\tnf_conntrack_helper_put(helper);\n \t\treturn -ENOMEM;\ndiff --git a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c\nindex f4f2d82192d54..d88a10230862e 100644\n--- a/net/netfilter/nf_conntrack_standalone.c\n+++ b/net/netfilter/nf_conntrack_standalone.c\n@@ -1009,7 +1009,7 @@ static int nf_conntrack_standalone_init_sysctl(struct net *net)\n \tBUILD_BUG_ON(ARRAY_SIZE(nf_ct_sysctl_table) != NF_SYSCTL_CT_LAST_SYSCTL);\n \n \ttable = kmemdup(nf_ct_sysctl_table, sizeof(nf_ct_sysctl_table),\n-\t\t\tGFP_KERNEL);\n+\t\t\tGFP_KERNEL_ACCOUNT);\n \tif (!table)\n \t\treturn -ENOMEM;\n \ndiff --git a/net/netfilter/nf_hooks_lwtunnel.c b/net/netfilter/nf_hooks_lwtunnel.c\nindex 4e1eef1ba0f15..40c6fce14a63f 100644\n--- a/net/netfilter/nf_hooks_lwtunnel.c\n+++ b/net/netfilter/nf_hooks_lwtunnel.c\n@@ -73,7 +73,7 @@ static int __net_init nf_lwtunnel_net_init(struct net *net)\n \tif (!net_eq(net, \u0026init_net)) {\n \t\ttable = kmemdup(nf_lwtunnel_sysctl_table,\n \t\t\t\tsizeof(nf_lwtunnel_sysctl_table),\n-\t\t\t\tGFP_KERNEL);\n+\t\t\t\tGFP_KERNEL_ACCOUNT);\n \t\tif (!table)\n \t\t\tgoto err_alloc;\n \t}\ndiff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c\nindex f4d80654dfe6a..f1d3649e3fc62 100644\n--- a/net/netfilter/nf_log.c\n+++ b/net/netfilter/nf_log.c\n@@ -493,7 +493,7 @@ static int netfilter_log_sysctl_init(struct net *net)\n \tif (!net_eq(net, \u0026init_net)) {\n \t\ttable = kmemdup(nf_log_sysctl_table,\n \t\t\t\t sizeof(nf_log_sysctl_table),\n-\t\t\t\t GFP_KERNEL);\n+\t\t\t\t GFP_KERNEL_ACCOUNT);\n \t\tif (!table)\n \t\t\tgoto err_alloc;\n \t} else {\ndiff --git a/net/netfilter/nf_nat_core.c b/net/netfilter/nf_nat_core.c\nindex 8ac326e1eb5ba..09cc5b8fd6af1 100644\n--- a/net/netfilter/nf_nat_core.c\n+++ b/net/netfilter/nf_nat_core.c\n@@ -1204,14 +1204,15 @@ int nf_nat_register_fn(struct net *net, u8 pf, const struct nf_hook_ops *ops,\n \tif (!nat_proto_net-\u003enat_hook_ops) {\n \t\tWARN_ON(nat_proto_net-\u003eusers != 0);\n \n-\t\tnat_ops = kmemdup_array(orig_nat_ops, ops_count, sizeof(*orig_nat_ops), GFP_KERNEL);\n+\t\tnat_ops = kmemdup_array(orig_nat_ops, ops_count, sizeof(*orig_nat_ops),\n+\t\t\t\t\tGFP_KERNEL_ACCOUNT);\n \t\tif (!nat_ops) {\n \t\t\tmutex_unlock(\u0026nf_nat_proto_mutex);\n \t\t\treturn -ENOMEM;\n \t\t}\n \n \t\tfor (i = 0; i \u003c ops_count; i++) {\n-\t\t\tpriv = kzalloc_obj(*priv);\n+\t\t\tpriv = kzalloc_obj(*priv, GFP_KERNEL_ACCOUNT);\n \t\t\tif (priv) {\n \t\t\t\tnat_ops[i].priv = priv;\n \t\t\t\tcontinue;\ndiff --git a/net/netfilter/nf_synproxy_core.c b/net/netfilter/nf_synproxy_core.c\nindex acd360515972f..9fc959ba20300 100644\n--- a/net/netfilter/nf_synproxy_core.c\n+++ b/net/netfilter/nf_synproxy_core.c\n@@ -336,7 +336,7 @@ static int __net_init synproxy_net_init(struct net *net)\n \tstruct nf_conn *ct;\n \tint err = -ENOMEM;\n \n-\tct = nf_ct_tmpl_alloc(net, \u0026nf_ct_zone_dflt, GFP_KERNEL);\n+\tct = nf_ct_tmpl_alloc(net, \u0026nf_ct_zone_dflt, GFP_KERNEL_ACCOUNT);\n \tif (!ct)\n \t\tgoto err1;\n \ndiff --git a/net/netfilter/nfnetlink_acct.c b/net/netfilter/nfnetlink_acct.c\nindex 8ff1e0ad5cb0d..1a366fbd81332 100644\n--- a/net/netfilter/nfnetlink_acct.c\n+++ b/net/netfilter/nfnetlink_acct.c\n@@ -112,7 +112,7 @@ static int nfnl_acct_new(struct sk_buff *skb, const struct nfnl_info *info,\n \t\tsize += sizeof(u64);\n \t}\n \n-\tnfacct = kzalloc(sizeof(struct nf_acct) + size, GFP_KERNEL);\n+\tnfacct = kzalloc(sizeof(struct nf_acct) + size, GFP_KERNEL_ACCOUNT);\n \tif (nfacct == NULL)\n \t\treturn -ENOMEM;\n \ndiff --git a/net/netfilter/nfnetlink_cthelper.c b/net/netfilter/nfnetlink_cthelper.c\nindex 5b6a09f46903f..a09b2fdbf9b4e 100644\n--- a/net/netfilter/nfnetlink_cthelper.c\n+++ b/net/netfilter/nfnetlink_cthelper.c\n@@ -335,7 +335,8 @@ static int nfnl_cthelper_update_policy_all(struct nlattr *tb[],\n \tstruct nf_conntrack_expect_policy *policy;\n \tint i, ret = 0;\n \n-\tnew_policy = kmalloc_objs(*new_policy, helper-\u003eexpect_class_max + 1);\n+\tnew_policy = kmalloc_objs(*new_policy, helper-\u003eexpect_class_max + 1,\n+\t\t\t\t GFP_KERNEL_ACCOUNT);\n \tif (!new_policy)\n \t\treturn -ENOMEM;\n \ndiff --git a/net/netfilter/nfnetlink_cttimeout.c b/net/netfilter/nfnetlink_cttimeout.c\nindex 66c2016f6049d..6b4adaaf61af0 100644\n--- a/net/netfilter/nfnetlink_cttimeout.c\n+++ b/net/netfilter/nfnetlink_cttimeout.c\n@@ -71,7 +71,8 @@ ctnl_timeout_parse_policy(void *timeout,\n \tstruct nlattr **tb;\n \tint ret = 0;\n \n-\ttb = kzalloc_objs(*tb, l4proto-\u003ectnl_timeout.nlattr_max + 1);\n+\ttb = kzalloc_objs(*tb, l4proto-\u003ectnl_timeout.nlattr_max + 1,\n+\t\t\t GFP_KERNEL_ACCOUNT);\n \n \tif (!tb)\n \t\treturn -ENOMEM;\n@@ -150,14 +151,15 @@ static int cttimeout_new_timeout(struct sk_buff *skb,\n \t\tgoto err_proto_put;\n \t}\n \n-\ttimeout = kzalloc(sizeof(*timeout), GFP_KERNEL);\n+\ttimeout = kzalloc(sizeof(*timeout), GFP_KERNEL_ACCOUNT);\n \tif (timeout == NULL) {\n \t\tret = -ENOMEM;\n \t\tgoto err_proto_put;\n \t}\n \n \ttimeout-\u003etimeout = kzalloc(sizeof(*timeout-\u003etimeout) +\n-\t\t\t\t l4proto-\u003ectnl_timeout.obj_size, GFP_KERNEL);\n+\t\t\t\t l4proto-\u003ectnl_timeout.obj_size,\n+\t\t\t\t GFP_KERNEL_ACCOUNT);\n \tif (!timeout-\u003etimeout) {\n \t\tret = -ENOMEM;\n \t\tgoto err;\ndiff --git a/net/netfilter/nfnetlink_osf.c b/net/netfilter/nfnetlink_osf.c\nindex 92002079f8eab..e4835b0f4bb1a 100644\n--- a/net/netfilter/nfnetlink_osf.c\n+++ b/net/netfilter/nfnetlink_osf.c\n@@ -325,7 +325,7 @@ static int nfnl_osf_add_callback(struct sk_buff *skb,\n \t !memchr(f-\u003eversion, 0, MAXGENRELEN))\n \t\treturn -EINVAL;\n \n-\tkf = kmalloc_obj(struct nf_osf_finger);\n+\tkf = kmalloc_obj(struct nf_osf_finger, GFP_KERNEL_ACCOUNT);\n \tif (!kf)\n \t\treturn -ENOMEM;\n \ndiff --git a/net/netfilter/nft_ct.c b/net/netfilter/nft_ct.c\nindex 9dbf127df9c81..89760874336c3 100644\n--- a/net/netfilter/nft_ct.c\n+++ b/net/netfilter/nft_ct.c\n@@ -365,7 +365,7 @@ static bool nft_ct_tmpl_alloc_pcpu(void)\n \t\treturn true;\n \n \tfor_each_possible_cpu(cpu) {\n-\t\ttmp = nf_ct_tmpl_alloc(\u0026init_net, \u0026zone, GFP_KERNEL);\n+\t\ttmp = nf_ct_tmpl_alloc(\u0026init_net, \u0026zone, GFP_KERNEL_ACCOUNT);\n \t\tif (!tmp) {\n \t\t\tnft_ct_tmpl_put_pcpu();\n \t\t\treturn false;\n@@ -848,7 +848,8 @@ nft_ct_timeout_parse_policy(void *timeouts,\n \tstruct nlattr **tb;\n \tint ret = 0;\n \n-\ttb = kzalloc_objs(*tb, l4proto-\u003ectnl_timeout.nlattr_max + 1);\n+\ttb = kzalloc_objs(*tb, l4proto-\u003ectnl_timeout.nlattr_max + 1,\n+\t\t\t GFP_KERNEL_ACCOUNT);\n \n \tif (!tb)\n \t\treturn -ENOMEM;\n@@ -934,7 +935,7 @@ static int nft_ct_timeout_obj_init(const struct nft_ctx *ctx,\n \t}\n \n \ttimeout = kzalloc(sizeof(struct nf_ct_timeout) +\n-\t\t\t l4proto-\u003ectnl_timeout.obj_size, GFP_KERNEL);\n+\t\t\t l4proto-\u003ectnl_timeout.obj_size, GFP_KERNEL_ACCOUNT);\n \tif (timeout == NULL) {\n \t\tret = -ENOMEM;\n \t\tgoto err_proto_put;\ndiff --git a/net/netfilter/nft_set_pipapo.c b/net/netfilter/nft_set_pipapo.c\nindex 978bb0c011068..3617bb66094d4 100644\n--- a/net/netfilter/nft_set_pipapo.c\n+++ b/net/netfilter/nft_set_pipapo.c\n@@ -2298,7 +2298,7 @@ static int nft_pipapo_init(const struct nft_set *set,\n \tif (field_count \u003e NFT_PIPAPO_MAX_FIELDS)\n \t\treturn -EINVAL;\n \n-\tm = kmalloc_flex(*m, f, field_count);\n+\tm = kmalloc_flex(*m, f, field_count, GFP_KERNEL_ACCOUNT);\n \tif (!m)\n \t\treturn -ENOMEM;\n \ndiff --git a/net/netfilter/xt_CT.c b/net/netfilter/xt_CT.c\nindex e78660dfdf4b6..205bc6dd98125 100644\n--- a/net/netfilter/xt_CT.c\n+++ b/net/netfilter/xt_CT.c\n@@ -91,7 +91,7 @@ xt_ct_set_helper(struct nf_conn *ct, const char *helper_name,\n \t\treturn -ENOENT;\n \t}\n \n-\thelp = nf_ct_helper_ext_add(ct, GFP_KERNEL);\n+\thelp = nf_ct_helper_ext_add(ct, GFP_KERNEL_ACCOUNT);\n \tif (help == NULL) {\n \t\tnf_conntrack_helper_put(helper);\n \t\treturn -ENOMEM;\n@@ -182,7 +182,7 @@ static int xt_ct_tg_check(const struct xt_tgchk_param *par,\n \tif (info-\u003eflags \u0026 XT_CT_ZONE_MARK)\n \t\tzone.flags |= NF_CT_FLAG_MARK;\n \n-\tct = nf_ct_tmpl_alloc(par-\u003enet, \u0026zone, GFP_KERNEL);\n+\tct = nf_ct_tmpl_alloc(par-\u003enet, \u0026zone, GFP_KERNEL_ACCOUNT);\n \tif (!ct) {\n \t\tret = -ENOMEM;\n \t\tgoto err2;\n@@ -190,7 +190,7 @@ static int xt_ct_tg_check(const struct xt_tgchk_param *par,\n \n \tif ((info-\u003ect_events || info-\u003eexp_events) \u0026\u0026\n \t !nf_ct_ecache_ext_add(ct, info-\u003ect_events, info-\u003eexp_events,\n-\t\t\t\t GFP_KERNEL)) {\n+\t\t\t\t GFP_KERNEL_ACCOUNT)) {\n \t\tret = -EINVAL;\n \t\tgoto err3;\n \t}\ndiff --git a/net/netfilter/xt_IDLETIMER.c b/net/netfilter/xt_IDLETIMER.c\nindex bfcf2d44e93db..796b0d461c3d0 100644\n--- a/net/netfilter/xt_IDLETIMER.c\n+++ b/net/netfilter/xt_IDLETIMER.c\n@@ -150,7 +150,7 @@ static int idletimer_tg_create(struct idletimer_tg_info *info)\n {\n \tint ret;\n \n-\tinfo-\u003etimer = kzalloc_obj(*info-\u003etimer);\n+\tinfo-\u003etimer = kzalloc_obj(*info-\u003etimer, GFP_KERNEL_ACCOUNT);\n \tif (!info-\u003etimer) {\n \t\tret = -ENOMEM;\n \t\tgoto out;\n@@ -161,7 +161,7 @@ static int idletimer_tg_create(struct idletimer_tg_info *info)\n \t\tgoto out_free_timer;\n \n \tsysfs_attr_init(\u0026info-\u003etimer-\u003eattr.attr);\n-\tinfo-\u003etimer-\u003eattr.attr.name = kstrdup(info-\u003elabel, GFP_KERNEL);\n+\tinfo-\u003etimer-\u003eattr.attr.name = kstrdup(info-\u003elabel, GFP_KERNEL_ACCOUNT);\n \tif (!info-\u003etimer-\u003eattr.attr.name) {\n \t\tret = -ENOMEM;\n \t\tgoto out_free_timer;\n@@ -199,7 +199,7 @@ static int idletimer_tg_create_v1(struct idletimer_tg_info_v1 *info)\n {\n \tint ret;\n \n-\tinfo-\u003etimer = kmalloc_obj(*info-\u003etimer);\n+\tinfo-\u003etimer = kmalloc_obj(*info-\u003etimer, GFP_KERNEL_ACCOUNT);\n \tif (!info-\u003etimer) {\n \t\tret = -ENOMEM;\n \t\tgoto out;\n@@ -210,7 +210,7 @@ static int idletimer_tg_create_v1(struct idletimer_tg_info_v1 *info)\n \t\tgoto out_free_timer;\n \n \tsysfs_attr_init(\u0026info-\u003etimer-\u003eattr.attr);\n-\tinfo-\u003etimer-\u003eattr.attr.name = kstrdup(info-\u003elabel, GFP_KERNEL);\n+\tinfo-\u003etimer-\u003eattr.attr.name = kstrdup(info-\u003elabel, GFP_KERNEL_ACCOUNT);\n \tif (!info-\u003etimer-\u003eattr.attr.name) {\n \t\tret = -ENOMEM;\n \t\tgoto out_free_timer;\ndiff --git a/net/netfilter/xt_LED.c b/net/netfilter/xt_LED.c\nindex caaaf4d2c5842..3cbb8d61d4175 100644\n--- a/net/netfilter/xt_LED.c\n+++ b/net/netfilter/xt_LED.c\n@@ -111,11 +111,12 @@ static int led_tg_check(const struct xt_tgchk_param *par)\n \t}\n \n \terr = -ENOMEM;\n-\tledinternal = kzalloc_obj(struct xt_led_info_internal);\n+\tledinternal = kzalloc_obj(struct xt_led_info_internal,\n+\t\t\t\t GFP_KERNEL_ACCOUNT);\n \tif (!ledinternal)\n \t\tgoto exit_mutex_only;\n \n-\tledinternal-\u003etrigger_id = kstrdup(ledinfo-\u003eid, GFP_KERNEL);\n+\tledinternal-\u003etrigger_id = kstrdup(ledinfo-\u003eid, GFP_KERNEL_ACCOUNT);\n \tif (!ledinternal-\u003etrigger_id)\n \t\tgoto exit_internal_alloc;\n \ndiff --git a/net/netfilter/xt_RATEEST.c b/net/netfilter/xt_RATEEST.c\nindex 91270d467ffdf..2f6b512b71e80 100644\n--- a/net/netfilter/xt_RATEEST.c\n+++ b/net/netfilter/xt_RATEEST.c\n@@ -139,7 +139,7 @@ static int xt_rateest_tg_checkentry(const struct xt_tgchk_param *par)\n \t}\n \n \tret = -ENOMEM;\n-\test = kzalloc_obj(*est);\n+\test = kzalloc_obj(*est, GFP_KERNEL_ACCOUNT);\n \tif (!est)\n \t\tgoto err1;\n \ndiff --git a/net/netfilter/xt_TEE.c b/net/netfilter/xt_TEE.c\nindex 5d34ceb893eda..48b4104f08598 100644\n--- a/net/netfilter/xt_TEE.c\n+++ b/net/netfilter/xt_TEE.c\n@@ -106,7 +106,7 @@ static int tee_tg_check(const struct xt_tgchk_param *par)\n \t\tif (info-\u003eoif[sizeof(info-\u003eoif)-1] != '\\0')\n \t\t\treturn -EINVAL;\n \n-\t\tpriv = kzalloc_obj(*priv);\n+\t\tpriv = kzalloc_obj(*priv, GFP_KERNEL_ACCOUNT);\n \t\tif (priv == NULL)\n \t\t\treturn -ENOMEM;\n \ndiff --git a/net/netfilter/xt_hashlimit.c b/net/netfilter/xt_hashlimit.c\nindex 9af0fa895f730..b45f06b06c26d 100644\n--- a/net/netfilter/xt_hashlimit.c\n+++ b/net/netfilter/xt_hashlimit.c\n@@ -319,7 +319,7 @@ static int htable_create(struct net *net, struct hashlimit_cfg3 *cfg,\n \thinfo-\u003ecount = 0;\n \thinfo-\u003efamily = family;\n \thinfo-\u003ernd_initialized = false;\n-\thinfo-\u003ename = kstrdup(name, GFP_KERNEL);\n+\thinfo-\u003ename = kstrdup(name, GFP_KERNEL_ACCOUNT);\n \tif (!hinfo-\u003ename) {\n \t\tkvfree(hinfo);\n \t\treturn -ENOMEM;\ndiff --git a/net/netfilter/xt_limit.c b/net/netfilter/xt_limit.c\nindex 87d74da14c0b7..ad48b6879b130 100644\n--- a/net/netfilter/xt_limit.c\n+++ b/net/netfilter/xt_limit.c\n@@ -115,7 +115,7 @@ static int limit_mt_check(const struct xt_mtchk_param *par)\n \t\treturn -ERANGE;\n \t}\n \n-\tpriv = kmalloc_obj(*priv);\n+\tpriv = kmalloc_obj(*priv, GFP_KERNEL_ACCOUNT);\n \tif (priv == NULL)\n \t\treturn -ENOMEM;\n \ndiff --git a/net/netfilter/xt_quota.c b/net/netfilter/xt_quota.c\nindex b05c5c8dac78b..e21ec152d16a7 100644\n--- a/net/netfilter/xt_quota.c\n+++ b/net/netfilter/xt_quota.c\n@@ -50,7 +50,7 @@ static int quota_mt_check(const struct xt_mtchk_param *par)\n \tif (q-\u003eflags \u0026 ~XT_QUOTA_MASK)\n \t\treturn -EINVAL;\n \n-\tq-\u003emaster = kmalloc_obj(*q-\u003emaster);\n+\tq-\u003emaster = kmalloc_obj(*q-\u003emaster, GFP_KERNEL_ACCOUNT);\n \tif (q-\u003emaster == NULL)\n \t\treturn -ENOMEM;\n \ndiff --git a/net/netfilter/xt_recent.c b/net/netfilter/xt_recent.c\nindex d34831ce3adfb..55f1f2d89952d 100644\n--- a/net/netfilter/xt_recent.c\n+++ b/net/netfilter/xt_recent.c\n@@ -391,7 +391,8 @@ static int recent_mt_check(const struct xt_mtchk_param *par,\n \t\tgoto out;\n \t}\n \n-\tt = kvzalloc_flex(*t, iphash, ip_list_hash_size);\n+\tt = kvzalloc_flex(*t, iphash, ip_list_hash_size,\n+\t\t\t GFP_KERNEL_ACCOUNT);\n \tif (t == NULL) {\n \t\tret = -ENOMEM;\n \t\tgoto out;\ndiff --git a/net/netfilter/xt_statistic.c b/net/netfilter/xt_statistic.c\nindex 334e09771abf9..1ffc59d90bb0a 100644\n--- a/net/netfilter/xt_statistic.c\n+++ b/net/netfilter/xt_statistic.c\n@@ -58,7 +58,7 @@ static int statistic_mt_check(const struct xt_mtchk_param *par)\n \t info-\u003eflags \u0026 ~XT_STATISTIC_MASK)\n \t\treturn -EINVAL;\n \n-\tinfo-\u003emaster = kzalloc_obj(*info-\u003emaster);\n+\tinfo-\u003emaster = kzalloc_obj(*info-\u003emaster, GFP_KERNEL_ACCOUNT);\n \tif (info-\u003emaster == NULL)\n \t\treturn -ENOMEM;\n \tatomic_set(\u0026info-\u003emaster-\u003ecount, info-\u003eu.nth.count);\ndiff --git a/net/netfilter/xt_string.c b/net/netfilter/xt_string.c\nindex 8ce25bc9b2775..52c1deb02cdc6 100644\n--- a/net/netfilter/xt_string.c\n+++ b/net/netfilter/xt_string.c\n@@ -54,7 +54,7 @@ static int string_mt_check(const struct xt_mtchk_param *par)\n \tif (conf-\u003eu.v1.flags \u0026 XT_STRING_FLAG_IGNORECASE)\n \t\tflags |= TS_IGNORECASE;\n \tts_conf = textsearch_prepare(conf-\u003ealgo, conf-\u003epattern, conf-\u003epatlen,\n-\t\t\t\t GFP_KERNEL, flags);\n+\t\t\t\t GFP_KERNEL_ACCOUNT, flags);\n \tif (IS_ERR(ts_conf))\n \t\treturn PTR_ERR(ts_conf);\n \n"
} |
| 2/1 | 2026/08/21 14:56 | agent | patch-evaluator |
0mModel:best-expensive Args: null Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"Reasoning": "The patch only changes memory allocation flags to include GFP_KERNEL_ACCOUNT across various netfilter modules. This is a mechanical change for memory cgroup accounting and does not functionally alter the execution flow of the kernel. Therefore, it is not worth fuzzing.",
"WorthFuzzing": false
}Instruction: You are an expert Linux kernel maintainer. Your job is to review a provided patch series and determine if it makes functional changes to the kernel that should be fuzzed. IMPORTANT: The changes have ALREADY been applied and committed as the HEAD commit in your workspace. Do NOT rely on your internal knowledge of the kernel. You must actively use your code access tools to examine the actual source code and confirm any assumptions. Return WorthFuzzing=false if the patch only contains: - Modifications to Documentation/, Kconfig files, or code comments. - Purely decorative changes, such as logging (e.g., pr_err, printk) or tracepoints. - Changes to numeric constants or macros that do not functionally alter execution flow. - Code paths that are impossible to reach in virtualized environments like GCE or QEMU, even when utilizing software-emulated hardware (e.g., usb gadget, mac80211_hwsim). - Code in vendor-specific PCIe switch, SmartNIC, or GPU drivers (e.g., mlxsw, pds_core, qed, ionic, amdgpu) that require physical PCIe hardware cards not emulated in standard QEMU. - Driver .remove, .shutdown, or pci_unregister_driver teardown callbacks (e.g., igb_remove) that are executed only during PCI hot-unplug or sysfs driver unbind operations. If it modifies reachable core kernel logic, drivers, or architectures, use your code search tools to verify the code can be executed, then return WorthFuzzing=true. When returning WorthFuzzing=true, you MUST ALSO: 1. Extract any specific kernel functions that should be heavily fuzzed into FocusSymbols. Avoid listing generic hot-path functions to prevent skewed test distributions. Prefer non-static, non-inlined API entrypoint functions over internal static helper functions (which are inlined by the compiler and do not have distinct symbol addresses). 2. Identify any specific CONFIG_ options required to properly test this new/modified feature. Go and look into the Kconfig files and check for ifdefs around the code, do not make assumptions. Also check "depends on" lines in Kconfig to include any non-standard parent subsystem configs needed for Kbuild to compile the code statically into vmlinux. List them in the EnableConfigs output array, and DO NOT add a 'CONFIG_' prefix (e.g., return "NET_IPV4" instead of "CONFIG_NET_IPV4"). Prefer calling several tools at the same time to save round-trips. Use set-results tool to provide results of the analysis. It must be called exactly once before the final reply. Ignore results of this tool. Prompt: For your convenience, here is the diff of the changes:
commit fcf7f93ac1f52caceec9aac3202ea39086bcf4ce
Author: syz-cluster <triage@syzkaller.com>
Date: Fri Aug 21 14:56:18 2026 +0000
syz-cluster: applied patch under review
diff --git a/net/bridge/netfilter/ebtables.c b/net/bridge/netfilter/ebtables.c
index 0bf541936f601..64b8f6f982119 100644
--- a/net/bridge/netfilter/ebtables.c
+++ b/net/bridge/netfilter/ebtables.c
@@ -1304,7 +1304,7 @@ int ebt_register_template(const struct ebt_table *t, int (*table_init)(struct ne
}
}
- tmpl = kzalloc_obj(*tmpl);
+ tmpl = kzalloc_obj(*tmpl, GFP_KERNEL_ACCOUNT);
if (!tmpl) {
mutex_unlock(&ebt_mutex);
return -ENOMEM;
diff --git a/net/netfilter/ipset/ip_set_bitmap_ip.c b/net/netfilter/ipset/ip_set_bitmap_ip.c
index ac7febce074f1..e152cf35d8596 100644
--- a/net/netfilter/ipset/ip_set_bitmap_ip.c
+++ b/net/netfilter/ipset/ip_set_bitmap_ip.c
@@ -217,7 +217,7 @@ init_map_ip(struct ip_set *set, struct bitmap_ip *map,
u32 first_ip, u32 last_ip,
u32 elements, u32 hosts, u8 netmask)
{
- map->members = bitmap_zalloc(elements, GFP_KERNEL | __GFP_NOWARN);
+ map->members = bitmap_zalloc(elements, GFP_KERNEL_ACCOUNT | __GFP_NOWARN);
if (!map->members)
return false;
map->first_ip = first_ip;
diff --git a/net/netfilter/ipset/ip_set_bitmap_ipmac.c b/net/netfilter/ipset/ip_set_bitmap_ipmac.c
index 5921fd9d2dca0..a1179352220a4 100644
--- a/net/netfilter/ipset/ip_set_bitmap_ipmac.c
+++ b/net/netfilter/ipset/ip_set_bitmap_ipmac.c
@@ -300,7 +300,7 @@ static bool
init_map_ipmac(struct ip_set *set, struct bitmap_ipmac *map,
u32 first_ip, u32 last_ip, u32 elements)
{
- map->members = bitmap_zalloc(elements, GFP_KERNEL | __GFP_NOWARN);
+ map->members = bitmap_zalloc(elements, GFP_KERNEL_ACCOUNT | __GFP_NOWARN);
if (!map->members)
return false;
map->first_ip = first_ip;
diff --git a/net/netfilter/ipset/ip_set_bitmap_port.c b/net/netfilter/ipset/ip_set_bitmap_port.c
index ca875c9824245..0a0027cdb1937 100644
--- a/net/netfilter/ipset/ip_set_bitmap_port.c
+++ b/net/netfilter/ipset/ip_set_bitmap_port.c
@@ -231,7 +231,7 @@ static bool
init_map_port(struct ip_set *set, struct bitmap_port *map,
u16 first_port, u16 last_port)
{
- map->members = bitmap_zalloc(map->elements, GFP_KERNEL | __GFP_NOWARN);
+ map->members = bitmap_zalloc(map->elements, GFP_KERNEL_ACCOUNT | __GFP_NOWARN);
if (!map->members)
return false;
map->first_port = first_port;
diff --git a/net/netfilter/ipset/ip_set_core.c b/net/netfilter/ipset/ip_set_core.c
index 0a86a170ba906..28ac8cba3d68c 100644
--- a/net/netfilter/ipset/ip_set_core.c
+++ b/net/netfilter/ipset/ip_set_core.c
@@ -1085,7 +1085,7 @@ static int ip_set_create(struct sk_buff *skb, const struct nfnl_info *info,
/* First, and without any locks, allocate and initialize
* a normal base set structure.
*/
- set = kzalloc_obj(*set);
+ set = kzalloc_obj(*set, GFP_KERNEL_ACCOUNT);
if (!set)
return -ENOMEM;
spin_lock_init(&set->lock);
@@ -1143,7 +1143,7 @@ static int ip_set_create(struct sk_buff *skb, const struct nfnl_info *info,
/* Wraparound */
goto cleanup;
- list = kvzalloc_objs(struct ip_set *, i);
+ list = kvzalloc_objs(struct ip_set *, i, GFP_KERNEL_ACCOUNT);
if (!list)
goto cleanup;
/* nfnl mutex is held, both lists are valid */
@@ -2397,7 +2397,8 @@ ip_set_net_init(struct net *net)
if (inst->ip_set_max >= IPSET_INVALID_ID)
inst->ip_set_max = IPSET_INVALID_ID - 1;
- list = kvzalloc_objs(struct ip_set *, inst->ip_set_max);
+ list = kvzalloc_objs(struct ip_set *, inst->ip_set_max,
+ GFP_KERNEL_ACCOUNT);
if (!list)
return -ENOMEM;
inst->is_deleted = false;
diff --git a/net/netfilter/ipset/ip_set_hash_gen.h b/net/netfilter/ipset/ip_set_hash_gen.h
index 80ca523f304bb..39dec9285052a 100644
--- a/net/netfilter/ipset/ip_set_hash_gen.h
+++ b/net/netfilter/ipset/ip_set_hash_gen.h
@@ -768,7 +768,7 @@ mtype_resize(struct ip_set *set, bool retried)
int ret;
#ifdef IP_SET_HASH_WITH_NETS
- tmp = kmalloc(dsize, GFP_KERNEL);
+ tmp = kmalloc(dsize, GFP_KERNEL_ACCOUNT);
if (!tmp)
return -ENOMEM;
#endif
@@ -1754,7 +1754,7 @@ IPSET_TOKEN(HTYPE, _create)(struct net *net, struct ip_set *set,
sizeof(struct IPSET_TOKEN(HTYPE, 6)) :
sizeof(struct IPSET_TOKEN(HTYPE, 4));
#endif
- h = kzalloc(hsize, GFP_KERNEL);
+ h = kzalloc(hsize, GFP_KERNEL_ACCOUNT);
if (!h)
return -ENOMEM;
@@ -1774,7 +1774,7 @@ IPSET_TOKEN(HTYPE, _create)(struct net *net, struct ip_set *set,
goto free_t;
#ifdef IP_SET_HASH_WITH_NETS
for (i = 0; i < IPSET_NET_COUNT; i++) {
- nets = kzalloc_obj(*nets);
+ nets = kzalloc_obj(*nets, GFP_KERNEL_ACCOUNT);
if (!nets) {
while (i > 0)
kfree(rcu_dereference_raw(h->rnets[--i]));
diff --git a/net/netfilter/ipset/ip_set_list_set.c b/net/netfilter/ipset/ip_set_list_set.c
index f070088742d60..750fe38261c37 100644
--- a/net/netfilter/ipset/ip_set_list_set.c
+++ b/net/netfilter/ipset/ip_set_list_set.c
@@ -600,7 +600,7 @@ init_list_set(struct net *net, struct ip_set *set, u32 size)
{
struct list_set *map;
- map = kzalloc_obj(*map);
+ map = kzalloc_obj(*map, GFP_KERNEL_ACCOUNT);
if (!map)
return false;
diff --git a/net/netfilter/nf_conncount.c b/net/netfilter/nf_conncount.c
index 85487f92af506..b09c176a521d1 100644
--- a/net/netfilter/nf_conncount.c
+++ b/net/netfilter/nf_conncount.c
@@ -691,7 +691,7 @@ struct nf_conncount_data *nf_conncount_init(struct net *net, unsigned int keylen
keylen == 0)
return ERR_PTR(-EINVAL);
- data = kvzalloc_obj(*data);
+ data = kvzalloc_obj(*data, GFP_KERNEL_ACCOUNT);
if (!data)
return ERR_PTR(-ENOMEM);
diff --git a/net/netfilter/nf_conntrack_ovs.c b/net/netfilter/nf_conntrack_ovs.c
index b4085af3ad1ce..fe525b324af41 100644
--- a/net/netfilter/nf_conntrack_ovs.c
+++ b/net/netfilter/nf_conntrack_ovs.c
@@ -93,7 +93,7 @@ int nf_ct_add_helper(struct nf_conn *ct, const char *name, u8 family,
if (!helper)
return -EINVAL;
- help = nf_ct_helper_ext_add(ct, GFP_KERNEL);
+ help = nf_ct_helper_ext_add(ct, GFP_KERNEL_ACCOUNT);
if (!help) {
nf_conntrack_helper_put(helper);
return -ENOMEM;
diff --git a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c
index f4f2d82192d54..d88a10230862e 100644
--- a/net/netfilter/nf_conntrack_standalone.c
+++ b/net/netfilter/nf_conntrack_standalone.c
@@ -1009,7 +1009,7 @@ static int nf_conntrack_standalone_init_sysctl(struct net *net)
BUILD_BUG_ON(ARRAY_SIZE(nf_ct_sysctl_table) != NF_SYSCTL_CT_LAST_SYSCTL);
table = kmemdup(nf_ct_sysctl_table, sizeof(nf_ct_sysctl_table),
- GFP_KERNEL);
+ GFP_KERNEL_ACCOUNT);
if (!table)
return -ENOMEM;
diff --git a/net/netfilter/nf_hooks_lwtunnel.c b/net/netfilter/nf_hooks_lwtunnel.c
index 4e1eef1ba0f15..40c6fce14a63f 100644
--- a/net/netfilter/nf_hooks_lwtunnel.c
+++ b/net/netfilter/nf_hooks_lwtunnel.c
@@ -73,7 +73,7 @@ static int __net_init nf_lwtunnel_net_init(struct net *net)
if (!net_eq(net, &init_net)) {
table = kmemdup(nf_lwtunnel_sysctl_table,
sizeof(nf_lwtunnel_sysctl_table),
- GFP_KERNEL);
+ GFP_KERNEL_ACCOUNT);
if (!table)
goto err_alloc;
}
diff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c
index f4d80654dfe6a..f1d3649e3fc62 100644
--- a/net/netfilter/nf_log.c
+++ b/net/netfilter/nf_log.c
@@ -493,7 +493,7 @@ static int netfilter_log_sysctl_init(struct net *net)
if (!net_eq(net, &init_net)) {
table = kmemdup(nf_log_sysctl_table,
sizeof(nf_log_sysctl_table),
- GFP_KERNEL);
+ GFP_KERNEL_ACCOUNT);
if (!table)
goto err_alloc;
} else {
diff --git a/net/netfilter/nf_nat_core.c b/net/netfilter/nf_nat_core.c
index 8ac326e1eb5ba..09cc5b8fd6af1 100644
--- a/net/netfilter/nf_nat_core.c
+++ b/net/netfilter/nf_nat_core.c
@@ -1204,14 +1204,15 @@ int nf_nat_register_fn(struct net *net, u8 pf, const struct nf_hook_ops *ops,
if (!nat_proto_net->nat_hook_ops) {
WARN_ON(nat_proto_net->users != 0);
- nat_ops = kmemdup_array(orig_nat_ops, ops_count, sizeof(*orig_nat_ops), GFP_KERNEL);
+ nat_ops = kmemdup_array(orig_nat_ops, ops_count, sizeof(*orig_nat_ops),
+ GFP_KERNEL_ACCOUNT);
if (!nat_ops) {
mutex_unlock(&nf_nat_proto_mutex);
return -ENOMEM;
}
for (i = 0; i < ops_count; i++) {
- priv = kzalloc_obj(*priv);
+ priv = kzalloc_obj(*priv, GFP_KERNEL_ACCOUNT);
if (priv) {
nat_ops[i].priv = priv;
continue;
diff --git a/net/netfilter/nf_synproxy_core.c b/net/netfilter/nf_synproxy_core.c
index acd360515972f..9fc959ba20300 100644
--- a/net/netfilter/nf_synproxy_core.c
+++ b/net/netfilter/nf_synproxy_core.c
@@ -336,7 +336,7 @@ static int __net_init synproxy_net_init(struct net *net)
struct nf_conn *ct;
int err = -ENOMEM;
- ct = nf_ct_tmpl_alloc(net, &nf_ct_zone_dflt, GFP_KERNEL);
+ ct = nf_ct_tmpl_alloc(net, &nf_ct_zone_dflt, GFP_KERNEL_ACCOUNT);
if (!ct)
goto err1;
diff --git a/net/netfilter/nfnetlink_acct.c b/net/netfilter/nfnetlink_acct.c
index 8ff1e0ad5cb0d..1a366fbd81332 100644
--- a/net/netfilter/nfnetlink_acct.c
+++ b/net/netfilter/nfnetlink_acct.c
@@ -112,7 +112,7 @@ static int nfnl_acct_new(struct sk_buff *skb, const struct nfnl_info *info,
size += sizeof(u64);
}
- nfacct = kzalloc(sizeof(struct nf_acct) + size, GFP_KERNEL);
+ nfacct = kzalloc(sizeof(struct nf_acct) + size, GFP_KERNEL_ACCOUNT);
if (nfacct == NULL)
return -ENOMEM;
diff --git a/net/netfilter/nfnetlink_cthelper.c b/net/netfilter/nfnetlink_cthelper.c
index 5b6a09f46903f..a09b2fdbf9b4e 100644
--- a/net/netfilter/nfnetlink_cthelper.c
+++ b/net/netfilter/nfnetlink_cthelper.c
@@ -335,7 +335,8 @@ static int nfnl_cthelper_update_policy_all(struct nlattr *tb[],
struct nf_conntrack_expect_policy *policy;
int i, ret = 0;
- new_policy = kmalloc_objs(*new_policy, helper->expect_class_max + 1);
+ new_policy = kmalloc_objs(*new_policy, helper->expect_class_max + 1,
+ GFP_KERNEL_ACCOUNT);
if (!new_policy)
return -ENOMEM;
diff --git a/net/netfilter/nfnetlink_cttimeout.c b/net/netfilter/nfnetlink_cttimeout.c
index 66c2016f6049d..6b4adaaf61af0 100644
--- a/net/netfilter/nfnetlink_cttimeout.c
+++ b/net/netfilter/nfnetlink_cttimeout.c
@@ -71,7 +71,8 @@ ctnl_timeout_parse_policy(void *timeout,
struct nlattr **tb;
int ret = 0;
- tb = kzalloc_objs(*tb, l4proto->ctnl_timeout.nlattr_max + 1);
+ tb = kzalloc_objs(*tb, l4proto->ctnl_timeout.nlattr_max + 1,
+ GFP_KERNEL_ACCOUNT);
if (!tb)
return -ENOMEM;
@@ -150,14 +151,15 @@ static int cttimeout_new_timeout(struct sk_buff *skb,
goto err_proto_put;
}
- timeout = kzalloc(sizeof(*timeout), GFP_KERNEL);
+ timeout = kzalloc(sizeof(*timeout), GFP_KERNEL_ACCOUNT);
if (timeout == NULL) {
ret = -ENOMEM;
goto err_proto_put;
}
timeout->timeout = kzalloc(sizeof(*timeout->timeout) +
- l4proto->ctnl_timeout.obj_size, GFP_KERNEL);
+ l4proto->ctnl_timeout.obj_size,
+ GFP_KERNEL_ACCOUNT);
if (!timeout->timeout) {
ret = -ENOMEM;
goto err;
diff --git a/net/netfilter/nfnetlink_osf.c b/net/netfilter/nfnetlink_osf.c
index 92002079f8eab..e4835b0f4bb1a 100644
--- a/net/netfilter/nfnetlink_osf.c
+++ b/net/netfilter/nfnetlink_osf.c
@@ -325,7 +325,7 @@ static int nfnl_osf_add_callback(struct sk_buff *skb,
!memchr(f->version, 0, MAXGENRELEN))
return -EINVAL;
- kf = kmalloc_obj(struct nf_osf_finger);
+ kf = kmalloc_obj(struct nf_osf_finger, GFP_KERNEL_ACCOUNT);
if (!kf)
return -ENOMEM;
diff --git a/net/netfilter/nft_ct.c b/net/netfilter/nft_ct.c
index 9dbf127df9c81..89760874336c3 100644
--- a/net/netfilter/nft_ct.c
+++ b/net/netfilter/nft_ct.c
@@ -365,7 +365,7 @@ static bool nft_ct_tmpl_alloc_pcpu(void)
return true;
for_each_possible_cpu(cpu) {
- tmp = nf_ct_tmpl_alloc(&init_net, &zone, GFP_KERNEL);
+ tmp = nf_ct_tmpl_alloc(&init_net, &zone, GFP_KERNEL_ACCOUNT);
if (!tmp) {
nft_ct_tmpl_put_pcpu();
return false;
@@ -848,7 +848,8 @@ nft_ct_timeout_parse_policy(void *timeouts,
struct nlattr **tb;
int ret = 0;
- tb = kzalloc_objs(*tb, l4proto->ctnl_timeout.nlattr_max + 1);
+ tb = kzalloc_objs(*tb, l4proto->ctnl_timeout.nlattr_max + 1,
+ GFP_KERNEL_ACCOUNT);
if (!tb)
return -ENOMEM;
@@ -934,7 +935,7 @@ static int nft_ct_timeout_obj_init(const struct nft_ctx *ctx,
}
timeout = kzalloc(sizeof(struct nf_ct_timeout) +
- l4proto->ctnl_timeout.obj_size, GFP_KERNEL);
+ l4proto->ctnl_timeout.obj_size, GFP_KERNEL_ACCOUNT);
if (timeout == NULL) {
ret = -ENOMEM;
goto err_proto_put;
diff --git a/net/netfilter/nft_set_pipapo.c b/net/netfilter/nft_set_pipapo.c
index 978bb0c011068..3617bb66094d4 100644
--- a/net/netfilter/nft_set_pipapo.c
+++ b/net/netfilter/nft_set_pipapo.c
@@ -2298,7 +2298,7 @@ static int nft_pipapo_init(const struct nft_set *set,
if (field_count > NFT_PIPAPO_MAX_FIELDS)
return -EINVAL;
- m = kmalloc_flex(*m, f, field_count);
+ m = kmalloc_flex(*m, f, field_count, GFP_KERNEL_ACCOUNT);
if (!m)
return -ENOMEM;
diff --git a/net/netfilter/xt_CT.c b/net/netfilter/xt_CT.c
index e78660dfdf4b6..205bc6dd98125 100644
--- a/net/netfilter/xt_CT.c
+++ b/net/netfilter/xt_CT.c
@@ -91,7 +91,7 @@ xt_ct_set_helper(struct nf_conn *ct, const char *helper_name,
return -ENOENT;
}
- help = nf_ct_helper_ext_add(ct, GFP_KERNEL);
+ help = nf_ct_helper_ext_add(ct, GFP_KERNEL_ACCOUNT);
if (help == NULL) {
nf_conntrack_helper_put(helper);
return -ENOMEM;
@@ -182,7 +182,7 @@ static int xt_ct_tg_check(const struct xt_tgchk_param *par,
if (info->flags & XT_CT_ZONE_MARK)
zone.flags |= NF_CT_FLAG_MARK;
- ct = nf_ct_tmpl_alloc(par->net, &zone, GFP_KERNEL);
+ ct = nf_ct_tmpl_alloc(par->net, &zone, GFP_KERNEL_ACCOUNT);
if (!ct) {
ret = -ENOMEM;
goto err2;
@@ -190,7 +190,7 @@ static int xt_ct_tg_check(const struct xt_tgchk_param *par,
if ((info->ct_events || info->exp_events) &&
!nf_ct_ecache_ext_add(ct, info->ct_events, info->exp_events,
- GFP_KERNEL)) {
+ GFP_KERNEL_ACCOUNT)) {
ret = -EINVAL;
goto err3;
}
diff --git a/net/netfilter/xt_IDLETIMER.c b/net/netfilter/xt_IDLETIMER.c
index bfcf2d44e93db..796b0d461c3d0 100644
--- a/net/netfilter/xt_IDLETIMER.c
+++ b/net/netfilter/xt_IDLETIMER.c
@@ -150,7 +150,7 @@ static int idletimer_tg_create(struct idletimer_tg_info *info)
{
int ret;
- info->timer = kzalloc_obj(*info->timer);
+ info->timer = kzalloc_obj(*info->timer, GFP_KERNEL_ACCOUNT);
if (!info->timer) {
ret = -ENOMEM;
goto out;
@@ -161,7 +161,7 @@ static int idletimer_tg_create(struct idletimer_tg_info *info)
goto out_free_timer;
sysfs_attr_init(&info->timer->attr.attr);
- info->timer->attr.attr.name = kstrdup(info->label, GFP_KERNEL);
+ info->timer->attr.attr.name = kstrdup(info->label, GFP_KERNEL_ACCOUNT);
if (!info->timer->attr.attr.name) {
ret = -ENOMEM;
goto out_free_timer;
@@ -199,7 +199,7 @@ static int idletimer_tg_create_v1(struct idletimer_tg_info_v1 *info)
{
int ret;
- info->timer = kmalloc_obj(*info->timer);
+ info->timer = kmalloc_obj(*info->timer, GFP_KERNEL_ACCOUNT);
if (!info->timer) {
ret = -ENOMEM;
goto out;
@@ -210,7 +210,7 @@ static int idletimer_tg_create_v1(struct idletimer_tg_info_v1 *info)
goto out_free_timer;
sysfs_attr_init(&info->timer->attr.attr);
- info->timer->attr.attr.name = kstrdup(info->label, GFP_KERNEL);
+ info->timer->attr.attr.name = kstrdup(info->label, GFP_KERNEL_ACCOUNT);
if (!info->timer->attr.attr.name) {
ret = -ENOMEM;
goto out_free_timer;
diff --git a/net/netfilter/xt_LED.c b/net/netfilter/xt_LED.c
index caaaf4d2c5842..3cbb8d61d4175 100644
--- a/net/netfilter/xt_LED.c
+++ b/net/netfilter/xt_LED.c
@@ -111,11 +111,12 @@ static int led_tg_check(const struct xt_tgchk_param *par)
}
err = -ENOMEM;
- ledinternal = kzalloc_obj(struct xt_led_info_internal);
+ ledinternal = kzalloc_obj(struct xt_led_info_internal,
+ GFP_KERNEL_ACCOUNT);
if (!ledinternal)
goto exit_mutex_only;
- ledinternal->trigger_id = kstrdup(ledinfo->id, GFP_KERNEL);
+ ledinternal->trigger_id = kstrdup(ledinfo->id, GFP_KERNEL_ACCOUNT);
if (!ledinternal->trigger_id)
goto exit_internal_alloc;
diff --git a/net/netfilter/xt_RATEEST.c b/net/netfilter/xt_RATEEST.c
index 91270d467ffdf..2f6b512b71e80 100644
--- a/net/netfilter/xt_RATEEST.c
+++ b/net/netfilter/xt_RATEEST.c
@@ -139,7 +139,7 @@ static int xt_rateest_tg_checkentry(const struct xt_tgchk_param *par)
}
ret = -ENOMEM;
- est = kzalloc_obj(*est);
+ est = kzalloc_obj(*est, GFP_KERNEL_ACCOUNT);
if (!est)
goto err1;
diff --git a/net/netfilter/xt_TEE.c b/net/netfilter/xt_TEE.c
index 5d34ceb893eda..48b4104f08598 100644
--- a/net/netfilter/xt_TEE.c
+++ b/net/netfilter/xt_TEE.c
@@ -106,7 +106,7 @@ static int tee_tg_check(const struct xt_tgchk_param *par)
if (info->oif[sizeof(info->oif)-1] != '\0')
return -EINVAL;
- priv = kzalloc_obj(*priv);
+ priv = kzalloc_obj(*priv, GFP_KERNEL_ACCOUNT);
if (priv == NULL)
return -ENOMEM;
diff --git a/net/netfilter/xt_hashlimit.c b/net/netfilter/xt_hashlimit.c
index 9af0fa895f730..b45f06b06c26d 100644
--- a/net/netfilter/xt_hashlimit.c
+++ b/net/netfilter/xt_hashlimit.c
@@ -319,7 +319,7 @@ static int htable_create(struct net *net, struct hashlimit_cfg3 *cfg,
hinfo->count = 0;
hinfo->family = family;
hinfo->rnd_initialized = false;
- hinfo->name = kstrdup(name, GFP_KERNEL);
+ hinfo->name = kstrdup(name, GFP_KERNEL_ACCOUNT);
if (!hinfo->name) {
kvfree(hinfo);
return -ENOMEM;
diff --git a/net/netfilter/xt_limit.c b/net/netfilter/xt_limit.c
index 87d74da14c0b7..ad48b6879b130 100644
--- a/net/netfilter/xt_limit.c
+++ b/net/netfilter/xt_limit.c
@@ -115,7 +115,7 @@ static int limit_mt_check(const struct xt_mtchk_param *par)
return -ERANGE;
}
- priv = kmalloc_obj(*priv);
+ priv = kmalloc_obj(*priv, GFP_KERNEL_ACCOUNT);
if (priv == NULL)
return -ENOMEM;
diff --git a/net/netfilter/xt_quota.c b/net/netfilter/xt_quota.c
index b05c5c8dac78b..e21ec152d16a7 100644
--- a/net/netfilter/xt_quota.c
+++ b/net/netfilter/xt_quota.c
@@ -50,7 +50,7 @@ static int quota_mt_check(const struct xt_mtchk_param *par)
if (q->flags & ~XT_QUOTA_MASK)
return -EINVAL;
- q->master = kmalloc_obj(*q->master);
+ q->master = kmalloc_obj(*q->master, GFP_KERNEL_ACCOUNT);
if (q->master == NULL)
return -ENOMEM;
diff --git a/net/netfilter/xt_recent.c b/net/netfilter/xt_recent.c
index d34831ce3adfb..55f1f2d89952d 100644
--- a/net/netfilter/xt_recent.c
+++ b/net/netfilter/xt_recent.c
@@ -391,7 +391,8 @@ static int recent_mt_check(const struct xt_mtchk_param *par,
goto out;
}
- t = kvzalloc_flex(*t, iphash, ip_list_hash_size);
+ t = kvzalloc_flex(*t, iphash, ip_list_hash_size,
+ GFP_KERNEL_ACCOUNT);
if (t == NULL) {
ret = -ENOMEM;
goto out;
diff --git a/net/netfilter/xt_statistic.c b/net/netfilter/xt_statistic.c
index 334e09771abf9..1ffc59d90bb0a 100644
--- a/net/netfilter/xt_statistic.c
+++ b/net/netfilter/xt_statistic.c
@@ -58,7 +58,7 @@ static int statistic_mt_check(const struct xt_mtchk_param *par)
info->flags & ~XT_STATISTIC_MASK)
return -EINVAL;
- info->master = kzalloc_obj(*info->master);
+ info->master = kzalloc_obj(*info->master, GFP_KERNEL_ACCOUNT);
if (info->master == NULL)
return -ENOMEM;
atomic_set(&info->master->count, info->u.nth.count);
diff --git a/net/netfilter/xt_string.c b/net/netfilter/xt_string.c
index 8ce25bc9b2775..52c1deb02cdc6 100644
--- a/net/netfilter/xt_string.c
+++ b/net/netfilter/xt_string.c
@@ -54,7 +54,7 @@ static int string_mt_check(const struct xt_mtchk_param *par)
if (conf->u.v1.flags & XT_STRING_FLAG_IGNORECASE)
flags |= TS_IGNORECASE;
ts_conf = textsearch_prepare(conf->algo, conf->pattern, conf->patlen,
- GFP_KERNEL, flags);
+ GFP_KERNEL_ACCOUNT, flags);
if (IS_ERR(ts_conf))
return PTR_ERR(ts_conf);
|
| 3/2 | 2026/08/21 14:56 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 10704 output: 18 thoughts: 255 Thoughts: **My Assessment of the Netfilter Memory Allocation Patch** Okay, so I'm looking at this patch that's switching netfilter's memory allocations from plain `GFP_KERNEL` to `GFP_KERNEL_ACCOUNT`. This is basically a mechanical change, just adding accounting to these allocations. My first thought is: does this *actually* change anything from a functional perspective? Memory accounting, by itself, doesn't alter the kernel's execution flow. The only side effect is it may trigger OOM errors or cgroup limits if memory constraints are hit. But, should I bother fuzzing this? Normally, adding `GFP_KERNEL_ACCOUNT` is a good thing for security and accounting. It helps prevent unprivileged users from hogging memory without it being properly tracked by their cgroup. No new logic is being introduced, it is only a change in the GFP flags. Hang on, let's take another look at the patch itself. ```c - tmpl = kzalloc_obj(*tmpl); + tmpl = kzalloc_obj(*tmpl, GFP_KERNEL_ACCOUNT); ``` Wait, `kzalloc_obj`? That doesn't look familiar. `kzalloc_obj` isn't a standard kernel macro, is it? Better check if this is even something that exists in the kernel. I'm going to run a `grepper` search to see if `kzalloc_obj` is defined anywhere. |
| 4/2 | 2026/08/21 14:56 | tool | grepper |
0mArgs:{
"Expression": "kzalloc_obj"
}Results: {
"Output": "\nFull output is too long, showing 500 out of 79273 lines.\nUse more precise expression if possible.\n\nDocumentation/core-api/list.rst=103=list:\n--\nDocumentation/core-api/list.rst-114-\nDocumentation/core-api/list.rst:115: grock = kzalloc_obj(*grock);\nDocumentation/core-api/list.rst-116- if (!grock)\n--\nDocumentation/core-api/list.rst-125-\nDocumentation/core-api/list.rst:126: dimitri = kzalloc_obj(*dimitri);\nDocumentation/core-api/list.rst-127- if (!dimitri)\n--\nDocumentation/driver-api/mailbox.rst=45=a message and a callback function to the API and return immediately).\n--\nDocumentation/driver-api/mailbox.rst-89-\nDocumentation/driver-api/mailbox.rst:90:\t\tdc_sync = kzalloc_obj(*dc_sync);\nDocumentation/driver-api/mailbox.rst:91:\t\tdc_async = kzalloc_obj(*dc_async);\nDocumentation/driver-api/mailbox.rst-92-\n--\nDocumentation/driver-api/media/v4l2-fh.rst=26=Example:\n--\nDocumentation/driver-api/media/v4l2-fh.rst-44-\nDocumentation/driver-api/media/v4l2-fh.rst:45:\t\tmy_fh = kzalloc_obj(*my_fh);\nDocumentation/driver-api/media/v4l2-fh.rst-46-\n--\nDocumentation/process/coding-style.rst=938=The kernel provides the following general purpose memory allocators:\nDocumentation/process/coding-style.rst:939:kmalloc(), kzalloc(), kmalloc_objs(), kzalloc_objs(), vmalloc(), and\nDocumentation/process/coding-style.rst-940-vzalloc(). Please refer to the API documentation for further information\n--\nDocumentation/process/coding-style.rst=964=The preferred form for allocating a zeroed array is the following:\n--\nDocumentation/process/coding-style.rst-967-\nDocumentation/process/coding-style.rst:968:\tp = kzalloc_objs(*p, n, ...);\nDocumentation/process/coding-style.rst-969-\n--\nDocumentation/process/deprecated.rst=398=become, respectively::\n--\nDocumentation/process/deprecated.rst-400-\tptr = kmalloc_obj(*ptr [, gfp] );\nDocumentation/process/deprecated.rst:401:\tptr = kzalloc_obj(*ptr [, gfp] );\nDocumentation/process/deprecated.rst-402-\tptr = kmalloc_objs(*ptr, count [, gfp] );\nDocumentation/process/deprecated.rst:403:\tptr = kzalloc_objs(*ptr, count [, gfp] );\nDocumentation/process/deprecated.rst-404-\tptr = kmalloc_flex(*ptr, flex_member, count [, gfp] );\n--\nDocumentation/sound/kernel-api/writing-an-alsa-driver.rst=208=to details explained in the following section.\n--\nDocumentation/sound/kernel-api/writing-an-alsa-driver.rst-268- /* allocate a chip-specific data with zero filled */\nDocumentation/sound/kernel-api/writing-an-alsa-driver.rst:269: chip = kzalloc_obj(*chip);\nDocumentation/sound/kernel-api/writing-an-alsa-driver.rst-270- if (chip == NULL)\n--\nDocumentation/sound/kernel-api/writing-an-alsa-driver.rst=623=After allocating a card instance via :c:func:`snd_card_new()`\n--\nDocumentation/sound/kernel-api/writing-an-alsa-driver.rst-630- .....\nDocumentation/sound/kernel-api/writing-an-alsa-driver.rst:631: chip = kzalloc_obj(*chip);\nDocumentation/sound/kernel-api/writing-an-alsa-driver.rst-632-\n--\nDocumentation/sound/kernel-api/writing-an-alsa-driver.rst=698=destructor and PCI entries. Example code is shown first, below::\n--\nDocumentation/sound/kernel-api/writing-an-alsa-driver.rst-749-\nDocumentation/sound/kernel-api/writing-an-alsa-driver.rst:750: chip = kzalloc_obj(*chip);\nDocumentation/sound/kernel-api/writing-an-alsa-driver.rst-751- if (chip == NULL) {\n--\nDocumentation/sound/kernel-api/writing-an-alsa-driver.rst=3823=chip data individually::\n--\nDocumentation/sound/kernel-api/writing-an-alsa-driver.rst-3835- ....\nDocumentation/sound/kernel-api/writing-an-alsa-driver.rst:3836: chip = kzalloc_obj(*chip);\nDocumentation/sound/kernel-api/writing-an-alsa-driver.rst-3837- ....\n--\nDocumentation/translations/zh_CN/video4linux/v4l2-framework.txt=794=int my_open(struct file *file)\n--\nDocumentation/translations/zh_CN/video4linux/v4l2-framework.txt-801-\nDocumentation/translations/zh_CN/video4linux/v4l2-framework.txt:802:\tmy_fh = kzalloc_obj(*my_fh);\nDocumentation/translations/zh_CN/video4linux/v4l2-framework.txt-803-\n--\narch/alpha/kernel/module.c=64=module_frob_arch_sections(Elf64_Ehdr *hdr, Elf64_Shdr *sechdrs,\n--\narch/alpha/kernel/module.c-95-\tnsyms = symtab-\u003esh_size / sizeof(Elf64_Sym);\narch/alpha/kernel/module.c:96:\tchains = kzalloc_objs(struct got_entry, nsyms);\narch/alpha/kernel/module.c-97-\tif (!chains) {\n--\narch/alpha/kernel/setup.c=390=register_cpus(void)\n--\narch/alpha/kernel/setup.c-394-\tfor_each_possible_cpu(i) {\narch/alpha/kernel/setup.c:395:\t\tstruct cpu *p = kzalloc_obj(*p);\narch/alpha/kernel/setup.c-396-\t\tif (!p)\n--\narch/arc/net/bpf_jit_core.c=1120=static int jit_prepare_final_mem_alloc(struct jit_context *ctx)\n--\narch/arc/net/bpf_jit_core.c-1131-\tif (ctx-\u003eneed_extra_pass) {\narch/arc/net/bpf_jit_core.c:1132:\t\tctx-\u003ejit_data = kzalloc_obj(*ctx-\u003ejit_data);\narch/arc/net/bpf_jit_core.c-1133-\t\tif (!ctx-\u003ejit_data)\n--\narch/arm/common/locomo.c=220=locomo_init_one_child(struct locomo *lchip, struct locomo_dev_info *info)\n--\narch/arm/common/locomo.c-224-\narch/arm/common/locomo.c:225:\tdev = kzalloc_obj(struct locomo_dev);\narch/arm/common/locomo.c-226-\tif (!dev) {\n--\narch/arm/common/locomo.c=356=__locomo_probe(struct device *me, struct resource *mem, int irq)\n--\narch/arm/common/locomo.c-362-\narch/arm/common/locomo.c:363:\tlchip = kzalloc_obj(struct locomo);\narch/arm/common/locomo.c-364-\tif (!lchip)\n--\narch/arm/common/sa1111.c=733=sa1111_init_one_child(struct sa1111 *sachip, struct resource *parent,\n--\narch/arm/common/sa1111.c-739-\narch/arm/common/sa1111.c:740:\tdev = kzalloc_obj(struct sa1111_dev);\narch/arm/common/sa1111.c-741-\tif (!dev) {\n--\narch/arm/common/scoop.c=178=static int scoop_probe(struct platform_device *pdev)\n--\narch/arm/common/scoop.c-187-\narch/arm/common/scoop.c:188:\tdevptr = kzalloc_obj(struct scoop_dev);\narch/arm/common/scoop.c-189-\tif (!devptr)\n--\narch/arm/kernel/smp.c=108=static int secondary_biglittle_prepare(unsigned int cpu)\n--\narch/arm/kernel/smp.c-110-\tif (!cpu_vtable[cpu])\narch/arm/kernel/smp.c:111:\t\tcpu_vtable[cpu] = kzalloc_obj(*cpu_vtable[cpu]);\narch/arm/kernel/smp.c-112-\n--\narch/arm/kernel/vdso.c=169=static int __init vdso_init(void)\n--\narch/arm/kernel/vdso.c-181-\t/* Allocate the VDSO text pagelist */\narch/arm/kernel/vdso.c:182:\tvdso_text_pagelist = kzalloc_objs(struct page *, text_pages);\narch/arm/kernel/vdso.c-183-\tif (vdso_text_pagelist == NULL)\n--\narch/arm/mach-footbridge/dc21285.c=261=int __init dc21285_setup(int nr, struct pci_sys_data *sys)\n--\narch/arm/mach-footbridge/dc21285.c-264-\narch/arm/mach-footbridge/dc21285.c:265:\tres = kzalloc_objs(struct resource, 2);\narch/arm/mach-footbridge/dc21285.c-266-\tif (!res) {\n--\narch/arm/mach-footbridge/ebsa285.c=69=static int __init ebsa285_leds_init(void)\n--\narch/arm/mach-footbridge/ebsa285.c-86-\narch/arm/mach-footbridge/ebsa285.c:87:\t\tled = kzalloc_obj(*led);\narch/arm/mach-footbridge/ebsa285.c-88-\t\tif (!led)\n--\narch/arm/mach-footbridge/netwinder-hw.c=720=static int __init netwinder_leds_init(void)\n--\narch/arm/mach-footbridge/netwinder-hw.c-729-\narch/arm/mach-footbridge/netwinder-hw.c:730:\t\tled = kzalloc_obj(*led);\narch/arm/mach-footbridge/netwinder-hw.c-731-\t\tif (!led)\n--\narch/arm/mach-imx/mmdc.c=473=static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_base,\n--\narch/arm/mach-imx/mmdc.c-479-\narch/arm/mach-imx/mmdc.c:480:\tpmu_mmdc = kzalloc_obj(*pmu_mmdc);\narch/arm/mach-imx/mmdc.c-481-\tif (!pmu_mmdc) {\n--\narch/arm/mach-mvebu/board-v7.c=114=static void __init i2c_quirk(void)\n--\narch/arm/mach-mvebu/board-v7.c-129-\narch/arm/mach-mvebu/board-v7.c:130:\t\tnew_compat = kzalloc_obj(*new_compat);\narch/arm/mach-mvebu/board-v7.c-131-\n--\narch/arm/mach-mvebu/coherency.c=163=static void __init armada_375_380_coherency_init(struct device_node *np)\n--\narch/arm/mach-mvebu/coherency.c-187-\narch/arm/mach-mvebu/coherency.c:188:\t\tp = kzalloc_obj(*p);\narch/arm/mach-mvebu/coherency.c-189-\t\tp-\u003ename = kstrdup(\"arm,io-coherent\", GFP_KERNEL);\n--\narch/arm/mach-mvebu/mvebu-soc-id.c=148=static int __init mvebu_soc_device(void)\n--\narch/arm/mach-mvebu/mvebu-soc-id.c-156-\narch/arm/mach-mvebu/mvebu-soc-id.c:157:\tsoc_dev_attr = kzalloc_obj(*soc_dev_attr);\narch/arm/mach-mvebu/mvebu-soc-id.c-158-\tif (!soc_dev_attr)\n--\narch/arm/mach-mxs/mach-mxs.c=380=static void __init mxs_machine_init(void)\n--\narch/arm/mach-mxs/mach-mxs.c-389-\narch/arm/mach-mxs/mach-mxs.c:390:\tsoc_dev_attr = kzalloc_obj(*soc_dev_attr);\narch/arm/mach-mxs/mach-mxs.c-391-\tif (!soc_dev_attr)\n--\narch/arm/mach-omap1/dma.c=294=static int __init omap1_system_dma_init(void)\n--\narch/arm/mach-omap1/dma.c-321-\narch/arm/mach-omap1/dma.c:322:\td = kzalloc_obj(*d);\narch/arm/mach-omap1/dma.c-323-\tif (!d) {\n--\narch/arm/mach-omap1/mcbsp.c=292=static void omap_mcbsp_register_board_cfg(struct resource *res, int res_count,\n--\narch/arm/mach-omap1/mcbsp.c-296-\narch/arm/mach-omap1/mcbsp.c:297:\tomap_mcbsp_devices = kzalloc_objs(struct platform_device *, size);\narch/arm/mach-omap1/mcbsp.c-298-\tif (!omap_mcbsp_devices) {\n--\narch/arm/mach-omap1/timer.c=51=static int __init omap1_dm_timer_init(void)\n--\narch/arm/mach-omap1/timer.c-127-\narch/arm/mach-omap1/timer.c:128:\t\tpdata = kzalloc_obj(*pdata);\narch/arm/mach-omap1/timer.c-129-\t\tif (!pdata) {\n--\narch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c=230=void omap2xxx_clkt_vps_init(void)\n--\narch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c-239-\narch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c:240:\thw = kzalloc_obj(*hw);\narch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c-241-\tif (!hw)\n--\narch/arm/mach-omap2/id.c=786=void __init omap_soc_device_init(void)\n--\narch/arm/mach-omap2/id.c-790-\narch/arm/mach-omap2/id.c:791:\tsoc_dev_attr = kzalloc_obj(*soc_dev_attr);\narch/arm/mach-omap2/id.c-792-\tif (!soc_dev_attr)\n--\narch/arm/mach-omap2/omap_device.c=131=static int omap_device_build_from_dt(struct platform_device *pdev)\n--\narch/arm/mach-omap2/omap_device.c-158-\narch/arm/mach-omap2/omap_device.c:159:\thwmods = kzalloc_objs(struct omap_hwmod *, oh_cnt);\narch/arm/mach-omap2/omap_device.c-160-\tif (!hwmods) {\n--\narch/arm/mach-omap2/omap_hwmod.c=3381=static int omap_hwmod_allocate_module(struct device *dev, struct omap_hwmod *oh,\n--\narch/arm/mach-omap2/omap_hwmod.c-3394-\narch/arm/mach-omap2/omap_hwmod.c:3395:\tsysc = kzalloc_obj(*sysc);\narch/arm/mach-omap2/omap_hwmod.c-3396-\tif (!sysc)\n--\narch/arm/mach-omap2/omap_hwmod.c-3424-\tif (list_empty(\u0026oh-\u003eslave_ports)) {\narch/arm/mach-omap2/omap_hwmod.c:3425:\t\toi = kzalloc_obj(*oi);\narch/arm/mach-omap2/omap_hwmod.c-3426-\t\tif (!oi)\n--\narch/arm/mach-omap2/omap_hwmod.c=3513=int omap_hwmod_init_module(struct device *dev,\n--\narch/arm/mach-omap2/omap_hwmod.c-3527-\tif (!oh) {\narch/arm/mach-omap2/omap_hwmod.c:3528:\t\toh = kzalloc_obj(*oh);\narch/arm/mach-omap2/omap_hwmod.c-3529-\t\tif (!oh)\n--\narch/arm/mach-omap2/omap_hwmod.c-3538-\narch/arm/mach-omap2/omap_hwmod.c:3539:\t\toh-\u003eclass = kzalloc_obj(*oh-\u003eclass);\narch/arm/mach-omap2/omap_hwmod.c-3540-\t\tif (!oh-\u003eclass) {\n--\narch/arm/mach-omap2/pm33xx-core.c=379=static int __init amx3_idle_init(struct device_node *cpu_node, int cpu)\n--\narch/arm/mach-omap2/pm33xx-core.c-412-\narch/arm/mach-omap2/pm33xx-core.c:413:\tidle_states = kzalloc_objs(*idle_states, state_count);\narch/arm/mach-omap2/pm33xx-core.c-414-\tif (!idle_states)\n--\narch/arm/mach-omap2/sr_device.c=30=static void __init sr_set_nvalues(struct omap_volt_data *volt_data,\n--\narch/arm/mach-omap2/sr_device.c-41-\narch/arm/mach-omap2/sr_device.c:42:\tnvalue_table = kzalloc_objs(*nvalue_table, count);\narch/arm/mach-omap2/sr_device.c-43-\tif (!nvalue_table)\n--\narch/arm/mach-orion5x/pci.c=139=static int __init pcie_setup(struct pci_sys_data *sys)\n--\narch/arm/mach-orion5x/pci.c-171-\t */\narch/arm/mach-orion5x/pci.c:172:\tres = kzalloc_obj(struct resource);\narch/arm/mach-orion5x/pci.c-173-\tif (!res)\n--\narch/arm/mach-orion5x/pci.c=466=static int __init pci_setup(struct pci_sys_data *sys)\n--\narch/arm/mach-orion5x/pci.c-492-\t */\narch/arm/mach-orion5x/pci.c:493:\tres = kzalloc_obj(struct resource);\narch/arm/mach-orion5x/pci.c-494-\tif (!res)\n--\narch/arm/mach-rpc/ecard.c=689=static struct expansion_card *__init ecard_alloc_card(int type, int slot)\n--\narch/arm/mach-rpc/ecard.c-694-\narch/arm/mach-rpc/ecard.c:695:\tec = kzalloc_obj(ecard_t);\narch/arm/mach-rpc/ecard.c-696-\tif (!ec) {\n--\narch/arm/mach-sa1100/clock.c=93=int __init sa11xx_clk_init(void)\n--\narch/arm/mach-sa1100/clock.c-109-\narch/arm/mach-sa1100/clock.c:110:\thw = kzalloc_obj(*hw);\narch/arm/mach-sa1100/clock.c-111-\tif (!hw)\n--\narch/arm/mach-sa1100/clock.c-131-\narch/arm/mach-sa1100/clock.c:132:\thw = kzalloc_obj(*hw);\narch/arm/mach-sa1100/clock.c-133-\tif (!hw)\n--\narch/arm/mach-sa1100/generic.c=317=int __init sa11x0_register_fixed_regulator(int n,\n--\narch/arm/mach-sa1100/generic.c-323-\narch/arm/mach-sa1100/generic.c:324:\tcfg-\u003einit_data = id = kzalloc_obj(*cfg-\u003einit_data);\narch/arm/mach-sa1100/generic.c-325-\tif (!cfg-\u003einit_data)\n--\narch/arm/mach-sa1100/neponset.c=225=static int neponset_probe(struct platform_device *dev)\n--\narch/arm/mach-sa1100/neponset.c-278-\narch/arm/mach-sa1100/neponset.c:279:\td = kzalloc_obj(*d);\narch/arm/mach-sa1100/neponset.c-280-\tif (!d) {\n--\narch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c=141=static int __init rcar_gen2_regulator_quirk(void)\n--\narch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c-166-\narch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c:167:\t\tquirk = kzalloc_obj(*quirk);\narch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c-168-\t\tif (!quirk) {\n--\narch/arm/mach-versatile/spc.c=393=static int ve_spc_populate_opps(uint32_t cluster)\n--\narch/arm/mach-versatile/spc.c-397-\narch/arm/mach-versatile/spc.c:398:\topps = kzalloc_objs(*opps, MAX_OPPS);\narch/arm/mach-versatile/spc.c-399-\tif (!opps)\n--\narch/arm/mach-versatile/spc.c=442=int __init ve_spc_init(void __iomem *baseaddr, u32 a15_clusid, int irq)\n--\narch/arm/mach-versatile/spc.c-444-\tint ret;\narch/arm/mach-versatile/spc.c:445:\tinfo = kzalloc_obj(*info);\narch/arm/mach-versatile/spc.c-446-\tif (!info)\n--\narch/arm/mach-versatile/spc.c=523=static struct clk *ve_spc_clk_register(struct device *cpu_dev)\n--\narch/arm/mach-versatile/spc.c-527-\narch/arm/mach-versatile/spc.c:528:\tspc = kzalloc_obj(*spc);\narch/arm/mach-versatile/spc.c-529-\tif (!spc)\n--\narch/arm/mach-versatile/versatile.c=123=static void __init versatile_dt_pci_init(void)\n--\narch/arm/mach-versatile/versatile.c-144-\narch/arm/mach-versatile/versatile.c:145:\tnewprop = kzalloc_obj(*newprop);\narch/arm/mach-versatile/versatile.c-146-\tif (!newprop)\n--\narch/arm/mach-zynq/common.c=105=static void __init zynq_init_machine(void)\n--\narch/arm/mach-zynq/common.c-110-\narch/arm/mach-zynq/common.c:111:\tsoc_dev_attr = kzalloc_obj(*soc_dev_attr);\narch/arm/mach-zynq/common.c-112-\tif (!soc_dev_attr)\n--\narch/arm/mm/cache-l2x0-pmu.c=503=static __init int l2x0_pmu_init(void)\n--\narch/arm/mm/cache-l2x0-pmu.c-509-\narch/arm/mm/cache-l2x0-pmu.c:510:\tl2x0_pmu = kzalloc_obj(*l2x0_pmu);\narch/arm/mm/cache-l2x0-pmu.c-511-\tif (!l2x0_pmu) {\n--\narch/arm/mm/cache-uniphier.c=315=static int __init __uniphier_cache_init(struct device_node *np,\n--\narch/arm/mm/cache-uniphier.c-344-\narch/arm/mm/cache-uniphier.c:345:\tdata = kzalloc_obj(*data);\narch/arm/mm/cache-uniphier.c-346-\tif (!data)\n--\narch/arm/mm/dma-mapping.c=533=static void *__dma_alloc(struct device *dev, size_t size, dma_addr_t *handle,\n--\narch/arm/mm/dma-mapping.c-560-\narch/arm/mm/dma-mapping.c:561:\tbuf = kzalloc_obj(*buf,\narch/arm/mm/dma-mapping.c-562-\t\t\t gfp \u0026 ~(__GFP_DMA | __GFP_DMA32 | __GFP_HIGHMEM));\n--\narch/arm/mm/dma-mapping.c=1487=arm_iommu_create_mapping(struct device *dev, dma_addr_t base, u64 size)\n--\narch/arm/mm/dma-mapping.c-1506-\narch/arm/mm/dma-mapping.c:1507:\tmapping = kzalloc_obj(struct dma_iommu_mapping);\narch/arm/mm/dma-mapping.c-1508-\tif (!mapping)\n--\narch/arm/xen/enlighten.c=316=int __init arch_xen_unpopulated_init(struct resource **res)\n--\narch/arm/xen/enlighten.c-343-\narch/arm/xen/enlighten.c:344:\tregs = kzalloc_objs(*regs, nr_reg);\narch/arm/xen/enlighten.c-345-\tif (!regs) {\n--\narch/arm/xen/enlighten.c-387-\narch/arm/xen/enlighten.c:388:\t\ttmp_res = kzalloc_obj(*tmp_res);\narch/arm/xen/enlighten.c-389-\t\tif (!tmp_res) {\n--\narch/arm/xen/p2m.c=150=bool __set_phys_to_machine_multi(unsigned long pfn,\n--\narch/arm/xen/p2m.c-178-\narch/arm/xen/p2m.c:179:\tp2m_entry = kzalloc_obj(*p2m_entry, GFP_NOWAIT);\narch/arm/xen/p2m.c-180-\tif (!p2m_entry)\n--\narch/arm64/kernel/vdso.c=68=static int __init __vdso_init(enum vdso_abi abi)\n--\narch/arm64/kernel/vdso.c-83-\narch/arm64/kernel/vdso.c:84:\tvdso_pagelist = kzalloc_objs(struct page *, vdso_info[abi].vdso_pages);\narch/arm64/kernel/vdso.c-85-\tif (vdso_pagelist == NULL)\n--\narch/arm64/kvm/mmu.c=480=static int share_pfn_hyp(u64 pfn)\n--\narch/arm64/kvm/mmu.c-492-\narch/arm64/kvm/mmu.c:493:\tthis = kzalloc_obj(*this);\narch/arm64/kvm/mmu.c-494-\tif (!this) {\n--\narch/arm64/kvm/mmu.c=981=int kvm_init_stage2_mmu(struct kvm *kvm, struct kvm_s2_mmu *mmu, unsigned long type)\n--\narch/arm64/kvm/mmu.c-1007-\narch/arm64/kvm/mmu.c:1008:\tpgt = kzalloc_obj(*pgt, GFP_KERNEL_ACCOUNT);\narch/arm64/kvm/mmu.c-1009-\tif (!pgt)\n--\narch/arm64/kvm/mmu.c=1180=int topup_hyp_memcache(struct kvm_hyp_memcache *mc, unsigned long min_pages)\n--\narch/arm64/kvm/mmu.c-1185-\tif (!mc-\u003emapping) {\narch/arm64/kvm/mmu.c:1186:\t\tmc-\u003emapping = kzalloc_obj(struct pkvm_mapping,\narch/arm64/kvm/mmu.c-1187-\t\t\t\t\t GFP_KERNEL_ACCOUNT);\n--\narch/arm64/kvm/mmu.c=2510=int __init kvm_mmu_init(u32 hyp_va_bits)\n--\narch/arm64/kvm/mmu.c-2543-\narch/arm64/kvm/mmu.c:2544:\thyp_pgtable = kzalloc_obj(*hyp_pgtable);\narch/arm64/kvm/mmu.c-2545-\tif (!hyp_pgtable) {\n--\narch/arm64/kvm/nested.c=1328=int kvm_vcpu_allocate_vncr_tlb(struct kvm_vcpu *vcpu)\n--\narch/arm64/kvm/nested.c-1333-\tif (!vcpu-\u003earch.vncr_tlb) {\narch/arm64/kvm/nested.c:1334:\t\tstruct vncr_tlb *vt = kzalloc_obj(*vcpu-\u003earch.vncr_tlb,\narch/arm64/kvm/nested.c-1335-\t\t\t\t\t\t GFP_KERNEL_ACCOUNT);\n--\narch/arm64/kvm/nested.c=1793=int kvm_init_nv_sysregs(struct kvm_vcpu *vcpu)\n--\narch/arm64/kvm/nested.c-1802-\narch/arm64/kvm/nested.c:1803:\tkvm-\u003earch.sysreg_masks = kzalloc_obj(*(kvm-\u003earch.sysreg_masks),\narch/arm64/kvm/nested.c-1804-\t\t\t\t\t GFP_KERNEL_ACCOUNT);\n--\narch/arm64/kvm/ptdump.c=116=static struct kvm_ptdump_guest_state *kvm_ptdump_parser_create(struct kvm_s2_mmu *mmu)\n--\narch/arm64/kvm/ptdump.c-121-\narch/arm64/kvm/ptdump.c:122:\tst = kzalloc_obj(struct kvm_ptdump_guest_state, GFP_KERNEL_ACCOUNT);\narch/arm64/kvm/ptdump.c-123-\tif (!st)\n--\narch/arm64/kvm/vgic/vgic-init.c=207=static int kvm_vgic_dist_init(struct kvm *kvm, unsigned int nr_spis)\n--\narch/arm64/kvm/vgic/vgic-init.c-213-\tdist-\u003eactive_spis = (atomic_t)ATOMIC_INIT(0);\narch/arm64/kvm/vgic/vgic-init.c:214:\tdist-\u003espis = kzalloc_objs(struct vgic_irq, nr_spis, GFP_KERNEL_ACCOUNT);\narch/arm64/kvm/vgic/vgic-init.c-215-\tif (!dist-\u003espis)\n--\narch/arm64/kvm/vgic/vgic-init.c=316=static int vgic_allocate_private_irqs_locked(struct kvm_vcpu *vcpu, u32 type)\n--\narch/arm64/kvm/vgic/vgic-init.c-331-\narch/arm64/kvm/vgic/vgic-init.c:332:\tvgic_cpu-\u003eprivate_irqs = kzalloc_objs(struct vgic_irq,\narch/arm64/kvm/vgic/vgic-init.c-333-\t\t\t\t\t num_private_irqs,\n--\narch/arm64/kvm/vgic/vgic-irqfd.c=142=int kvm_vgic_setup_default_irq_routing(struct kvm *kvm)\n--\narch/arm64/kvm/vgic/vgic-irqfd.c-148-\narch/arm64/kvm/vgic/vgic-irqfd.c:149:\tentries = kzalloc_objs(*entries, nr, GFP_KERNEL_ACCOUNT);\narch/arm64/kvm/vgic/vgic-irqfd.c-150-\tif (!entries)\n--\narch/arm64/kvm/vgic/vgic-its.c=76=static struct vgic_irq *vgic_add_lpi(struct kvm *kvm, u32 intid,\n--\narch/arm64/kvm/vgic/vgic-its.c-87-\narch/arm64/kvm/vgic/vgic-its.c:88:\tirq = kzalloc_obj(struct vgic_irq, GFP_KERNEL_ACCOUNT);\narch/arm64/kvm/vgic/vgic-its.c-89-\tif (!irq)\n--\narch/arm64/kvm/vgic/vgic-its.c=971=static int vgic_its_alloc_collection(struct vgic_its *its,\n--\narch/arm64/kvm/vgic/vgic-its.c-976-\narch/arm64/kvm/vgic/vgic-its.c:977:\tcollection = kzalloc_obj(*collection, GFP_KERNEL_ACCOUNT);\narch/arm64/kvm/vgic/vgic-its.c-978-\tif (!collection)\n--\narch/arm64/kvm/vgic/vgic-its.c=1015=static struct its_ite *vgic_its_alloc_ite(struct its_device *device,\n--\narch/arm64/kvm/vgic/vgic-its.c-1020-\narch/arm64/kvm/vgic/vgic-its.c:1021:\tite = kzalloc_obj(*ite, GFP_KERNEL_ACCOUNT);\narch/arm64/kvm/vgic/vgic-its.c-1022-\tif (!ite)\n--\narch/arm64/kvm/vgic/vgic-its.c=1142=static struct its_device *vgic_its_alloc_device(struct vgic_its *its,\n--\narch/arm64/kvm/vgic/vgic-its.c-1147-\narch/arm64/kvm/vgic/vgic-its.c:1148:\tdevice = kzalloc_obj(*device, GFP_KERNEL_ACCOUNT);\narch/arm64/kvm/vgic/vgic-its.c-1149-\tif (!device)\n--\narch/arm64/kvm/vgic/vgic-its.c=1855=static int vgic_its_create(struct kvm_device *dev, u32 type)\n--\narch/arm64/kvm/vgic/vgic-its.c-1862-\narch/arm64/kvm/vgic/vgic-its.c:1863:\tits = kzalloc_obj(struct vgic_its, GFP_KERNEL_ACCOUNT);\narch/arm64/kvm/vgic/vgic-its.c-1864-\tif (!its)\n--\narch/arm64/kvm/vgic/vgic-mmio-v3.c=886=static int vgic_v3_alloc_redist_region(struct kvm *kvm, uint32_t index,\n--\narch/arm64/kvm/vgic/vgic-mmio-v3.c-931-\narch/arm64/kvm/vgic/vgic-mmio-v3.c:932:\trdreg = kzalloc_obj(*rdreg, GFP_KERNEL_ACCOUNT);\narch/arm64/kvm/vgic/vgic-mmio-v3.c-933-\tif (!rdreg)\n--\narch/arm64/kvm/vgic/vgic-v4.c=242=int vgic_v4_init(struct kvm *kvm)\n--\narch/arm64/kvm/vgic/vgic-v4.c-258-\narch/arm64/kvm/vgic/vgic-v4.c:259:\tdist-\u003eits_vm.vpes = kzalloc_objs(*dist-\u003eits_vm.vpes, nr_vcpus,\narch/arm64/kvm/vgic/vgic-v4.c-260-\t\t\t\t\t GFP_KERNEL_ACCOUNT);\n--\narch/arm64/net/bpf_jit_comp.c=2080=struct bpf_prog *bpf_int_jit_compile(struct bpf_verifier_env *env, struct bpf_prog *prog)\n--\narch/arm64/net/bpf_jit_comp.c-2101-\tif (!jit_data) {\narch/arm64/net/bpf_jit_comp.c:2102:\t\tjit_data = kzalloc_obj(*jit_data);\narch/arm64/net/bpf_jit_comp.c-2103-\t\tif (!jit_data)\n--\narch/csky/kernel/vdso.c=17=static int __init vdso_init(void)\n--\narch/csky/kernel/vdso.c-22-\tvdso_pagelist =\narch/csky/kernel/vdso.c:23:\t\tkzalloc_objs(struct page *, vdso_pages);\narch/csky/kernel/vdso.c-24-\tif (unlikely(vdso_pagelist == NULL)) {\n--\narch/loongarch/kernel/setup.c=466=static int __init add_legacy_isa_io(struct fwnode_handle *fwnode,\n--\narch/loongarch/kernel/setup.c-472-\narch/loongarch/kernel/setup.c:473:\trange = kzalloc_obj(*range, GFP_ATOMIC);\narch/loongarch/kernel/setup.c-474-\tif (!range)\n--\narch/loongarch/kernel/vdso.c=45=static int __init init_vdso(void)\n--\narch/loongarch/kernel/vdso.c-55-\tvdso_info.code_mapping.pages =\narch/loongarch/kernel/vdso.c:56:\t\tkzalloc_objs(struct page *, vdso_info.size / PAGE_SIZE);\narch/loongarch/kernel/vdso.c-57-\n--\narch/loongarch/kvm/intc/eiointc.c=614=static int kvm_eiointc_create(struct kvm_device *dev, u32 type)\n--\narch/loongarch/kvm/intc/eiointc.c-624-\narch/loongarch/kvm/intc/eiointc.c:625:\ts = kzalloc_obj(struct loongarch_eiointc);\narch/loongarch/kvm/intc/eiointc.c-626-\tif (!s)\n--\narch/loongarch/kvm/intc/ipi.c=394=static int kvm_ipi_create(struct kvm_device *dev, u32 type)\n--\narch/loongarch/kvm/intc/ipi.c-411-\narch/loongarch/kvm/intc/ipi.c:412:\ts = kzalloc_obj(struct loongarch_ipi);\narch/loongarch/kvm/intc/ipi.c-413-\tif (!s)\n\n"
} |
| 5/2 | 2026/08/21 14:56 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 22199 output: 20 thoughts: 137 Thoughts: **Examining the kzalloc_obj Macro** Okay, so I'm seeing this `kzalloc_obj` macro, and it's ringing a bell. It seems like something fairly recent, maybe a new addition to the kernel, or potentially a side effect of some syzkaller work I've seen. No, wait, checking `Documentation/core-api/list.rst` and `Documentation/process/deprecated.rst` shows it's a direct replacement for using `kzalloc(sizeof(*ptr), ...)`. Interesting. I'm noting a change in a patch that's substituting `kzalloc_obj(*tmpl)` with `kzalloc_obj(*tmpl, GFP_KERNEL_ACCOUNT)`. That looks like they're adding a second argument. Wait, now I'm second-guessing myself. Does `kzalloc_obj` actually take one or two arguments? I better check the definition to be sure. Time to head over to `include/linux/slab.h` and take a look. |
| 6/2 | 2026/08/21 14:56 | tool | grepper |
0mArgs:{
"Expression": "#define kzalloc_obj"
}Results: {
"Output": "include/linux/slab.h=1070=void *kmalloc_nolock(size_t size, gfp_t gfp_flags, int node);\n--\ninclude/linux/slab.h-1151-/* All kzalloc aliases for kmalloc_(obj|objs|flex). */\ninclude/linux/slab.h:1152:#define kzalloc_obj(P, ...) \\\ninclude/linux/slab.h-1153-\t__alloc_objs(kzalloc, default_gfp(__VA_ARGS__), typeof(P), 1)\ninclude/linux/slab.h:1154:#define kzalloc_objs(P, COUNT, ...) \\\ninclude/linux/slab.h-1155-\t__alloc_objs(kzalloc, default_gfp(__VA_ARGS__), typeof(P), COUNT)\n--\ntools/include/linux/slab.h=200=static inline unsigned int kmem_cache_sheaf_size(struct slab_sheaf *sheaf)\n--\ntools/include/linux/slab.h-210-\ntools/include/linux/slab.h:211:#define kzalloc_obj(P, ...) \\\ntools/include/linux/slab.h-212-\t__alloc_objs(kzalloc, default_gfp(__VA_ARGS__), typeof(P), 1)\n"
} |
| 7/2 | 2026/08/21 14:56 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 22906 output: 82 thoughts: 1838 Thoughts: **Analysis of the Netfilter Memory Accounting Patch** Okay, so I'm looking at this patch and, yeah, it's pretty straightforward. The primary thing happening here is the introduction of `GFP_KERNEL_ACCOUNT` across a bunch of memory allocations within netfilter, replacing the more generic `GFP_KERNEL` or `GFP_KERNEL | __GFP_NOWARN`. `kzalloc_obj` takes `P` and optional `__VA_ARGS__` for GFP flags. My initial thought is, does this affect the actual *functionality*? No, memory accounting fundamentally doesn't change the execution flow. It's about tracking where the memory is going, not how the code actually *works*, aside from potentially triggering OOM conditions or cgroup limits if they are exceeded. The typical reason to add this kind of accounting is security and resource management: preventing unprivileged users from hogging memory and making sure usage is tracked against cgroups. But does it *introduce* any new logic? Nope, it's just a GFP flag change. Let's make sure, though, and look at the actual code changes. I'm scanning through the diff. Yes, I'm seeing a pattern, everywhere. Every instance of `GFP_KERNEL` is being replaced with `GFP_KERNEL_ACCOUNT`. Even where `GFP_KERNEL | __GFP_NOWARN` is specified, it is being converted to `GFP_KERNEL_ACCOUNT | __GFP_NOWARN`. There are no other code changes. The functional behavior of the netfilter components remains the same. The same objects are allocated and the same code is used to read, manipulate and manage those objects. Given the prompt, let's see, should I fuzz it? Since this is a purely mechanical change in the memory allocation flags, it is very unlikely to introduce any new vulnerabilities that fuzzing could find. I'm making a change to numeric constants or macros that do not functionally alter execution flow. In this case, I should return `WorthFuzzing=false`. I am making sure there are no other changes in the patch. I'm reviewing the provided diffs again to make sure there are no logic changes hidden. Okay, I've checked. This is exclusively a change to the GFP flags. It's not worth fuzzing. |
| 8/2 | 2026/08/21 14:57 | tool | set-results |
0mArgs:{
"EnableConfigs": [],
"FocusSymbols": [],
"Reasoning": "The patch only changes memory allocation flags to include GFP_KERNEL_ACCOUNT across various netfilter modules. This is a mechanical change for memory cgroup accounting and does not functionally alter the execution flow of the kernel. Therefore, it is not worth fuzzing.",
"WorthFuzzing": false
}Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"Reasoning": "The patch only changes memory allocation flags to include GFP_KERNEL_ACCOUNT across various netfilter modules. This is a mechanical change for memory cgroup accounting and does not functionally alter the execution flow of the kernel. Therefore, it is not worth fuzzing.",
"WorthFuzzing": false
} |
| 9/1 | 2026/08/21 14:57 | action | If |
0mArgs:{
"WorthFuzzing": false
}Results: null |
| Total Calls | Total Tokens | Avg Tokens | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|
| Total Calls | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|