* [PATCH net-next 0/2] 6lowpan: fixes for new reassembly implementation
@ 2014-03-05 20:43 Alexander Aring
[not found] ` <1394052211-6976-1-git-send-email-alex.aring-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-03-05 20:43 ` [PATCH net-next 2/2] 6lowpan: reassembly: fix kernel oops while unloading Alexander Aring
0 siblings, 2 replies; 11+ messages in thread
From: Alexander Aring @ 2014-03-05 20:43 UTC (permalink / raw)
To: alex.bluesman.smirnov
Cc: dbaryshkov, linux-zigbee-devel, netdev, Alexander Aring
Hi all,
I detected a embarrassing mistake of registering sysctl interface while
init fragmentation. This is fixed in Patch 1/2
(6lowpan: reassembly: fix return of init function).
The second issue occurs while reassembly and unloading 6lowpan module.
I am definitively sure about if I fixed it correctly in this case.
The problem is there are some running timers which are not deleted after
unloading the 6lowpan module. This issue is fixed in Patch 2/2
(6lowpan: reassembly: fix kernel oops while unloading).
- Alex
Alexander Aring (2):
6lowpan: reassembly: fix return of init function
6lowpan: reassembly: fix kernel oops while unloading
net/ieee802154/reassembly.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
--
1.9.0
^ permalink raw reply [flat|nested] 11+ messages in thread[parent not found: <1394052211-6976-1-git-send-email-alex.aring-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* [PATCH net-next 1/2] 6lowpan: reassembly: fix return of init function
[not found] ` <1394052211-6976-1-git-send-email-alex.aring-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2014-03-05 20:43 ` Alexander Aring
2014-03-05 22:04 ` Sergei Shtylyov
0 siblings, 1 reply; 11+ messages in thread
From: Alexander Aring @ 2014-03-05 20:43 UTC (permalink / raw)
To: alex.bluesman.smirnov-Re5JQEeQqe8AvxtiuMwx3w
Cc: netdev-u79uwXL29TY76Z2rM5mHXA,
linux-zigbee-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f
This patch adds a missing return after fragmentation init. Otherwise we
register a sysctl interface and deregister it afterwards which makes no
sense.
Signed-off-by: Alexander Aring <alex.aring-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
---
net/ieee802154/reassembly.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/net/ieee802154/reassembly.c b/net/ieee802154/reassembly.c
index 4511fc2..59db7b5 100644
--- a/net/ieee802154/reassembly.c
+++ b/net/ieee802154/reassembly.c
@@ -550,6 +550,8 @@ int __init lowpan_net_frag_init(void)
lowpan_frags.frag_expire = lowpan_frag_expire;
lowpan_frags.secret_interval = 10 * 60 * HZ;
inet_frags_init(&lowpan_frags);
+
+ return 0;
err_pernet:
lowpan_frags_sysctl_unregister();
out:
--
1.9.0
------------------------------------------------------------------------------
Subversion Kills Productivity. Get off Subversion & Make the Move to Perforce.
With Perforce, you get hassle-free workflows. Merge that actually works.
Faster operations. Version large binaries. Built-in WAN optimization and the
freedom to use Git, Perforce or both. Make the move to Perforce.
http://pubads.g.doubleclick.net/gampad/clk?id=122218951&iu=/4140/ostg.clktrk
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [PATCH net-next 1/2] 6lowpan: reassembly: fix return of init function
2014-03-05 20:43 ` [PATCH net-next 1/2] 6lowpan: reassembly: fix return of init function Alexander Aring
@ 2014-03-05 22:04 ` Sergei Shtylyov
2014-03-06 5:44 ` Alexander Aring
0 siblings, 1 reply; 11+ messages in thread
From: Sergei Shtylyov @ 2014-03-05 22:04 UTC (permalink / raw)
To: Alexander Aring, alex.bluesman.smirnov
Cc: dbaryshkov, linux-zigbee-devel, netdev
Hello.
On 03/05/2014 11:43 PM, Alexander Aring wrote:
> This patch adds a missing return after fragmentation init. Otherwise we
> register a sysctl interface and deregister it afterwards which makes no
> sense.
> Signed-off-by: Alexander Aring <alex.aring@gmail.com>
> ---
> net/ieee802154/reassembly.c | 2 ++
> 1 file changed, 2 insertions(+)
> diff --git a/net/ieee802154/reassembly.c b/net/ieee802154/reassembly.c
> index 4511fc2..59db7b5 100644
> --- a/net/ieee802154/reassembly.c
> +++ b/net/ieee802154/reassembly.c
> @@ -550,6 +550,8 @@ int __init lowpan_net_frag_init(void)
> lowpan_frags.frag_expire = lowpan_frag_expire;
> lowpan_frags.secret_interval = 10 * 60 * HZ;
> inet_frags_init(&lowpan_frags);
> +
> + return 0;
Perhaps 'goto out' for "consistency" with the code above? (I don't know
why they used "goto out' in the first place.)
> err_pernet:
> lowpan_frags_sysctl_unregister();
> out:
WBR, Sergei
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: [PATCH net-next 1/2] 6lowpan: reassembly: fix return of init function
2014-03-05 22:04 ` Sergei Shtylyov
@ 2014-03-06 5:44 ` Alexander Aring
2014-03-06 13:30 ` Sergei Shtylyov
0 siblings, 1 reply; 11+ messages in thread
From: Alexander Aring @ 2014-03-06 5:44 UTC (permalink / raw)
To: Sergei Shtylyov
Cc: alex.bluesman.smirnov, dbaryshkov, linux-zigbee-devel, netdev
Hi Sergei,
On Thu, Mar 06, 2014 at 01:04:20AM +0300, Sergei Shtylyov wrote:
> Hello.
>
> On 03/05/2014 11:43 PM, Alexander Aring wrote:
>
> >This patch adds a missing return after fragmentation init. Otherwise we
> >register a sysctl interface and deregister it afterwards which makes no
> >sense.
>
> >Signed-off-by: Alexander Aring <alex.aring@gmail.com>
> >---
> > net/ieee802154/reassembly.c | 2 ++
> > 1 file changed, 2 insertions(+)
>
> >diff --git a/net/ieee802154/reassembly.c b/net/ieee802154/reassembly.c
> >index 4511fc2..59db7b5 100644
> >--- a/net/ieee802154/reassembly.c
> >+++ b/net/ieee802154/reassembly.c
> >@@ -550,6 +550,8 @@ int __init lowpan_net_frag_init(void)
> > lowpan_frags.frag_expire = lowpan_frag_expire;
> > lowpan_frags.secret_interval = 10 * 60 * HZ;
> > inet_frags_init(&lowpan_frags);
> >+
> >+ return 0;
>
> Perhaps 'goto out' for "consistency" with the code above? (I don't know
> why they used "goto out' in the first place.)
>
ok, thanks, I will remove the "goto out" and will replace it with a
"return 0" if you are fine with that.
- Alex
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net-next 1/2] 6lowpan: reassembly: fix return of init function
2014-03-06 5:44 ` Alexander Aring
@ 2014-03-06 13:30 ` Sergei Shtylyov
0 siblings, 0 replies; 11+ messages in thread
From: Sergei Shtylyov @ 2014-03-06 13:30 UTC (permalink / raw)
To: Alexander Aring
Cc: alex.bluesman.smirnov, dbaryshkov, linux-zigbee-devel, netdev
Hello.
On 06-03-2014 9:44, Alexander Aring wrote:
>>> This patch adds a missing return after fragmentation init. Otherwise we
>>> register a sysctl interface and deregister it afterwards which makes no
>>> sense.
>>> Signed-off-by: Alexander Aring <alex.aring@gmail.com>
>>> ---
>>> net/ieee802154/reassembly.c | 2 ++
>>> 1 file changed, 2 insertions(+)
>>
>>> diff --git a/net/ieee802154/reassembly.c b/net/ieee802154/reassembly.c
>>> index 4511fc2..59db7b5 100644
>>> --- a/net/ieee802154/reassembly.c
>>> +++ b/net/ieee802154/reassembly.c
>>> @@ -550,6 +550,8 @@ int __init lowpan_net_frag_init(void)
>>> lowpan_frags.frag_expire = lowpan_frag_expire;
>>> lowpan_frags.secret_interval = 10 * 60 * HZ;
>>> inet_frags_init(&lowpan_frags);
>>> +
>>> + return 0;
>> Perhaps 'goto out' for "consistency" with the code above? (I don't know
>> why they used "goto out' in the first place.)
> ok, thanks, I will remove the "goto out" and will replace it with a
> "return 0" if you are fine with that.
You can't replace it with "return 0", only with "return ret".
> - Alex
WBR, Sergei
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH net-next 2/2] 6lowpan: reassembly: fix kernel oops while unloading
2014-03-05 20:43 [PATCH net-next 0/2] 6lowpan: fixes for new reassembly implementation Alexander Aring
[not found] ` <1394052211-6976-1-git-send-email-alex.aring-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2014-03-05 20:43 ` Alexander Aring
2014-03-05 22:32 ` Florian Westphal
1 sibling, 1 reply; 11+ messages in thread
From: Alexander Aring @ 2014-03-05 20:43 UTC (permalink / raw)
To: alex.bluesman.smirnov
Cc: dbaryshkov, linux-zigbee-devel, netdev, Alexander Aring
While fragmentation and unloading of 6lowpan module I got this kernel Oops
after few seconds:
BUG: unable to handle kernel paging request at f88bbc30
IP: [<f88bbc30>] 0xf88bbc30
*pde = 371ee067 *pte = 00000000
Oops: 0000 [#1] SMP
Modules linked in: ipv6 [last unloaded: 6lowpan]
CPU: 0 PID: 0 Comm: swapper/0 Not tainted
3.14.0-rc3-00831-g1f8ca2c-dirty #114
Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
task: c0540870 ti: f700c000 task.ti: c0536000
EIP: 0060:[<f88bbc30>] EFLAGS: 00210286 CPU: 0
EIP is at 0xf88bbc30
EAX: f7096080 EBX: 00000100 ECX: 00000000 EDX: 00000000
ESI: f88bbc30 EDI: f700df8c EBP: f700df98 ESP: f700df60
DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
CR0: 8005003b CR2: f88bbc30 CR3: 372cf000 CR4: 00000690
Stack:
c012af4c 00000000 00000002 00000000 c012aef8 f7096080 f88bbc30 c0ac181c
c0828200 00000000 c050ca53 c05d6340 f70960a0 f7096080 f700dfc4 c012b66b
c05d6d70 c05d6b70 f700dfb0 f88bbc30 f71dadf8 f71dadf8 00000002 c053a204
Call Trace:
[<c012af4c>] ? call_timer_fn+0x54/0xb3
[<c012aef8>] ? process_timeout+0xa/0xa
[<c012b66b>] run_timer_softirq+0x140/0x15f
[<c0126ec1>] __do_softirq+0xd5/0x1bc
[<c0126dec>] ? tasklet_hi_action+0xa8/0xa8
<IRQ>
[<c012714a>] ? irq_exit+0x39/0x82
[<c0119ef1>] ? smp_apic_timer_interrupt+0x25/0x2f
[<c03e7e1f>] ? apic_timer_interrupt+0x2f/0x40
[<c014007b>] ? wake_up_new_task+0x5a/0x85
[<c010743c>] ? default_idle+0xa/0xc
[<c01078d8>] ? arch_cpu_idle+0x12/0x1c
[<c0152afc>] ? cpu_startup_entry+0xb2/0x114
[<c03ddd74>] ? rest_init+0x92/0x97
[<c05728d5>] ? start_kernel+0x2b7/0x2bc
[<c05722af>] ? i386_start_kernel+0x79/0x7d
It seems that the inet_frag_queue is deleted but the timer is running. This
patch adds a for loop to iterate over all frag_queue entries in the
frag_bucket and calling del_timer for each frag_queue entry while
unloading the 6lowpan module.
Signed-off-by: Alexander Aring <alex.aring@gmail.com>
Reported-by: Phoebe Buckheister <phoebe.buckheister@itwm.fraunhofer.de>
---
I am not sure about that I can do that in this simply way without hold
any lock of the inet_frag_queue or inet_frag_bucket. Please help there.
The kernel oops never occurs afterwards, but this isn't simple to test.
I can't test all cases.
net/ieee802154/reassembly.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/net/ieee802154/reassembly.c b/net/ieee802154/reassembly.c
index 59db7b5..833b6ad 100644
--- a/net/ieee802154/reassembly.c
+++ b/net/ieee802154/reassembly.c
@@ -560,6 +560,18 @@ out:
void lowpan_net_frag_exit(void)
{
+ int i;
+
+ for (i = 0; i < INETFRAGS_HASHSZ; i++) {
+ struct inet_frag_bucket *hb;
+ struct inet_frag_queue *q;
+ struct hlist_node *n;
+
+ hb = &lowpan_frags.hash[i];
+ hlist_for_each_entry_safe(q, n, &hb->chain, list)
+ del_timer(&q->timer);
+ }
+
inet_frags_fini(&lowpan_frags);
lowpan_frags_sysctl_unregister();
unregister_pernet_subsys(&lowpan_frags_ops);
--
1.9.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [PATCH net-next 2/2] 6lowpan: reassembly: fix kernel oops while unloading
2014-03-05 20:43 ` [PATCH net-next 2/2] 6lowpan: reassembly: fix kernel oops while unloading Alexander Aring
@ 2014-03-05 22:32 ` Florian Westphal
2014-03-06 6:09 ` Alexander Aring
0 siblings, 1 reply; 11+ messages in thread
From: Florian Westphal @ 2014-03-05 22:32 UTC (permalink / raw)
To: Alexander Aring
Cc: alex.bluesman.smirnov, dbaryshkov, linux-zigbee-devel, netdev
Alexander Aring <alex.aring@gmail.com> wrote:
> It seems that the inet_frag_queue is deleted but the timer is running. This
> patch adds a for loop to iterate over all frag_queue entries in the
> frag_bucket and calling del_timer for each frag_queue entry while
> unloading the 6lowpan module.
>
> Signed-off-by: Alexander Aring <alex.aring@gmail.com>
> Reported-by: Phoebe Buckheister <phoebe.buckheister@itwm.fraunhofer.de>
> ---
> I am not sure about that I can do that in this simply way without hold
> any lock of the inet_frag_queue or inet_frag_bucket. Please help there.
> The kernel oops never occurs afterwards, but this isn't simple to test.
> I can't test all cases.
I find it hard to believe that this is a 6lowpan specific problem,
most likely this needs a fix in inet_fragment code.
I am currently looking at that code for different reasons anyway and can
investigate tomorrow if you do not have time for it.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net-next 2/2] 6lowpan: reassembly: fix kernel oops while unloading
2014-03-05 22:32 ` Florian Westphal
@ 2014-03-06 6:09 ` Alexander Aring
2014-03-06 13:38 ` Florian Westphal
0 siblings, 1 reply; 11+ messages in thread
From: Alexander Aring @ 2014-03-06 6:09 UTC (permalink / raw)
To: Florian Westphal
Cc: alex.bluesman.smirnov, dbaryshkov, linux-zigbee-devel, netdev
Hi Florian,
thanks for your reply.
On Wed, Mar 05, 2014 at 11:32:46PM +0100, Florian Westphal wrote:
> Alexander Aring <alex.aring@gmail.com> wrote:
> > It seems that the inet_frag_queue is deleted but the timer is running. This
> > patch adds a for loop to iterate over all frag_queue entries in the
> > frag_bucket and calling del_timer for each frag_queue entry while
> > unloading the 6lowpan module.
> >
> > Signed-off-by: Alexander Aring <alex.aring@gmail.com>
> > Reported-by: Phoebe Buckheister <phoebe.buckheister@itwm.fraunhofer.de>
> > ---
> > I am not sure about that I can do that in this simply way without hold
> > any lock of the inet_frag_queue or inet_frag_bucket. Please help there.
> > The kernel oops never occurs afterwards, but this isn't simple to test.
> > I can't test all cases.
>
> I find it hard to believe that this is a 6lowpan specific problem,
> most likely this needs a fix in inet_fragment code.
>
I thought that too, maybe it's a problem in the inet_fragment code.
There are two function which I call on exit:
inet_frags_fini(&lowpan_frags); - which deletes the secret_timer.
inet_frags_exit_net(&net->ieee802154_lowpan.frags, &lowpan_frags);
- which runs a force inet_frag_evictor
maybe I forgot to call some other function to cleanup the fragmentation.
I don't saw any other exit function and I do a similar cleanup like ipv4/ipv6
and they don't have a module_exit function which is called for the
inet_fragment code.
Example:
ipv6:
ipv6_frag_exit(); - which is only called in error branch of module_init
in net/ipv6/af_inet6.c.
ipv4:
I don't see that ipv4 call any of the inet_frag exit functions.
Maybe I have some special problem there because I can unload the 6lowpan
module which used the inet_fragment code.
If ipv4/ipv6 do a cleanup at shutdown, then maybe this never occurs because a
shutdown takes no longer than 60 seconds (in case of ipv6).
> I am currently looking at that code for different reasons anyway and can
> investigate tomorrow if you do not have time for it.
Ok, thanks you for that. I have time for that, but I don't believe that
I found a better solution for that issue. I will be grateful for any help!
Maybe we can find a proper solution together.
I wrote a small testscript with:
while true
do
rmmod 6lowpan
sleep 120
modprobe 6lowpan
ip link add link wpan0 name lowpan0 type lowpan
ip link set lowpan0 up
sleep 120
done
sleep 120 - to be sure we hit the 60 seconds timer arrivial.
I did a overnight test while run a fragmented ping from another node and
the kernel oops never occurs again. I can test some new patches again
this testscript, but this is not to be sure that it works 100%
correct.
- Alex
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH net-next 2/2] 6lowpan: reassembly: fix kernel oops while unloading
2014-03-06 6:09 ` Alexander Aring
@ 2014-03-06 13:38 ` Florian Westphal
2014-03-06 16:36 ` Alexander Aring
0 siblings, 1 reply; 11+ messages in thread
From: Florian Westphal @ 2014-03-06 13:38 UTC (permalink / raw)
To: Alexander Aring
Cc: Florian Westphal, alex.bluesman.smirnov, dbaryshkov, netdev
Alexander Aring <alex.aring@gmail.com> wrote:
> On Wed, Mar 05, 2014 at 11:32:46PM +0100, Florian Westphal wrote:
> > Alexander Aring <alex.aring@gmail.com> wrote:
> > > It seems that the inet_frag_queue is deleted but the timer is running. This
> > > patch adds a for loop to iterate over all frag_queue entries in the
> > > frag_bucket and calling del_timer for each frag_queue entry while
> > > unloading the 6lowpan module.
> > >
> > > Signed-off-by: Alexander Aring <alex.aring@gmail.com>
> > > Reported-by: Phoebe Buckheister <phoebe.buckheister@itwm.fraunhofer.de>
> > > ---
> > > I am not sure about that I can do that in this simply way without hold
> > > any lock of the inet_frag_queue or inet_frag_bucket. Please help there.
> > > The kernel oops never occurs afterwards, but this isn't simple to test.
> > > I can't test all cases.
> >
> > I find it hard to believe that this is a 6lowpan specific problem,
> > most likely this needs a fix in inet_fragment code.
> >
> I thought that too, maybe it's a problem in the inet_fragment code.
>
>
> There are two function which I call on exit:
>
> inet_frags_fini(&lowpan_frags); - which deletes the secret_timer.
> inet_frags_exit_net(&net->ieee802154_lowpan.frags, &lowpan_frags);
> - which runs a force inet_frag_evictor
>
> maybe I forgot to call some other function to cleanup the fragmentation.
No, it looks correct.
> I don't saw any other exit function and I do a similar cleanup like ipv4/ipv6
> and they don't have a module_exit function which is called for the
> inet_fragment code.
net/ipv6/netfilter/nf_defrag_ipv6_hooks.c has one (calls
nf_ct_frag6_cleanup).
I am currently testing this fix:
diff --git a/net/ipv4/inet_fragment.c b/net/ipv4/inet_fragment.c
index 322dceb..3b01959 100644
--- a/net/ipv4/inet_fragment.c
+++ b/net/ipv4/inet_fragment.c
@@ -208,7 +208,7 @@ int inet_frag_evictor(struct netns_frags *nf, struct
inet_frags *f, bool force)
}
work = frag_mem_limit(nf) - nf->low_thresh;
- while (work > 0) {
+ while (work > 0 || force) {
frag_mem_limit() may be inaccurate which causes evictor to terminate
earlier than it should.
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [PATCH net-next 2/2] 6lowpan: reassembly: fix kernel oops while unloading
2014-03-06 13:38 ` Florian Westphal
@ 2014-03-06 16:36 ` Alexander Aring
2014-03-06 16:41 ` Florian Westphal
0 siblings, 1 reply; 11+ messages in thread
From: Alexander Aring @ 2014-03-06 16:36 UTC (permalink / raw)
To: Florian Westphal; +Cc: alex.bluesman.smirnov, dbaryshkov, netdev
On Thu, Mar 06, 2014 at 02:38:51PM +0100, Florian Westphal wrote:
> Alexander Aring <alex.aring@gmail.com> wrote:
> > On Wed, Mar 05, 2014 at 11:32:46PM +0100, Florian Westphal wrote:
> > > Alexander Aring <alex.aring@gmail.com> wrote:
> > > > It seems that the inet_frag_queue is deleted but the timer is running. This
> > > > patch adds a for loop to iterate over all frag_queue entries in the
> > > > frag_bucket and calling del_timer for each frag_queue entry while
> > > > unloading the 6lowpan module.
> > > >
> > > > Signed-off-by: Alexander Aring <alex.aring@gmail.com>
> > > > Reported-by: Phoebe Buckheister <phoebe.buckheister@itwm.fraunhofer.de>
> > > > ---
> > > > I am not sure about that I can do that in this simply way without hold
> > > > any lock of the inet_frag_queue or inet_frag_bucket. Please help there.
> > > > The kernel oops never occurs afterwards, but this isn't simple to test.
> > > > I can't test all cases.
> > >
> > > I find it hard to believe that this is a 6lowpan specific problem,
> > > most likely this needs a fix in inet_fragment code.
> > >
> > I thought that too, maybe it's a problem in the inet_fragment code.
> >
> >
> > There are two function which I call on exit:
> >
> > inet_frags_fini(&lowpan_frags); - which deletes the secret_timer.
> > inet_frags_exit_net(&net->ieee802154_lowpan.frags, &lowpan_frags);
> > - which runs a force inet_frag_evictor
> >
> > maybe I forgot to call some other function to cleanup the fragmentation.
>
> No, it looks correct.
>
> > I don't saw any other exit function and I do a similar cleanup like ipv4/ipv6
> > and they don't have a module_exit function which is called for the
> > inet_fragment code.
>
> net/ipv6/netfilter/nf_defrag_ipv6_hooks.c has one (calls
> nf_ct_frag6_cleanup).
>
ah, ok.
> I am currently testing this fix:
>
> diff --git a/net/ipv4/inet_fragment.c b/net/ipv4/inet_fragment.c
> index 322dceb..3b01959 100644
> --- a/net/ipv4/inet_fragment.c
> +++ b/net/ipv4/inet_fragment.c
> @@ -208,7 +208,7 @@ int inet_frag_evictor(struct netns_frags *nf, struct
> inet_frags *f, bool force)
> }
>
> work = frag_mem_limit(nf) - nf->low_thresh;
> - while (work > 0) {
> + while (work > 0 || force) {
>
>
I looked at this and try my little testscript and I don't get the kernel
oops also. What's the next step?
- Alex
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: [PATCH net-next 2/2] 6lowpan: reassembly: fix kernel oops while unloading
2014-03-06 16:36 ` Alexander Aring
@ 2014-03-06 16:41 ` Florian Westphal
0 siblings, 0 replies; 11+ messages in thread
From: Florian Westphal @ 2014-03-06 16:41 UTC (permalink / raw)
To: Alexander Aring
Cc: Florian Westphal, alex.bluesman.smirnov, dbaryshkov, netdev
Alexander Aring <alex.aring@gmail.com> wrote:
> ah, ok.
>
> > I am currently testing this fix:
> >
> > diff --git a/net/ipv4/inet_fragment.c b/net/ipv4/inet_fragment.c
> > index 322dceb..3b01959 100644
> > --- a/net/ipv4/inet_fragment.c
> > +++ b/net/ipv4/inet_fragment.c
> > @@ -208,7 +208,7 @@ int inet_frag_evictor(struct netns_frags *nf, struct
> > inet_frags *f, bool force)
> > }
> >
> > work = frag_mem_limit(nf) - nf->low_thresh;
> > - while (work > 0) {
> > + while (work > 0 || force) {
> >
> >
>
> I looked at this and try my little testscript and I don't get the kernel
> oops also. What's the next step?
Thanks for testing!
I'll make official submit soon, adding proper changelog and your
tested-by tag.
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2014-03-06 16:41 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-03-05 20:43 [PATCH net-next 0/2] 6lowpan: fixes for new reassembly implementation Alexander Aring
[not found] ` <1394052211-6976-1-git-send-email-alex.aring-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2014-03-05 20:43 ` [PATCH net-next 1/2] 6lowpan: reassembly: fix return of init function Alexander Aring
2014-03-05 22:04 ` Sergei Shtylyov
2014-03-06 5:44 ` Alexander Aring
2014-03-06 13:30 ` Sergei Shtylyov
2014-03-05 20:43 ` [PATCH net-next 2/2] 6lowpan: reassembly: fix kernel oops while unloading Alexander Aring
2014-03-05 22:32 ` Florian Westphal
2014-03-06 6:09 ` Alexander Aring
2014-03-06 13:38 ` Florian Westphal
2014-03-06 16:36 ` Alexander Aring
2014-03-06 16:41 ` Florian Westphal
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).