Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1104 #3

Merged
merged 48 commits into from
Nov 5, 2013
Merged

1104 #3

merged 48 commits into from
Nov 5, 2013

Commits on Oct 2, 2013

  1. netfilter: ebt_ulog: fix info leaks

    The ulog messages leak heap bytes by the means of padding bytes and
    incompletely filled string arrays. Fix those by memset(0)'ing the
    whole struct before filling it.
    
    Signed-off-by: Mathias Krause <minipli@googlemail.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    minipli authored and ummakynes committed Oct 2, 2013
    Configuration menu
    Copy the full SHA
    ca0a106 View commit details
    Browse the repository at this point in the history
  2. netfilter: ipt_ULOG: fix info leaks

    The ulog messages leak heap bytes by the means of padding bytes and
    incompletely filled string arrays. Fix those by memset(0)'ing the
    whole struct before filling it.
    
    Signed-off-by: Mathias Krause <minipli@googlemail.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    minipli authored and ummakynes committed Oct 2, 2013
    Configuration menu
    Copy the full SHA
    278f2b3 View commit details
    Browse the repository at this point in the history

Commits on Oct 16, 2013

  1. openvswitch: fix vport-netdev unregister

    The combination of two commits:
    commit 8e4e171
    ("openvswitch: Simplify datapath locking.")
    commit 2537b4d
    ("openvswitch:: link upper device for port devices")
    
    introduced a bug where upper_dev wasn't unlinked upon
    netdev_unregister notification
    
    The following steps:
    
      modprobe openvswitch
      ovs-dpctl add-dp test
      ip tuntap add dev tap1 mode tap
      ovs-dpctl add-if test tap1
      ip tuntap del dev tap1 mode tap
    
    are causing multiple warnings:
    
    [   62.747557] gre: GRE over IPv4 demultiplexor driver
    [   62.749579] openvswitch: Open vSwitch switching datapath
    [   62.755087] device test entered promiscuous mode
    [   62.765911] device tap1 entered promiscuous mode
    [   62.766033] IPv6: ADDRCONF(NETDEV_UP): tap1: link is not ready
    [   62.769017] ------------[ cut here ]------------
    [   62.769022] WARNING: CPU: 1 PID: 3267 at net/core/dev.c:5501 rollback_registered_many+0x20f/0x240()
    [   62.769023] Modules linked in: openvswitch gre vxlan ip_tunnel libcrc32c ip6table_filter ip6_tables ebtable_nat ebtables nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack xt_CHECKSUM iptable_mangle ipt_REJECT xt_tcpudp iptable_filter ip_tables x_tables bridge stp llc vhost_net macvtap macvlan vhost kvm_intel kvm dm_crypt iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi hid_generic mxm_wmi eeepc_wmi asus_wmi sparse_keymap dm_multipath psmouse serio_raw usbhid hid parport_pc ppdev firewire_ohci lpc_ich firewire_core e1000e crc_itu_t binfmt_misc igb dca ptp pps_core mac_hid wmi lp parport i2o_config i2o_block video
    [   62.769051] CPU: 1 PID: 3267 Comm: ip Not tainted 3.12.0-rc3+ #60
    [   62.769052] Hardware name: System manufacturer System Product Name/P8Z77 WS, BIOS 3007 07/26/2012
    [   62.769053]  0000000000000009 ffff8807f25cbd28 ffffffff8175e575 0000000000000006
    [   62.769055]  0000000000000000 ffff8807f25cbd68 ffffffff8105314c ffff8807f25cbd58
    [   62.769057]  ffff8807f2634000 ffff8807f25cbdc8 ffff8807f25cbd88 ffff8807f25cbdc8
    [   62.769059] Call Trace:
    [   62.769062]  [<ffffffff8175e575>] dump_stack+0x55/0x76
    [   62.769065]  [<ffffffff8105314c>] warn_slowpath_common+0x8c/0xc0
    [   62.769067]  [<ffffffff8105319a>] warn_slowpath_null+0x1a/0x20
    [   62.769069]  [<ffffffff8162a04f>] rollback_registered_many+0x20f/0x240
    [   62.769071]  [<ffffffff8162a101>] rollback_registered+0x31/0x40
    [   62.769073]  [<ffffffff8162a488>] unregister_netdevice_queue+0x58/0x90
    [   62.769075]  [<ffffffff8154f900>] __tun_detach+0x140/0x340
    [   62.769077]  [<ffffffff8154fb36>] tun_chr_close+0x36/0x60
    [   62.769080]  [<ffffffff811bddaf>] __fput+0xff/0x260
    [   62.769082]  [<ffffffff811bdf5e>] ____fput+0xe/0x10
    [   62.769084]  [<ffffffff8107b515>] task_work_run+0xb5/0xe0
    [   62.769087]  [<ffffffff810029b9>] do_notify_resume+0x59/0x80
    [   62.769089]  [<ffffffff813a41fe>] ? trace_hardirqs_on_thunk+0x3a/0x3f
    [   62.769091]  [<ffffffff81770f5a>] int_signal+0x12/0x17
    [   62.769093] ---[ end trace 838756c62e156ffb ]---
    [   62.769481] ------------[ cut here ]------------
    [   62.769485] WARNING: CPU: 1 PID: 92 at fs/sysfs/inode.c:325 sysfs_hash_and_remove+0xa9/0xb0()
    [   62.769486] sysfs: can not remove 'master', no directory
    [   62.769486] Modules linked in: openvswitch gre vxlan ip_tunnel libcrc32c ip6table_filter ip6_tables ebtable_nat ebtables nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack xt_CHECKSUM iptable_mangle ipt_REJECT xt_tcpudp iptable_filter ip_tables x_tables bridge stp llc vhost_net macvtap macvlan vhost kvm_intel kvm dm_crypt iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi hid_generic mxm_wmi eeepc_wmi asus_wmi sparse_keymap dm_multipath psmouse serio_raw usbhid hid parport_pc ppdev firewire_ohci lpc_ich firewire_core e1000e crc_itu_t binfmt_misc igb dca ptp pps_core mac_hid wmi lp parport i2o_config i2o_block video
    [   62.769514] CPU: 1 PID: 92 Comm: kworker/1:2 Tainted: G        W    3.12.0-rc3+ #60
    [   62.769515] Hardware name: System manufacturer System Product Name/P8Z77 WS, BIOS 3007 07/26/2012
    [   62.769518] Workqueue: events ovs_dp_notify_wq [openvswitch]
    [   62.769519]  0000000000000009 ffff880807ad3ac8 ffffffff8175e575 0000000000000006
    [   62.769521]  ffff880807ad3b18 ffff880807ad3b08 ffffffff8105314c ffff880807ad3b28
    [   62.769523]  0000000000000000 ffffffff81a87a1f ffff8807f2634000 ffff880037038500
    [   62.769525] Call Trace:
    [   62.769528]  [<ffffffff8175e575>] dump_stack+0x55/0x76
    [   62.769529]  [<ffffffff8105314c>] warn_slowpath_common+0x8c/0xc0
    [   62.769531]  [<ffffffff81053236>] warn_slowpath_fmt+0x46/0x50
    [   62.769533]  [<ffffffff8123e7e9>] sysfs_hash_and_remove+0xa9/0xb0
    [   62.769535]  [<ffffffff81240e96>] sysfs_remove_link+0x26/0x30
    [   62.769538]  [<ffffffff81631ef7>] __netdev_adjacent_dev_remove+0xf7/0x150
    [   62.769540]  [<ffffffff81632037>] __netdev_adjacent_dev_unlink_lists+0x27/0x50
    [   62.769542]  [<ffffffff8163213a>] __netdev_adjacent_dev_unlink_neighbour+0x3a/0x50
    [   62.769544]  [<ffffffff8163218d>] netdev_upper_dev_unlink+0x3d/0x140
    [   62.769548]  [<ffffffffa033c2db>] netdev_destroy+0x4b/0x80 [openvswitch]
    [   62.769550]  [<ffffffffa033b696>] ovs_vport_del+0x46/0x60 [openvswitch]
    [   62.769552]  [<ffffffffa0335314>] ovs_dp_detach_port+0x44/0x60 [openvswitch]
    [   62.769555]  [<ffffffffa0336574>] ovs_dp_notify_wq+0xb4/0x150 [openvswitch]
    [   62.769557]  [<ffffffff81075c28>] process_one_work+0x1d8/0x6a0
    [   62.769559]  [<ffffffff81075bc8>] ? process_one_work+0x178/0x6a0
    [   62.769562]  [<ffffffff8107659b>] worker_thread+0x11b/0x370
    [   62.769564]  [<ffffffff81076480>] ? rescuer_thread+0x350/0x350
    [   62.769566]  [<ffffffff8107f44a>] kthread+0xea/0xf0
    [   62.769568]  [<ffffffff8107f360>] ? flush_kthread_worker+0x150/0x150
    [   62.769570]  [<ffffffff81770bac>] ret_from_fork+0x7c/0xb0
    [   62.769572]  [<ffffffff8107f360>] ? flush_kthread_worker+0x150/0x150
    [   62.769573] ---[ end trace 838756c62e156ffc ]---
    [   62.769574] ------------[ cut here ]------------
    [   62.769576] WARNING: CPU: 1 PID: 92 at fs/sysfs/inode.c:325 sysfs_hash_and_remove+0xa9/0xb0()
    [   62.769577] sysfs: can not remove 'upper_test', no directory
    [   62.769577] Modules linked in: openvswitch gre vxlan ip_tunnel libcrc32c ip6table_filter ip6_tables ebtable_nat ebtables nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack xt_CHECKSUM iptable_mangle ipt_REJECT xt_tcpudp iptable_filter ip_tables x_tables bridge stp llc vhost_net macvtap macvlan vhost kvm_intel kvm dm_crypt iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi hid_generic mxm_wmi eeepc_wmi asus_wmi sparse_keymap dm_multipath psmouse serio_raw usbhid hid parport_pc ppdev firewire_ohci lpc_ich firewire_core e1000e crc_itu_t binfmt_misc igb dca ptp pps_core mac_hid wmi lp parport i2o_config i2o_block video
    [   62.769603] CPU: 1 PID: 92 Comm: kworker/1:2 Tainted: G        W    3.12.0-rc3+ #60
    [   62.769604] Hardware name: System manufacturer System Product Name/P8Z77 WS, BIOS 3007 07/26/2012
    [   62.769606] Workqueue: events ovs_dp_notify_wq [openvswitch]
    [   62.769607]  0000000000000009 ffff880807ad3ac8 ffffffff8175e575 0000000000000006
    [   62.769609]  ffff880807ad3b18 ffff880807ad3b08 ffffffff8105314c ffff880807ad3b58
    [   62.769611]  0000000000000000 ffff880807ad3bd9 ffff8807f2634000 ffff880037038500
    [   62.769613] Call Trace:
    [   62.769615]  [<ffffffff8175e575>] dump_stack+0x55/0x76
    [   62.769617]  [<ffffffff8105314c>] warn_slowpath_common+0x8c/0xc0
    [   62.769619]  [<ffffffff81053236>] warn_slowpath_fmt+0x46/0x50
    [   62.769621]  [<ffffffff8123e7e9>] sysfs_hash_and_remove+0xa9/0xb0
    [   62.769622]  [<ffffffff81240e96>] sysfs_remove_link+0x26/0x30
    [   62.769624]  [<ffffffff81631f22>] __netdev_adjacent_dev_remove+0x122/0x150
    [   62.769627]  [<ffffffff81632037>] __netdev_adjacent_dev_unlink_lists+0x27/0x50
    [   62.769629]  [<ffffffff8163213a>] __netdev_adjacent_dev_unlink_neighbour+0x3a/0x50
    [   62.769631]  [<ffffffff8163218d>] netdev_upper_dev_unlink+0x3d/0x140
    [   62.769633]  [<ffffffffa033c2db>] netdev_destroy+0x4b/0x80 [openvswitch]
    [   62.769636]  [<ffffffffa033b696>] ovs_vport_del+0x46/0x60 [openvswitch]
    [   62.769638]  [<ffffffffa0335314>] ovs_dp_detach_port+0x44/0x60 [openvswitch]
    [   62.769640]  [<ffffffffa0336574>] ovs_dp_notify_wq+0xb4/0x150 [openvswitch]
    [   62.769642]  [<ffffffff81075c28>] process_one_work+0x1d8/0x6a0
    [   62.769644]  [<ffffffff81075bc8>] ? process_one_work+0x178/0x6a0
    [   62.769646]  [<ffffffff8107659b>] worker_thread+0x11b/0x370
    [   62.769648]  [<ffffffff81076480>] ? rescuer_thread+0x350/0x350
    [   62.769650]  [<ffffffff8107f44a>] kthread+0xea/0xf0
    [   62.769652]  [<ffffffff8107f360>] ? flush_kthread_worker+0x150/0x150
    [   62.769654]  [<ffffffff81770bac>] ret_from_fork+0x7c/0xb0
    [   62.769656]  [<ffffffff8107f360>] ? flush_kthread_worker+0x150/0x150
    [   62.769657] ---[ end trace 838756c62e156ffd ]---
    [   62.769724] device tap1 left promiscuous mode
    
    This patch also affects moving devices between net namespaces.
    
    OVS used to ignore netns move notifications which caused problems.
    Like:
      ovs-dpctl add-if test tap1
      ip link set tap1 netns 3512
    and then removing tap1 inside the namespace will cause hang on missing dev_put.
    
    With this patch OVS will detach dev upon receiving netns move event.
    
    Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
    Signed-off-by: Jesse Gross <jesse@nicira.com>
    Alexei Starovoitov authored and jessegross committed Oct 16, 2013
    Configuration menu
    Copy the full SHA
    b07c265 View commit details
    Browse the repository at this point in the history

Commits on Oct 18, 2013

  1. xfrm: prevent ipcomp scratch buffer race condition

    In ipcomp_compress(), sortirq is enabled too early, allowing the
    per-cpu scratch buffer to be rewritten by ipcomp_decompress()
    (called on the same CPU in softirq context) between populating
    the buffer and copying the compressed data to the skb.
    
    v2: as pointed out by Steffen Klassert, if we also move the
    local_bh_disable() before reading the per-cpu pointers, we can
    get rid of get_cpu()/put_cpu().
    
    v3: removed ipcomp_decompress part (as explained by Herbert Xu,
    it cannot be called from process context), get rid of cpu
    variable (thanks to Eric Dumazet)
    
    Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    mkubecek authored and klassert committed Oct 18, 2013
    Configuration menu
    Copy the full SHA
    12e3594 View commit details
    Browse the repository at this point in the history

Commits on Oct 22, 2013

  1. netfilter: x_tables: fix ordering of jumpstack allocation and table u…

    …pdate
    
    During kernel stability testing on an SMP ARMv7 system, Yalin Wang
    reported the following panic from the netfilter code:
    
      1fe0: 0000001c 5e2d3b10 4007e779 4009e110 60000010 00000032 ff565656 ff545454
      [<c06c48dc>] (ipt_do_table+0x448/0x584) from [<c0655ef0>] (nf_iterate+0x48/0x7c)
      [<c0655ef0>] (nf_iterate+0x48/0x7c) from [<c0655f7c>] (nf_hook_slow+0x58/0x104)
      [<c0655f7c>] (nf_hook_slow+0x58/0x104) from [<c0683bbc>] (ip_local_deliver+0x88/0xa8)
      [<c0683bbc>] (ip_local_deliver+0x88/0xa8) from [<c0683718>] (ip_rcv_finish+0x418/0x43c)
      [<c0683718>] (ip_rcv_finish+0x418/0x43c) from [<c062b1c4>] (__netif_receive_skb+0x4cc/0x598)
      [<c062b1c4>] (__netif_receive_skb+0x4cc/0x598) from [<c062b314>] (process_backlog+0x84/0x158)
      [<c062b314>] (process_backlog+0x84/0x158) from [<c062de84>] (net_rx_action+0x70/0x1dc)
      [<c062de84>] (net_rx_action+0x70/0x1dc) from [<c0088230>] (__do_softirq+0x11c/0x27c)
      [<c0088230>] (__do_softirq+0x11c/0x27c) from [<c008857c>] (do_softirq+0x44/0x50)
      [<c008857c>] (do_softirq+0x44/0x50) from [<c0088614>] (local_bh_enable_ip+0x8c/0xd0)
      [<c0088614>] (local_bh_enable_ip+0x8c/0xd0) from [<c06b0330>] (inet_stream_connect+0x164/0x298)
      [<c06b0330>] (inet_stream_connect+0x164/0x298) from [<c061d68c>] (sys_connect+0x88/0xc8)
      [<c061d68c>] (sys_connect+0x88/0xc8) from [<c000e340>] (ret_fast_syscall+0x0/0x30)
      Code: 2a000021 e59d2028 e59de01c e59f011c (e7824103)
      ---[ end trace da227214a82491bd ]---
      Kernel panic - not syncing: Fatal exception in interrupt
    
    This comes about because CPU1 is executing xt_replace_table in response
    to a setsockopt syscall, resulting in:
    
    	ret = xt_jumpstack_alloc(newinfo);
    		--> newinfo->jumpstack = kzalloc(size, GFP_KERNEL);
    
    	[...]
    
    	table->private = newinfo;
    	newinfo->initial_entries = private->initial_entries;
    
    Meanwhile, CPU0 is handling the network receive path and ends up in
    ipt_do_table, resulting in:
    
    	private = table->private;
    
    	[...]
    
    	jumpstack  = (struct ipt_entry **)private->jumpstack[cpu];
    
    On weakly ordered memory architectures, the writes to table->private
    and newinfo->jumpstack from CPU1 can be observed out of order by CPU0.
    Furthermore, on architectures which don't respect ordering of address
    dependencies (i.e. Alpha), the reads from CPU0 can also be re-ordered.
    
    This patch adds an smp_wmb() before the assignment to table->private
    (which is essentially publishing newinfo) to ensure that all writes to
    newinfo will be observed before plugging it into the table structure.
    A dependent-read barrier is also added on the consumer sides, to ensure
    the same ordering requirements are also respected there.
    
    Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Reported-by: Wang, Yalin <Yalin.Wang@sonymobile.com>
    Tested-by: Wang, Yalin <Yalin.Wang@sonymobile.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    wildea01 authored and ummakynes committed Oct 22, 2013
    Configuration menu
    Copy the full SHA
    b416c14 View commit details
    Browse the repository at this point in the history

Commits on Oct 23, 2013

  1. Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/gi…

    …t/pablo/nf
    
    Pablo Neira Ayuso says:
    
    ====================
    The following patchset contains three netfilter fixes for your net
    tree, they are:
    
    * A couple of fixes to resolve info leak to userspace due to uninitialized
      memory area in ulogd, from Mathias Krause.
    
    * Fix instruction ordering issues that may lead to the access of
      uninitialized data in x_tables. The problem involves the table update
     (producer) and the main packet matching (consumer) routines. Detected in
      SMP ARMv7, from Will Deacon.
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Oct 23, 2013
    Configuration menu
    Copy the full SHA
    afb14c7 View commit details
    Browse the repository at this point in the history
  2. net: sctp: fix ASCONF to allow non SCTP_ADDR_SRC addresses in ipv6

    Commit 8a07eb0 ("sctp: Add ASCONF operation on the single-homed host")
    implemented possible use of IPv4 addresses with non SCTP_ADDR_SRC state
    as source address when sending ASCONF (ADD) packets, but IPv6 part for
    that was not implemented in 8a07eb0. Therefore, as this is not restricted
    to IPv4-only, fix this up to allow the same for IPv6 addresses in SCTP.
    
    Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
    Cc: Michio Honda <micchie@sfc.wide.ad.jp>
    Acked-by: Michio Honda <micchie@sfc.wide.ad.jp>
    Acked-by: Vlad Yasevich <vyasevich@gmail.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    borkmann authored and davem330 committed Oct 23, 2013
    Configuration menu
    Copy the full SHA
    fecda03 View commit details
    Browse the repository at this point in the history

Commits on Oct 25, 2013

  1. net: wan: sbni: remove assembly crc32 code

    There is also a C function doing the same thing. Unless the asm code is
    110% faster we could stick to the C function.
    
    Signed-off-by: Sebastian Andrzej Siewior <sebastian@breakpoint.cc>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    sebastianas authored and davem330 committed Oct 25, 2013
    Configuration menu
    Copy the full SHA
    0e67d99 View commit details
    Browse the repository at this point in the history
  2. netconsole: fix NULL pointer dereference

    We need to disable the netconsole (enabled = 0) before setting nt->np.dev
    to NULL because otherwise we might still have users after the
    netpoll_cleanup() since nt->enabled is set afterwards and we can
    have a message which will result in a NULL pointer dereference.
    It is very easy to hit dereferences all over the netpoll_send_udp function
    by running the following two loops in parallel:
    while [ 1 ]; do echo 1 > enabled; echo 0 > enabled; done;
    while [ 1 ]; do echo 00:11:22:33:44:55 > remote_mac; done;
    (the second loop is to generate messages, it can be done by anything)
    
    We're safe to set nt->np.dev = NULL and nt->enabled = 0 with the spinlock
    since it's required in the write_msg() function.
    
    Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com>
    Reviewed-by: Veacelsav Falico <vfalico@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Nikolay Aleksandrov authored and davem330 committed Oct 25, 2013
    Configuration menu
    Copy the full SHA
    45e526e View commit details
    Browse the repository at this point in the history
  3. netconsole: fix multiple race conditions

    In every netconsole option that can be set through configfs there's a
    race when checking for nt->enabled since it can be modified at the same
    time. Probably the most damage can be done by store_enabled when racing
    with another instance of itself. Fix all the races with one stone by
    moving the mutex lock around the ->store call for all options.
    
    Signed-off-by: Nikolay Aleksandrov <nikolay@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Nikolay Aleksandrov authored and davem330 committed Oct 25, 2013
    Configuration menu
    Copy the full SHA
    c7c6eff View commit details
    Browse the repository at this point in the history
  4. netpoll: fix rx_hook() interface by passing the skb

    Right now skb->data is passed to rx_hook() even if the skb
    has not been linearised and without giving rx_hook() a way
    to linearise it.
    
    Change the rx_hook() interface and make it accept the skb
    and the offset to the UDP payload as arguments. rx_hook() is
    also renamed to rx_skb_hook() to ensure that out of the tree
    users notice the API change.
    
    In this way any rx_skb_hook() implementation can perform all
    the needed operations to properly (and safely) access the
    skb data.
    
    Signed-off-by: Antonio Quartulli <antonio@meshcoding.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    ordex authored and davem330 committed Oct 25, 2013
    Configuration menu
    Copy the full SHA
    8fb479a View commit details
    Browse the repository at this point in the history
  5. ipv6: reset dst.expires value when clearing expire flag

    On receiving a packet too big icmp error we update the expire value by
    calling rt6_update_expires. This function uses dst_set_expires which is
    implemented that it can only reduce the expiration value of the dst entry.
    
    If we insert new routing non-expiry information into the ipv6 fib where
    we already have a matching rt6_info we only clear the RTF_EXPIRES flag
    in rt6i_flags and leave the dst.expires value as is.
    
    When new mtu information arrives for that cached dst_entry we again
    call dst_set_expires. This time it won't update the dst.expire value
    because we left the dst.expire value intact from the last update. So
    dst_set_expires won't touch dst.expires.
    
    Fix this by resetting dst.expires when clearing the RTF_EXPIRE flag.
    dst_set_expires checks for a zero expiration and updates the
    dst.expires.
    
    In the past this (not updating dst.expires) was necessary because
    dst.expire was placed in a union with the dst_entry *from reference
    and rt6_clean_expires did assign NULL to it. This split happend in
    ecd9883 ("ipv6: fix race condition
    regarding dst->expires and dst->from").
    
    Reported-by: Steinar H. Gunderson <sgunderson@bigfoot.com>
    Reported-by: Valentijn Sessink <valentyn@blub.net>
    Cc: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Tested-by: Valentijn Sessink <valentyn@blub.net>
    Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    strssndktn authored and davem330 committed Oct 25, 2013
    Configuration menu
    Copy the full SHA
    01ba16d View commit details
    Browse the repository at this point in the history
  6. ipv6: ip6_dst_check needs to check for expired dst_entries

    On receiving a packet too big icmp error we check if our current cached
    dst_entry in the socket is still valid. This validation check did not
    care about the expiration of the (cached) route.
    
    The error path I traced down:
    The socket receives a packet too big mtu notification. It still has a
    valid dst_entry and thus issues the ip6_rt_pmtu_update on this dst_entry,
    setting RTF_EXPIRE and updates the dst.expiration value (which could
    fail because of not up-to-date expiration values, see previous patch).
    
    In some seldom cases we race with a) the ip6_fib gc or b) another routing
    lookup which would result in a recreation of the cached rt6_info from its
    parent non-cached rt6_info. While copying the rt6_info we reinitialize the
    metrics store by copying it over from the parent thus invalidating the
    just installed pmtu update (both dsts use the same key to the inetpeer
    storage). The dst_entry with the just invalidated metrics data would
    just get its RTF_EXPIRES flag cleared and would continue to stay valid
    for the socket.
    
    We should have not issued the pmtu update on the already expired dst_entry
    in the first placed. By checking the expiration on the dst entry and
    doing a relookup in case it is out of date we close the race because
    we would install a new rt6_info into the fib before we issue the pmtu
    update, thus closing this race.
    
    Not reliably updating the dst.expire value was fixed by the patch "ipv6:
    reset dst.expires value when clearing expire flag".
    
    Reported-by: Steinar H. Gunderson <sgunderson@bigfoot.com>
    Reported-by: Valentijn Sessink <valentyn@blub.net>
    Cc: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
    Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Tested-by: Valentijn Sessink <valentyn@blub.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    strssndktn authored and davem330 committed Oct 25, 2013
    Configuration menu
    Copy the full SHA
    e3bc10b View commit details
    Browse the repository at this point in the history
  7. ax88179_178a: Remove AX_MEDIUM_ALWAYS_ONE bit in AX_MEDIUM_STATUS_MOD…

    …E register to avoid TX throttling
    
    Remove AX_MEDIUM_ALWAYS_ONE in AX_MEDIUM_STATUS_MODE register.
    Setting this bit may cause TX throttling in Half-Duplex mode.
    
    Signed-off-by: Freddy Xin <freddy@asix.com.tw>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    FreddyXin authored and davem330 committed Oct 25, 2013
    Configuration menu
    Copy the full SHA
    4c8e84b View commit details
    Browse the repository at this point in the history

Commits on Oct 26, 2013

  1. qlcnic: Do not force adapter to perform LRO without destination IP check

    Forcing adapter to perform LRO without destination IP check
    degrades the performance.
    
    Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Shahed Shaikh authored and davem330 committed Oct 26, 2013
    Configuration menu
    Copy the full SHA
    598c45b View commit details
    Browse the repository at this point in the history
  2. qlcnic: Do not read QLCNIC_FW_CAPABILITY_MORE_CAPS bit for 83xx adapter

    Only 82xx adapter advertises QLCNIC_FW_CAPABILITY_MORE_CAPS bit.
    Reading this bit from 83xx adapter causes the driver to skip
    extra capabilities registers.
    
    Because of this, driver was not issuing qlcnic_fw_cmd_set_drv_version()
    for 83xx adapter.
    
    This bug was introduced in commit 8af3f33
     ("qlcnic: Add support for 'set driver version' in 83XX").
    
    Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Shahed Shaikh authored and davem330 committed Oct 26, 2013
    Configuration menu
    Copy the full SHA
    d6994ca View commit details
    Browse the repository at this point in the history
  3. Merge branch 'qlcnic'

    Shahed Shaikh says:
    
    ====================
    qlcnic: Bug fixes
    
    This patch series contains following fixes-
    * Performace drop because driver was forcing adapter not to check
      destination IP for LRO.
    * driver was not issuing qlcnic_fw_cmd_set_drv_version() to 83xx adapter
      becasue of improper handling of QLCNIC_FW_CAPABILITY_MORE_CAPS bit.
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Oct 26, 2013
    Configuration menu
    Copy the full SHA
    d49c83d View commit details
    Browse the repository at this point in the history

Commits on Oct 27, 2013

  1. be2net: Warn users of possible broken functionality on BE2 cards with…

    … very old FW versions with latest driver
    
    On very old FW versions < 4.0, the mailbox command to set interrupts
    on the card succeeds even though it is not supported and should have
    failed, leading to a scenario where interrupts do not work.
    Hence warn users to upgrade to a suitable FW version to avoid seeing
    broken functionality.
    
    Signed-off-by: Somnath Kotur <somnath.kotur@emulex.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Somnath Kotur authored and davem330 committed Oct 27, 2013
    Configuration menu
    Copy the full SHA
    e9e2a90 View commit details
    Browse the repository at this point in the history
  2. tcp: fix SYNACK RTT estimation in Fast Open

    tp->lsndtime may not always be the SYNACK timestamp if a passive
    Fast Open socket sends data before handshake completes. And if the
    remote acknowledges both the data and the SYNACK, the RTT sample
    is already taken in tcp_ack(), so no need to call
    tcp_update_ack_rtt() in tcp_synack_rtt_meas() aagain.
    
    Signed-off-by: Yuchung Cheng <ycheng@google.com>
    Acked-by: Neal Cardwell <ncardwell@google.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    yuchungcheng authored and davem330 committed Oct 27, 2013
    Configuration menu
    Copy the full SHA
    bc15afa View commit details
    Browse the repository at this point in the history
  3. tcp: only take RTT from timestamps if new data is acked

    Patch ed08495 "tcp: use RTT from SACK for RTO" has a bug that
    it does not check if the ACK acknowledge new data before taking
    the RTT sample from TCP timestamps. This patch adds the check
    back as required by the RFC.
    
    Signed-off-by: Yuchung Cheng <ycheng@google.com>
    Acked-by: Neal Cardwell <ncardwell@google.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    yuchungcheng authored and davem330 committed Oct 27, 2013
    Configuration menu
    Copy the full SHA
    2909d87 View commit details
    Browse the repository at this point in the history
  4. tcp: do not rearm RTO when future data are sacked

    Patch ed08495 "tcp: use RTT from SACK for RTO" always re-arms RTO upon
    obtaining a RTT sample from newly sacked data.
    
    But technically RTO should only be re-armed when the data sent before
    the last (re)transmission of write queue head are (s)acked. Otherwise
    the RTO may continue to extend during loss recovery on data sent
    in the future.
    
    Note that RTTs from ACK or timestamps do not have this problem, as the RTT
    source must be from data sent before.
    
    The new RTO re-arm policy is
    1) Always re-arm RTO if SND.UNA is advanced
    2) Re-arm RTO if sack RTT is available, provided the sacked data was
       sent before the last time write_queue_head was sent.
    
    Signed-off-by: Larry Brakmo <brakmo@google.com>
    Signed-off-by: Yuchung Cheng <ycheng@google.com>
    Acked-by: Neal Cardwell <ncardwell@google.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    yuchungcheng authored and davem330 committed Oct 27, 2013
    Configuration menu
    Copy the full SHA
    2f715c1 View commit details
    Browse the repository at this point in the history
  5. Documentation/networking: netdev-FAQ typo corrections

    Various typo fixes to netdev-FAQ.txt:
    - capitalize Linux
    - hyphenate dual-word adjectives
    - minor punctuation fixes
    
    Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
    Acked-by: Paul Gortmaker <paul.gortmaker@windriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    rddunlap authored and davem330 committed Oct 27, 2013
    Configuration menu
    Copy the full SHA
    ad86de8 View commit details
    Browse the repository at this point in the history

Commits on Oct 28, 2013

  1. pkt_sched: fq: clear time_next_packet for reused flows

    When a socket is freed/reallocated, we need to clear time_next_packet
    or else we can inherit a prior value and delay first packets of the
    new flow.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Eric Dumazet authored and davem330 committed Oct 28, 2013
    Configuration menu
    Copy the full SHA
    fc59d5b View commit details
    Browse the repository at this point in the history
  2. xfrm: Increase the garbage collector threshold

    With the removal of the routing cache, we lost the
    option to tweak the garbage collector threshold
    along with the maximum routing cache size. So git
    commit 703fb94 ("xfrm: Fix the gc threshold value
    for ipv4") moved back to a static threshold.
    
    It turned out that the current threshold before we
    start garbage collecting is much to small for some
    workloads, so increase it from 1024 to 32768. This
    means that we start the garbage collector if we have
    more than 32768 dst entries in the system and refuse
    new allocations if we are above 65536.
    
    Reported-by: Wolfgang Walter <linux@stwm.de>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    klassert committed Oct 28, 2013
    Configuration menu
    Copy the full SHA
    eeb1b73 View commit details
    Browse the repository at this point in the history

Commits on Oct 29, 2013

  1. tcp: gso: fix truesize tracking

    commit 6ff50cd ("tcp: gso: do not generate out of order packets")
    had an heuristic that can trigger a warning in skb_try_coalesce(),
    because skb->truesize of the gso segments were exactly set to mss.
    
    This breaks the requirement that
    
    skb->truesize >= skb->len + truesizeof(struct sk_buff);
    
    It can trivially be reproduced by :
    
    ifconfig lo mtu 1500
    ethtool -K lo tso off
    netperf
    
    As the skbs are looped into the TCP networking stack, skb_try_coalesce()
    warns us of these skb under-estimating their truesize.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: Alexei Starovoitov <ast@plumgrid.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Eric Dumazet authored and davem330 committed Oct 29, 2013
    Configuration menu
    Copy the full SHA
    0d08c42 View commit details
    Browse the repository at this point in the history
  2. bnx2x: prevent FW assert on low mem during unload

    Buffers for FW statistics were allocated at an inappropriate time; In a machine
    where the driver encounters problems allocating all of its queues, the driver
    would still create FW requests for the statistics of the non-existing queues.
    The wrong order of memory allocation could lead to zeroed statistics messages
    being sent, leading to fw assert in case function 0 was down.
    
    This changes the order of allocations, guaranteeing that statistic requests will
    only be generated for actual queues.
    
    Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
    Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com>
    Signed-off-by: Ariel Elior <ariele@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Dmitry Kravkov authored and davem330 committed Oct 29, 2013
    Configuration menu
    Copy the full SHA
    e3ed4ea View commit details
    Browse the repository at this point in the history
  3. bnx2x: Disable VF access on PF removal

    When the bnx2x driver is rmmoded, if VFs of a given PF will be assigned
    to a VM then that PF will be unable to call `pci_disable_sriov()'.
    
    If for that same PF there would also exist unassigned VFs in the hypervisor,
    the result will be that after the removal there will still be virtual PCI
    functions on the hypervisor.
    If the bnx2x module were to be re-inserted, the result will be that the VFs
    on the hypervisor will be re-probed directly following the PF's probe, even
    though that in regular loading flow sriov is only enabled once PF is loaded.
    The probed VF will then try to access its bar, causing a PCI error as the HW
    is not in a state enabling such a request.
    
    This patch adds a missing disablement procedure to the PF's removal, one that
    sets registers viewable to the VF to indicate that the VFs have no permission
    to access the bar, thus resulting in probe errors instead of PCI errors.
    
    Signed-off-by: Ariel Elior <ariele@broadcom.com>
    Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Ariel Elior authored and davem330 committed Oct 29, 2013
    Configuration menu
    Copy the full SHA
    826cb7b View commit details
    Browse the repository at this point in the history
  4. cxgb3: Fix length calculation in write_ofld_wr() on 32-bit architectures

    The length calculation here is now invalid on 32-bit architectures,
    since sk_buff::tail is a pointer and sk_buff::transport_header is
    an integer offset:
    
    drivers/net/ethernet/chelsio/cxgb3/sge.c: In function 'write_ofld_wr':
    drivers/net/ethernet/chelsio/cxgb3/sge.c:1603:9: warning: passing argument 4 of 'make_sgl' makes integer from pointer without a cast [enabled by default]
             adap->pdev);
             ^
    drivers/net/ethernet/chelsio/cxgb3/sge.c:964:28: note: expected 'unsigned int' but argument is of type 'sk_buff_data_t'
     static inline unsigned int make_sgl(const struct sk_buff *skb,
                                ^
    
    Use the appropriate skb accessor functions.
    
    Compile-tested only.
    
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Fixes: 1a37e41 ('net: Use 16bits for *_headers fields of struct skbuff')
    Signed-off-by: David S. Miller <davem@davemloft.net>
    bwhacks authored and davem330 committed Oct 29, 2013
    Configuration menu
    Copy the full SHA
    262e827 View commit details
    Browse the repository at this point in the history
  5. xen-netback: use jiffies_64 value to calculate credit timeout

    time_after_eq() only works if the delta is < MAX_ULONG/2.
    
    For a 32bit Dom0, if netfront sends packets at a very low rate, the time
    between subsequent calls to tx_credit_exceeded() may exceed MAX_ULONG/2
    and the test for timer_after_eq() will be incorrect. Credit will not be
    replenished and the guest may become unable to send packets (e.g., if
    prior to the long gap, all credit was exhausted).
    
    Use jiffies_64 variant to mitigate this problem for 32bit Dom0.
    
    Suggested-by: Jan Beulich <jbeulich@suse.com>
    Signed-off-by: Wei Liu <wei.liu2@citrix.com>
    Reviewed-by: David Vrabel <david.vrabel@citrix.com>
    Cc: Ian Campbell <ian.campbell@citrix.com>
    Cc: Jason Luan <jianhai.luan@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Wei Liu authored and davem330 committed Oct 29, 2013
    Configuration menu
    Copy the full SHA
    059dfa6 View commit details
    Browse the repository at this point in the history
  6. netfilter: xt_NFQUEUE: fix --queue-bypass regression

    V3 of the NFQUEUE target ignores the --queue-bypass flag,
    causing packets to be dropped when the userspace listener
    isn't running.
    
    Regression is in since 8746ddc ("netfilter: xt_NFQUEUE:
    introduce CPU fanout").
    
    Reported-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Holger Eitzenberger <holger@eitzenberger.org>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    vaesoo authored and ummakynes committed Oct 29, 2013
    Configuration menu
    Copy the full SHA
    d954777 View commit details
    Browse the repository at this point in the history
  7. Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/gi…

    …t/pablo/nf
    
    Pablo Neira Ayuso says:
    
    ====================
    This pull request contains the following netfilter fix:
    
    * fix --queue-bypass in xt_NFQUEUE revision 3. While adding the
      revision 3 of this target, the bypass flags were not correctly
      handled anymore, thus, breaking packet bypassing if no application
      is listening from userspace, patch from Holger Eitzenberger,
      reported by Florian Westphal.
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Oct 29, 2013
    Configuration menu
    Copy the full SHA
    68783ec View commit details
    Browse the repository at this point in the history
  8. net: x25: Fix dead URLs in Kconfig

    Update the URLs in the Kconfig file to the new pages at sangoma.com and cisco.com
    
    Signed-off-by: Michael Drüing <michael@drueing.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    darkstar authored and davem330 committed Oct 29, 2013
    Configuration menu
    Copy the full SHA
    706e282 View commit details
    Browse the repository at this point in the history
  9. Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git…

    …/jesse/openvswitch
    
    Jesse Gross says:
    
    ====================
    One patch for net/3.12 fixing an issue where devices could be in an
    invalid state they are removed while still attached to OVS.
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Oct 29, 2013
    Configuration menu
    Copy the full SHA
    911aeb1 View commit details
    Browse the repository at this point in the history
  10. bridge: pass correct vlan id to multicast code

    Currently multicast code attempts to extrace the vlan id from
    the skb even when vlan filtering is disabled.  This can lead
    to mdb entries being created with the wrong vlan id.
    Pass the already extracted vlan id to the multicast
    filtering code to make the correct id is used in
    creation as well as lookup.
    
    Signed-off-by: Vlad Yasevich <vyasevic@redhat.com>
    Acked-by: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Vlad Yasevich authored and davem330 committed Oct 29, 2013
    Configuration menu
    Copy the full SHA
    0649909 View commit details
    Browse the repository at this point in the history

Commits on Oct 30, 2013

  1. virtio-net: correctly handle cpu hotplug notifier during resuming

    commit 3ab098d (virtio-net: don't respond to
    cpu hotplug notifier if we're not ready) tries to bypass the cpu hotplug
    notifier by checking the config_enable and does nothing is it was false. So it
    need to try to hold the config_lock mutex which may happen in atomic
    environment which leads the following warnings:
    
    [  622.944441] CPU0 attaching NULL sched-domain.
    [  622.944446] CPU1 attaching NULL sched-domain.
    [  622.944485] CPU0 attaching NULL sched-domain.
    [  622.950795] BUG: sleeping function called from invalid context at kernel/mutex.c:616
    [  622.950796] in_atomic(): 1, irqs_disabled(): 1, pid: 10, name: migration/1
    [  622.950796] no locks held by migration/1/10.
    [  622.950798] CPU: 1 PID: 10 Comm: migration/1 Not tainted 3.12.0-rc5-wl-01249-gb91e82d #317
    [  622.950799] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
    [  622.950802]  0000000000000000 ffff88001d42dba0 ffffffff81a32f22 ffff88001bfb9c70
    [  622.950803]  ffff88001d42dbb0 ffffffff810edb02 ffff88001d42dc38 ffffffff81a396ed
    [  622.950805]  0000000000000046 ffff88001d42dbe8 ffffffff810e861d 0000000000000000
    [  622.950805] Call Trace:
    [  622.950810]  [<ffffffff81a32f22>] dump_stack+0x54/0x74
    [  622.950815]  [<ffffffff810edb02>] __might_sleep+0x112/0x114
    [  622.950817]  [<ffffffff81a396ed>] mutex_lock_nested+0x3c/0x3c6
    [  622.950818]  [<ffffffff810e861d>] ? up+0x39/0x3e
    [  622.950821]  [<ffffffff8153ea7c>] ? acpi_os_signal_semaphore+0x21/0x2d
    [  622.950824]  [<ffffffff81565ed1>] ? acpi_ut_release_mutex+0x5e/0x62
    [  622.950828]  [<ffffffff816d04ec>] virtnet_cpu_callback+0x33/0x87
    [  622.950830]  [<ffffffff81a42576>] notifier_call_chain+0x3c/0x5e
    [  622.950832]  [<ffffffff810e86a8>] __raw_notifier_call_chain+0xe/0x10
    [  622.950835]  [<ffffffff810c5556>] __cpu_notify+0x20/0x37
    [  622.950836]  [<ffffffff810c5580>] cpu_notify+0x13/0x15
    [  622.950838]  [<ffffffff81a237cd>] take_cpu_down+0x27/0x3a
    [  622.950841]  [<ffffffff81136289>] stop_machine_cpu_stop+0x93/0xf1
    [  622.950842]  [<ffffffff81136167>] cpu_stopper_thread+0xa0/0x12f
    [  622.950844]  [<ffffffff811361f6>] ? cpu_stopper_thread+0x12f/0x12f
    [  622.950847]  [<ffffffff81119710>] ? lock_release_holdtime.part.7+0xa3/0xa8
    [  622.950848]  [<ffffffff81135e4b>] ? cpu_stop_should_run+0x3f/0x47
    [  622.950850]  [<ffffffff810ea9b0>] smpboot_thread_fn+0x1c5/0x1e3
    [  622.950852]  [<ffffffff810ea7eb>] ? lg_global_unlock+0x67/0x67
    [  622.950854]  [<ffffffff810e36b7>] kthread+0xd8/0xe0
    [  622.950857]  [<ffffffff81a3bfad>] ? wait_for_common+0x12f/0x164
    [  622.950859]  [<ffffffff810e35df>] ? kthread_create_on_node+0x124/0x124
    [  622.950861]  [<ffffffff81a45ffc>] ret_from_fork+0x7c/0xb0
    [  622.950862]  [<ffffffff810e35df>] ? kthread_create_on_node+0x124/0x124
    [  622.950876] smpboot: CPU 1 is now offline
    [  623.194556] SMP alternatives: lockdep: fixing up alternatives
    [  623.194559] smpboot: Booting Node 0 Processor 1 APIC 0x1
    ...
    
    A correct fix is to unregister the hotcpu notifier during restore and register a
    new one in resume.
    
    Reported-by: Fengguang Wu <fengguang.wu@intel.com>
    Tested-by: Fengguang Wu <fengguang.wu@intel.com>
    Cc: Wanlong Gao <gaowanlong@cn.fujitsu.com>
    Cc: Rusty Russell <rusty@rustcorp.com.au>
    Cc: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Jason Wang <jasowang@redhat.com>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Reviewed-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    jasowang authored and davem330 committed Oct 30, 2013
    Configuration menu
    Copy the full SHA
    ec9debb View commit details
    Browse the repository at this point in the history
  2. ibm emac: Don't call napi_complete if napi_reschedule failed

    This patch fixes a bug which would trigger the BUG_ON() at
    net/core/dev.c:4156. It was found that this was due to continuing
    processing in the current poll call even when the call to
    napi_reschedule failed, indicating the device was already on the
    polling list. This resulted in an extra call to napi_complete which
    triggered the BUG_ON().
    
    This patch ensures that we only contine processing rotting packets in
    the current mal_poll call if we are not already on the polling list.
    
    Signed-off-by: Alistair Popple <alistair@popple.id.au>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    apopple authored and davem330 committed Oct 30, 2013
    Configuration menu
    Copy the full SHA
    b4dfd32 View commit details
    Browse the repository at this point in the history
  3. ibm emac: Fix locking for enable/disable eob irq

    Calls to mal_enable_eob_irq perform a read-write-modify of a dcr to
    enable device irqs which is protected by a spin lock. However calls to
    mal_disable_eob_irq do not take the corresponding lock.
    
    This patch resolves the problem by ensuring that calls to
    mal_disable_eob_irq also take the lock.
    
    Signed-off-by: Alistair Popple <alistair@popple.id.au>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    apopple authored and davem330 committed Oct 30, 2013
    Configuration menu
    Copy the full SHA
    32663b8 View commit details
    Browse the repository at this point in the history
  4. bgmac: don't update slot on skb alloc/dma mapping error

    Don't update the slot in "bgmac_dma_rx_skb_for_slot" unless both the
    skb alloc and dma mapping are successful; and free the newly allocated
    skb if a dma mapping error occurs.  This relieves the caller of the need
    to deduce/execute the appropriate cleanup action required when an error
    occurs.
    
    Signed-off-by: Nathan Hintz <nlhintz@hotmail.com>
    Acked-by: Rafał Miłecki <zajec5@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    nlhintz authored and davem330 committed Oct 30, 2013
    Configuration menu
    Copy the full SHA
    b757a62 View commit details
    Browse the repository at this point in the history
  5. doc:net: Fix typo in Documentation/networking

    Correct spelling typo in Documentation/networking
    
    Signed-off-by: Masanari Iida <standby24x7@gmail.com>
    Acked-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    standby24x7 authored and davem330 committed Oct 30, 2013
    Configuration menu
    Copy the full SHA
    c17cb8b View commit details
    Browse the repository at this point in the history

Commits on Oct 31, 2013

  1. can: c_can: Fix RX message handling, handle lost message before EOB

    If we handle end of block messages with higher priority than a lost message,
    we can run into an endless interrupt loop.
    
    This is reproducable with a am335x processor and "cansequence -r" at 1Mbit.
    As soon as we loose a packet we can't escape from an interrupt loop.
    
    This patch fixes the problem by handling lost packets before EOB packets.
    
    Cc: linux-stable <stable@vger.kernel.org>
    Signed-off-by: Markus Pargmann <mpa@pengutronix.de>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Markus Pargmann authored and marckleinebudde committed Oct 31, 2013
    Configuration menu
    Copy the full SHA
    5d0f801 View commit details
    Browse the repository at this point in the history
  2. can: kvaser_usb: fix usb endpoints detection

    Some devices, like the Kvaser Memorator Professional, have several bulk in
    endpoints. Only the first one found must be used by the driver. The same holds
    for the bulk out endpoint. The official Kvaser driver (leaf) was used as
    reference for this patch.
    
    Cc: linux-stable <stable@vger.kernel.org>
    Signed-off-by: Olivier Sobrie <olivier@sobrie.be>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    oso authored and marckleinebudde committed Oct 31, 2013
    Configuration menu
    Copy the full SHA
    896e23b View commit details
    Browse the repository at this point in the history

Commits on Nov 1, 2013

  1. xfrm: Fix null pointer dereference when decoding sessions

    On some codepaths the skb does not have a dst entry
    when xfrm_decode_session() is called. So check for
    a valid skb_dst() before dereferencing the device
    interface index. We use 0 as the device index if
    there is no valid skb_dst(), or at reverse decoding
    we use skb_iif as device interface index.
    
    Bug was introduced with git commit bafd4bd
    ("xfrm: Decode sessions with output interface.").
    
    Reported-by: Meelis Roos <mroos@linux.ee>
    Tested-by: Meelis Roos <mroos@linux.ee>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    klassert committed Nov 1, 2013
    Configuration menu
    Copy the full SHA
    84502b5 View commit details
    Browse the repository at this point in the history

Commits on Nov 2, 2013

  1. Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/gi…

    …t/klassert/ipsec
    
    Steffen Klassert says:
    
    ====================
    1) Fix a possible race on ipcomp scratch buffers because
       of too early enabled siftirqs. From Michal Kubecek.
    
    2) The current xfrm garbage collector threshold is too small
       for some workloads, resulting in bad performance on these
       workloads. Increase the threshold from 1024 to 32768.
    
    3) Some codepaths might not have a dst_entry attached to the
       skb when calling xfrm_decode_session(). So add a check
       to prevent a null pointer dereference in this case.
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Nov 2, 2013
    Configuration menu
    Copy the full SHA
    2e19ef0 View commit details
    Browse the repository at this point in the history
  2. net: flow_dissector: fail on evil iph->ihl

    We don't validate iph->ihl which may lead a dead loop if we meet a IPIP
    skb whose iph->ihl is zero. Fix this by failing immediately when iph->ihl
    is evil (less than 5).
    
    This issue were introduced by commit ec5efe7
    (rps: support IPIP encapsulation).
    
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: Petr Matousek <pmatouse@redhat.com>
    Cc: Michael S. Tsirkin <mst@redhat.com>
    Cc: Daniel Borkmann <dborkman@redhat.com>
    Signed-off-by: Jason Wang <jasowang@redhat.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    jasowang authored and davem330 committed Nov 2, 2013
    Configuration menu
    Copy the full SHA
    6f09234 View commit details
    Browse the repository at this point in the history

Commits on Nov 4, 2013

  1. net: sctp: do not trigger BUG_ON in sctp_cmd_delete_tcb

    Introduced in f9e42b8 ("net: sctp: sideeffect: throw BUG if
    primary_path is NULL"), we intended to find a buggy assoc that's
    part of the assoc hash table with a primary_path that is NULL.
    However, we better remove the BUG_ON for now and find a more
    suitable place to assert for these things as Mark reports that
    this also triggers the bug when duplication cookie processing
    happens, and the assoc is not part of the hash table (so all
    good in this case). Such a situation can for example easily be
    reproduced by:
    
      tc qdisc add dev eth0 root handle 1: prio bands 2 priomap 1 1 1 1 1 1
      tc qdisc add dev eth0 parent 1:2 handle 20: netem loss 20%
      tc filter add dev eth0 protocol ip parent 1: prio 2 u32 match ip \
                protocol 132 0xff match u8 0x0b 0xff at 32 flowid 1:2
    
    This drops 20% of COOKIE-ACK packets. After some follow-up
    discussion with Vlad we came to the conclusion that for now we
    should still better remove this BUG_ON() assertion, and come up
    with two follow-ups later on, that is, i) find a more suitable
    place for this assertion, and possibly ii) have a special
    allocator/initializer for such kind of temporary assocs.
    
    Reported-by: Mark Thomas <Mark.Thomas@metaswitch.com>
    Signed-off-by: Vlad Yasevich <vyasevich@gmail.com>
    Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
    Acked-by: Neil Horman <nhorman@tuxdriver.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    borkmann authored and davem330 committed Nov 4, 2013
    Configuration menu
    Copy the full SHA
    7926c1d View commit details
    Browse the repository at this point in the history
  2. Merge branch 'fixes-for-3.12' of git://gitorious.org/linux-can/linux-can

    Marc Kleine-Budde says:
    
    ====================
    I have two late fixes for the v3.12 release:
    
    The first patch fixes a problem in the c_can's RX message handling, which can
    lead to an endless interrupt loop under heavy load if messages are lost. The
    second patch is by Olivier Sobrie and fixes the endpoint detection of the
    kvaser_usb driver, which is needed for some devices.
    ====================
    
    Signed-off-by: David S. Miller <davem@davemloft.net>
    davem330 committed Nov 4, 2013
    Configuration menu
    Copy the full SHA
    e9b51a1 View commit details
    Browse the repository at this point in the history
  3. net/mlx4_core: Fix call to __mlx4_unregister_mac

    In function mlx4_master_deactivate_admin_state() __mlx4_unregister_mac was
    called using the MAC index. It should be called with the value of the MAC itself.
    
    Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
    Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Jack Morgenstein authored and davem330 committed Nov 4, 2013
    Configuration menu
    Copy the full SHA
    c32b7df View commit details
    Browse the repository at this point in the history
  4. Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net

    Pull networking fixes from David Miller:
     "I'm sending a pull request of these lingering bug fixes for networking
      before the normal merge window material because some of this stuff I'd
      like to get to -stable ASAP"
    
     1) cxgb3 stopped working on 32-bit machines, fix from Ben Hutchings.
    
     2) Structures passed via netlink for netfilter logging are not fully
        initialized.  From Mathias Krause.
    
     3) Properly unlink upper openvswitch device during notifications, from
        Alexei Starovoitov.
    
     4) Fix race conditions involving access to the IP compression scratch
        buffer, from Michal Kubrecek.
    
     5) We don't handle the expiration of MTU information contained in ipv6
        routes sometimes, fix from Hannes Frederic Sowa.
    
     6) With Fast Open we can miscompute the TCP SYN/ACK RTT, from Yuchung
        Cheng.
    
     7) Don't take TCP RTT sample when an ACK doesn't acknowledge new data,
        also from Yuchung Cheng.
    
     8) The decreased IPSEC garbage collection threshold causes problems for
        some people, bump it back up.  From Steffen Klassert.
    
     9) Fix skb->truesize calculated by tcp_tso_segment(), from Eric
        Dumazet.
    
    10) flow_dissector doesn't validate packet lengths sufficiently, from
        Jason Wang
    
    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (41 commits)
      net/mlx4_core: Fix call to __mlx4_unregister_mac
      net: sctp: do not trigger BUG_ON in sctp_cmd_delete_tcb
      net: flow_dissector: fail on evil iph->ihl
      xfrm: Fix null pointer dereference when decoding sessions
      can: kvaser_usb: fix usb endpoints detection
      can: c_can: Fix RX message handling, handle lost message before EOB
      doc:net: Fix typo in Documentation/networking
      bgmac: don't update slot on skb alloc/dma mapping error
      ibm emac: Fix locking for enable/disable eob irq
      ibm emac: Don't call napi_complete if napi_reschedule failed
      virtio-net: correctly handle cpu hotplug notifier during resuming
      bridge: pass correct vlan id to multicast code
      net: x25: Fix dead URLs in Kconfig
      netfilter: xt_NFQUEUE: fix --queue-bypass regression
      xen-netback: use jiffies_64 value to calculate credit timeout
      cxgb3: Fix length calculation in write_ofld_wr() on 32-bit architectures
      bnx2x: Disable VF access on PF removal
      bnx2x: prevent FW assert on low mem during unload
      tcp: gso: fix truesize tracking
      xfrm: Increase the garbage collector threshold
      ...
    torvalds committed Nov 4, 2013
    Configuration menu
    Copy the full SHA
    be408cd View commit details
    Browse the repository at this point in the history