<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/net/core, branch v2.6.37.2</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>net: deinit automatic LIST_HEAD</title>
<updated>2011-02-24T22:54:32+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2011-02-17T22:59:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=55c48bd74dd4566ff00f2161e6f70fc8a6d970a2'/>
<id>55c48bd74dd4566ff00f2161e6f70fc8a6d970a2</id>
<content type='text'>
commit ceaaec98ad99859ac90ac6863ad0a6cd075d8e0e upstream.

commit 9b5e383c11b08784 (net: Introduce
unregister_netdevice_many()) left an active LIST_HEAD() in
rollback_registered(), with possible memory corruption.

Even if device is freed without touching its unreg_list (and therefore
touching the previous memory location holding LISTE_HEAD(single), better
close the bug for good, since its really subtle.

(Same fix for default_device_exit_batch() for completeness)

Reported-by: Michal Hocko &lt;mhocko@suse.cz&gt;
Tested-by: Michal Hocko &lt;mhocko@suse.cz&gt;
Reported-by: Eric W. Biderman &lt;ebiderman@xmission.com&gt;
Tested-by: Eric W. Biderman &lt;ebiderman@xmission.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
CC: Ingo Molnar &lt;mingo@elte.hu&gt;
CC: Octavian Purdila &lt;opurdila@ixiacom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit ceaaec98ad99859ac90ac6863ad0a6cd075d8e0e upstream.

commit 9b5e383c11b08784 (net: Introduce
unregister_netdevice_many()) left an active LIST_HEAD() in
rollback_registered(), with possible memory corruption.

Even if device is freed without touching its unreg_list (and therefore
touching the previous memory location holding LISTE_HEAD(single), better
close the bug for good, since its really subtle.

(Same fix for default_device_exit_batch() for completeness)

Reported-by: Michal Hocko &lt;mhocko@suse.cz&gt;
Tested-by: Michal Hocko &lt;mhocko@suse.cz&gt;
Reported-by: Eric W. Biderman &lt;ebiderman@xmission.com&gt;
Tested-by: Eric W. Biderman &lt;ebiderman@xmission.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
CC: Ingo Molnar &lt;mingo@elte.hu&gt;
CC: Octavian Purdila &lt;opurdila@ixiacom.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>net: clear heap allocation for ethtool_get_regs()</title>
<updated>2011-02-17T23:14:58+00:00</updated>
<author>
<name>Eugene Teo</name>
<email>eugeneteo@kernel.org</email>
</author>
<published>2011-01-25T05:05:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=5b33c4a2720e314ac4c23589a301b378c13a6606'/>
<id>5b33c4a2720e314ac4c23589a301b378c13a6606</id>
<content type='text'>
commit b7c7d01aaed1f71d9afe815a569f0a81465a1744 upstream.

There is a conflict between commit b00916b1 and a77f5db3. This patch resolves
the conflict by clearing the heap allocation in ethtool_get_regs().

Signed-off-by: Eugene Teo &lt;eugeneteo@kernel.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit b7c7d01aaed1f71d9afe815a569f0a81465a1744 upstream.

There is a conflict between commit b00916b1 and a77f5db3. This patch resolves
the conflict by clearing the heap allocation in ethtool_get_regs().

Signed-off-by: Eugene Teo &lt;eugeneteo@kernel.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>net: Fix ip link add netns oops</title>
<updated>2011-02-17T23:14:33+00:00</updated>
<author>
<name>Eric W. Biederman</name>
<email>ebiederm@xmission.com</email>
</author>
<published>2011-01-29T14:57:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6940b3914ff75f4765319c27719be2a60f24a530'/>
<id>6940b3914ff75f4765319c27719be2a60f24a530</id>
<content type='text'>
commit 13ad17745c2cbd437d9e24b2d97393e0be11c439 upstream.

Ed Swierk &lt;eswierk@bigswitch.com&gt; writes:
&gt; On 2.6.35.7
&gt;  ip link add link eth0 netns 9999 type macvlan
&gt; where 9999 is a nonexistent PID triggers an oops and causes all network functions to hang:
&gt; [10663.821898] BUG: unable to handle kernel NULL pointer dereference at 000000000000006d
&gt;  [10663.821917] IP: [&lt;ffffffff8149c2fa&gt;] __dev_alloc_name+0x9a/0x170
&gt;  [10663.821933] PGD 1d3927067 PUD 22f5c5067 PMD 0
&gt;  [10663.821944] Oops: 0000 [#1] SMP
&gt;  [10663.821953] last sysfs file: /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
&gt;  [10663.821959] CPU 3
&gt;  [10663.821963] Modules linked in: macvlan ip6table_filter ip6_tables rfcomm ipt_MASQUERADE binfmt_misc iptable_nat nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack sco ipt_REJECT bnep l2cap xt_tcpudp iptable_filter ip_tables x_tables bridge stp vboxnetadp vboxnetflt vboxdrv kvm_intel kvm parport_pc ppdev snd_hda_codec_intelhdmi snd_hda_codec_conexant arc4 iwlagn iwlcore mac80211 snd_hda_intel snd_hda_codec snd_hwdep snd_pcm snd_seq_midi snd_rawmidi i915 snd_seq_midi_event snd_seq thinkpad_acpi drm_kms_helper btusb tpm_tis nvram uvcvideo snd_timer snd_seq_device bluetooth videodev v4l1_compat v4l2_compat_ioctl32 tpm drm tpm_bios snd cfg80211 psmouse serio_raw intel_ips soundcore snd_page_alloc intel_agp i2c_algo_bit video output netconsole configfs lp parport usbhid hid e1000e sdhci_pci ahci libahci sdhci led_class
&gt;  [10663.822155]
&gt;  [10663.822161] Pid: 6000, comm: ip Not tainted 2.6.35-23-generic #41-Ubuntu 2901CTO/2901CTO
&gt;  [10663.822167] RIP: 0010:[&lt;ffffffff8149c2fa&gt;] [&lt;ffffffff8149c2fa&gt;] __dev_alloc_name+0x9a/0x170
&gt;  [10663.822177] RSP: 0018:ffff88014aebf7b8 EFLAGS: 00010286
&gt;  [10663.822182] RAX: 00000000fffffff4 RBX: ffff8801ad900800 RCX: 0000000000000000
&gt;  [10663.822187] RDX: ffff880000000000 RSI: 0000000000000000 RDI: ffff88014ad63000
&gt;  [10663.822191] RBP: ffff88014aebf808 R08: 0000000000000041 R09: 0000000000000041
&gt;  [10663.822196] R10: 0000000000000000 R11: dead000000200200 R12: ffff88014aebf818
&gt;  [10663.822201] R13: fffffffffffffffd R14: ffff88014aebf918 R15: ffff88014ad62000
&gt;  [10663.822207] FS: 00007f00c487f700(0000) GS:ffff880001f80000(0000) knlGS:0000000000000000
&gt;  [10663.822212] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
&gt;  [10663.822216] CR2: 000000000000006d CR3: 0000000231f19000 CR4: 00000000000026e0
&gt;  [10663.822221] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
&gt;  [10663.822226] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
&gt;  [10663.822231] Process ip (pid: 6000, threadinfo ffff88014aebe000, task ffff88014afb16e0)
&gt;  [10663.822236] Stack:
&gt;  [10663.822240] ffff88014aebf808 ffffffff814a2bb5 ffff88014aebf7e8 00000000a00ee8d6
&gt;  [10663.822251] &lt;0&gt; 0000000000000000 ffffffffa00ef940 ffff8801ad900800 ffff88014aebf818
&gt;  [10663.822265] &lt;0&gt; ffff88014aebf918 ffff8801ad900800 ffff88014aebf858 ffffffff8149c413
&gt;  [10663.822281] Call Trace:
&gt;  [10663.822290] [&lt;ffffffff814a2bb5&gt;] ? dev_addr_init+0x75/0xb0
&gt;  [10663.822298] [&lt;ffffffff8149c413&gt;] dev_alloc_name+0x43/0x90
&gt;  [10663.822307] [&lt;ffffffff814a85ee&gt;] rtnl_create_link+0xbe/0x1b0
&gt;  [10663.822314] [&lt;ffffffff814ab2aa&gt;] rtnl_newlink+0x48a/0x570
&gt;  [10663.822321] [&lt;ffffffff814aafcc&gt;] ? rtnl_newlink+0x1ac/0x570
&gt;  [10663.822332] [&lt;ffffffff81030064&gt;] ? native_x2apic_icr_read+0x4/0x20
&gt;  [10663.822339] [&lt;ffffffff814a8c17&gt;] rtnetlink_rcv_msg+0x177/0x290
&gt;  [10663.822346] [&lt;ffffffff814a8aa0&gt;] ? rtnetlink_rcv_msg+0x0/0x290
&gt;  [10663.822354] [&lt;ffffffff814c25d9&gt;] netlink_rcv_skb+0xa9/0xd0
&gt;  [10663.822360] [&lt;ffffffff814a8a85&gt;] rtnetlink_rcv+0x25/0x40
&gt;  [10663.822367] [&lt;ffffffff814c223e&gt;] netlink_unicast+0x2de/0x2f0
&gt;  [10663.822374] [&lt;ffffffff814c303e&gt;] netlink_sendmsg+0x1fe/0x2e0
&gt;  [10663.822383] [&lt;ffffffff81488533&gt;] sock_sendmsg+0xf3/0x120
&gt;  [10663.822391] [&lt;ffffffff815899fe&gt;] ? _raw_spin_lock+0xe/0x20
&gt;  [10663.822400] [&lt;ffffffff81168656&gt;] ? __d_lookup+0x136/0x150
&gt;  [10663.822406] [&lt;ffffffff815899fe&gt;] ? _raw_spin_lock+0xe/0x20
&gt;  [10663.822414] [&lt;ffffffff812b7a0d&gt;] ? _atomic_dec_and_lock+0x4d/0x80
&gt;  [10663.822422] [&lt;ffffffff8116ea90&gt;] ? mntput_no_expire+0x30/0x110
&gt;  [10663.822429] [&lt;ffffffff81486ff5&gt;] ? move_addr_to_kernel+0x65/0x70
&gt;  [10663.822435] [&lt;ffffffff81493308&gt;] ? verify_iovec+0x88/0xe0
&gt;  [10663.822442] [&lt;ffffffff81489020&gt;] sys_sendmsg+0x240/0x3a0
&gt; [10663.822450] [&lt;ffffffff8111e2a9&gt;] ? __do_fault+0x479/0x560
&gt;  [10663.822457] [&lt;ffffffff815899fe&gt;] ? _raw_spin_lock+0xe/0x20
&gt;  [10663.822465] [&lt;ffffffff8116cf4a&gt;] ? alloc_fd+0x10a/0x150
&gt;  [10663.822473] [&lt;ffffffff8158d76e&gt;] ? do_page_fault+0x15e/0x350
&gt;  [10663.822482] [&lt;ffffffff8100a0f2&gt;] system_call_fastpath+0x16/0x1b
&gt;  [10663.822487] Code: 90 48 8d 78 02 be 25 00 00 00 e8 92 1d e2 ff 48 85 c0 75 cf bf 20 00 00 00 e8 c3 b1 c6 ff 49 89 c7 b8 f4 ff ff ff 4d 85 ff 74 bd &lt;4d&gt; 8b 75 70 49 8d 45 70 48 89 45 b8 49 83 ee 58 eb 28 48 8d 55
&gt;  [10663.822618] RIP [&lt;ffffffff8149c2fa&gt;] __dev_alloc_name+0x9a/0x170
&gt;  [10663.822627] RSP &lt;ffff88014aebf7b8&gt;
&gt;  [10663.822631] CR2: 000000000000006d
&gt;  [10663.822636] ---[ end trace 3dfd6c3ad5327ca7 ]---

This bug was introduced in:
commit 81adee47dfb608df3ad0b91d230fb3cef75f0060
Author: Eric W. Biederman &lt;ebiederm@aristanetworks.com&gt;
Date:   Sun Nov 8 00:53:51 2009 -0800

    net: Support specifying the network namespace upon device creation.

    There is no good reason to not support userspace specifying the
    network namespace during device creation, and it makes it easier
    to create a network device and pass it to a child network namespace
    with a well known name.

    We have to be careful to ensure that the target network namespace
    for the new device exists through the life of the call.  To keep
    that logic clear I have factored out the network namespace grabbing
    logic into rtnl_link_get_net.

    In addtion we need to continue to pass the source network namespace
    to the rtnl_link_ops.newlink method so that we can find the base
    device source network namespace.

    Signed-off-by: Eric W. Biederman &lt;ebiederm@aristanetworks.com&gt;
    Acked-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;

Where apparently I forgot to add error handling to the path where we create
a new network device in a new network namespace, and pass in an invalid pid.

Reported-by: Ed Swierk &lt;eswierk@bigswitch.com&gt;
Signed-off-by: "Eric W. Biederman" &lt;ebiederm@xmission.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 13ad17745c2cbd437d9e24b2d97393e0be11c439 upstream.

Ed Swierk &lt;eswierk@bigswitch.com&gt; writes:
&gt; On 2.6.35.7
&gt;  ip link add link eth0 netns 9999 type macvlan
&gt; where 9999 is a nonexistent PID triggers an oops and causes all network functions to hang:
&gt; [10663.821898] BUG: unable to handle kernel NULL pointer dereference at 000000000000006d
&gt;  [10663.821917] IP: [&lt;ffffffff8149c2fa&gt;] __dev_alloc_name+0x9a/0x170
&gt;  [10663.821933] PGD 1d3927067 PUD 22f5c5067 PMD 0
&gt;  [10663.821944] Oops: 0000 [#1] SMP
&gt;  [10663.821953] last sysfs file: /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
&gt;  [10663.821959] CPU 3
&gt;  [10663.821963] Modules linked in: macvlan ip6table_filter ip6_tables rfcomm ipt_MASQUERADE binfmt_misc iptable_nat nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack sco ipt_REJECT bnep l2cap xt_tcpudp iptable_filter ip_tables x_tables bridge stp vboxnetadp vboxnetflt vboxdrv kvm_intel kvm parport_pc ppdev snd_hda_codec_intelhdmi snd_hda_codec_conexant arc4 iwlagn iwlcore mac80211 snd_hda_intel snd_hda_codec snd_hwdep snd_pcm snd_seq_midi snd_rawmidi i915 snd_seq_midi_event snd_seq thinkpad_acpi drm_kms_helper btusb tpm_tis nvram uvcvideo snd_timer snd_seq_device bluetooth videodev v4l1_compat v4l2_compat_ioctl32 tpm drm tpm_bios snd cfg80211 psmouse serio_raw intel_ips soundcore snd_page_alloc intel_agp i2c_algo_bit video output netconsole configfs lp parport usbhid hid e1000e sdhci_pci ahci libahci sdhci led_class
&gt;  [10663.822155]
&gt;  [10663.822161] Pid: 6000, comm: ip Not tainted 2.6.35-23-generic #41-Ubuntu 2901CTO/2901CTO
&gt;  [10663.822167] RIP: 0010:[&lt;ffffffff8149c2fa&gt;] [&lt;ffffffff8149c2fa&gt;] __dev_alloc_name+0x9a/0x170
&gt;  [10663.822177] RSP: 0018:ffff88014aebf7b8 EFLAGS: 00010286
&gt;  [10663.822182] RAX: 00000000fffffff4 RBX: ffff8801ad900800 RCX: 0000000000000000
&gt;  [10663.822187] RDX: ffff880000000000 RSI: 0000000000000000 RDI: ffff88014ad63000
&gt;  [10663.822191] RBP: ffff88014aebf808 R08: 0000000000000041 R09: 0000000000000041
&gt;  [10663.822196] R10: 0000000000000000 R11: dead000000200200 R12: ffff88014aebf818
&gt;  [10663.822201] R13: fffffffffffffffd R14: ffff88014aebf918 R15: ffff88014ad62000
&gt;  [10663.822207] FS: 00007f00c487f700(0000) GS:ffff880001f80000(0000) knlGS:0000000000000000
&gt;  [10663.822212] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
&gt;  [10663.822216] CR2: 000000000000006d CR3: 0000000231f19000 CR4: 00000000000026e0
&gt;  [10663.822221] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
&gt;  [10663.822226] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
&gt;  [10663.822231] Process ip (pid: 6000, threadinfo ffff88014aebe000, task ffff88014afb16e0)
&gt;  [10663.822236] Stack:
&gt;  [10663.822240] ffff88014aebf808 ffffffff814a2bb5 ffff88014aebf7e8 00000000a00ee8d6
&gt;  [10663.822251] &lt;0&gt; 0000000000000000 ffffffffa00ef940 ffff8801ad900800 ffff88014aebf818
&gt;  [10663.822265] &lt;0&gt; ffff88014aebf918 ffff8801ad900800 ffff88014aebf858 ffffffff8149c413
&gt;  [10663.822281] Call Trace:
&gt;  [10663.822290] [&lt;ffffffff814a2bb5&gt;] ? dev_addr_init+0x75/0xb0
&gt;  [10663.822298] [&lt;ffffffff8149c413&gt;] dev_alloc_name+0x43/0x90
&gt;  [10663.822307] [&lt;ffffffff814a85ee&gt;] rtnl_create_link+0xbe/0x1b0
&gt;  [10663.822314] [&lt;ffffffff814ab2aa&gt;] rtnl_newlink+0x48a/0x570
&gt;  [10663.822321] [&lt;ffffffff814aafcc&gt;] ? rtnl_newlink+0x1ac/0x570
&gt;  [10663.822332] [&lt;ffffffff81030064&gt;] ? native_x2apic_icr_read+0x4/0x20
&gt;  [10663.822339] [&lt;ffffffff814a8c17&gt;] rtnetlink_rcv_msg+0x177/0x290
&gt;  [10663.822346] [&lt;ffffffff814a8aa0&gt;] ? rtnetlink_rcv_msg+0x0/0x290
&gt;  [10663.822354] [&lt;ffffffff814c25d9&gt;] netlink_rcv_skb+0xa9/0xd0
&gt;  [10663.822360] [&lt;ffffffff814a8a85&gt;] rtnetlink_rcv+0x25/0x40
&gt;  [10663.822367] [&lt;ffffffff814c223e&gt;] netlink_unicast+0x2de/0x2f0
&gt;  [10663.822374] [&lt;ffffffff814c303e&gt;] netlink_sendmsg+0x1fe/0x2e0
&gt;  [10663.822383] [&lt;ffffffff81488533&gt;] sock_sendmsg+0xf3/0x120
&gt;  [10663.822391] [&lt;ffffffff815899fe&gt;] ? _raw_spin_lock+0xe/0x20
&gt;  [10663.822400] [&lt;ffffffff81168656&gt;] ? __d_lookup+0x136/0x150
&gt;  [10663.822406] [&lt;ffffffff815899fe&gt;] ? _raw_spin_lock+0xe/0x20
&gt;  [10663.822414] [&lt;ffffffff812b7a0d&gt;] ? _atomic_dec_and_lock+0x4d/0x80
&gt;  [10663.822422] [&lt;ffffffff8116ea90&gt;] ? mntput_no_expire+0x30/0x110
&gt;  [10663.822429] [&lt;ffffffff81486ff5&gt;] ? move_addr_to_kernel+0x65/0x70
&gt;  [10663.822435] [&lt;ffffffff81493308&gt;] ? verify_iovec+0x88/0xe0
&gt;  [10663.822442] [&lt;ffffffff81489020&gt;] sys_sendmsg+0x240/0x3a0
&gt; [10663.822450] [&lt;ffffffff8111e2a9&gt;] ? __do_fault+0x479/0x560
&gt;  [10663.822457] [&lt;ffffffff815899fe&gt;] ? _raw_spin_lock+0xe/0x20
&gt;  [10663.822465] [&lt;ffffffff8116cf4a&gt;] ? alloc_fd+0x10a/0x150
&gt;  [10663.822473] [&lt;ffffffff8158d76e&gt;] ? do_page_fault+0x15e/0x350
&gt;  [10663.822482] [&lt;ffffffff8100a0f2&gt;] system_call_fastpath+0x16/0x1b
&gt;  [10663.822487] Code: 90 48 8d 78 02 be 25 00 00 00 e8 92 1d e2 ff 48 85 c0 75 cf bf 20 00 00 00 e8 c3 b1 c6 ff 49 89 c7 b8 f4 ff ff ff 4d 85 ff 74 bd &lt;4d&gt; 8b 75 70 49 8d 45 70 48 89 45 b8 49 83 ee 58 eb 28 48 8d 55
&gt;  [10663.822618] RIP [&lt;ffffffff8149c2fa&gt;] __dev_alloc_name+0x9a/0x170
&gt;  [10663.822627] RSP &lt;ffff88014aebf7b8&gt;
&gt;  [10663.822631] CR2: 000000000000006d
&gt;  [10663.822636] ---[ end trace 3dfd6c3ad5327ca7 ]---

This bug was introduced in:
commit 81adee47dfb608df3ad0b91d230fb3cef75f0060
Author: Eric W. Biederman &lt;ebiederm@aristanetworks.com&gt;
Date:   Sun Nov 8 00:53:51 2009 -0800

    net: Support specifying the network namespace upon device creation.

    There is no good reason to not support userspace specifying the
    network namespace during device creation, and it makes it easier
    to create a network device and pass it to a child network namespace
    with a well known name.

    We have to be careful to ensure that the target network namespace
    for the new device exists through the life of the call.  To keep
    that logic clear I have factored out the network namespace grabbing
    logic into rtnl_link_get_net.

    In addtion we need to continue to pass the source network namespace
    to the rtnl_link_ops.newlink method so that we can find the base
    device source network namespace.

    Signed-off-by: Eric W. Biederman &lt;ebiederm@aristanetworks.com&gt;
    Acked-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;

Where apparently I forgot to add error handling to the path where we create
a new network device in a new network namespace, and pass in an invalid pid.

Reported-by: Ed Swierk &lt;eswierk@bigswitch.com&gt;
Signed-off-by: "Eric W. Biederman" &lt;ebiederm@xmission.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>net: add POLLPRI to sock_def_readable()</title>
<updated>2011-02-17T23:14:23+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2011-01-06T18:54:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=ed12313af40575c71b1b6533576f6d5dd9cc39b0'/>
<id>ed12313af40575c71b1b6533576f6d5dd9cc39b0</id>
<content type='text'>
[ Upstream commit 2c6607c611cb7bf0a6750bcea34a258144e302c5 ]

Leonardo Chiquitto found poll() could block forever on tcp sockets and
Urgent data was received, if the event flag only contains POLLPRI.

He did a bisection and found commit 4938d7e0233 (poll: avoid extra
wakeups in select/poll) was the source of the problem.

Problem is TCP sockets use standard sock_def_readable() function for
their sk_data_ready() handler, and sock_def_readable() doesnt signal
POLLPRI.

Only TCP is affected by the problem. Adding POLLPRI to the list of flags
might trigger unnecessary schedules, but URGENT handling is such a
seldom used feature this seems a good compromise.

Thanks a lot to Leonardo for providing the bisection result and a test
program as well.

Reference : http://www.spinics.net/lists/netdev/msg151793.html

Reported-and-bisected-by: Leonardo Chiquitto &lt;leonardo.lists@gmail.com&gt;
Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Tested-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 2c6607c611cb7bf0a6750bcea34a258144e302c5 ]

Leonardo Chiquitto found poll() could block forever on tcp sockets and
Urgent data was received, if the event flag only contains POLLPRI.

He did a bisection and found commit 4938d7e0233 (poll: avoid extra
wakeups in select/poll) was the source of the problem.

Problem is TCP sockets use standard sock_def_readable() function for
their sk_data_ready() handler, and sock_def_readable() doesnt signal
POLLPRI.

Only TCP is affected by the problem. Adding POLLPRI to the list of flags
might trigger unnecessary schedules, but URGENT handling is such a
seldom used feature this seems a good compromise.

Thanks a lot to Leonardo for providing the bisection result and a test
program as well.

Reference : http://www.spinics.net/lists/netdev/msg151793.html

Reported-and-bisected-by: Leonardo Chiquitto &lt;leonardo.lists@gmail.com&gt;
Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Tested-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "ipv4: Allow configuring subnets as local addresses"</title>
<updated>2010-12-23T20:03:57+00:00</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2010-12-23T20:03:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e058464990c2ef1f3ecd6b83a154913c3c06f02a'/>
<id>e058464990c2ef1f3ecd6b83a154913c3c06f02a</id>
<content type='text'>
This reverts commit 4465b469008bc03b98a1b8df4e9ae501b6c69d4b.

Conflicts:

	net/ipv4/fib_frontend.c

As reported by Ben Greear, this causes regressions:

&gt; Change 4465b469008bc03b98a1b8df4e9ae501b6c69d4b caused rules
&gt; to stop matching the input device properly because the
&gt; FLOWI_FLAG_MATCH_ANY_IIF is always defined in ip_dev_find().
&gt;
&gt; This breaks rules such as:
&gt;
&gt; ip rule add pref 512 lookup local
&gt; ip rule del pref 0 lookup local
&gt; ip link set eth2 up
&gt; ip -4 addr add 172.16.0.102/24 broadcast 172.16.0.255 dev eth2
&gt; ip rule add to 172.16.0.102 iif eth2 lookup local pref 10
&gt; ip rule add iif eth2 lookup 10001 pref 20
&gt; ip route add 172.16.0.0/24 dev eth2 table 10001
&gt; ip route add unreachable 0/0 table 10001
&gt;
&gt; If you had a second interface 'eth0' that was on a different
&gt; subnet, pinging a system on that interface would fail:
&gt;
&gt;   [root@ct503-60 ~]# ping 192.168.100.1
&gt;   connect: Invalid argument

Reported-by: Ben Greear &lt;greearb@candelatech.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 reverts commit 4465b469008bc03b98a1b8df4e9ae501b6c69d4b.

Conflicts:

	net/ipv4/fib_frontend.c

As reported by Ben Greear, this causes regressions:

&gt; Change 4465b469008bc03b98a1b8df4e9ae501b6c69d4b caused rules
&gt; to stop matching the input device properly because the
&gt; FLOWI_FLAG_MATCH_ANY_IIF is always defined in ip_dev_find().
&gt;
&gt; This breaks rules such as:
&gt;
&gt; ip rule add pref 512 lookup local
&gt; ip rule del pref 0 lookup local
&gt; ip link set eth2 up
&gt; ip -4 addr add 172.16.0.102/24 broadcast 172.16.0.255 dev eth2
&gt; ip rule add to 172.16.0.102 iif eth2 lookup local pref 10
&gt; ip rule add iif eth2 lookup 10001 pref 20
&gt; ip route add 172.16.0.0/24 dev eth2 table 10001
&gt; ip route add unreachable 0/0 table 10001
&gt;
&gt; If you had a second interface 'eth0' that was on a different
&gt; subnet, pinging a system on that interface would fail:
&gt;
&gt;   [root@ct503-60 ~]# ping 192.168.100.1
&gt;   connect: Invalid argument

Reported-by: Ben Greear &lt;greearb@candelatech.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: fix nulls list corruptions in sk_prot_alloc</title>
<updated>2010-12-16T22:26:56+00:00</updated>
<author>
<name>Octavian Purdila</name>
<email>opurdila@ixiacom.com</email>
</author>
<published>2010-12-16T22:26:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=fcbdf09d9652c8919dcf47072e3ae7dcb4eb98ac'/>
<id>fcbdf09d9652c8919dcf47072e3ae7dcb4eb98ac</id>
<content type='text'>
Special care is taken inside sk_port_alloc to avoid overwriting
skc_node/skc_nulls_node. We should also avoid overwriting
skc_bind_node/skc_portaddr_node.

The patch fixes the following crash:

 BUG: unable to handle kernel paging request at fffffffffffffff0
 IP: [&lt;ffffffff812ec6dd&gt;] udp4_lib_lookup2+0xad/0x370
 [&lt;ffffffff812ecc22&gt;] __udp4_lib_lookup+0x282/0x360
 [&lt;ffffffff812ed63e&gt;] __udp4_lib_rcv+0x31e/0x700
 [&lt;ffffffff812bba45&gt;] ? ip_local_deliver_finish+0x65/0x190
 [&lt;ffffffff812bbbf8&gt;] ? ip_local_deliver+0x88/0xa0
 [&lt;ffffffff812eda35&gt;] udp_rcv+0x15/0x20
 [&lt;ffffffff812bba45&gt;] ip_local_deliver_finish+0x65/0x190
 [&lt;ffffffff812bbbf8&gt;] ip_local_deliver+0x88/0xa0
 [&lt;ffffffff812bb2cd&gt;] ip_rcv_finish+0x32d/0x6f0
 [&lt;ffffffff8128c14c&gt;] ? netif_receive_skb+0x99c/0x11c0
 [&lt;ffffffff812bb94b&gt;] ip_rcv+0x2bb/0x350
 [&lt;ffffffff8128c14c&gt;] netif_receive_skb+0x99c/0x11c0

Signed-off-by: Leonard Crestez &lt;lcrestez@ixiacom.com&gt;
Signed-off-by: Octavian Purdila &lt;opurdila@ixiacom.com&gt;
Acked-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>
Special care is taken inside sk_port_alloc to avoid overwriting
skc_node/skc_nulls_node. We should also avoid overwriting
skc_bind_node/skc_portaddr_node.

The patch fixes the following crash:

 BUG: unable to handle kernel paging request at fffffffffffffff0
 IP: [&lt;ffffffff812ec6dd&gt;] udp4_lib_lookup2+0xad/0x370
 [&lt;ffffffff812ecc22&gt;] __udp4_lib_lookup+0x282/0x360
 [&lt;ffffffff812ed63e&gt;] __udp4_lib_rcv+0x31e/0x700
 [&lt;ffffffff812bba45&gt;] ? ip_local_deliver_finish+0x65/0x190
 [&lt;ffffffff812bbbf8&gt;] ? ip_local_deliver+0x88/0xa0
 [&lt;ffffffff812eda35&gt;] udp_rcv+0x15/0x20
 [&lt;ffffffff812bba45&gt;] ip_local_deliver_finish+0x65/0x190
 [&lt;ffffffff812bbbf8&gt;] ip_local_deliver+0x88/0xa0
 [&lt;ffffffff812bb2cd&gt;] ip_rcv_finish+0x32d/0x6f0
 [&lt;ffffffff8128c14c&gt;] ? netif_receive_skb+0x99c/0x11c0
 [&lt;ffffffff812bb94b&gt;] ip_rcv+0x2bb/0x350
 [&lt;ffffffff8128c14c&gt;] netif_receive_skb+0x99c/0x11c0

Signed-off-by: Leonard Crestez &lt;lcrestez@ixiacom.com&gt;
Signed-off-by: Octavian Purdila &lt;opurdila@ixiacom.com&gt;
Acked-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: fix skb_defer_rx_timestamp()</title>
<updated>2010-12-11T00:20:56+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2010-12-05T18:50:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=a19faf0250e09b16cac169354126404bc8aa342b'/>
<id>a19faf0250e09b16cac169354126404bc8aa342b</id>
<content type='text'>
After commit c1f19b51d1d8 (net: support time stamping in phy devices.),
kernel might crash if CONFIG_NETWORK_PHY_TIMESTAMPING=y and
skb_defer_rx_timestamp() handles a packet without an ethernet header.

Fixes kernel bugzilla #24102

Reference: https://bugzilla.kernel.org/show_bug.cgi?id=24102
Reported-and-tested-by: Andrew Watts &lt;akwatts@ymail.com&gt;
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>
After commit c1f19b51d1d8 (net: support time stamping in phy devices.),
kernel might crash if CONFIG_NETWORK_PHY_TIMESTAMPING=y and
skb_defer_rx_timestamp() handles a packet without an ethernet header.

Fixes kernel bugzilla #24102

Reference: https://bugzilla.kernel.org/show_bug.cgi?id=24102
Reported-and-tested-by: Andrew Watts &lt;akwatts@ymail.com&gt;
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>filter: fix sk_filter rcu handling</title>
<updated>2010-12-06T17:29:43+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2010-12-06T17:29:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=46bcf14f44d8f31ecfdc8b6708ec15a3b33316d9'/>
<id>46bcf14f44d8f31ecfdc8b6708ec15a3b33316d9</id>
<content type='text'>
Pavel Emelyanov tried to fix a race between sk_filter_(de|at)tach and
sk_clone() in commit 47e958eac280c263397

Problem is we can have several clones sharing a common sk_filter, and
these clones might want to sk_filter_attach() their own filters at the
same time, and can overwrite old_filter-&gt;rcu, corrupting RCU queues.

We can not use filter-&gt;rcu without being sure no other thread could do
the same thing.

Switch code to a more conventional ref-counting technique : Do the
atomic decrement immediately and queue one rcu call back when last
reference is released.

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>
Pavel Emelyanov tried to fix a race between sk_filter_(de|at)tach and
sk_clone() in commit 47e958eac280c263397

Problem is we can have several clones sharing a common sk_filter, and
these clones might want to sk_filter_attach() their own filters at the
same time, and can overwrite old_filter-&gt;rcu, corrupting RCU queues.

We can not use filter-&gt;rcu without being sure no other thread could do
the same thing.

Switch code to a more conventional ref-counting technique : Do the
atomic decrement immediately and queue one rcu call back when last
reference is released.

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: allow GFP_HIGHMEM in __vmalloc()</title>
<updated>2010-11-21T18:04:04+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2010-11-20T07:46:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=7a1c8e5ab120a5f352e78bbc1fa5bb64e6f23639'/>
<id>7a1c8e5ab120a5f352e78bbc1fa5bb64e6f23639</id>
<content type='text'>
We forgot to use __GFP_HIGHMEM in several __vmalloc() calls.

In ceph, add the missing flag.

In fib_trie.c, xfrm_hash.c and request_sock.c, using vzalloc() is
cleaner and allows using HIGHMEM pages as well.

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>
We forgot to use __GFP_HIGHMEM in several __vmalloc() calls.

In ceph, add the missing flag.

In fib_trie.c, xfrm_hash.c and request_sock.c, using vzalloc() is
cleaner and allows using HIGHMEM pages as well.

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: fix kernel-doc for sk_filter_rcu_release</title>
<updated>2010-11-19T17:27:15+00:00</updated>
<author>
<name>Randy Dunlap</name>
<email>randy.dunlap@oracle.com</email>
</author>
<published>2010-11-18T13:02:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0302b8622ce696af1cda22fcf207d3793350e896'/>
<id>0302b8622ce696af1cda22fcf207d3793350e896</id>
<content type='text'>
Fix kernel-doc warning for sk_filter_rcu_release():

Warning(net/core/filter.c:586): missing initial short description on line:
 * 	sk_filter_rcu_release: Release a socket filter by rcu_head

Signed-off-by: Randy Dunlap &lt;randy.dunlap@oracle.com&gt;
Cc:	"David S. Miller" &lt;davem@davemloft.net&gt;
Cc:	netdev@vger.kernel.org
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix kernel-doc warning for sk_filter_rcu_release():

Warning(net/core/filter.c:586): missing initial short description on line:
 * 	sk_filter_rcu_release: Release a socket filter by rcu_head

Signed-off-by: Randy Dunlap &lt;randy.dunlap@oracle.com&gt;
Cc:	"David S. Miller" &lt;davem@davemloft.net&gt;
Cc:	netdev@vger.kernel.org
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
