1. 25 Feb, 2014 4 commits
    • Hannes Frederic Sowa's avatar
      ipv4: ipv6: better estimate tunnel header cut for correct ufo handling · 91a48a2e
      Hannes Frederic Sowa authored
      Currently the UFO fragmentation process does not correctly handle inner
      UDP frames.
      
      (The following tcpdumps are captured on the parent interface with ufo
      disabled while tunnel has ufo enabled, 2000 bytes payload, mtu 1280,
      both sit device):
      
      IPv6:
      16:39:10.031613 IP (tos 0x0, ttl 64, id 3208, offset 0, flags [DF], proto IPv6 (41), length 1300)
          192.168.122.151 > 1.1.1.1: IP6 (hlim 64, next-header Fragment (44) payload length: 1240) 2001::1 > 2001::8: frag (0x00000001:0|1232) 44883 > distinct: UDP, length 2000
      16:39:10.031709 IP (tos 0x0, ttl 64, id 3209, offset 0, flags [DF], proto IPv6 (41), length 844)
          192.168.122.151 > 1.1.1.1: IP6 (hlim 64, next-header Fragment (44) payload length: 784) 2001::1 > 2001::8: frag (0x00000001:0|776) 58979 > 46366: UDP, length 5471
      
      We can see that fragmentation header offset is not correctly updated.
      (fragmentation id handling is corrected by 916e4cf4 ("ipv6: reuse
      ip6_frag_id from ip6_ufo_append_data")).
      
      IPv4:
      16:39:57.737761 IP (tos 0x0, ttl 64, id 3209, offset 0, flags [DF], proto IPIP (4), length 1296)
          192.168.122.151 > 1.1.1.1: IP (tos 0x0, ttl 64, id 57034, offset 0, flags [none], proto UDP (17), length 1276)
          192.168.99.1.35961 > 192.168.99.2.distinct: UDP, length 2000
      16:39:57.738028 IP (tos 0x0, ttl 64, id 3210, offset 0, flags [DF], proto IPIP (4), length 792)
          192.168.122.151 > 1.1.1.1: IP (tos 0x0, ttl 64, id 57035, offset 0, flags [none], proto UDP (17), length 772)
          192.168.99.1.13531 > 192.168.99.2.20653: UDP, length 51109
      
      In this case fragmentation id is incremented and offset is not updated.
      
      First, I aligned inet_gso_segment and ipv6_gso_segment:
      * align naming of flags
      * ipv6_gso_segment: setting skb->encapsulation is unnecessary, as we
        always ensure that the state of this flag is left untouched when
        returning from upper gso segmenation function
      * ipv6_gso_segment: move skb_reset_inner_headers below updating the
        fragmentation header data, we don't care for updating fragmentation
        header data
      * remove currently unneeded comment indicating skb->encapsulation might
        get changed by upper gso_segment callback (gre and udp-tunnel reset
        encapsulation after segmentation on each fragment)
      
      If we encounter an IPIP or SIT gso skb we now check for the protocol ==
      IPPROTO_UDP and that we at least have already traversed another ip(6)
      protocol header.
      
      The reason why we have to special case GSO_IPIP and GSO_SIT is that
      we reset skb->encapsulation to 0 while skb_mac_gso_segment the inner
      protocol of GSO_UDP_TUNNEL or GSO_GRE packets.
      Reported-by: default avatarWolfgang Walter <linux@stwm.de>
      Cc: Cong Wang <xiyou.wangcong@gmail.com>
      Cc: Tom Herbert <therbert@google.com>
      Cc: Eric Dumazet <eric.dumazet@gmail.com>
      Signed-off-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      91a48a2e
    • Amir Vadai's avatar
      net,IB/mlx: Bump all Mellanox driver versions · 169a1d85
      Amir Vadai authored
      Bump all Mellanox driver versions.
      Signed-off-by: default avatarAmir Vadai <amirv@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      169a1d85
    • Kyle McMartin's avatar
      r8169: initialize rtl8169_stats seqlock · 340fea3d
      Kyle McMartin authored
      Boris reports he's seeing:
      > [    9.195943] INFO: trying to register non-static key.
      > [    9.196031] the code is fine but needs lockdep annotation.
      > [    9.196031] turning off the locking correctness validator.
      > [    9.196031] CPU: 1 PID: 933 Comm: modprobe Not tainted 3.14.0-rc4+ #1
      with the r8169 driver.
      
      These are occuring because the seqcount embedded in u64_stats_sync on
      32-bit SMP is uninitialized which is making lockdep unhappy.
      Signed-off-by: default avatarKyle McMartin <kyle@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      340fea3d
    • Eric Dumazet's avatar
      tcp: reduce the bloat caused by tcp_is_cwnd_limited() · d10473d4
      Eric Dumazet authored
      tcp_is_cwnd_limited() allows GSO/TSO enabled flows to increase
      their cwnd to allow a full size (64KB) TSO packet to be sent.
      
      Non GSO flows only allow an extra room of 3 MSS.
      
      For most flows with a BDP below 10 MSS, this results in a bloat
      of cwnd reaching 90, and an inflate of RTT.
      
      Thanks to TSO auto sizing, we can restrict the bloat to the number
      of MSS contained in a TSO packet (tp->xmit_size_goal_segs), to keep
      original intent without performance impact.
      
      Because we keep cwnd small, it helps to keep TSO packet size to their
      optimal value.
      
      Example for a 10Mbit flow, with low TCP Small queue limits (no more than
      2 skb in qdisc/device tx ring)
      
      Before patch :
      
      lpk51:~# ./ss -i dst lpk52:44862 | grep cwnd
               cubic wscale:6,6 rto:215 rtt:15.875/2.5 mss:1448 cwnd:96
      ssthresh:96
      send 70.1Mbps unacked:14 rcv_space:29200
      
      After patch :
      
      lpk51:~# ./ss -i dst lpk52:52916 | grep cwnd
               cubic wscale:6,6 rto:206 rtt:5.206/0.036 mss:1448 cwnd:15
      ssthresh:14
      send 33.4Mbps unacked:4 rcv_space:29200
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Yuchung Cheng <ycheng@google.com>
      Cc: Neal Cardwell <ncardwell@google.com>
      Cc: Nandita Dukkipati <nanditad@google.com>
      Cc: Van Jacobson <vanj@google.com>
      Acked-by: default avatarNeal Cardwell <ncardwell@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d10473d4
  2. 24 Feb, 2014 2 commits
  3. 22 Feb, 2014 7 commits
    • Hannes Frederic Sowa's avatar
      ipv6: reuse ip6_frag_id from ip6_ufo_append_data · 916e4cf4
      Hannes Frederic Sowa authored
      Currently we generate a new fragmentation id on UFO segmentation. It
      is pretty hairy to identify the correct net namespace and dst there.
      Especially tunnels use IFF_XMIT_DST_RELEASE and thus have no skb_dst
      available at all.
      
      This causes unreliable or very predictable ipv6 fragmentation id
      generation while segmentation.
      
      Luckily we already have pregenerated the ip6_frag_id in
      ip6_ufo_append_data and can use it here.
      Signed-off-by: default avatarHannes Frederic Sowa <hannes@stressinduktion.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      916e4cf4
    • Daniel Borkmann's avatar
      net: sctp: rework multihoming retransmission path selection to rfc4960 · 4c47af4d
      Daniel Borkmann authored
      Problem statement: 1) both paths (primary path1 and alternate
      path2) are up after the association has been established i.e.,
      HB packets are normally exchanged, 2) path2 gets inactive after
      path_max_retrans * max_rto timed out (i.e. path2 is down completely),
      3) now, if a transmission times out on the only surviving/active
      path1 (any ~1sec network service impact could cause this like
      a channel bonding failover), then the retransmitted packets are
      sent over the inactive path2; this happens with partial failover
      and without it.
      
      Besides not being optimal in the above scenario, a small failure
      or timeout in the only existing path has the potential to cause
      long delays in the retransmission (depending on RTO_MAX) until
      the still active path is reselected. Further, when the T3-timeout
      occurs, we have active_patch == retrans_path, and even though the
      timeout occurred on the initial transmission of data, not a
      retransmit, we end up updating retransmit path.
      
      RFC4960, section 6.4. "Multi-Homed SCTP Endpoints" states under
      6.4.1. "Failover from an Inactive Destination Address" the
      following:
      
        Some of the transport addresses of a multi-homed SCTP endpoint
        may become inactive due to either the occurrence of certain
        error conditions (see Section 8.2) or adjustments from the
        SCTP user.
      
        When there is outbound data to send and the primary path
        becomes inactive (e.g., due to failures), or where the SCTP
        user explicitly requests to send data to an inactive
        destination transport address, before reporting an error to
        its ULP, the SCTP endpoint should try to send the data to an
        alternate __active__ destination transport address if one
        exists.
      
        When retransmitting data that timed out, if the endpoint is
        multihomed, it should consider each source-destination address
        pair in its retransmission selection policy. When retransmitting
        timed-out data, the endpoint should attempt to pick the most
        divergent source-destination pair from the original
        source-destination pair to which the packet was transmitted.
      
        Note: Rules for picking the most divergent source-destination
        pair are an implementation decision and are not specified
        within this document.
      
      So, we should first reconsider to take the current active
      retransmission transport if we cannot find an alternative
      active one. If all of that fails, we can still round robin
      through unkown, partial failover, and inactive ones in the
      hope to find something still suitable.
      
      Commit 4141ddc0 ("sctp: retran_path update bug fix") broke
      that behaviour by selecting the next inactive transport when
      no other active transport was found besides the current assoc's
      peer.retran_path. Before commit 4141ddc0, we would have
      traversed through the list until we reach our peer.retran_path
      again, and in case that is still in state SCTP_ACTIVE, we would
      take it and return. Only if that is not the case either, we
      take the next inactive transport.
      
      Besides all that, another issue is that transports in state
      SCTP_UNKNOWN could be preferred over transports in state
      SCTP_ACTIVE in case a SCTP_ACTIVE transport appears after
      SCTP_UNKNOWN in the transport list yielding a weaker transport
      state to be used in retransmission.
      
      This patch mostly reverts 4141ddc0, but also rewrites
      this function to introduce more clarity and strictness into
      the code. A strict priority of transport states is enforced
      in this patch, hence selection is active > unkown > partial
      failover > inactive.
      
      Fixes: 4141ddc0 ("sctp: retran_path update bug fix")
      Signed-off-by: default avatarDaniel Borkmann <dborkman@redhat.com>
      Cc: Gui Jianfeng <guijianfeng@cn.fujitsu.com>
      Acked-by: default avatarVlad Yasevich <yasevich@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4c47af4d
    • Jiri Pirko's avatar
      neigh: fix setting of default gc_* values · b194c1f1
      Jiri Pirko authored
      This patch fixes bug introduced by:
      commit 1d4c8c29
      "neigh: restore old behaviour of default parms values"
      
      The thing is that in neigh_sysctl_register, extra1 and extra2 which were
      previously set for NEIGH_VAR_GC_* are overwritten. That leads to
      nonsense int limits for gc_* variables. So fix this by not touching
      extra* fields for gc_* variables.
      Signed-off-by: default avatarJiri Pirko <jiri@resnulli.us>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b194c1f1
    • Eric Dumazet's avatar
      net-tcp: fastopen: fix high order allocations · f5ddcbbb
      Eric Dumazet authored
      This patch fixes two bugs in fastopen :
      
      1) The tcp_sendmsg(...,  @size) argument was ignored.
      
         Code was relying on user not fooling the kernel with iovec mismatches
      
      2) When MTU is about 64KB, tcp_send_syn_data() attempts order-5
      allocations, which are likely to fail when memory gets fragmented.
      
      Fixes: 783237e8 ("net-tcp: Fast Open client - sending SYN-data")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Yuchung Cheng <ycheng@google.com>
      Acked-by: default avatarYuchung Cheng <ycheng@google.com>
      Tested-by: default avatarYuchung Cheng <ycheng@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f5ddcbbb
    • David S. Miller's avatar
      Merge branch 'tipc' · 68ad785c
      David S. Miller authored
      Ying Xue says:
      
      ====================
      tipc: clean up components initialization code
      
      In this series, we will fix a regression issue involved by commit
      6e967adf(tipc: relocate common functions from media to bearer)
      But before the issue is fixed, we firstly adjust the process of
      components initialization so as to remove all enabled flags from
      necessary tipc components. Otherwise, without the change, we also
      have to add an extra enabled flag into bearer layer indicating
      whether bearer setup is finshed or not.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      68ad785c
    • Ying Xue's avatar
      tipc: make bearer set up in module insertion stage · 970122fd
      Ying Xue authored
      Accidentally a side effect is involved by commit 6e967adf(tipc:
      relocate common functions from media to bearer). Now tipc stack
      handler of receiving packets from netdevices as well as netdevice
      notification handler are registered when bearer is enabled rather
      than tipc module initialization stage, but the two handlers are
      both unregistered in tipc module exit phase. If tipc module is
      inserted and then immediately removed, the following warning
      message will appear:
      
      "dev_remove_pack: ffffffffa0380940 not found"
      
      This is because in module insertion stage tipc stack packet handler
      is not registered at all, but in module exit phase dev_remove_pack()
      needs to remove it. Of course, dev_remove_pack() cannot find tipc
      protocol handler from the kernel protocol handler list so that the
      warning message is printed out.
      
      But if registering the two handlers is adjusted from enabling bearer
      phase into inserting module stage, the warning message will be
      eliminated. Due to this change, tipc_core_start_net() and
      tipc_core_stop_net() can be deleted as well.
      Reported-by: default avatarWang Weidong <wangweidong1@huawei.com>
      Cc: Jon Maloy <jon.maloy@ericsson.com>
      Cc: Erik Hugne <erik.hugne@ericsson.com>
      Signed-off-by: default avatarYing Xue <ying.xue@windriver.com>
      Reviewed-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      970122fd
    • Ying Xue's avatar
      tipc: remove all enabled flags from all tipc components · 9fe7ed47
      Ying Xue authored
      When tipc module is inserted, many tipc components are initialized
      one by one. During the initialization period, if one of them is
      failed, tipc_core_stop() will be called to stop all components
      whatever corresponding components are created or not. To avoid to
      release uncreated ones, relevant components have to add necessary
      enabled flags indicating whether they are created or not.
      
      But in the initialization stage, if one component is unsuccessfully
      created, we will just destroy successfully created components before
      the failed component instead of all components. All enabled flags
      defined in components, in turn, become redundant. Additionally it's
      also unnecessary to identify whether table.types is NULL in
      tipc_nametbl_stop() because name stable has been definitely created
      successfully when tipc_nametbl_stop() is called.
      
      Cc: Jon Maloy <jon.maloy@ericsson.com>
      Cc: Erik Hugne <erik.hugne@ericsson.com>
      Signed-off-by: default avatarYing Xue <ying.xue@windriver.com>
      Reviewed-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9fe7ed47
  4. 20 Feb, 2014 6 commits
  5. 19 Feb, 2014 5 commits
    • Wei Liu's avatar
      xen-netfront: reset skb network header before checksum · d554f73d
      Wei Liu authored
      In ed1f50c3 ("net: add skb_checksum_setup") we introduced some checksum
      functions in core driver. Subsequent change b5cf66cd ("xen-netfront:
      use new skb_checksum_setup function") made use of those functions to
      replace its own implementation.
      
      However with that change netfront is broken. It sees a lot of checksum
      error. That's because its own implementation of checksum function was a
      bit hacky (dereferencing skb->data directly) while the new function was
      implemented using ip_hdr(). The network header is not reset before skb
      is passed to the new function. When the new function tries to do its
      job, it's confused and reports error.
      
      The fix is simple, we need to reset network header before passing skb to
      checksum function. Netback is not affected as it already does the right
      thing.
      Reported-by: default avatarSander Eikelenboom <linux@eikelenboom.it>
      Signed-off-by: default avatarWei Liu <wei.liu2@citrix.com>
      Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Cc: Paul Durrant <paul.durrant@citrix.com>
      Tested-By: default avatarSander Eikelenboom <linux@eikelenboom.it>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d554f73d
    • Max Filippov's avatar
      net: ethoc: document OF bindings · c89b5c65
      Max Filippov authored
      Signed-off-by: default avatarMax Filippov <jcmvbkbc@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c89b5c65
    • David S. Miller's avatar
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf · 2e99c07f
      David S. Miller authored
      Pablo Neira Ayuso says:
      
      ====================
      Netfilter fixes for net
      
      The following patchset contains Netfilter fixes for your net tree,
      they are:
      
      * Fix nf_trace in nftables if XT_TRACE=n, from Florian Westphal.
      
      * Don't use the fast payload operation in nf_tables if the length is
        not power of 2 or it is not aligned, from Nikolay Aleksandrov.
      
      * Fix missing break statement the inet flavour of nft_reject, which
        results in evaluating IPv4 packets with the IPv6 evaluation routine,
        from Patrick McHardy.
      
      * Fix wrong kconfig symbol in nft_meta to match the routing realm,
        from Paul Bolle.
      
      * Allocate the NAT null binding when creating new conntracks via
        ctnetlink to avoid that several packets race at initializing the
        the conntrack NAT extension, original patch from Florian Westphal,
        revisited version from me.
      
      * Fix DNAT handling in the snmp NAT helper, the same handling was being
        done for SNAT and DNAT and 2.4 already contains that fix, from
        Francois-Xavier Le Bail.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2e99c07f
    • Linus Torvalds's avatar
      Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux · 960dfc4e
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Lots of little small things, nothing too major: nouveau regression
        fixes, vmware fixes for the new hw support, memory leaks in error path
        fixes"
      
      * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux: (31 commits)
        drm/radeon/ni: fix typo in dpm sq ramping setup
        drm/radeon/si: fix typo in dpm sq ramping setup
        drm/radeon: fix CP semaphores on CIK
        drm/radeon: delete a stray tab
        drm/radeon: fix display tiling setup on SI
        drm/radeon/dpm: reduce r7xx vblank mclk threshold to 200
        drm/radeon: fill in DRM_CAPs for cursor size
        drm: add DRM_CAPs for cursor size
        drm/radeon: unify bpc handling
        drm/ttm: Fix memory leak in ttm_agp_backend.c
        drm/ttm: declare 'struct device' in ttm_page_alloc.h
        drm/nouveau: fix TTM_PL_TT memtype on pre-nv50
        drm/nv50/disp: use correct register to determine DP display bpp
        drm/nouveau/fb: use correct ram oclass for nv1a hardware
        drm/nv50/gr: add missing nv_error parameter priv
        drm/nouveau: fix ENG_RUNLIST register address
        drm/nv4c/bios: disallow retrieving from prom on nv4x igp's
        drm/nv4c/vga: decode register is in a different place on nv4x igp's
        drm/nv4c/mc: nv4x igp's have a different msi rearm register
        drm/nouveau: set irq_enabled manually
        ...
      960dfc4e
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid · 525b8709
      Linus Torvalds authored
      Pull HID update from Jiri Kosina:
      
       - fixes for several bugs in incorrect allocations of buffers by David
         Herrmann and Benjamin Tissoires.
      
       - support for a few new device IDs by Archana Patni, Benjamin
         Tissoires, Huei-Horng Yo, Reyad Attiyat and Yufeng Shen
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
        HID: hyperv: make sure input buffer is big enough
        HID: Bluetooth: hidp: make sure input buffers are big enough
        HID: hid-sensor-hub: quirk for STM Sensor hub
        HID: apple: add Apple wireless keyboard 2011 JIS model support
        HID: fix buffer allocations
        HID: multitouch: add FocalTech FTxxxx support
        HID: microsoft: Add ID's for Surface Type/Touch Cover 2
        HID: usbhid: quirk for CY-TM75 75 inch Touch Overlay
      525b8709
  6. 18 Feb, 2014 16 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · b0d3f6d4
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) kvaser CAN driver has fixed limits of some of it's table, validate
          that we won't exceed those limits at probe time.  Fix from Olivier
          Sobrie.
      
       2) Fix rtl8192ce disabling interrupts for too long, from Olivier
          Langlois.
      
       3) Fix botched shift in ath5k driver, from Dan Carpenter.
      
       4) Fix corruption of deferred packets in TIPC, from Erik Hugne.
      
       5) Fix newlink error path in macvlan driver, from Cong Wang.
      
       6) Fix netpoll deadlock in bonding, from Ding Tianhong.
      
       7) Handle GSO packets properly in forwarding path when fragmentation is
          necessary on egress, from Florian Westphal.
      
       8) Fix axienet build errors, from Michal Simek.
      
       9) Fix refcounting of ubufs on tx in vhost net driver, from Michael S
          Tsirkin.
      
      10) Carrier status isn't set properly in hyperv driver, from Haiyang
          Zhang.
      
      11) Missing pci_disable_device() in tulip_remove_one), from Ingo Molnar.
      
      12) AF_PACKET qdisc bypass mode doesn't adhere to driver provided TX
          queue selection method.  Add a fallback method mechanism to fix this
          bug, from Daniel Borkmann.
      
      13) Fix regression in link local route handling on GRE tunnels, from
          Nicolas Dichtel.
      
      14) Bonding can assign dup aggregator IDs in some sequences of
          configuration, fix by making the allocation counter per-bond instead
          of global.  From Jiri Bohac.
      
      15) sctp_connectx() needs compat translations, from Daniel Borkmann.
      
      16) Fix of_mdio PHY interrupt parsing, from Ben Dooks
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (62 commits)
        MAINTAINERS: add entry for the PHY library
        of_mdio: fix phy interrupt passing
        net: ethernet: update dependency and help text of mvneta
        NET: fec: only enable napi if we are successful
        af_packet: remove a stray tab in packet_set_ring()
        net: sctp: fix sctp_connectx abi for ia32 emulation/compat mode
        ipv4: fix counter in_slow_tot
        irtty-sir.c: Do not set_termios() on irtty_close()
        bonding: 802.3ad: make aggregator_identifier bond-private
        usbnet: remove generic hard_header_len check
        gre: add link local route when local addr is any
        batman-adv: fix potential kernel paging error for unicast transmissions
        batman-adv: avoid double free when orig_node initialization fails
        batman-adv: free skb on TVLV parsing success
        batman-adv: fix TT CRC computation by ensuring byte order
        batman-adv: fix potential orig_node reference leak
        batman-adv: avoid potential race condition when adding a new neighbour
        batman-adv: properly check pskb_may_pull return value
        batman-adv: release vlan object after checking the CRC
        batman-adv: fix TT-TVLV parsing on OGM reception
        ...
      b0d3f6d4
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm · 91c6c8dc
      Linus Torvalds authored
      Pull ARM fixes from Russell King:
       "A range of ARM fixes.  Biggest change is the stage-2 attributes used
        for for hyp mode which were wrong.  I've killed some bits in a couple
        of DT files which turned out not to be required, and a few other
        fixes.
      
        One fix touches code outside of arch/arm, which is related to sorting
        out the DMA masks correctly.  There is a long standing issue with the
        conversion from PFNs to addresses where people assume that shifting an
        unsigned long left by PAGE_SHIFT results in a correct address.  This
        is not the case with C: the integer promotion happens at assignment
        after evaluation.  This fixes the recently introduced dma_max_pfn()
        function, but there's a number of other places where we try this
        directly on an unsigned long in the mm code"
      
      * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
        ARM: 7957/1: add DSB after icache flush in __flush_icache_all()
        Fix uses of dma_max_pfn() when converting to a limiting address
        ARM: 7955/1: spinlock: ensure we have a compiler barrier before sev
        ARM: 7953/1: mm: ensure TLB invalidation is complete before enabling MMU
        ARM: 7952/1: mm: Fix the memblock allocation for LPAE machines
        ARM: 7950/1: mm: Fix stage-2 device memory attributes
        ARM: dts: fix spdif pinmux configuration
      91c6c8dc
    • Linus Torvalds's avatar
      Merge tag 'jfs-3.14-rc4' of git://github.com/kleikamp/linux-shaggy · 341bbdc5
      Linus Torvalds authored
      Pull jfs fix from David Kleikamp:
       "Another ACL regression. This one more subtle"
      
      * tag 'jfs-3.14-rc4' of git://github.com/kleikamp/linux-shaggy:
        jfs: set i_ctime when setting ACL
      341bbdc5
    • Florian Fainelli's avatar
      MAINTAINERS: add entry for the PHY library · 22f08ad9
      Florian Fainelli authored
      The PHY library has been subject to some changes, new drivers and DT
      interactions over the past few months. Add myself as a maintainer for
      the core PHY library parts and drivers. Make sure the PHY library entry
      also covers the Device Tree files which have a close interaction with
      the MDIO bus, PHY connection and Ethernet PHY mode parsing.
      
      CC: Grant Likely <grant.likely@linaro.org>
      CC: Shaohui Xie <shaohui.xie@freescale.com>
      CC: Andy Fleming <afleming@gmail.com>
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      22f08ad9
    • Ben Dooks's avatar
      of_mdio: fix phy interrupt passing · f15c586d
      Ben Dooks authored
      The of_mdiobus_register_phy() is not setting phy->irq thus causing
      some drivers to incorrectly assume that the PHY does not have an
      IRQ associated with it. Not only do some drivers report no IRQ
      they do not install an interrupt handler for the PHY.
      
      Simplify the code setting irq and set the phy->irq at the same
      time so that we cover the following issues, which should cover
      all the cases the code will find:
      
      - Set phy->irq if node has irq property and mdio->irq is NULL
      - Set phy->irq if node has no irq and mdio->irq is not NULL
      - Leave phy->irq as PHY_POLL default if none of the above
      
      This fixes the issue:
       net eth0: attached PHY 1 (IRQ -1) to driver Micrel KSZ8041RNLI
      
      to the correct:
       net eth0: attached PHY 1 (IRQ 416) to driver Micrel KSZ8041RNLI
      Signed-off-by: default avatarBen Dooks <ben.dooks@codethink.co.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f15c586d
    • Thomas Petazzoni's avatar
      net: ethernet: update dependency and help text of mvneta · 4b636b53
      Thomas Petazzoni authored
      With the introduction of the support for Armada 375 and Armada 38x,
      the hidden Kconfig option MACH_ARMADA_370_XP is being renamed to
      MACH_MVEBU_V7. Therefore, the dependency that was used for the mvneta
      driver can no longer work. This commit replaces this dependency by a
      dependency on PLAT_ORION, which is used similarly for the mv643xx_eth
      driver.
      
      In addition to this, it takes this opportunity to adjust the
      description and help text to indicate that the driver can is also used
      for Armada 38x. Note that Armada 375 cannot use this driver as it has
      a completely different networking unit, which will require a separate
      driver.
      Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Acked-by: default avatarJason Cooper <jason@lakedaemon.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4b636b53
    • Russell King's avatar
      NET: fec: only enable napi if we are successful · ce5eaf02
      Russell King authored
      If napi is left enabled after a failed attempt to bring the interface
      up, we BUG:
      
      fec 2188000.ethernet eth0: no PHY, assuming direct connection to switch
      libphy: PHY fixed-0:00 not found
      fec 2188000.ethernet eth0: could not attach to PHY
      ------------[ cut here ]------------
      kernel BUG at include/linux/netdevice.h:502!
      Internal error: Oops - BUG: 0 [#1] SMP ARM
      ...
      PC is at fec_enet_open+0x4d0/0x500
      LR is at __dev_open+0xa4/0xfc
      
      Only enable napi after we are past all the failure paths.
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ce5eaf02
    • Dan Carpenter's avatar
      af_packet: remove a stray tab in packet_set_ring() · d7cf0c34
      Dan Carpenter authored
      At first glance it looks like there is a missing curly brace but
      actually the code works the same either way.  I have adjusted the
      indenting but left the code the same.
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Acked-by: default avatarDaniel Borkmann <dborkman@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d7cf0c34
    • Dave Airlie's avatar
      Merge tag 'ttm-fixes-3.14-2014-02-18' of git://people.freedesktop.org/~thomash/linux into drm-fixes · 75936c65
      Dave Airlie authored
      Pull request of 2014-02-18
      
      One compile fix and one memory leak.
      
      * tag 'ttm-fixes-3.14-2014-02-18' of git://people.freedesktop.org/~thomash/linux:
        drm/ttm: Fix memory leak in ttm_agp_backend.c
        drm/ttm: declare 'struct device' in ttm_page_alloc.h
      75936c65
    • Dave Airlie's avatar
      Merge tag 'vmwgfx-fixes-3.14-2014-02-18' of... · 9830e44f
      Dave Airlie authored
      Merge tag 'vmwgfx-fixes-3.14-2014-02-18' of git://people.freedesktop.org/~thomash/linux into drm-fixes
      
      Pull request of 2014-02-18.
      
      Nothing special. The biggest change is adding a couple of command defines and
      packing the command data correctly.
      
      * tag 'vmwgfx-fixes-3.14-2014-02-18' of git://people.freedesktop.org/~thomash/linux:
        drm/vmwgfx: Fix command defines and checks
        drm/vmwgfx: Fix possible integer overflow
        drm/vmwgfx: Remove stray const
        drm/vmwgfx: unlock on error path in vmw_execbuf_process()
        drm/vmwgfx: Get maximum mob size from register SVGA_REG_MOB_MAX_SIZE
        drm/vmwgfx: Fix a couple of sparse warnings and errors
      9830e44f
    • Dave Airlie's avatar
      Merge branch 'drm-fixes-3.14' of git://people.freedesktop.org/~agd5f/linux into drm-fixes · 560591f1
      Dave Airlie authored
      Fix for 128x128 cursors, along with some misc fixes.
      
      * 'drm-fixes-3.14' of git://people.freedesktop.org/~agd5f/linux:
        drm/radeon/ni: fix typo in dpm sq ramping setup
        drm/radeon/si: fix typo in dpm sq ramping setup
        drm/radeon: fix CP semaphores on CIK
        drm/radeon: delete a stray tab
        drm/radeon: fix display tiling setup on SI
        drm/radeon/dpm: reduce r7xx vblank mclk threshold to 200
        drm/radeon: fill in DRM_CAPs for cursor size
        drm: add DRM_CAPs for cursor size
        drm/radeon: unify bpc handling
      560591f1
    • David S. Miller's avatar
      Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless · d3ec67c0
      David S. Miller authored
      John W. Linville says:
      
      ====================
      Please pull this batch of fixes intended for the 3.14 stream...
      
      For the iwlwifi one, Emmanuel says:
      
      "As explicitly written in the commit message, we prefer to disable Tx
      AMPDU on NICs supported by iwldvm. This feature gives a big boost in
      Tx performance, but the firmware is buggy and we can't rely on it.
      Our hope is that most of the users out there want wifi to surf on
      the web which means that they care more for Rx traffic than for Tx.
      People who want to enable it can do so with the help of a module
      parameter."
      
      On top of that...
      
      Dan Carpenter fixes a typo/thinko in ath5k.
      
      Olivier Langlois fixes a couple of rtlwifi issues, one which leaves
      IRQs disabled too long (causing a variety of problems elsewhere),
      and one which fixes an incorrect return code when failing to enable
      the NIC.
      
      Russell King fixes a NULL pointer dereference in hostap.
      
      Stanislaw Gruszka fixes a DMA coherence issue in the rtl8187 driver.
      
      Please let me know if there are problems!
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d3ec67c0
    • Daniel Borkmann's avatar
      net: sctp: fix sctp_connectx abi for ia32 emulation/compat mode · ffd59393
      Daniel Borkmann authored
      SCTP's sctp_connectx() abi breaks for 64bit kernels compiled with 32bit
      emulation (e.g. ia32 emulation or x86_x32). Due to internal usage of
      'struct sctp_getaddrs_old' which includes a struct sockaddr pointer,
      sizeof(param) check will always fail in kernel as the structure in
      64bit kernel space is 4bytes larger than for user binaries compiled
      in 32bit mode. Thus, applications making use of sctp_connectx() won't
      be able to run under such circumstances.
      
      Introduce a compat interface in the kernel to deal with such
      situations by using a 'struct compat_sctp_getaddrs_old' structure
      where user data is copied into it, and then sucessively transformed
      into a 'struct sctp_getaddrs_old' structure with the help of
      compat_ptr(). That fixes sctp_connectx() abi without any changes
      needed in user space, and lets the SCTP test suite pass when compiled
      in 32bit and run on 64bit kernels.
      
      Fixes: f9c67811 ("sctp: Fix regression introduced by new sctp_connectx api")
      Signed-off-by: default avatarDaniel Borkmann <dborkman@redhat.com>
      Acked-by: default avatarNeil Horman <nhorman@tuxdriver.com>
      Acked-by: default avatarVlad Yasevich <vyasevich@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ffd59393
    • David S. Miller's avatar
      Merge tag 'batman-adv-fix-for-davem' of git://git.open-mesh.org/linux-merge · 7ffb0d31
      David S. Miller authored
      Included changes:
      - fix soft-interface MTU computation
      - fix bogus pointer mangling when parsing the TT-TVLV
        container. This bug led to a wrong memory access.
      - fix memory leak by properly releasing the VLAN object
        after CRC check
      - properly check pskb_may_pull() return value
      - avoid potential race condition while adding new neighbour
      - fix potential memory leak by removing all the references
        to the orig_node object in case of initialization failure
      - fix the TT CRC computation by ensuring that every node uses
        the same byte order when hosts with different endianess are
        part of the same network
      - fix severe memory leak by freeing skb after a successful
        TVLV parsing
      - avoid potential double free when orig_node initialization
        fails
      - fix potential kernel paging error caused by the usage of
        the old value of skb->data after skb reallocation
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7ffb0d31
    • Alex Deucher's avatar
      drm/radeon/ni: fix typo in dpm sq ramping setup · 21ed4947
      Alex Deucher authored
      inverted logic.
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      21ed4947
    • Alex Deucher's avatar
      drm/radeon/si: fix typo in dpm sq ramping setup · 5b43c3cd
      Alex Deucher authored
      inverted logic.
      Noticed-by: default avatarSylvain BERTRAND <sylware@legeek.net>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org
      5b43c3cd