diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c index 789f257be24f..67a02966bef0 100644 --- a/net/batman-adv/bat_iv_ogm.c +++ b/net/batman-adv/bat_iv_ogm.c @@ -398,6 +398,7 @@ static void batadv_iv_ogm_send_to_if(struct batadv_forw_packet *forw_packet, static void batadv_iv_ogm_emit(struct batadv_forw_packet *forw_packet) { struct net_device *soft_iface; + struct net_device *soft_iface2; if (!forw_packet->if_incoming) { pr_err("Error - can't forward packet: incoming iface not specified\n"); @@ -409,8 +410,21 @@ static void batadv_iv_ogm_emit(struct batadv_forw_packet *forw_packet) if (WARN_ON(!forw_packet->if_outgoing)) return; - if (WARN_ON(forw_packet->if_outgoing->soft_iface != soft_iface)) + soft_iface2 = forw_packet->if_outgoing->soft_iface; + if (!soft_iface2) return; + if (soft_iface2 != soft_iface) { + pr_err("forw_packet->if_outgoing->soft_iface=%p forw_packet->if_incoming->soft_iface=%p\n", + soft_iface2, soft_iface); + if (soft_iface2) + pr_err("forw_packet->if_outgoing->soft_iface->name=%s\n", + soft_iface2->name); + if (soft_iface) + pr_err("forw_packet->if_incoming->soft_iface->name=%s\n", + soft_iface->name); + WARN_ON(1); + return; + } if (forw_packet->if_incoming->if_status != BATADV_IF_ACTIVE) return;