<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux.git/drivers/net/pppol2tp.c, branch master</title>
<subtitle>Linux kernel source tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/'/>
<entry>
<title>l2tp: Relocate pppol2tp driver to new net/l2tp directory</title>
<updated>2010-04-03T21:56:01+00:00</updated>
<author>
<name>James Chapman</name>
<email>jchapman@katalix.com</email>
</author>
<published>2010-04-02T06:18:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=21b4aaa14329db793832e865f15000c5c0192ac3'/>
<id>21b4aaa14329db793832e865f15000c5c0192ac3</id>
<content type='text'>
This patch moves the existing pppol2tp driver from drivers/net into a
new net/l2tp directory, which is where the upcoming L2TPv3 code will
live. The existing CONFIG_PPPOL2TP config option is left in its
current place to avoid "make oldconfig" issues when an existing
pppol2tp user takes this change. (This is the same approach used for
the pppoatm driver, which moved to net/atm.)

There are no code changes. The existing drivers/net/pppol2tp.c is
simply moved to net/l2tp.

Signed-off-by: James Chapman &lt;jchapman@katalix.com&gt;
Reviewed-by: Randy Dunlap &lt;randy.dunlap@oracle.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>
This patch moves the existing pppol2tp driver from drivers/net into a
new net/l2tp directory, which is where the upcoming L2TPv3 code will
live. The existing CONFIG_PPPOL2TP config option is left in its
current place to avoid "make oldconfig" issues when an existing
pppol2tp user takes this change. (This is the same approach used for
the pppoatm driver, which moved to net/atm.)

There are no code changes. The existing drivers/net/pppol2tp.c is
simply moved to net/l2tp.

Signed-off-by: James Chapman &lt;jchapman@katalix.com&gt;
Reviewed-by: Randy Dunlap &lt;randy.dunlap@oracle.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>l2tp: Fix UDP socket reference count bugs in the pppol2tp driver</title>
<updated>2010-03-16T21:15:44+00:00</updated>
<author>
<name>James Chapman</name>
<email>jchapman@katalix.com</email>
</author>
<published>2010-03-16T06:29:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=c3259c8a7060d480e8eb2166da0a99d6879146b4'/>
<id>c3259c8a7060d480e8eb2166da0a99d6879146b4</id>
<content type='text'>
This patch fixes UDP socket refcnt bugs in the pppol2tp driver.

A bug can cause a kernel stack trace when a tunnel socket is closed.

A way to reproduce the issue is to prepare the UDP socket for L2TP (by
opening a tunnel pppol2tp socket) and then close it before any L2TP
sessions are added to it. The sequence is

Create UDP socket
Create tunnel pppol2tp socket to prepare UDP socket for L2TP
  pppol2tp_connect: session_id=0, peer_session_id=0
L2TP SCCRP control frame received (tunnel_id==0)
  pppol2tp_recv_core: sock_hold()
  pppol2tp_recv_core: sock_put
L2TP ZLB control frame received (tunnel_id=nnn)
  pppol2tp_recv_core: sock_hold()
  pppol2tp_recv_core: sock_put
Close tunnel management socket
  pppol2tp_release: session_id=0, peer_session_id=0
Close UDP socket
  udp_lib_close: BUG

The addition of sock_hold() in pppol2tp_connect() solves the problem.

For data frames, two sock_put() calls were added to plug a refcnt leak
per received data frame. The ref that is grabbed at the top of
pppol2tp_recv_core() must always be released, but this wasn't done for
accepted data frames or data frames discarded because of bad UDP
checksums. This leak meant that any UDP socket that had passed L2TP
data traffic (i.e. L2TP data frames, not just L2TP control frames)
using pppol2tp would not be released by the kernel.

WARNING: at include/net/sock.h:435 udp_lib_unhash+0x117/0x120()
Pid: 1086, comm: openl2tpd Not tainted 2.6.33-rc1 #8
Call Trace:
 [&lt;c119e9b7&gt;] ? udp_lib_unhash+0x117/0x120
 [&lt;c101b871&gt;] ? warn_slowpath_common+0x71/0xd0
 [&lt;c119e9b7&gt;] ? udp_lib_unhash+0x117/0x120
 [&lt;c101b8e3&gt;] ? warn_slowpath_null+0x13/0x20
 [&lt;c119e9b7&gt;] ? udp_lib_unhash+0x117/0x120
 [&lt;c11598a7&gt;] ? sk_common_release+0x17/0x90
 [&lt;c11a5e33&gt;] ? inet_release+0x33/0x60
 [&lt;c11577b0&gt;] ? sock_release+0x10/0x60
 [&lt;c115780f&gt;] ? sock_close+0xf/0x30
 [&lt;c106e542&gt;] ? __fput+0x52/0x150
 [&lt;c106b68e&gt;] ? filp_close+0x3e/0x70
 [&lt;c101d2e2&gt;] ? put_files_struct+0x62/0xb0
 [&lt;c101eaf7&gt;] ? do_exit+0x5e7/0x650
 [&lt;c1081623&gt;] ? mntput_no_expire+0x13/0x70
 [&lt;c106b68e&gt;] ? filp_close+0x3e/0x70
 [&lt;c101eb8a&gt;] ? do_group_exit+0x2a/0x70
 [&lt;c101ebe1&gt;] ? sys_exit_group+0x11/0x20
 [&lt;c10029b0&gt;] ? sysenter_do_call+0x12/0x26

Signed-off-by: James Chapman &lt;jchapman@katalix.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>
This patch fixes UDP socket refcnt bugs in the pppol2tp driver.

A bug can cause a kernel stack trace when a tunnel socket is closed.

A way to reproduce the issue is to prepare the UDP socket for L2TP (by
opening a tunnel pppol2tp socket) and then close it before any L2TP
sessions are added to it. The sequence is

Create UDP socket
Create tunnel pppol2tp socket to prepare UDP socket for L2TP
  pppol2tp_connect: session_id=0, peer_session_id=0
L2TP SCCRP control frame received (tunnel_id==0)
  pppol2tp_recv_core: sock_hold()
  pppol2tp_recv_core: sock_put
L2TP ZLB control frame received (tunnel_id=nnn)
  pppol2tp_recv_core: sock_hold()
  pppol2tp_recv_core: sock_put
Close tunnel management socket
  pppol2tp_release: session_id=0, peer_session_id=0
Close UDP socket
  udp_lib_close: BUG

The addition of sock_hold() in pppol2tp_connect() solves the problem.

For data frames, two sock_put() calls were added to plug a refcnt leak
per received data frame. The ref that is grabbed at the top of
pppol2tp_recv_core() must always be released, but this wasn't done for
accepted data frames or data frames discarded because of bad UDP
checksums. This leak meant that any UDP socket that had passed L2TP
data traffic (i.e. L2TP data frames, not just L2TP control frames)
using pppol2tp would not be released by the kernel.

WARNING: at include/net/sock.h:435 udp_lib_unhash+0x117/0x120()
Pid: 1086, comm: openl2tpd Not tainted 2.6.33-rc1 #8
Call Trace:
 [&lt;c119e9b7&gt;] ? udp_lib_unhash+0x117/0x120
 [&lt;c101b871&gt;] ? warn_slowpath_common+0x71/0xd0
 [&lt;c119e9b7&gt;] ? udp_lib_unhash+0x117/0x120
 [&lt;c101b8e3&gt;] ? warn_slowpath_null+0x13/0x20
 [&lt;c119e9b7&gt;] ? udp_lib_unhash+0x117/0x120
 [&lt;c11598a7&gt;] ? sk_common_release+0x17/0x90
 [&lt;c11a5e33&gt;] ? inet_release+0x33/0x60
 [&lt;c11577b0&gt;] ? sock_release+0x10/0x60
 [&lt;c115780f&gt;] ? sock_close+0xf/0x30
 [&lt;c106e542&gt;] ? __fput+0x52/0x150
 [&lt;c106b68e&gt;] ? filp_close+0x3e/0x70
 [&lt;c101d2e2&gt;] ? put_files_struct+0x62/0xb0
 [&lt;c101eaf7&gt;] ? do_exit+0x5e7/0x650
 [&lt;c1081623&gt;] ? mntput_no_expire+0x13/0x70
 [&lt;c106b68e&gt;] ? filp_close+0x3e/0x70
 [&lt;c101eb8a&gt;] ? do_group_exit+0x2a/0x70
 [&lt;c101ebe1&gt;] ? sys_exit_group+0x11/0x20
 [&lt;c10029b0&gt;] ? sysenter_do_call+0x12/0x26

Signed-off-by: James Chapman &lt;jchapman@katalix.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>l2tp: Fix oops in pppol2tp_xmit</title>
<updated>2010-03-16T21:15:43+00:00</updated>
<author>
<name>James Chapman</name>
<email>jchapman@katalix.com</email>
</author>
<published>2010-03-16T06:46:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=3feec9095d12e311b7d4eb7fe7e5dfa75d4a72a5'/>
<id>3feec9095d12e311b7d4eb7fe7e5dfa75d4a72a5</id>
<content type='text'>
When transmitting L2TP frames, we derive the outgoing interface's UDP
checksum hardware assist capabilities from the tunnel dst dev. This
can sometimes be NULL, especially when routing protocols are used and
routing changes occur. This patch just checks for NULL dst or dev
pointers when checking for netdev hardware assist features.

BUG: unable to handle kernel NULL pointer dereference at 0000000c
IP: [&lt;f89d074c&gt;] pppol2tp_xmit+0x341/0x4da [pppol2tp]
*pde = 00000000
Oops: 0000 [#1] SMP
last sysfs file: /sys/class/net/lo/operstate
Modules linked in: pppol2tp pppox ppp_generic slhc ipv6 dummy loop snd_hda_codec_atihdmi snd_hda_intel snd_hda_codec snd_pcm snd_timer snd soundcore snd_page_alloc evdev psmouse serio_raw processor button i2c_piix4 i2c_core ati_agp agpgart pcspkr ext3 jbd mbcache sd_mod ide_pci_generic atiixp ide_core ahci ata_generic floppy ehci_hcd ohci_hcd libata e1000e scsi_mod usbcore nls_base thermal fan thermal_sys [last unloaded: scsi_wait_scan]

Pid: 0, comm: swapper Not tainted (2.6.32.8 #1)
EIP: 0060:[&lt;f89d074c&gt;] EFLAGS: 00010297 CPU: 3
EIP is at pppol2tp_xmit+0x341/0x4da [pppol2tp]
EAX: 00000000 EBX: f64d1680 ECX: 000005b9 EDX: 00000000
ESI: f6b91850 EDI: f64d16ac EBP: f6a0c4c0 ESP: f70a9cac
 DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
Process swapper (pid: 0, ti=f70a8000 task=f70a31c0 task.ti=f70a8000)
Stack:
 000005a9 000005b9 f734c400 f66652c0 f7352e00 f67dc800 00000000 f6b91800
&lt;0&gt; 000005a3 f70ef6c4 f67dcda9 000005a3 f89b192e 00000246 000005a3 f64d1680
&lt;0&gt; f63633e0 f6363320 f64d1680 f65a7320 f65a7364 f65856c0 f64d1680 f679f02f
Call Trace:
 [&lt;f89b192e&gt;] ? ppp_push+0x459/0x50e [ppp_generic]
 [&lt;f89b217f&gt;] ? ppp_xmit_process+0x3b6/0x430 [ppp_generic]
 [&lt;f89b2306&gt;] ? ppp_start_xmit+0x10d/0x120 [ppp_generic]
 [&lt;c11c15cb&gt;] ? dev_hard_start_xmit+0x21f/0x2b2
 [&lt;c11d0947&gt;] ? sch_direct_xmit+0x48/0x10e
 [&lt;c11c19a0&gt;] ? dev_queue_xmit+0x263/0x3a6
 [&lt;c11e2a9f&gt;] ? ip_finish_output+0x1f7/0x221
 [&lt;c11df682&gt;] ? ip_forward_finish+0x2e/0x30
 [&lt;c11de645&gt;] ? ip_rcv_finish+0x295/0x2a9
 [&lt;c11c0b19&gt;] ? netif_receive_skb+0x3e9/0x404
 [&lt;f814b791&gt;] ? e1000_clean_rx_irq+0x253/0x2fc [e1000e]
 [&lt;f814cb7a&gt;] ? e1000_clean+0x63/0x1fc [e1000e]
 [&lt;c1047eff&gt;] ? sched_clock_local+0x15/0x11b
 [&lt;c11c1095&gt;] ? net_rx_action+0x96/0x195
 [&lt;c1035750&gt;] ? __do_softirq+0xaa/0x151
 [&lt;c1035828&gt;] ? do_softirq+0x31/0x3c
 [&lt;c10358fe&gt;] ? irq_exit+0x26/0x58
 [&lt;c1004b21&gt;] ? do_IRQ+0x78/0x89
 [&lt;c1003729&gt;] ? common_interrupt+0x29/0x30
 [&lt;c101ac28&gt;] ? native_safe_halt+0x2/0x3
 [&lt;c1008c54&gt;] ? default_idle+0x55/0x75
 [&lt;c1009045&gt;] ? c1e_idle+0xd2/0xd5
 [&lt;c100233c&gt;] ? cpu_idle+0x46/0x62
Code: 8d 45 08 f0 ff 45 08 89 6b 08 c7 43 68 7e fb 9c f8 8a 45 24 83 e0 0c 3c 04 75 09 80 63 64 f3 e9 b4 00 00 00 8b 43 18 8b 4c 24 04 &lt;8b&gt; 40 0c 8d 79 11 f6 40 44 0e 8a 43 64 75 51 6a 00 8b 4c 24 08
EIP: [&lt;f89d074c&gt;] pppol2tp_xmit+0x341/0x4da [pppol2tp] SS:ESP 0068:f70a9cac
CR2: 000000000000000c

Signed-off-by: James Chapman &lt;jchapman@katalix.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>
When transmitting L2TP frames, we derive the outgoing interface's UDP
checksum hardware assist capabilities from the tunnel dst dev. This
can sometimes be NULL, especially when routing protocols are used and
routing changes occur. This patch just checks for NULL dst or dev
pointers when checking for netdev hardware assist features.

BUG: unable to handle kernel NULL pointer dereference at 0000000c
IP: [&lt;f89d074c&gt;] pppol2tp_xmit+0x341/0x4da [pppol2tp]
*pde = 00000000
Oops: 0000 [#1] SMP
last sysfs file: /sys/class/net/lo/operstate
Modules linked in: pppol2tp pppox ppp_generic slhc ipv6 dummy loop snd_hda_codec_atihdmi snd_hda_intel snd_hda_codec snd_pcm snd_timer snd soundcore snd_page_alloc evdev psmouse serio_raw processor button i2c_piix4 i2c_core ati_agp agpgart pcspkr ext3 jbd mbcache sd_mod ide_pci_generic atiixp ide_core ahci ata_generic floppy ehci_hcd ohci_hcd libata e1000e scsi_mod usbcore nls_base thermal fan thermal_sys [last unloaded: scsi_wait_scan]

Pid: 0, comm: swapper Not tainted (2.6.32.8 #1)
EIP: 0060:[&lt;f89d074c&gt;] EFLAGS: 00010297 CPU: 3
EIP is at pppol2tp_xmit+0x341/0x4da [pppol2tp]
EAX: 00000000 EBX: f64d1680 ECX: 000005b9 EDX: 00000000
ESI: f6b91850 EDI: f64d16ac EBP: f6a0c4c0 ESP: f70a9cac
 DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068
Process swapper (pid: 0, ti=f70a8000 task=f70a31c0 task.ti=f70a8000)
Stack:
 000005a9 000005b9 f734c400 f66652c0 f7352e00 f67dc800 00000000 f6b91800
&lt;0&gt; 000005a3 f70ef6c4 f67dcda9 000005a3 f89b192e 00000246 000005a3 f64d1680
&lt;0&gt; f63633e0 f6363320 f64d1680 f65a7320 f65a7364 f65856c0 f64d1680 f679f02f
Call Trace:
 [&lt;f89b192e&gt;] ? ppp_push+0x459/0x50e [ppp_generic]
 [&lt;f89b217f&gt;] ? ppp_xmit_process+0x3b6/0x430 [ppp_generic]
 [&lt;f89b2306&gt;] ? ppp_start_xmit+0x10d/0x120 [ppp_generic]
 [&lt;c11c15cb&gt;] ? dev_hard_start_xmit+0x21f/0x2b2
 [&lt;c11d0947&gt;] ? sch_direct_xmit+0x48/0x10e
 [&lt;c11c19a0&gt;] ? dev_queue_xmit+0x263/0x3a6
 [&lt;c11e2a9f&gt;] ? ip_finish_output+0x1f7/0x221
 [&lt;c11df682&gt;] ? ip_forward_finish+0x2e/0x30
 [&lt;c11de645&gt;] ? ip_rcv_finish+0x295/0x2a9
 [&lt;c11c0b19&gt;] ? netif_receive_skb+0x3e9/0x404
 [&lt;f814b791&gt;] ? e1000_clean_rx_irq+0x253/0x2fc [e1000e]
 [&lt;f814cb7a&gt;] ? e1000_clean+0x63/0x1fc [e1000e]
 [&lt;c1047eff&gt;] ? sched_clock_local+0x15/0x11b
 [&lt;c11c1095&gt;] ? net_rx_action+0x96/0x195
 [&lt;c1035750&gt;] ? __do_softirq+0xaa/0x151
 [&lt;c1035828&gt;] ? do_softirq+0x31/0x3c
 [&lt;c10358fe&gt;] ? irq_exit+0x26/0x58
 [&lt;c1004b21&gt;] ? do_IRQ+0x78/0x89
 [&lt;c1003729&gt;] ? common_interrupt+0x29/0x30
 [&lt;c101ac28&gt;] ? native_safe_halt+0x2/0x3
 [&lt;c1008c54&gt;] ? default_idle+0x55/0x75
 [&lt;c1009045&gt;] ? c1e_idle+0xd2/0xd5
 [&lt;c100233c&gt;] ? cpu_idle+0x46/0x62
Code: 8d 45 08 f0 ff 45 08 89 6b 08 c7 43 68 7e fb 9c f8 8a 45 24 83 e0 0c 3c 04 75 09 80 63 64 f3 e9 b4 00 00 00 8b 43 18 8b 4c 24 04 &lt;8b&gt; 40 0c 8d 79 11 f6 40 44 0e 8a 43 64 75 51 6a 00 8b 4c 24 08
EIP: [&lt;f89d074c&gt;] pppol2tp_xmit+0x341/0x4da [pppol2tp] SS:ESP 0068:f70a9cac
CR2: 000000000000000c

Signed-off-by: James Chapman &lt;jchapman@katalix.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: Simplify pppol2tp pernet operations.</title>
<updated>2009-12-02T00:15:57+00:00</updated>
<author>
<name>Eric W. Biederman</name>
<email>ebiederm@xmission.com</email>
</author>
<published>2009-11-29T15:46:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=aaab3405e03e91d0e8d30c9d327a2265a7121854'/>
<id>aaab3405e03e91d0e8d30c9d327a2265a7121854</id>
<content type='text'>
Take advantage of the new pernet automatic storage management,
and stop using compatibility network namespace functions.

Signed-off-by: Eric W. Biederman &lt;ebiederm@xmission.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>
Take advantage of the new pernet automatic storage management,
and stop using compatibility network namespace functions.

Signed-off-by: Eric W. Biederman &lt;ebiederm@xmission.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>drivers/net/pppol2tp.c: remove exceptional &amp; on function name</title>
<updated>2009-11-18T18:48:42+00:00</updated>
<author>
<name>Julia Lawall</name>
<email>julia@diku.dk</email>
</author>
<published>2009-11-18T08:22:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=c2f379b2f8cf59e6bff4d028949a0273732460aa'/>
<id>c2f379b2f8cf59e6bff4d028949a0273732460aa</id>
<content type='text'>
In this file, function names are otherwise used as pointers without &amp;.

A simplified version of the semantic patch that makes this change is as
follows: (http://coccinelle.lip6.fr/)

// &lt;smpl&gt;
@r@
identifier f;
@@

f(...) { ... }

@@
identifier r.f;
@@

- &amp;f
+ f
// &lt;/smpl&gt;

Signed-off-by: Julia Lawall &lt;julia@diku.dk&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>
In this file, function names are otherwise used as pointers without &amp;.

A simplified version of the semantic patch that makes this change is as
follows: (http://coccinelle.lip6.fr/)

// &lt;smpl&gt;
@r@
identifier f;
@@

f(...) { ... }

@@
identifier r.f;
@@

- &amp;f
+ f
// &lt;/smpl&gt;

Signed-off-by: Julia Lawall &lt;julia@diku.dk&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>netns: net_identifiers should be read_mostly</title>
<updated>2009-11-18T13:03:25+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2009-11-17T10:42:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=f99189b186f3922ede4fa33c02f6edc735b8c981'/>
<id>f99189b186f3922ede4fa33c02f6edc735b8c981</id>
<content type='text'>
Signed-off-by: Eric Dumazet &lt;eric.dumazet@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>
Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>inet: rename some inet_sock fields</title>
<updated>2009-10-19T01:52:53+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2009-10-15T06:30:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=c720c7e8383aff1cb219bddf474ed89d850336e3'/>
<id>c720c7e8383aff1cb219bddf474ed89d850336e3</id>
<content type='text'>
In order to have better cache layouts of struct sock (separate zones
for rx/tx paths), we need this preliminary patch.

Goal is to transfert fields used at lookup time in the first
read-mostly cache line (inside struct sock_common) and move sk_refcnt
to a separate cache line (only written by rx path)

This patch adds inet_ prefix to daddr, rcv_saddr, dport, num, saddr,
sport and id fields. This allows a future patch to define these
fields as macros, like sk_refcnt, without name clashes.

Signed-off-by: Eric Dumazet &lt;eric.dumazet@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>
In order to have better cache layouts of struct sock (separate zones
for rx/tx paths), we need this preliminary patch.

Goal is to transfert fields used at lookup time in the first
read-mostly cache line (inside struct sock_common) and move sk_refcnt
to a separate cache line (only written by rx path)

This patch adds inet_ prefix to daddr, rcv_saddr, dport, num, saddr,
sport and id fields. This allows a future patch to define these
fields as macros, like sk_refcnt, without name clashes.

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: Make setsockopt() optlen be unsigned.</title>
<updated>2009-09-30T23:12:20+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2009-09-30T23:12:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=b7058842c940ad2c08dd829b21e5c92ebe3b8758'/>
<id>b7058842c940ad2c08dd829b21e5c92ebe3b8758</id>
<content type='text'>
This provides safety against negative optlen at the type
level instead of depending upon (sometimes non-trivial)
checks against this sprinkled all over the the place, in
each and every implementation.

Based upon work done by Arjan van de Ven and feedback
from Linus Torvalds.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This provides safety against negative optlen at the type
level instead of depending upon (sometimes non-trivial)
checks against this sprinkled all over the the place, in
each and every implementation.

Based upon work done by Arjan van de Ven and feedback
from Linus Torvalds.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: constify remaining proto_ops</title>
<updated>2009-09-15T00:03:09+00:00</updated>
<author>
<name>Alexey Dobriyan</name>
<email>adobriyan@gmail.com</email>
</author>
<published>2009-09-14T12:23:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=5708e868dc512f055f0ea4a14d01f8252c3ca8a1'/>
<id>5708e868dc512f055f0ea4a14d01f8252c3ca8a1</id>
<content type='text'>
Signed-off-by: Alexey Dobriyan &lt;adobriyan@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>
Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>pppol2tp: calls unregister_pernet_gen_device() at unload time</title>
<updated>2009-08-02T19:20:34+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2009-07-28T03:47:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux.git/commit/?id=446e72f30eca76d6f9a1a54adf84d2c6ba2831f8'/>
<id>446e72f30eca76d6f9a1a54adf84d2c6ba2831f8</id>
<content type='text'>
Failure to call unregister_pernet_gen_device() can exhaust memory
if module is loaded/unloaded many times.

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Acked-by: Cyrill Gorcunov &lt;gorcunov@openvz.org&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>
Failure to call unregister_pernet_gen_device() can exhaust memory
if module is loaded/unloaded many times.

Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Acked-by: Cyrill Gorcunov &lt;gorcunov@openvz.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
