diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c index 53fbdbbe8..1fc9dead9 100644 --- a/net/batman-adv/bat_iv_ogm.c +++ b/net/batman-adv/bat_iv_ogm.c @@ -1410,9 +1410,13 @@ batadv_iv_ogm_update_seqnos(const struct ethhdr *ethhdr, return BATADV_NO_DUP; orig_ifinfo = batadv_orig_ifinfo_new(orig_node, if_outgoing); - if (WARN_ON(!orig_ifinfo)) { + if (!orig_ifinfo) { + /* This allocation can legitimately fail (for example under + * memory pressure or fault injection), in which case duplicate + * detection must be skipped without emitting a kernel warning. + */ batadv_orig_node_put(orig_node); - return 0; + return BATADV_NO_DUP; } spin_lock_bh(&orig_node->bat_iv.ogm_cnt_lock);