* [B.A.T.M.A.N.] [PATCH] batman-adv: bugfix for kernel crash in batadv_tt_local_table_free
@ 2015-03-19 15:46 Andreas Pape
2015-03-19 16:01 ` Antonio Quartulli
0 siblings, 1 reply; 4+ messages in thread
From: Andreas Pape @ 2015-03-19 15:46 UTC (permalink / raw)
To: b.a.t.m.a.n
This missing check lead to a kernel crash when a hard_if is removed on a
node forwarding
untagged and tagged traffic (VLANID 0) to and from the mesh network.
Signed-off-by: Andreas Pape <apape@phoenixcontact.com>
---
translation-table.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/translation-table.c b/translation-table.c
index b20812b..4d3ab8d 100644
--- a/translation-table.c
+++ b/translation-table.c
@@ -1143,8 +1143,10 @@ static void batadv_tt_local_table_free(struct
batadv_priv *bat_priv)
/* decrease the reference held for this vlan */
vlan = batadv_softif_vlan_get(bat_priv,
tt_common_entry->vid);
- batadv_softif_vlan_free_ref(vlan);
- batadv_softif_vlan_free_ref(vlan);
+ if (vlan) {
+ batadv_softif_vlan_free_ref(vlan);
+ batadv_softif_vlan_free_ref(vlan);
+ }
batadv_tt_local_entry_free_ref(tt_local);
}
--
1.7.0.4
..................................................................
PHOENIX CONTACT ELECTRONICS GmbH
Sitz der Gesellschaft / registered office of the company: 31812 Bad Pyrmont
USt-Id-Nr.: DE811742156
Amtsgericht Hannover HRB 100528 / district court Hannover HRB 100528
Geschäftsführer / Executive Board: Roland Bent, Dr. Martin Heubeck
___________________________________________________________________
Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren, jegliche anderweitige Verwendung sowie die unbefugte Weitergabe dieser Mail ist nicht gestattet.
----------------------------------------------------------------------------------------------------
This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorized copying, disclosure, distribution or other use of the material or parts thereof is strictly forbidden.
___________________________________________________________________
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [B.A.T.M.A.N.] [PATCH] batman-adv: bugfix for kernel crash in batadv_tt_local_table_free
2015-03-19 15:46 [B.A.T.M.A.N.] [PATCH] batman-adv: bugfix for kernel crash in batadv_tt_local_table_free Andreas Pape
@ 2015-03-19 16:01 ` Antonio Quartulli
2015-03-19 16:54 ` [B.A.T.M.A.N.] Antwort: " Andreas Pape
0 siblings, 1 reply; 4+ messages in thread
From: Antonio Quartulli @ 2015-03-19 16:01 UTC (permalink / raw)
To: b.a.t.m.a.n
[-- Attachment #1: Type: text/plain, Size: 1574 bytes --]
Hi Andreas,
On 19/03/15 16:46, Andreas Pape wrote:
> This missing check lead to a kernel crash when a hard_if is removed on a
> node forwarding
> untagged and tagged traffic (VLANID 0) to and from the mesh network.
>
Did you actually see the crash? if so, can you please report the stacktrace?
When creating bat0 (untagged interface), a "fake" vlan object is created
with vid = BATADV_NO_FLAGS, therefore in this context the object "vlan"
should never be NULL because there is always an object to retrieve.
Cheers,
> Signed-off-by: Andreas Pape <apape@phoenixcontact.com>
> ---
> translation-table.c | 6 ++++--
> 1 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/translation-table.c b/translation-table.c
> index b20812b..4d3ab8d 100644
> --- a/translation-table.c
> +++ b/translation-table.c
> @@ -1143,8 +1143,10 @@ static void batadv_tt_local_table_free(struct
> batadv_priv *bat_priv)
> /* decrease the reference held for this vlan */
> vlan = batadv_softif_vlan_get(bat_priv,
> tt_common_entry->vid);
> - batadv_softif_vlan_free_ref(vlan);
> - batadv_softif_vlan_free_ref(vlan);
> + if (vlan) {
> + batadv_softif_vlan_free_ref(vlan);
> + batadv_softif_vlan_free_ref(vlan);
> + }
>
> batadv_tt_local_entry_free_ref(tt_local);
> }
>
--
Antonio Quartulli
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* [B.A.T.M.A.N.] Antwort: Re: [PATCH] batman-adv: bugfix for kernel crash in batadv_tt_local_table_free
2015-03-19 16:01 ` Antonio Quartulli
@ 2015-03-19 16:54 ` Andreas Pape
2015-04-22 2:24 ` Antonio Quartulli
0 siblings, 1 reply; 4+ messages in thread
From: Andreas Pape @ 2015-03-19 16:54 UTC (permalink / raw)
To: The list for a Better Approach To Mobile Ad-hoc Networking
Hi Antonio,
I saw the crash, but only in the case when I add the non-IP traffic using
VLAN ID 0. No interface of the mesh node is part of that VLAN, i.e. I
don't use further virtual VLAN interfaces on my mesh node. This VLAN
traffic shall only be transparently forwarded over the mesh which - by the
way - works flawlessly.
As soon as I remove the WLAN interface from bat0 (batctl if del ath0) I
get the following crash report:
/ # Unable to handle kernel paging request for data at address 0x00000020
Faulting instruction address: 0xc99c35a4
Oops: Kernel access of bad area, sig: 11 [#1]
MPC831x RDB
Modules linked in: batman_adv crc32c umac ath_dev(P) ath_rate_atheros(P)
ath_dfs(P) ath_hal(P) asf(P) adf t23xsec2 t23xrm spi_mpc8xxx ipv6
NIP: c99c35a4 LR: c99c8ca4 CTR: c00253ac
REGS: c654ddd0 TRAP: 0300 Tainted: P (2.6.32.26-svn1313)
MSR: 00009032 <EE,ME,IR,DR> CR: 84002082 XER: 20000000
DAR: 00000020, DSISR: 20000000
TASK = c68680e0[1105] 'bat_events' THREAD: c654c000
GPR00: 00000020 c654de80 c68680e0 00000000 00008000 c0355078 c797f3e5
00000080
GPR08: 00000001 00000000 00000001 00000000 44002088 100d5bc0 07ffa000
00000000
GPR16: fa3fdfef 00000000 00000000 00000000 00000000 00000000 00020000
07e958b0
GPR24: 00000000 00000174 c7b14320 c6d382c0 00000000 00000000 00200200
00000000
NIP [c99c35a4] batadv_softif_vlan_free_ref+0x18/0x98 [batman_adv]
LR [c99c8ca4] batadv_tt_free+0xc0/0x30c [batman_adv]
Call Trace:
[c654de80] [c99c6690] batadv_tt_local_entry_free_ref+0x38/0x48
[batman_adv] (unreliable)
[c654de90] [c99c8ca4] batadv_tt_free+0xc0/0x30c [batman_adv]
[c654dec0] [c99bdfb8] batadv_mesh_free+0x54/0x8c [batman_adv]
[c654dee0] [c99c34e8] batadv_softif_free+0x20/0x40 [batman_adv]
[c654df00] [c01fa2f0] netdev_run_todo+0x1a4/0x244
[c654df30] [c0206888] rtnl_unlock+0x10/0x20
[c654df40] [c01fad48] unregister_netdev+0x24/0x38
[c654df60] [c99c36cc] batadv_softif_destroy_finish+0x50/0x64 [batman_adv]
[c654df80] [c0031d44] worker_thread+0x108/0x1b0
[c654dfc0] [c0035ca0] kthread+0x78/0x7c
[c654dff0] [c0011444] kernel_thread+0x4c/0x68
Instruction dump:
4e800020 480088f1 7fe3fb78 3be00000 48008935 4bffffd8 9421fff0 7c0802a6
93e1000c 7c7f1b78 90010014 38030020 <7d200028> 3129ffff 7d20012d 40a2fff4
Kernel panic - not syncing: Fatal exception in interrupt
Rebooting in 180 seconds..
If I add the "if (vlan)" check, this doesn't happen anymore. The other
thing which prevents the crash is not using the VLAN ID 0 traffic.
Regards,
Andreas
"B.A.T.M.A.N" <b.a.t.m.a.n-bounces@lists.open-mesh.org> schrieb am
19.03.2015 17:01:33:
> Von: Antonio Quartulli <antonio@meshcoding.com>
> An: b.a.t.m.a.n@lists.open-mesh.org,
> Datum: 19.03.2015 17:03
> Betreff: Re: [B.A.T.M.A.N.] [PATCH] batman-adv: bugfix for kernel
> crash in batadv_tt_local_table_free
> Gesendet von: "B.A.T.M.A.N" <b.a.t.m.a.n-bounces@lists.open-mesh.org>
>
> Hi Andreas,
>
> On 19/03/15 16:46, Andreas Pape wrote:
> > This missing check lead to a kernel crash when a hard_if is removed on
a
> > node forwarding
> > untagged and tagged traffic (VLANID 0) to and from the mesh network.
> >
>
> Did you actually see the crash? if so, can you please report the
stacktrace?
>
> When creating bat0 (untagged interface), a "fake" vlan object is created
> with vid = BATADV_NO_FLAGS, therefore in this context the object "vlan"
> should never be NULL because there is always an object to retrieve.
>
> Cheers,
>
> > Signed-off-by: Andreas Pape <apape@phoenixcontact.com>
> > ---
> > translation-table.c | 6 ++++--
> > 1 files changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/translation-table.c b/translation-table.c
> > index b20812b..4d3ab8d 100644
> > --- a/translation-table.c
> > +++ b/translation-table.c
> > @@ -1143,8 +1143,10 @@ static void batadv_tt_local_table_free(struct
> > batadv_priv *bat_priv)
> > /* decrease the reference held for this vlan
*/
> > vlan = batadv_softif_vlan_get(bat_priv,
> > tt_common_entry->vid);
> > - batadv_softif_vlan_free_ref(vlan);
> > - batadv_softif_vlan_free_ref(vlan);
> > + if (vlan) {
> > + batadv_softif_vlan_free_ref(vlan);
> > + batadv_softif_vlan_free_ref(vlan);
> > + }
> >
> > batadv_tt_local_entry_free_ref(tt_local);
> > }
> >
>
> --
> Antonio Quartulli
>
> [Anhang "signature.asc" gelöscht von Andreas Pape/Phoenix Contact]
..................................................................
PHOENIX CONTACT ELECTRONICS GmbH
Sitz der Gesellschaft / registered office of the company: 31812 Bad Pyrmont
USt-Id-Nr.: DE811742156
Amtsgericht Hannover HRB 100528 / district court Hannover HRB 100528
Geschäftsführer / Executive Board: Roland Bent, Dr. Martin Heubeck
___________________________________________________________________
Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren, jegliche anderweitige Verwendung sowie die unbefugte Weitergabe dieser Mail ist nicht gestattet.
----------------------------------------------------------------------------------------------------
This e-mail may contain confidential and/or privileged information. If you are not the intended recipient (or have received this e-mail in error) please notify the sender immediately and destroy this e-mail. Any unauthorized copying, disclosure, distribution or other use of the material or parts thereof is strictly forbidden.
___________________________________________________________________
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [B.A.T.M.A.N.] Antwort: Re: [PATCH] batman-adv: bugfix for kernel crash in batadv_tt_local_table_free
2015-03-19 16:54 ` [B.A.T.M.A.N.] Antwort: " Andreas Pape
@ 2015-04-22 2:24 ` Antonio Quartulli
0 siblings, 0 replies; 4+ messages in thread
From: Antonio Quartulli @ 2015-04-22 2:24 UTC (permalink / raw)
To: APape; +Cc: The list for a Better Approach To Mobile Ad-hoc Networking
[-- Attachment #1: Type: text/plain, Size: 545 bytes --]
Hi Adreas,
sorry for waiting so long before getting back to you, but this bug
slipped away of my todo list..
Anyhow, I have some questions inline:
On 19/03/15 17:54, Andreas Pape wrote:
> Hi Antonio,
>
> I saw the crash, but only in the case when I add the non-IP traffic
What is this non-IP traffic? Can you mention what type of traffic are
you sending?
> using VLAN ID 0.
Are you saying you are creating a bat0.0 ? If not, can you clarify the
meaning of VLAN ID 0 ?
Thanks!
Cheers,
--
Antonio Quartulli
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-04-22 2:24 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-03-19 15:46 [B.A.T.M.A.N.] [PATCH] batman-adv: bugfix for kernel crash in batadv_tt_local_table_free Andreas Pape
2015-03-19 16:01 ` Antonio Quartulli
2015-03-19 16:54 ` [B.A.T.M.A.N.] Antwort: " Andreas Pape
2015-04-22 2:24 ` Antonio Quartulli
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).