<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/include, branch v3.14</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/include?h=v3.14</id>
<link rel='self' href='https://git.amat.us/linux/atom/include?h=v3.14'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2014-03-31T00:02:06Z</updated>
<entry>
<title>ext4: atomically set inode-&gt;i_flags in ext4_set_inode_flags()</title>
<updated>2014-03-31T00:02:06Z</updated>
<author>
<name>Theodore Ts'o</name>
<email>tytso@mit.edu</email>
</author>
<published>2014-03-30T14:20:01Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=00a1a053ebe5febcfc2ec498bd894f035ad2aa06'/>
<id>urn:sha1:00a1a053ebe5febcfc2ec498bd894f035ad2aa06</id>
<content type='text'>
Use cmpxchg() to atomically set i_flags instead of clearing out the
S_IMMUTABLE, S_APPEND, etc. flags and then setting them from the
EXT4_IMMUTABLE_FL, EXT4_APPEND_FL flags, since this opens up a race
where an immutable file has the immutable flag cleared for a brief
window of time.

Reported-by: John Sullivan &lt;jsrhbz@kanargh.force9.co.uk&gt;
Signed-off-by: "Theodore Ts'o" &lt;tytso@mit.edu&gt;
Cc: stable@kernel.org
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>vlan: Warn the user if lowerdev has bad vlan features.</title>
<updated>2014-03-28T21:16:51Z</updated>
<author>
<name>Vlad Yasevich</name>
<email>vyasevic@redhat.com</email>
</author>
<published>2014-03-28T02:14:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=2adb956b084d6d49f519541a4b5f9947e96f8ef7'/>
<id>urn:sha1:2adb956b084d6d49f519541a4b5f9947e96f8ef7</id>
<content type='text'>
Some drivers incorrectly assign vlan acceleration features to
vlan_features thus causing issues for Q-in-Q vlan configurations.
Warn the user of such cases.

Signed-off-by: Vlad Yasevich &lt;vyasevic@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: Account for all vlan headers in skb_mac_gso_segment</title>
<updated>2014-03-28T21:10:36Z</updated>
<author>
<name>Vlad Yasevich</name>
<email>vyasevic@redhat.com</email>
</author>
<published>2014-03-27T21:26:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=53d6471cef17262d3ad1c7ce8982a234244f68ec'/>
<id>urn:sha1:53d6471cef17262d3ad1c7ce8982a234244f68ec</id>
<content type='text'>
skb_network_protocol() already accounts for multiple vlan
headers that may be present in the skb.  However, skb_mac_gso_segment()
doesn't know anything about it and assumes that skb-&gt;mac_len
is set correctly to skip all mac headers.  That may not
always be the case.  If we are simply forwarding the packet (via
bridge or macvtap), all vlan headers may not be accounted for.

A simple solution is to allow skb_network_protocol to return
the vlan depth it has calculated.  This way skb_mac_gso_segment
will correctly skip all mac headers.

Signed-off-by: Vlad Yasevich &lt;vyasevic@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipv6: move DAD and addrconf_verify processing to workqueue</title>
<updated>2014-03-28T20:54:50Z</updated>
<author>
<name>Hannes Frederic Sowa</name>
<email>hannes@stressinduktion.org</email>
</author>
<published>2014-03-27T17:28:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=c15b1ccadb323ea50023e8f1cca2954129a62b51'/>
<id>urn:sha1:c15b1ccadb323ea50023e8f1cca2954129a62b51</id>
<content type='text'>
addrconf_join_solict and addrconf_join_anycast may cause actions which
need rtnl locked, especially on first address creation.

A new DAD state is introduced which defers processing of the initial
DAD processing into a workqueue.

To get rtnl lock we need to push the code paths which depend on those
calls up to workqueues, specifically addrconf_verify and the DAD
processing.

(v2)
addrconf_dad_failure needs to be queued up to the workqueue, too. This
patch introduces a new DAD state and stop the DAD processing in the
workqueue (this is because of the possible ipv6_del_addr processing
which removes the solicited multicast address from the device).

addrconf_verify_lock is removed, too. After the transition it is not
needed any more.

As we are not processing in bottom half anymore we need to be a bit more
careful about disabling bottom half out when we lock spin_locks which are also
used in bh.

Relevant backtrace:
[  541.030090] RTNL: assertion failed at net/core/dev.c (4496)
[  541.031143] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G           O 3.10.33-1-amd64-vyatta #1
[  541.031145] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2007
[  541.031146]  ffffffff8148a9f0 000000000000002f ffffffff813c98c1 ffff88007c4451f8
[  541.031148]  0000000000000000 0000000000000000 ffffffff813d3540 ffff88007fc03d18
[  541.031150]  0000880000000006 ffff88007c445000 ffffffffa0194160 0000000000000000
[  541.031152] Call Trace:
[  541.031153]  &lt;IRQ&gt;  [&lt;ffffffff8148a9f0&gt;] ? dump_stack+0xd/0x17
[  541.031180]  [&lt;ffffffff813c98c1&gt;] ? __dev_set_promiscuity+0x101/0x180
[  541.031183]  [&lt;ffffffff813d3540&gt;] ? __hw_addr_create_ex+0x60/0xc0
[  541.031185]  [&lt;ffffffff813cfe1a&gt;] ? __dev_set_rx_mode+0xaa/0xc0
[  541.031189]  [&lt;ffffffff813d3a81&gt;] ? __dev_mc_add+0x61/0x90
[  541.031198]  [&lt;ffffffffa01dcf9c&gt;] ? igmp6_group_added+0xfc/0x1a0 [ipv6]
[  541.031208]  [&lt;ffffffff8111237b&gt;] ? kmem_cache_alloc+0xcb/0xd0
[  541.031212]  [&lt;ffffffffa01ddcd7&gt;] ? ipv6_dev_mc_inc+0x267/0x300 [ipv6]
[  541.031216]  [&lt;ffffffffa01c2fae&gt;] ? addrconf_join_solict+0x2e/0x40 [ipv6]
[  541.031219]  [&lt;ffffffffa01ba2e9&gt;] ? ipv6_dev_ac_inc+0x159/0x1f0 [ipv6]
[  541.031223]  [&lt;ffffffffa01c0772&gt;] ? addrconf_join_anycast+0x92/0xa0 [ipv6]
[  541.031226]  [&lt;ffffffffa01c311e&gt;] ? __ipv6_ifa_notify+0x11e/0x1e0 [ipv6]
[  541.031229]  [&lt;ffffffffa01c3213&gt;] ? ipv6_ifa_notify+0x33/0x50 [ipv6]
[  541.031233]  [&lt;ffffffffa01c36c8&gt;] ? addrconf_dad_completed+0x28/0x100 [ipv6]
[  541.031241]  [&lt;ffffffff81075c1d&gt;] ? task_cputime+0x2d/0x50
[  541.031244]  [&lt;ffffffffa01c38d6&gt;] ? addrconf_dad_timer+0x136/0x150 [ipv6]
[  541.031247]  [&lt;ffffffffa01c37a0&gt;] ? addrconf_dad_completed+0x100/0x100 [ipv6]
[  541.031255]  [&lt;ffffffff8105313a&gt;] ? call_timer_fn.isra.22+0x2a/0x90
[  541.031258]  [&lt;ffffffffa01c37a0&gt;] ? addrconf_dad_completed+0x100/0x100 [ipv6]

Hunks and backtrace stolen from a patch by Stephen Hemminger.

Reported-by: Stephen Hemminger &lt;stephen@networkplumber.org&gt;
Signed-off-by: Stephen Hemminger &lt;stephen@networkplumber.org&gt;
Signed-off-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>core, nfqueue, openvswitch: Orphan frags in skb_zerocopy and handle errors</title>
<updated>2014-03-27T19:29:38Z</updated>
<author>
<name>Zoltan Kiss</name>
<email>zoltan.kiss@citrix.com</email>
</author>
<published>2014-03-26T22:37:45Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=36d5fe6a000790f56039afe26834265db0a3ad4c'/>
<id>urn:sha1:36d5fe6a000790f56039afe26834265db0a3ad4c</id>
<content type='text'>
skb_zerocopy can copy elements of the frags array between skbs, but it doesn't
orphan them. Also, it doesn't handle errors, so this patch takes care of that
as well, and modify the callers accordingly. skb_tx_error() is also added to
the callers so they will signal the failed delivery towards the creator of the
skb.

Signed-off-by: Zoltan Kiss &lt;zoltan.kiss@citrix.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>usbnet: include wait queue head in device structure</title>
<updated>2014-03-27T18:59:10Z</updated>
<author>
<name>Oliver Neukum</name>
<email>oneukum@suse.de</email>
</author>
<published>2014-03-26T13:32:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=14a0d635d18d0fb552dcc979d6d25106e6541f2e'/>
<id>urn:sha1:14a0d635d18d0fb552dcc979d6d25106e6541f2e</id>
<content type='text'>
This fixes a race which happens by freeing an object on the stack.
Quoting Julius:
&gt; The issue is
&gt; that it calls usbnet_terminate_urbs() before that, which temporarily
&gt; installs a waitqueue in dev-&gt;wait in order to be able to wait on the
&gt; tasklet to run and finish up some queues. The waiting itself looks
&gt; okay, but the access to 'dev-&gt;wait' is totally unprotected and can
&gt; race arbitrarily. I think in this case usbnet_bh() managed to succeed
&gt; it's dev-&gt;wait check just before usbnet_terminate_urbs() sets it back
&gt; to NULL. The latter then finishes and the waitqueue_t structure on its
&gt; stack gets overwritten by other functions halfway through the
&gt; wake_up() call in usbnet_bh().

The fix is to just not allocate the data structure on the stack.
As dev-&gt;wait is abused as a flag it also takes a runtime PM change
to fix this bug.

Signed-off-by: Oliver Neukum &lt;oneukum@suse.de&gt;
Reported-by: Grant Grundler &lt;grundler@google.com&gt;
Tested-by: Grant Grundler &lt;grundler@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net</title>
<updated>2014-03-25T00:07:24Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2014-03-25T00:07:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=8a1094462c7ec47f9d3a31b0a281ce35cb138f50'/>
<id>urn:sha1:8a1094462c7ec47f9d3a31b0a281ce35cb138f50</id>
<content type='text'>
Pull networking fixes from David Miller:

 1) OpenVswitch's lookup_datapath() returns error pointers, so don't
    check against NULL.  From Jiri Pirko.

 2) pfkey_compile_policy() code path tries to do a GFP_KERNEL allocation
    under RCU locks, fix by using GFP_ATOMIC when necessary.  From
    Nikolay Aleksandrov.

 3) phy_suspend() indirectly passes uninitialized data into the ethtool
    get wake-on-land implementations.  Fix from Sebastian Hesselbarth.

 4) CPSW driver unregisters CPTS twice, fix from Benedikt Spranger.

 5) If SKB allocation of reply packet fails, vxlan's arp_reduce() defers
    a NULL pointer.  Fix from David Stevens.

 6) IPV6 neigh handling in vxlan doesn't validate the destination
    address properly, and it builds a packet with the src and dst
    reversed.  Fix also from David Stevens.

 7) Fix spinlock recursion during subscription failures in TIPC stack,
    from Erik Hugne.

 8) Revert buggy conversion of davinci_emac to devm_request_irq, from
    Chrstian Riesch.

 9) Wrong flags passed into forwarding database netlink notifications,
    from Nicolas Dichtel.

10) The netpoll neighbour soliciation handler checks wrong ethertype,
    needs to be ETH_P_IPV6 rather than ETH_P_ARP.  Fix from Li RongQing.

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (34 commits)
  tipc: fix spinlock recursion bug for failed subscriptions
  vxlan: fix nonfunctional neigh_reduce()
  net: davinci_emac: Fix rollback of emac_dev_open()
  net: davinci_emac: Replace devm_request_irq with request_irq
  netpoll: fix the skb check in pkt_is_ns
  net: micrel : ks8851-ml: add vdd-supply support
  ip6mr: fix mfc notification flags
  ipmr: fix mfc notification flags
  rtnetlink: fix fdb notification flags
  tcp: syncookies: do not use getnstimeofday()
  netlink: fix setsockopt in mmap examples in documentation
  openvswitch: Correctly report flow used times for first 5 minutes after boot.
  via-rhine: Disable device in error path
  ATHEROS-ATL1E: Convert iounmap to pci_iounmap
  vxlan: fix potential NULL dereference in arp_reduce()
  cnic: Update version to 2.5.20 and copyright year.
  cnic,bnx2i,bnx2fc: Fix inconsistent use of page size
  cnic: Use proper ulp_ops for per device operations.
  net: cdc_ncm: fix control message ordering
  ipv6: ip6_append_data_mtu do not handle the mtu of the second fragment properly
  ...
</content>
</entry>
<entry>
<title>Merge tag 'trace-fixes-v3.14-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace</title>
<updated>2014-03-21T05:09:30Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2014-03-21T05:09:30Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=477cc48484ea0bfdee9e8319259b35a0ec03f332'/>
<id>urn:sha1:477cc48484ea0bfdee9e8319259b35a0ec03f332</id>
<content type='text'>
Pull trace fix from Steven Rostedt:
 "Vaibhav Nagarnaik discovered that since 3.10 a clean-up patch made the
  array index in the trace event format bogus.

  He supplied an elegant solution that uses __stringify() and also
  removes the need for the event_storage and event_storage_mutex and
  also cuts off a few K of overhead from the trace events"

* tag 'trace-fixes-v3.14-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
  tracing: Fix array size mismatch in format string
</content>
</entry>
<entry>
<title>mm: fix swapops.h:131 bug if remap_file_pages raced migration</title>
<updated>2014-03-21T05:09:09Z</updated>
<author>
<name>Hugh Dickins</name>
<email>hughd@google.com</email>
</author>
<published>2014-03-21T04:52:17Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7e09e738afd21ef99f047425fc0b0c9be8b03254'/>
<id>urn:sha1:7e09e738afd21ef99f047425fc0b0c9be8b03254</id>
<content type='text'>
Add remove_linear_migration_ptes_from_nonlinear(), to fix an interesting
little include/linux/swapops.h:131 BUG_ON(!PageLocked) found by trinity:
indicating that remove_migration_ptes() failed to find one of the
migration entries that was temporarily inserted.

The problem comes from remap_file_pages()'s switch from vma_interval_tree
(good for inserting the migration entry) to i_mmap_nonlinear list (no good
for locating it again); but can only be a problem if the remap_file_pages()
range does not cover the whole of the vma (zap_pte() clears the range).

remove_migration_ptes() needs a file_nonlinear method to go down the
i_mmap_nonlinear list, applying linear location to look for migration
entries in those vmas too, just in case there was this race.

The file_nonlinear method does need rmap_walk_control.arg to do this;
but it never needed vma passed in - vma comes from its own iteration.

Reported-and-tested-by: Dave Jones &lt;davej@redhat.com&gt;
Reported-and-tested-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
Signed-off-by: Hugh Dickins &lt;hughd@google.com&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>tcp: syncookies: do not use getnstimeofday()</title>
<updated>2014-03-20T20:22:42Z</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2014-03-20T04:02:21Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=632623153196bf183a69686ed9c07eee98ff1bf8'/>
<id>urn:sha1:632623153196bf183a69686ed9c07eee98ff1bf8</id>
<content type='text'>
While it is true that getnstimeofday() uses about 40 cycles if TSC
is available, it can use 1600 cycles if hpet is the clocksource.

Switch to get_jiffies_64(), as this is more than enough, and
go back to 60 seconds periods.

Fixes: 8c27bd75f04f ("tcp: syncookies: reduce cookie lifetime to 128 seconds")
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Cc: Florian Westphal &lt;fw@strlen.de&gt;
Acked-by: Florian Westphal &lt;fw@strlen.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
