<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/net, branch v5.8-rc2</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>Merge tag 'ceph-for-5.8-rc2' of git://github.com/ceph/ceph-client</title>
<updated>2020-06-19T19:25:04+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2020-06-19T19:25:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=672f9255a727d04c98b05ba7af625ab7032c8028'/>
<id>672f9255a727d04c98b05ba7af625ab7032c8028</id>
<content type='text'>
Pull ceph fixes from Ilya Dryomov:
 "An important follow-up for replica reads support that went into -rc1
  and two target_copy() fixups"

* tag 'ceph-for-5.8-rc2' of git://github.com/ceph/ceph-client:
  libceph: don't omit used_replica in target_copy()
  libceph: don't omit recovery_deletes in target_copy()
  libceph: move away from global osd_req_flags
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull ceph fixes from Ilya Dryomov:
 "An important follow-up for replica reads support that went into -rc1
  and two target_copy() fixups"

* tag 'ceph-for-5.8-rc2' of git://github.com/ceph/ceph-client:
  libceph: don't omit used_replica in target_copy()
  libceph: don't omit recovery_deletes in target_copy()
  libceph: move away from global osd_req_flags
</pre>
</div>
</content>
</entry>
<entry>
<title>tcp: grow window for OOO packets only for SACK flows</title>
<updated>2020-06-16T20:38:19+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2020-06-16T03:37:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=662051215c758ae8545451628816204ed6cd372d'/>
<id>662051215c758ae8545451628816204ed6cd372d</id>
<content type='text'>
Back in 2013, we made a change that broke fast retransmit
for non SACK flows.

Indeed, for these flows, a sender needs to receive three duplicate
ACK before starting fast retransmit. Sending ACK with different
receive window do not count.

Even if enabling SACK is strongly recommended these days,
there still are some cases where it has to be disabled.

Not increasing the window seems better than having to
rely on RTO.

After the fix, following packetdrill test gives :

// Initialize connection
    0 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
   +0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
   +0 bind(3, ..., ...) = 0
   +0 listen(3, 1) = 0

   +0 &lt; S 0:0(0) win 32792 &lt;mss 1000,nop,wscale 7&gt;
   +0 &gt; S. 0:0(0) ack 1 &lt;mss 1460,nop,wscale 8&gt;
   +0 &lt; . 1:1(0) ack 1 win 514

   +0 accept(3, ..., ...) = 4

   +0 &lt; . 1:1001(1000) ack 1 win 514
// Quick ack
   +0 &gt; . 1:1(0) ack 1001 win 264

   +0 &lt; . 2001:3001(1000) ack 1 win 514
// DUPACK : Normally we should not change the window
   +0 &gt; . 1:1(0) ack 1001 win 264

   +0 &lt; . 3001:4001(1000) ack 1 win 514
// DUPACK : Normally we should not change the window
   +0 &gt; . 1:1(0) ack 1001 win 264

   +0 &lt; . 4001:5001(1000) ack 1 win 514
// DUPACK : Normally we should not change the window
    +0 &gt; . 1:1(0) ack 1001 win 264

   +0 &lt; . 1001:2001(1000) ack 1 win 514
// Hole is repaired.
   +0 &gt; . 1:1(0) ack 5001 win 272

Fixes: 4e4f1fc22681 ("tcp: properly increase rcv_ssthresh for ofo packets")
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Reported-by: Venkat Venkatsubra &lt;venkat.x.venkatsubra@oracle.com&gt;
Acked-by: Neal Cardwell &lt;ncardwell@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Back in 2013, we made a change that broke fast retransmit
for non SACK flows.

Indeed, for these flows, a sender needs to receive three duplicate
ACK before starting fast retransmit. Sending ACK with different
receive window do not count.

Even if enabling SACK is strongly recommended these days,
there still are some cases where it has to be disabled.

Not increasing the window seems better than having to
rely on RTO.

After the fix, following packetdrill test gives :

// Initialize connection
    0 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
   +0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
   +0 bind(3, ..., ...) = 0
   +0 listen(3, 1) = 0

   +0 &lt; S 0:0(0) win 32792 &lt;mss 1000,nop,wscale 7&gt;
   +0 &gt; S. 0:0(0) ack 1 &lt;mss 1460,nop,wscale 8&gt;
   +0 &lt; . 1:1(0) ack 1 win 514

   +0 accept(3, ..., ...) = 4

   +0 &lt; . 1:1001(1000) ack 1 win 514
// Quick ack
   +0 &gt; . 1:1(0) ack 1001 win 264

   +0 &lt; . 2001:3001(1000) ack 1 win 514
// DUPACK : Normally we should not change the window
   +0 &gt; . 1:1(0) ack 1001 win 264

   +0 &lt; . 3001:4001(1000) ack 1 win 514
// DUPACK : Normally we should not change the window
   +0 &gt; . 1:1(0) ack 1001 win 264

   +0 &lt; . 4001:5001(1000) ack 1 win 514
// DUPACK : Normally we should not change the window
    +0 &gt; . 1:1(0) ack 1001 win 264

   +0 &lt; . 1001:2001(1000) ack 1 win 514
// Hole is repaired.
   +0 &gt; . 1:1(0) ack 5001 win 272

Fixes: 4e4f1fc22681 ("tcp: properly increase rcv_ssthresh for ofo packets")
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Reported-by: Venkat Venkatsubra &lt;venkat.x.venkatsubra@oracle.com&gt;
Acked-by: Neal Cardwell &lt;ncardwell@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libceph: don't omit used_replica in target_copy()</title>
<updated>2020-06-16T14:02:08+00:00</updated>
<author>
<name>Ilya Dryomov</name>
<email>idryomov@gmail.com</email>
</author>
<published>2020-06-09T09:59:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=7ed286f3e061ee394782bd9fb4ed96bff0b5a021'/>
<id>7ed286f3e061ee394782bd9fb4ed96bff0b5a021</id>
<content type='text'>
Currently target_copy() is used only for sending linger pings, so
this doesn't come up, but generally omitting used_replica can hang
the client as we wouldn't notice the acting set change (legacy_change
in calc_target()) or trigger a warning in handle_reply().

Fixes: 117d96a04f00 ("libceph: support for balanced and localized reads")
Signed-off-by: Ilya Dryomov &lt;idryomov@gmail.com&gt;
Reviewed-by: Jeff Layton &lt;jlayton@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently target_copy() is used only for sending linger pings, so
this doesn't come up, but generally omitting used_replica can hang
the client as we wouldn't notice the acting set change (legacy_change
in calc_target()) or trigger a warning in handle_reply().

Fixes: 117d96a04f00 ("libceph: support for balanced and localized reads")
Signed-off-by: Ilya Dryomov &lt;idryomov@gmail.com&gt;
Reviewed-by: Jeff Layton &lt;jlayton@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libceph: don't omit recovery_deletes in target_copy()</title>
<updated>2020-06-16T14:02:04+00:00</updated>
<author>
<name>Ilya Dryomov</name>
<email>idryomov@gmail.com</email>
</author>
<published>2020-06-09T09:57:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=2f3fead62144002557f322c2a7c15e1255df0653'/>
<id>2f3fead62144002557f322c2a7c15e1255df0653</id>
<content type='text'>
Currently target_copy() is used only for sending linger pings, so
this doesn't come up, but generally omitting recovery_deletes can
result in unneeded resends (force_resend in calc_target()).

Fixes: ae78dd8139ce ("libceph: make RECOVERY_DELETES feature create a new interval")
Signed-off-by: Ilya Dryomov &lt;idryomov@gmail.com&gt;
Reviewed-by: Jeff Layton &lt;jlayton@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently target_copy() is used only for sending linger pings, so
this doesn't come up, but generally omitting recovery_deletes can
result in unneeded resends (force_resend in calc_target()).

Fixes: ae78dd8139ce ("libceph: make RECOVERY_DELETES feature create a new interval")
Signed-off-by: Ilya Dryomov &lt;idryomov@gmail.com&gt;
Reviewed-by: Jeff Layton &lt;jlayton@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>libceph: move away from global osd_req_flags</title>
<updated>2020-06-16T14:01:53+00:00</updated>
<author>
<name>Ilya Dryomov</name>
<email>idryomov@gmail.com</email>
</author>
<published>2020-06-04T09:12:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=22d2cfdffa5bff3566e16cb7320e13ceb814674b'/>
<id>22d2cfdffa5bff3566e16cb7320e13ceb814674b</id>
<content type='text'>
osd_req_flags is overly general and doesn't suit its only user
(read_from_replica option) well:

- applying osd_req_flags in account_request() affects all OSD
  requests, including linger (i.e. watch and notify).  However,
  linger requests should always go to the primary even though
  some of them are reads (e.g. notify has side effects but it
  is a read because it doesn't result in mutation on the OSDs).

- calls to class methods that are reads are allowed to go to
  the replica, but most such calls issued for "rbd map" and/or
  exclusive lock transitions are requested to be resent to the
  primary via EAGAIN, doubling the latency.

Get rid of global osd_req_flags and set read_from_replica flag
only on specific OSD requests instead.

Fixes: 8ad44d5e0d1e ("libceph: read_from_replica option")
Signed-off-by: Ilya Dryomov &lt;idryomov@gmail.com&gt;
Reviewed-by: Jeff Layton &lt;jlayton@kernel.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
osd_req_flags is overly general and doesn't suit its only user
(read_from_replica option) well:

- applying osd_req_flags in account_request() affects all OSD
  requests, including linger (i.e. watch and notify).  However,
  linger requests should always go to the primary even though
  some of them are reads (e.g. notify has side effects but it
  is a read because it doesn't result in mutation on the OSDs).

- calls to class methods that are reads are allowed to go to
  the replica, but most such calls issued for "rbd map" and/or
  exclusive lock transitions are requested to be resent to the
  primary via EAGAIN, doubling the latency.

Get rid of global osd_req_flags and set read_from_replica flag
only on specific OSD requests instead.

Fixes: 8ad44d5e0d1e ("libceph: read_from_replica option")
Signed-off-by: Ilya Dryomov &lt;idryomov@gmail.com&gt;
Reviewed-by: Jeff Layton &lt;jlayton@kernel.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mptcp: fix memory leak in mptcp_subflow_create_socket()</title>
<updated>2020-06-16T01:08:50+00:00</updated>
<author>
<name>Wei Yongjun</name>
<email>weiyongjun1@huawei.com</email>
</author>
<published>2020-06-15T01:35:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b8ad540dd4e40566c520dff491fc06c71ae6b989'/>
<id>b8ad540dd4e40566c520dff491fc06c71ae6b989</id>
<content type='text'>
socket malloced  by sock_create_kern() should be release before return
in the error handling, otherwise it cause memory leak.

unreferenced object 0xffff88810910c000 (size 1216):
  comm "00000003_test_m", pid 12238, jiffies 4295050289 (age 54.237s)
  hex dump (first 32 bytes):
    01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  ................
    00 00 00 00 00 00 00 00 00 2f 30 0a 81 88 ff ff  ........./0.....
  backtrace:
    [&lt;00000000e877f89f&gt;] sock_alloc_inode+0x18/0x1c0
    [&lt;0000000093d1dd51&gt;] alloc_inode+0x63/0x1d0
    [&lt;000000005673fec6&gt;] new_inode_pseudo+0x14/0xe0
    [&lt;00000000b5db6be8&gt;] sock_alloc+0x3c/0x260
    [&lt;00000000e7e3cbb2&gt;] __sock_create+0x89/0x620
    [&lt;0000000023e48593&gt;] mptcp_subflow_create_socket+0xc0/0x5e0
    [&lt;00000000419795e4&gt;] __mptcp_socket_create+0x1ad/0x3f0
    [&lt;00000000b2f942e8&gt;] mptcp_stream_connect+0x281/0x4f0
    [&lt;00000000c80cd5cc&gt;] __sys_connect_file+0x14d/0x190
    [&lt;00000000dc761f11&gt;] __sys_connect+0x128/0x160
    [&lt;000000008b14e764&gt;] __x64_sys_connect+0x6f/0xb0
    [&lt;000000007b4f93bd&gt;] do_syscall_64+0xa1/0x530
    [&lt;00000000d3e770b6&gt;] entry_SYSCALL_64_after_hwframe+0x49/0xb3

Fixes: 2303f994b3e1 ("mptcp: Associate MPTCP context with TCP socket")
Signed-off-by: Wei Yongjun &lt;weiyongjun1@huawei.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
socket malloced  by sock_create_kern() should be release before return
in the error handling, otherwise it cause memory leak.

unreferenced object 0xffff88810910c000 (size 1216):
  comm "00000003_test_m", pid 12238, jiffies 4295050289 (age 54.237s)
  hex dump (first 32 bytes):
    01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  ................
    00 00 00 00 00 00 00 00 00 2f 30 0a 81 88 ff ff  ........./0.....
  backtrace:
    [&lt;00000000e877f89f&gt;] sock_alloc_inode+0x18/0x1c0
    [&lt;0000000093d1dd51&gt;] alloc_inode+0x63/0x1d0
    [&lt;000000005673fec6&gt;] new_inode_pseudo+0x14/0xe0
    [&lt;00000000b5db6be8&gt;] sock_alloc+0x3c/0x260
    [&lt;00000000e7e3cbb2&gt;] __sock_create+0x89/0x620
    [&lt;0000000023e48593&gt;] mptcp_subflow_create_socket+0xc0/0x5e0
    [&lt;00000000419795e4&gt;] __mptcp_socket_create+0x1ad/0x3f0
    [&lt;00000000b2f942e8&gt;] mptcp_stream_connect+0x281/0x4f0
    [&lt;00000000c80cd5cc&gt;] __sys_connect_file+0x14d/0x190
    [&lt;00000000dc761f11&gt;] __sys_connect+0x128/0x160
    [&lt;000000008b14e764&gt;] __x64_sys_connect+0x6f/0xb0
    [&lt;000000007b4f93bd&gt;] do_syscall_64+0xa1/0x530
    [&lt;00000000d3e770b6&gt;] entry_SYSCALL_64_after_hwframe+0x49/0xb3

Fixes: 2303f994b3e1 ("mptcp: Associate MPTCP context with TCP socket")
Signed-off-by: Wei Yongjun &lt;weiyongjun1@huawei.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>netfilter: flowtable: Make nf_flow_table_offload_add/del_cb inline</title>
<updated>2020-06-16T01:06:52+00:00</updated>
<author>
<name>Alaa Hleihel</name>
<email>alaa@mellanox.com</email>
</author>
<published>2020-06-14T11:12:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=505ee3a1cab96785fbc2c7cdb41ab677ec270c3c'/>
<id>505ee3a1cab96785fbc2c7cdb41ab677ec270c3c</id>
<content type='text'>
Currently, nf_flow_table_offload_add/del_cb are exported by nf_flow_table
module, therefore modules using them will have hard-dependency
on nf_flow_table and will require loading it all the time.

This can lead to an unnecessary overhead on systems that do not
use this API.

To relax the hard-dependency between the modules, we unexport these
functions and make them static inline.

Fixes: 978703f42549 ("netfilter: flowtable: Add API for registering to flow table events")
Signed-off-by: Alaa Hleihel &lt;alaa@mellanox.com&gt;
Reviewed-by: Roi Dayan &lt;roid@mellanox.com&gt;
Reviewed-by: Marcelo Ricardo Leitner &lt;marcelo.leitner@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently, nf_flow_table_offload_add/del_cb are exported by nf_flow_table
module, therefore modules using them will have hard-dependency
on nf_flow_table and will require loading it all the time.

This can lead to an unnecessary overhead on systems that do not
use this API.

To relax the hard-dependency between the modules, we unexport these
functions and make them static inline.

Fixes: 978703f42549 ("netfilter: flowtable: Add API for registering to flow table events")
Signed-off-by: Alaa Hleihel &lt;alaa@mellanox.com&gt;
Reviewed-by: Roi Dayan &lt;roid@mellanox.com&gt;
Reviewed-by: Marcelo Ricardo Leitner &lt;marcelo.leitner@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net/sched: act_ct: Make tcf_ct_flow_table_restore_skb inline</title>
<updated>2020-06-16T01:06:52+00:00</updated>
<author>
<name>Alaa Hleihel</name>
<email>alaa@mellanox.com</email>
</author>
<published>2020-06-14T11:12:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=762f926d6f19b9ab4dee0f98d55fc67e276cd094'/>
<id>762f926d6f19b9ab4dee0f98d55fc67e276cd094</id>
<content type='text'>
Currently, tcf_ct_flow_table_restore_skb is exported by act_ct
module, therefore modules using it will have hard-dependency
on act_ct and will require loading it all the time.

This can lead to an unnecessary overhead on systems that do not
use hardware connection tracking action (ct_metadata action) in
the first place.

To relax the hard-dependency between the modules, we unexport this
function and make it a static inline one.

Fixes: 30b0cf90c6dd ("net/sched: act_ct: Support restoring conntrack info on skbs")
Signed-off-by: Alaa Hleihel &lt;alaa@mellanox.com&gt;
Reviewed-by: Roi Dayan &lt;roid@mellanox.com&gt;
Acked-by: Marcelo Ricardo Leitner &lt;marcelo.leitner@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently, tcf_ct_flow_table_restore_skb is exported by act_ct
module, therefore modules using it will have hard-dependency
on act_ct and will require loading it all the time.

This can lead to an unnecessary overhead on systems that do not
use hardware connection tracking action (ct_metadata action) in
the first place.

To relax the hard-dependency between the modules, we unexport this
function and make it a static inline one.

Fixes: 30b0cf90c6dd ("net/sched: act_ct: Support restoring conntrack info on skbs")
Signed-off-by: Alaa Hleihel &lt;alaa@mellanox.com&gt;
Reviewed-by: Roi Dayan &lt;roid@mellanox.com&gt;
Acked-by: Marcelo Ricardo Leitner &lt;marcelo.leitner@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>mld: fix memory leak in ipv6_mc_destroy_dev()</title>
<updated>2020-06-15T20:29:39+00:00</updated>
<author>
<name>Wang Hai</name>
<email>wanghai38@huawei.com</email>
</author>
<published>2020-06-11T07:57:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=ea2fce88d2fd678ed9d45354ff49b73f1d5615dd'/>
<id>ea2fce88d2fd678ed9d45354ff49b73f1d5615dd</id>
<content type='text'>
Commit a84d01647989 ("mld: fix memory leak in mld_del_delrec()") fixed
the memory leak of MLD, but missing the ipv6_mc_destroy_dev() path, in
which mca_sources are leaked after ma_put().

Using ip6_mc_clear_src() to take care of the missing free.

BUG: memory leak
unreferenced object 0xffff8881113d3180 (size 64):
  comm "syz-executor071", pid 389, jiffies 4294887985 (age 17.943s)
  hex dump (first 32 bytes):
    00 00 00 00 00 00 00 00 ff 02 00 00 00 00 00 00  ................
    00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00  ................
  backtrace:
    [&lt;000000002cbc483c&gt;] kmalloc include/linux/slab.h:555 [inline]
    [&lt;000000002cbc483c&gt;] kzalloc include/linux/slab.h:669 [inline]
    [&lt;000000002cbc483c&gt;] ip6_mc_add1_src net/ipv6/mcast.c:2237 [inline]
    [&lt;000000002cbc483c&gt;] ip6_mc_add_src+0x7f5/0xbb0 net/ipv6/mcast.c:2357
    [&lt;0000000058b8b1ff&gt;] ip6_mc_source+0xe0c/0x1530 net/ipv6/mcast.c:449
    [&lt;000000000bfc4fb5&gt;] do_ipv6_setsockopt.isra.12+0x1b2c/0x3b30 net/ipv6/ipv6_sockglue.c:754
    [&lt;00000000e4e7a722&gt;] ipv6_setsockopt+0xda/0x150 net/ipv6/ipv6_sockglue.c:950
    [&lt;0000000029260d9a&gt;] rawv6_setsockopt+0x45/0x100 net/ipv6/raw.c:1081
    [&lt;000000005c1b46f9&gt;] __sys_setsockopt+0x131/0x210 net/socket.c:2132
    [&lt;000000008491f7db&gt;] __do_sys_setsockopt net/socket.c:2148 [inline]
    [&lt;000000008491f7db&gt;] __se_sys_setsockopt net/socket.c:2145 [inline]
    [&lt;000000008491f7db&gt;] __x64_sys_setsockopt+0xba/0x150 net/socket.c:2145
    [&lt;00000000c7bc11c5&gt;] do_syscall_64+0xa1/0x530 arch/x86/entry/common.c:295
    [&lt;000000005fb7a3f3&gt;] entry_SYSCALL_64_after_hwframe+0x49/0xb3

Fixes: 1666d49e1d41 ("mld: do not remove mld souce list info when set link down")
Reported-by: Hulk Robot &lt;hulkci@huawei.com&gt;
Signed-off-by: Wang Hai &lt;wanghai38@huawei.com&gt;
Acked-by: Hangbin Liu &lt;liuhangbin@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Commit a84d01647989 ("mld: fix memory leak in mld_del_delrec()") fixed
the memory leak of MLD, but missing the ipv6_mc_destroy_dev() path, in
which mca_sources are leaked after ma_put().

Using ip6_mc_clear_src() to take care of the missing free.

BUG: memory leak
unreferenced object 0xffff8881113d3180 (size 64):
  comm "syz-executor071", pid 389, jiffies 4294887985 (age 17.943s)
  hex dump (first 32 bytes):
    00 00 00 00 00 00 00 00 ff 02 00 00 00 00 00 00  ................
    00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00  ................
  backtrace:
    [&lt;000000002cbc483c&gt;] kmalloc include/linux/slab.h:555 [inline]
    [&lt;000000002cbc483c&gt;] kzalloc include/linux/slab.h:669 [inline]
    [&lt;000000002cbc483c&gt;] ip6_mc_add1_src net/ipv6/mcast.c:2237 [inline]
    [&lt;000000002cbc483c&gt;] ip6_mc_add_src+0x7f5/0xbb0 net/ipv6/mcast.c:2357
    [&lt;0000000058b8b1ff&gt;] ip6_mc_source+0xe0c/0x1530 net/ipv6/mcast.c:449
    [&lt;000000000bfc4fb5&gt;] do_ipv6_setsockopt.isra.12+0x1b2c/0x3b30 net/ipv6/ipv6_sockglue.c:754
    [&lt;00000000e4e7a722&gt;] ipv6_setsockopt+0xda/0x150 net/ipv6/ipv6_sockglue.c:950
    [&lt;0000000029260d9a&gt;] rawv6_setsockopt+0x45/0x100 net/ipv6/raw.c:1081
    [&lt;000000005c1b46f9&gt;] __sys_setsockopt+0x131/0x210 net/socket.c:2132
    [&lt;000000008491f7db&gt;] __do_sys_setsockopt net/socket.c:2148 [inline]
    [&lt;000000008491f7db&gt;] __se_sys_setsockopt net/socket.c:2145 [inline]
    [&lt;000000008491f7db&gt;] __x64_sys_setsockopt+0xba/0x150 net/socket.c:2145
    [&lt;00000000c7bc11c5&gt;] do_syscall_64+0xa1/0x530 arch/x86/entry/common.c:295
    [&lt;000000005fb7a3f3&gt;] entry_SYSCALL_64_after_hwframe+0x49/0xb3

Fixes: 1666d49e1d41 ("mld: do not remove mld souce list info when set link down")
Reported-by: Hulk Robot &lt;hulkci@huawei.com&gt;
Signed-off-by: Wang Hai &lt;wanghai38@huawei.com&gt;
Acked-by: Hangbin Liu &lt;liuhangbin@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf</title>
<updated>2020-06-15T20:27:13+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2020-06-15T20:27:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=38af8f2d606a9372dbf19e47b3939e96c1ff28e4'/>
<id>38af8f2d606a9372dbf19e47b3939e96c1ff28e4</id>
<content type='text'>
Pablo Neira Ayuso says:

====================
Netfilter fixes for net

The following patchset contains Netfilter fixes for net:

1) Fix bogus EEXIST on element insertions to the rbtree with timeouts,
   from Stefano Brivio.

2) Preempt BUG splat in the pipapo element insertion path, also from
   Stefano.

3) Release filter from the ctnetlink error path.

4) Release flowtable hooks from the deletion path.
====================

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pablo Neira Ayuso says:

====================
Netfilter fixes for net

The following patchset contains Netfilter fixes for net:

1) Fix bogus EEXIST on element insertions to the rbtree with timeouts,
   from Stefano Brivio.

2) Preempt BUG splat in the pipapo element insertion path, also from
   Stefano.

3) Release filter from the ctnetlink error path.

4) Release flowtable hooks from the deletion path.
====================

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
