1. 01 Jun, 2015 10 commits
    • David S. Miller's avatar
      Merge tag 'wireless-drivers-for-davem-2015-06-01' of... · cd842a67
      David S. Miller authored
      Merge tag 'wireless-drivers-for-davem-2015-06-01' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers
      
      Kalle Valo says:
      
      ====================
      iwlwifi:
      
      * fix OTP parsing 8260
      * fix powersave handling for 8260
      
      brcmfmac:
      
      * fix null pointer crash
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cd842a67
    • Steffen Klassert's avatar
      vti6: Add pmtu handling to vti6_xmit. · ccd740cb
      Steffen Klassert authored
      We currently rely on the PMTU discovery of xfrm.
      However if a packet is localy sent, the PMTU mechanism
      of xfrm tries to to local socket notification what
      might not work for applications like ping that don't
      check for this. So add pmtu handling to vti6_xmit to
      report MTU changes immediately.
      Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ccd740cb
    • David S. Miller's avatar
      Revert "net: core: 'ethtool' issue with querying phy settings" · 18ec898e
      David S. Miller authored
      This reverts commit f96dee13.
      
      It isn't right, ethtool is meant to manage one PHY instance
      per netdevice at a time, and this is selected by the SET
      command.  Therefore by definition the GET command must only
      return the settings for the configured and selected PHY.
      Reported-by: default avatarBen Hutchings <ben@decadent.org.uk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      18ec898e
    • Yuval Mintz's avatar
      bnx2x: Move statistics implementation into semaphores · c6e36d8c
      Yuval Mintz authored
      Commit dff173de ("bnx2x: Fix statistics locking scheme") changed the
      bnx2x locking around statistics state into using a mutex - but the lock
      is being accessed via a timer which is forbidden.
      
      [If compiled with CONFIG_DEBUG_MUTEXES, logs show a warning about
      accessing the mutex in interrupt context]
      
      This moves the implementation into using a semaphore [with size '1']
      instead.
      Signed-off-by: default avatarYuval Mintz <Yuval.Mintz@qlogic.com>
      Signed-off-by: default avatarAriel Elior <Ariel.Elior@qlogic.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c6e36d8c
    • Ian Campbell's avatar
      xen: netback: read hotplug script once at start of day. · 31a41898
      Ian Campbell authored
      When we come to tear things down in netback_remove() and generate the
      uevent it is possible that the xenstore directory has already been
      removed (details below).
      
      In such cases netback_uevent() won't be able to read the hotplug
      script and will write a xenstore error node.
      
      A recent change to the hypervisor exposed this race such that we now
      sometimes lose it (where apparently we didn't ever before).
      
      Instead read the hotplug script configuration during setup and use it
      for the lifetime of the backend device.
      
      The apparently more obvious fix of moving the transition to
      state=Closed in netback_remove() to after the uevent does not work
      because it is possible that we are already in state=Closed (in
      reaction to the guest having disconnected as it shutdown). Being
      already in Closed means the toolstack is at liberty to start tearing
      down the xenstore directories. In principal it might be possible to
      arrange to unregister the device sooner (e.g on transition to Closing)
      such that xenstore would still be there but this state machine is
      fragile and prone to anger...
      
      A modern Xen system only relies on the hotplug uevent for driver
      domains, when the backend is in the same domain as the toolstack it
      will run the necessary setup/teardown directly in the correct sequence
      wrt xenstore changes.
      Signed-off-by: default avatarIan Campbell <ian.campbell@citrix.com>
      Acked-by: default avatarWei Liu <wei.liu2@citrix.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      31a41898
    • Ian Campbell's avatar
      xen: netback: fix printf format string warning · dc5e7a81
      Ian Campbell authored
      drivers/net/xen-netback/netback.c: In function ‘xenvif_tx_build_gops’:
      drivers/net/xen-netback/netback.c:1253:8: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 5 has type ‘int’ [-Wformat=]
              (txreq.offset&~PAGE_MASK) + txreq.size);
              ^
      
      PAGE_MASK's type can vary by arch, so a cast is needed.
      Signed-off-by: default avatarIan Campbell <ian.campbell@citrix.com>
      ----
      v2: Cast to unsigned long, since PAGE_MASK can vary by arch.
      Acked-by: default avatarWei Liu <wei.liu2@citrix.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dc5e7a81
    • Florian Fainelli's avatar
      net: dsa: Properly propagate errors from dsa_switch_setup_one · 24595346
      Florian Fainelli authored
      While shuffling some code around, dsa_switch_setup_one() was introduced,
      and it was modified to return either an error code using ERR_PTR() or a
      NULL pointer when running out of memory or failing to setup a switch.
      
      This is a problem for its caler: dsa_switch_setup() which uses IS_ERR()
      and expects to find an error code, not a NULL pointer, so we still try
      to proceed with dsa_switch_setup() and operate on invalid memory
      addresses. This can be easily reproduced by having e.g: the bcm_sf2
      driver built-in, but having no such switch, such that drv->setup will
      fail.
      
      Fix this by using PTR_ERR() consistently which is both more informative
      and avoids for the caller to use IS_ERR_OR_NULL().
      
      Fixes: df197195 ("net: dsa: split dsa_switch_setup into two functions")
      Reported-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Tested-by: default avatarAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      24595346
    • Neal Cardwell's avatar
      tcp: fix child sockets to use system default congestion control if not set · 9f950415
      Neal Cardwell authored
      Linux 3.17 and earlier are explicitly engineered so that if the app
      doesn't specifically request a CC module on a listener before the SYN
      arrives, then the child gets the system default CC when the connection
      is established. See tcp_init_congestion_control() in 3.17 or earlier,
      which says "if no choice made yet assign the current value set as
      default". The change ("net: tcp: assign tcp cong_ops when tcp sk is
      created") altered these semantics, so that children got their parent
      listener's congestion control even if the system default had changed
      after the listener was created.
      
      This commit returns to those original semantics from 3.17 and earlier,
      since they are the original semantics from 2007 in 4d4d3d1e ("[TCP]:
      Congestion control initialization."), and some Linux congestion
      control workflows depend on that.
      
      In summary, if a listener socket specifically sets TCP_CONGESTION to
      "x", or the route locks the CC module to "x", then the child gets
      "x". Otherwise the child gets current system default from
      net.ipv4.tcp_congestion_control. That's the behavior in 3.17 and
      earlier, and this commit restores that.
      
      Fixes: 55d8694f ("net: tcp: assign tcp cong_ops when tcp sk is created")
      Cc: Florian Westphal <fw@strlen.de>
      Cc: Daniel Borkmann <dborkman@redhat.com>
      Cc: Glenn Judd <glenn.judd@morganstanley.com>
      Cc: Stephen Hemminger <stephen@networkplumber.org>
      Signed-off-by: default avatarNeal Cardwell <ncardwell@google.com>
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarYuchung Cheng <ycheng@google.com>
      Acked-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9f950415
    • Eric Dumazet's avatar
      udp: fix behavior of wrong checksums · beb39db5
      Eric Dumazet authored
      We have two problems in UDP stack related to bogus checksums :
      
      1) We return -EAGAIN to application even if receive queue is not empty.
         This breaks applications using edge trigger epoll()
      
      2) Under UDP flood, we can loop forever without yielding to other
         processes, potentially hanging the host, especially on non SMP.
      
      This patch is an attempt to make things better.
      
      We might in the future add extra support for rt applications
      wanting to better control time spent doing a recv() in a hostile
      environment. For example we could validate checksums before queuing
      packets in socket receive queue.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Cc: Willem de Bruijn <willemb@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      beb39db5
    • Daniel Pieczko's avatar
      sfc: free multiple Rx buffers when required · 9eb0a5d1
      Daniel Pieczko authored
      When Rx packet data must be dropped, all the buffers
      associated with that Rx packet must be freed. Extend
      and rename efx_free_rx_buffer() to efx_free_rx_buffers()
      and loop through all the fragments.
      By doing so this patch fixes a possible memory leak.
      Signed-off-by: default avatarShradha Shah <sshah@solarflare.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9eb0a5d1
  2. 31 May, 2015 6 commits
  3. 29 May, 2015 2 commits
    • David S. Miller's avatar
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec · 5aab0e8a
      David S. Miller authored
      Steffen Klassert says:
      
      ====================
      pull request (net): ipsec 2015-05-28
      
      1) Fix a race in xfrm_state_lookup_byspi, we need to take
         the refcount before we release xfrm_state_lock.
         From Li RongQing.
      
      2) Fix IV generation on ESN state. We used just the
         low order sequence numbers for IV generation on
         ESN, as a result the IV can repeat on the same
         state. Fix this by using the  high order sequence
         number bits too and make sure to always initialize
         the high order bits with zero. These patches are
         serious stable candidates. Fixes from Herbert Xu.
      
      3) Fix the skb->mark handling on vti. We don't
         reset skb->mark in skb_scrub_packet anymore,
         so vti must care to restore the original
         value back after it was used to lookup the
         vti policy and state. Fixes from Alexander Duyck.
      
      Please pull or let me know if there are problems.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5aab0e8a
    • Roger Luethi's avatar
      via-rhine: Resigning as maintainer · 210347e1
      Roger Luethi authored
      I don't have enough time to look after via-rhine anymore.
      Signed-off-by: default avatarRoger Luethi <rl@hellgate.ch>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      210347e1
  4. 28 May, 2015 8 commits
    • Kalle Valo's avatar
      Merge tag 'iwlwifi-for-kalle-2015-05-28' of... · 38fe44e6
      Kalle Valo authored
      Merge tag 'iwlwifi-for-kalle-2015-05-28' of https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-fixes
      
      * fix OTP parsing 8260
      * fix powersave handling for 8260
      38fe44e6
    • Arend van Spriel's avatar
      brcmfmac: avoid null pointer access when brcmf_msgbuf_get_pktid() fails · 7d072b40
      Arend van Spriel authored
      The function brcmf_msgbuf_get_pktid() may return a NULL pointer so
      the callers should check the return pointer before accessing it to
      avoid the crash below (see [1]):
      
      brcmfmac: brcmf_msgbuf_get_pktid: Invalid packet id 273 (not in use)
      BUG: unable to handle kernel NULL pointer dereference at 0000000000000080
      IP: [<ffffffff8145b225>] skb_pull+0x5/0x50
      PGD 0
      Oops: 0000 [#1] PREEMPT SMP
      Modules linked in: pci_stub vboxpci(O) vboxnetflt(O) vboxnetadp(O) vboxdrv(O)
       snd_hda_codec_hdmi bnep mousedev hid_generic ushwmon msr ext4 crc16 mbcache
       jbd2 sd_mod uas usb_storage ahci libahci libata scsi_mod xhci_pci xhci_hcd
       usbcore usb_common
      CPU: 0 PID: 1661 Comm: irq/61-brcmf_pc Tainted: G O    4.0.1-MacbookPro-ARCH #1
      Hardware name: Apple Inc. MacBookPro12,1/Mac-E43C1C25D4880AD6,
       BIOS MBP121.88Z.0167.B02.1503241251 03/24/2015
      task: ffff880264203cc0 ti: ffff88025ffe4000 task.ti: ffff88025ffe4000
      RIP: 0010:[<ffffffff8145b225>]  [<ffffffff8145b225>] skb_pull+0x5/0x50
      RSP: 0018:ffff88025ffe7d40  EFLAGS: 00010202
      RAX: 0000000000000000 RBX: ffff88008a33c000 RCX: 0000000000000044
      RDX: 0000000000000000 RSI: 000000000000004a RDI: 0000000000000000
      RBP: ffff88025ffe7da8 R08: 0000000000000096 R09: 000000000000004a
      R10: 0000000000000000 R11: 000000000000048e R12: ffff88025ff14f00
      R13: 0000000000000000 R14: ffff880263b48200 R15: ffff88008a33c000
      FS:  0000000000000000(0000) GS:ffff88026ec00000(0000) knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: 0000000000000080 CR3: 000000000180b000 CR4: 00000000003407f0
      Stack:
       ffffffffa06aed74 ffff88025ffe7dc8 ffff880263b48270 ffff880263b48278
       05ea88020000004a 0002ffff81014635 000000001720b2f6 ffff88026ec116c0
       ffff880263b48200 0000000000010000 ffff880263b4ae00 ffff880264203cc0
      Call Trace:
       [<ffffffffa06aed74>] ? brcmf_msgbuf_process_rx+0x404/0x480 [brcmfmac]
       [<ffffffff810cea60>] ? irq_finalize_oneshot.part.30+0xf0/0xf0
       [<ffffffffa06afb55>] brcmf_proto_msgbuf_rx_trigger+0x35/0xf0 [brcmfmac]
       [<ffffffffa06baf2a>] brcmf_pcie_isr_thread_v2+0x8a/0x130 [brcmfmac]
       [<ffffffff810cea80>] irq_thread_fn+0x20/0x50
       [<ffffffff810ceddf>] irq_thread+0x13f/0x170
       [<ffffffff810cebf0>] ? wake_threads_waitq+0x30/0x30
       [<ffffffff810ceca0>] ? irq_thread_dtor+0xb0/0xb0
       [<ffffffff81092a08>] kthread+0xd8/0xf0
       [<ffffffff81092930>] ? kthread_create_on_node+0x1c0/0x1c0
       [<ffffffff8156d898>] ret_from_fork+0x58/0x90
       [<ffffffff81092930>] ? kthread_create_on_node+0x1c0/0x1c0
      Code: 01 83 e2 f7 88 50 01 48 83 c4 08 5b 5d f3 c3 0f 1f 80 00 00 00 00 83 e2
       f7 88 50 01 c3 66 0f 1f 84 00 00 00 00 00 0f 1f
      RIP  [<ffffffff8145b225>] skb_pull+0x5/0x50
       RSP <ffff88025ffe7d40>
      CR2: 0000000000000080
      ---[ end trace b074c0f90e7c997d ]---
      
      [1] http://mid.gmane.org/20150430193259.GA5630@googlemail.com
      
      Cc: <stable@vger.kernel.org> # v3.18, v3.19, v4.0, v4.1
      Reported-by: default avatarMichael Hornung <mhornung.linux@gmail.com>
      Reviewed-by: default avatarHante Meuleman <meuleman@broadcom.com>
      Reviewed-by: default avatarPieter-Paul Giesberts <pieterpg@broadcom.com>
      Signed-off-by: default avatarArend van Spriel <arend@broadcom.com>
      Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
      7d072b40
    • Jonathan Corbet's avatar
      mac80211: Fix mac80211.h docbook comments · 3a7af58f
      Jonathan Corbet authored
      A couple of enums in mac80211.h became structures recently, but the
      comments didn't follow suit, leading to errors like:
      
        Error(.//include/net/mac80211.h:367): Cannot parse enum!
        Documentation/DocBook/Makefile:93: recipe for target 'Documentation/DocBook/80211.xml' failed
        make[1]: *** [Documentation/DocBook/80211.xml] Error 1
        Makefile:1361: recipe for target 'mandocs' failed
        make: *** [mandocs] Error 2
      
      Fix the comments comments accordingly.  Added a couple of other small
      comment fixes while I was there to silence other recently-added docbook
      warnings.
      Reported-by: default avatarJim Davis <jim.epost@gmail.com>
      Signed-off-by: default avatarJonathan Corbet <corbet@lwn.net>
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      3a7af58f
    • Liad Kaufman's avatar
      iwlwifi: nvm: fix otp parsing in 8000 hw family · f115fdfd
      Liad Kaufman authored
      The radio cfg DWORD was taken from the wrong place in the
      8000 HW family, after a line in the code was wrongly changed
      by mistake. This broke several 8260 devices.
      
      Fixes: 5dd9c68a ("iwlwifi: drop support for early versions of 8000")
      Signed-off-by: default avatarLiad Kaufman <liad.kaufman@intel.com>
      Reviewed-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      f115fdfd
    • Ilan Peer's avatar
      iwlwifi: pcie: fix tracking of cmd_in_flight · fc8a350d
      Ilan Peer authored
      The cmd_in_flight tracking was introduced to workaround faulty
      power management hardware, by having the driver keep the NIC
      awake as long as there are commands in flight. However, some of
      the code handling this workaround was unconditionally executed,
      which resulted with an inconsistent state where the driver assumed
      that the NIC was awake although it wasn't.
      
      Fix this by renaming 'cmd_in_flight' to 'cmd_hold_nic_awake' and
      handling the NIC requested awake state only for hardwares for
      which the workaround is needed.
      Signed-off-by: default avatarIlan Peer <ilan.peer@intel.com>
      Signed-off-by: default avatarEmmanuel Grumbach <emmanuel.grumbach@intel.com>
      fc8a350d
    • Alexander Duyck's avatar
      ip_vti/ip6_vti: Preserve skb->mark after rcv_cb call · d55c670c
      Alexander Duyck authored
      The vti6_rcv_cb and vti_rcv_cb calls were leaving the skb->mark modified
      after completing the function.  This resulted in the original skb->mark
      value being lost.  Since we only need skb->mark to be set for
      xfrm_policy_check we can pull the assignment into the rcv_cb calls and then
      just restore the original mark after xfrm_policy_check has been completed.
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@redhat.com>
      Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
      d55c670c
    • Alexander Duyck's avatar
      xfrm: Override skb->mark with tunnel->parm.i_key in xfrm_input · 049f8e2e
      Alexander Duyck authored
      This change makes it so that if a tunnel is defined we just use the mark
      from the tunnel instead of the mark from the skb header.  By doing this we
      can avoid the need to set skb->mark inside of the tunnel receive functions.
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@redhat.com>
      Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
      049f8e2e
    • Alexander Duyck's avatar
      ip_vti/ip6_vti: Do not touch skb->mark on xmit · cd5279c1
      Alexander Duyck authored
      Instead of modifying skb->mark we can simply modify the flowi_mark that is
      generated as a result of the xfrm_decode_session.  By doing this we don't
      need to actually touch the skb->mark and it can be preserved as it passes
      out through the tunnel.
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@redhat.com>
      Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
      cd5279c1
  5. 27 May, 2015 14 commits
    • Linus Torvalds's avatar
      Merge branch 'for-next' of git://git.samba.org/sfrench/cifs-2.6 · de182468
      Linus Torvalds authored
      Pull cifs fixes from Steve French:
       "Back from SambaXP - now have 8 small CIFS bug fixes to merge"
      
      * 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
        CIFS: Fix race condition on RFC1002_NEGATIVE_SESSION_RESPONSE
        Fix to convert SURROGATE PAIR
        cifs: potential missing check for posix_lock_file_wait
        Fix to check Unique id and FileType when client refer file directly.
        CIFS: remove an unneeded NULL check
        [cifs] fix null pointer check
        Fix that several functions handle incorrect value of mapchars
        cifs: Don't replace dentries for dfs mounts
      de182468
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 8f98bcdf
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Don't use MMIO on certain iwlwifi devices otherwise we get a
          firmware crash.
      
       2) Don't corrupt the GRO lists of mac80211 contexts by doing sends via
          timer interrupt, from Johannes Berg.
      
       3) SKB tailroom is miscalculated in AP_VLAN crypto code, from Michal
          Kazior.
      
       4) Fix fw_status memory leak in iwlwifi, from Haim Dreyfuss.
      
       5) Fix use after free in iwl_mvm_d0i3_enable_tx(), from Eliad Peller.
      
       6) JIT'ing of large BPF programs is broken on x86, from Alexei
          Starovoitov.
      
       7) EMAC driver ethtool register dump size is miscalculated, from Ivan
          Mikhaylov.
      
       8) Fix PHY initial link mode when autonegotiation is disabled in
          amd-xgbe, from Tom Lendacky.
      
       9) Fix NULL deref on SOCK_DEAD socket in AF_UNIX and CAIF protocols,
          from Mark Salyzyn.
      
      10) credit_bytes not initialized properly in xen-netback, from Ross
         Lagerwall.
      
      11) Fallback from MSI-X to INTx interrupts not handled properly in mlx4
          driver, fix from Benjamin Poirier.
      
      12) Perform ->attach() after binding dev->qdisc in packet scheduler,
          otherwise we can crash.  From Cong WANG.
      
      13) Don't clobber data in sctp_v4_map_v6().  From Jason Gunthorpe.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (30 commits)
        sctp: Fix mangled IPv4 addresses on a IPv6 listening socket
        net_sched: invoke ->attach() after setting dev->qdisc
        xen-netfront: properly destroy queues when removing device
        mlx4_core: Fix fallback from MSI-X to INTx
        xen/netback: Properly initialize credit_bytes
        net: netxen: correct sysfs bin attribute return code
        tools: bpf_jit_disasm: fix segfault on disabled debugging log output
        unix/caif: sk_socket can disappear when state is unlocked
        amd-xgbe-phy: Fix initial mode when autoneg is disabled
        net: dp83640: fix improper double spin locking.
        net: dp83640: reinforce locking rules.
        net: dp83640: fix broken calibration routine.
        net: stmmac: create one debugfs dir per net-device
        net/ibm/emac: fix size of emac dump memory areas
        x86: bpf_jit: fix compilation of large bpf programs
        net: phy: bcm7xxx: Fix 7425 PHY ID and flags
        iwlwifi: mvm: avoid use-after-free on iwl_mvm_d0i3_enable_tx()
        iwlwifi: mvm: clean net-detect info if device was reset during suspend
        iwlwifi: mvm: take the UCODE_DOWN reference when resuming
        iwlwifi: mvm: BT Coex - duplicate the command if sent ASYNC
        ...
      8f98bcdf
    • Jason Gunthorpe's avatar
      sctp: Fix mangled IPv4 addresses on a IPv6 listening socket · 9302d7bb
      Jason Gunthorpe authored
      sctp_v4_map_v6 was subtly writing and reading from members
      of a union in a way the clobbered data it needed to read before
      it read it.
      
      Zeroing the v6 flowinfo overwrites the v4 sin_addr with 0, meaning
      that every place that calls sctp_v4_map_v6 gets ::ffff:0.0.0.0 as the
      result.
      
      Reorder things to guarantee correct behaviour no matter what the
      union layout is.
      
      This impacts user space clients that open an IPv6 SCTP socket and
      receive IPv4 connections. Prior to 299ee user space would see a
      sockaddr with AF_INET and a correct address, after 299ee the sockaddr
      is AF_INET6, but the address is wrong.
      
      Fixes: 299ee123 (sctp: Fixup v4mapped behaviour to comply with Sock API)
      Signed-off-by: default avatarJason Gunthorpe <jgunthorpe@obsidianresearch.com>
      Acked-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Acked-by: default avatarNeil Horman <nhorman@tuxdriver.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9302d7bb
    • WANG Cong's avatar
      net_sched: invoke ->attach() after setting dev->qdisc · 86e363dc
      WANG Cong authored
      For mq qdisc, we add per tx queue qdisc to root qdisc
      for display purpose, however, that happens too early,
      before the new dev->qdisc is finally set, this causes
      q->list points to an old root qdisc which is going to be
      freed right before assigning with a new one.
      
      Fix this by moving ->attach() after setting dev->qdisc.
      
      For the record, this fixes the following crash:
      
       ------------[ cut here ]------------
       WARNING: CPU: 1 PID: 975 at lib/list_debug.c:59 __list_del_entry+0x5a/0x98()
       list_del corruption. prev->next should be ffff8800d1998ae8, but was 6b6b6b6b6b6b6b6b
       CPU: 1 PID: 975 Comm: tc Not tainted 4.1.0-rc4+ #1019
       Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
        0000000000000009 ffff8800d73fb928 ffffffff81a44e7f 0000000047574756
        ffff8800d73fb978 ffff8800d73fb968 ffffffff810790da ffff8800cfc4cd20
        ffffffff814e725b ffff8800d1998ae8 ffffffff82381250 0000000000000000
       Call Trace:
        [<ffffffff81a44e7f>] dump_stack+0x4c/0x65
        [<ffffffff810790da>] warn_slowpath_common+0x9c/0xb6
        [<ffffffff814e725b>] ? __list_del_entry+0x5a/0x98
        [<ffffffff81079162>] warn_slowpath_fmt+0x46/0x48
        [<ffffffff81820eb0>] ? dev_graft_qdisc+0x5e/0x6a
        [<ffffffff814e725b>] __list_del_entry+0x5a/0x98
        [<ffffffff814e72a7>] list_del+0xe/0x2d
        [<ffffffff81822f05>] qdisc_list_del+0x1e/0x20
        [<ffffffff81820cd1>] qdisc_destroy+0x30/0xd6
        [<ffffffff81822676>] qdisc_graft+0x11d/0x243
        [<ffffffff818233c1>] tc_get_qdisc+0x1a6/0x1d4
        [<ffffffff810b5eaf>] ? mark_lock+0x2e/0x226
        [<ffffffff817ff8f5>] rtnetlink_rcv_msg+0x181/0x194
        [<ffffffff817ff72e>] ? rtnl_lock+0x17/0x19
        [<ffffffff817ff72e>] ? rtnl_lock+0x17/0x19
        [<ffffffff817ff774>] ? __rtnl_unlock+0x17/0x17
        [<ffffffff81855dc6>] netlink_rcv_skb+0x4d/0x93
        [<ffffffff817ff756>] rtnetlink_rcv+0x26/0x2d
        [<ffffffff818544b2>] netlink_unicast+0xcb/0x150
        [<ffffffff81161db9>] ? might_fault+0x59/0xa9
        [<ffffffff81854f78>] netlink_sendmsg+0x4fa/0x51c
        [<ffffffff817d6e09>] sock_sendmsg_nosec+0x12/0x1d
        [<ffffffff817d8967>] sock_sendmsg+0x29/0x2e
        [<ffffffff817d8cf3>] ___sys_sendmsg+0x1b4/0x23a
        [<ffffffff8100a1b8>] ? native_sched_clock+0x35/0x37
        [<ffffffff810a1d83>] ? sched_clock_local+0x12/0x72
        [<ffffffff810a1fd4>] ? sched_clock_cpu+0x9e/0xb7
        [<ffffffff810def2a>] ? current_kernel_time+0xe/0x32
        [<ffffffff810b4bc5>] ? lock_release_holdtime.part.29+0x71/0x7f
        [<ffffffff810ddebf>] ? read_seqcount_begin.constprop.27+0x5f/0x76
        [<ffffffff810b6292>] ? trace_hardirqs_on_caller+0x17d/0x199
        [<ffffffff811b14d5>] ? __fget_light+0x50/0x78
        [<ffffffff817d9808>] __sys_sendmsg+0x42/0x60
        [<ffffffff817d9838>] SyS_sendmsg+0x12/0x1c
        [<ffffffff81a50e97>] system_call_fastpath+0x12/0x6f
       ---[ end trace ef29d3fb28e97ae7 ]---
      
      For long term, we probably need to clean up the qdisc_graft() code
      in case it hides other bugs like this.
      
      Fixes: 95dc1929 ("pkt_sched: give visibility to mq slave qdiscs")
      Cc: Jamal Hadi Salim <jhs@mojatatu.com>
      Signed-off-by: default avatarCong Wang <xiyou.wangcong@gmail.com>
      Acked-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      86e363dc
    • David Vrabel's avatar
      xen-netfront: properly destroy queues when removing device · ad068118
      David Vrabel authored
      xennet_remove() freed the queues before freeing the netdevice which
      results in a use-after-free when free_netdev() tries to delete the
      napi instances that have already been freed.
      
      Fix this by fully destroy the queues (which includes deleting the napi
      instances) before freeing the netdevice.
      Signed-off-by: default avatarDavid Vrabel <david.vrabel@citrix.com>
      Reviewed-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ad068118
    • Linus Torvalds's avatar
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7ffb9e11
      Linus Torvalds authored
      Pull x86 fixes from Ingo Molnar:
       "This tree includes:
      
         - a fix that disables the compacted FPU XSAVE format by disabling
           XSAVES support: the fixes are too complex and the breakages
           ABI-affecting, so we want this to be quirked off in a robust way
           and backported, to make sure no broken kernel is exposed to the new
           hardware (which exposure is still very limited).
      
         - an MCE printk message fix
      
         - a documentation fix"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/fpu: Disable XSAVES* support for now
        x86/Documentation: Update the contact email for L3 cache index disable functionality
        x86/mce: Fix MCE severity messages
      7ffb9e11
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha · 70d7d88f
      Linus Torvalds authored
      Pull alpha updates from Matt Turner:
       "Please pull a small collection of patches that I've been neglecting.
      
        Probably most importantly are the patches that wire up the new
        syscalls needed by udev and the fix to the bootp{,z}file targets"
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mattst88/alpha:
        alpha: kernel: osf_sys: Set 'kts.tv_nsec' only when 'tv' has effect
        alpha: Wire up all missing implemented syscalls
        alpha: Fix bootpfile and bootpzfile make targets
        alpha: copy_thread(): rename 'arg' argument to 'kthread_arg'
        alpha: delete non-required instances of <linux/init.h>
        alpha: don't use module_init for non-modular core code
        smp, alpha: kill SMP single function call interrupt
        alpha: Remove #include <uapi/asm/types.h> from <asm/types.h>
        alpha: clean up unnecessary MSI/MSI-X capability find
      70d7d88f
    • Benjamin Poirier's avatar
      mlx4_core: Fix fallback from MSI-X to INTx · f4ecf29f
      Benjamin Poirier authored
      The test in mlx4_load_one() to remove MLX4_FLAG_MSI_X expects mlx4_NOP() to
      fail with -EBUSY. It is also necessary to avoid the reset since the device
      is not fully reinitialized before calling mlx4_start_hca() a second time.
      
      Note that this will also affect mlx4_test_interrupts(), the only other user
      of MLX4_CMD_NOP.
      
      Fixes: f5aef5aa ("net/mlx4_core: Activate reset flow upon fatal command cases")
      Signed-off-by: default avatarBenjamin Poirier <bpoirier@suse.de>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f4ecf29f
    • Rusty Russell's avatar
      lguest: fix out-by-one error in address checking. · 83a35114
      Rusty Russell authored
      This bug has been there since day 1; addresses in the top guest physical
      page weren't considered valid.  You could map that page (the check in
      check_gpte() is correct), but if a guest tried to put a pagetable there
      we'd check that address manually when walking it, and kill the guest.
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Cc: stable@kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      83a35114
    • Ross Lagerwall's avatar
      xen/netback: Properly initialize credit_bytes · ce0e5c52
      Ross Lagerwall authored
      Commit e9ce7cb6 ("xen-netback: Factor queue-specific data into queue
      struct") introduced a regression when moving queue-specific data into
      the queue struct by failing to set the credit_bytes field. This
      prevented bandwidth limiting from working. Initialize the field as it
      was done before multiqueue support was added.
      Signed-off-by: default avatarRoss Lagerwall <ross.lagerwall@citrix.com>
      Acked-by: default avatarWei Liu <wei.liu2@citrix.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ce0e5c52
    • Linus Torvalds's avatar
      Merge branch 'overlayfs-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs · 3cfd4ba7
      Linus Torvalds authored
      Pull two overlayfs fixes from Miklos Szeredi:
       "Overlayfs rmdir() failed to check for emptiness in one case; this was
        introduced in 4.0.  The other bug was there since day one: failure to
        mount if upper fs is full, which bit some OpenWRT folks"
      
      * 'overlayfs-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
        ovl: mount read-only if workdir can't be created
        ovl: don't remove non-empty opaque directory
      3cfd4ba7
    • Linus Torvalds's avatar
      Merge tag 'mfd-fixes-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd · 1b887bf3
      Linus Torvalds authored
      Pull an MFD fix from Lee Jones:
       "One simple fix to repair broken regulator probe() in DA9052"
      
      * tag 'mfd-fixes-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd:
        mfd: da9052: Fix broken regulator probe
      1b887bf3
    • Linus Torvalds's avatar
      Merge tag 'backlight-fixes-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · 30a7266f
      Linus Torvalds authored
      Pull backlight fix from Lee Jones:
       "One simple fix to correctly handle -EPROBE_DEFER"
      
      * tag 'backlight-fixes-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
        backlight: pwm: Handle EPROBE_DEFER while requesting the PWM
      30a7266f
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · c09b5cbd
      Linus Torvalds authored
      Pull crypto fix from Herbert Xu:
       "This disables the newly (4.1) added user-space AEAD interface so that
        we can fix issues in the underlying kernel AEAD interface.  Once the
        new kernel AEAD interface is ready we can then reenable the user-space
        AEAD interface"
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: algif_aead - Disable AEAD user-space for now
      c09b5cbd