Skip to content
  1. May 10, 2015
    • Sowmini Varadhan's avatar
      net/rds: RDS-TCP: Always create a new rds_sock for an incoming connection. · f711a6ae
      Sowmini Varadhan authored
      
      
      When running RDS over TCP, the active (client) side connects to the
      listening ("passive") side at the RDS_TCP_PORT.  After the connection
      is established, if the client side reboots (potentially without even
      sending a FIN) the server still has a TCP socket in the esablished
      state.  If the server-side now gets a new SYN comes from the client
      with a different client port, TCP will create a new socket-pair, but
      the RDS layer will incorrectly pull up the old rds_connection (which
      is still associated with the stale t_sock and RDS socket state).
      
      This patch corrects this behavior by having rds_tcp_accept_one()
      always create a new connection for an incoming TCP SYN.
      The rds and tcp state associated with the old socket-pair is cleaned
      up via the rds_tcp_state_change() callback which would typically be
      invoked in most cases when the client-TCP sends a FIN on TCP restart,
      triggering a transition to CLOSE_WAIT state. In the rarer event of client
      death without a FIN, TCP_KEEPALIVE probes on the socket will detect
      the stale socket, and the TCP transition to CLOSE state will trigger
      the RDS state cleanup.
      
      Signed-off-by: default avatarSowmini Varadhan <sowmini.varadhan@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f711a6ae
    • Markus Stenberg's avatar
      ipv6: Fixed source specific default route handling. · e16e888b
      Markus Stenberg authored
      
      
      If there are only IPv6 source specific default routes present, the
      host gets -ENETUNREACH on e.g. connect() because ip6_dst_lookup_tail
      calls ip6_route_output first, and given source address any, it fails,
      and ip6_route_get_saddr is never called.
      
      The change is to use the ip6_route_get_saddr, even if the initial
      ip6_route_output fails, and then doing ip6_route_output _again_ after
      we have appropriate source address available.
      
      Note that this is '99% fix' to the problem; a correct fix would be to
      do route lookups only within addrconf.c when picking a source address,
      and never call ip6_route_output before source address has been
      populated.
      
      Signed-off-by: default avatarMarkus Stenberg <markus.stenberg@iki.fi>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e16e888b
    • David S. Miller's avatar
      Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth · 0a801445
      David S. Miller authored
      
      
      Johan Hedberg says:
      
      ====================
      Here are a couple of important Bluetooth & mac802154 fixes for 4.1:
      
       - mac802154 fix for crypto algorithm allocation failure checking
       - mac802154 wpan phy leak fix for error code path
       - Fix for not calling Bluetooth shutdown() if interface is not up
      
      Let me know if there are any issues pulling. Thanks.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0a801445
  2. May 06, 2015
  3. May 05, 2015
    • David S. Miller's avatar
      Merge tag 'mac80211-for-davem-2015-05-04' of... · b7ba7b46
      David S. Miller authored
      
      Merge tag 'mac80211-for-davem-2015-05-04' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211
      
      Johannes Berg says:
      
      ====================
      We have only a few fixes right now:
       * a fix for an issue with hash collision handling in the
         rhashtable conversion
       * a merge issue - rhashtable removed default shrinking
         just before mac80211 was converted, so enable it now
       * remove an invalid WARN that can trigger with legitimate
         userspace behaviour
       * add a struct member missing from kernel-doc that caused
         a lot of warnings
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b7ba7b46
    • Yuval Mintz's avatar
      bnx2x: Fix to prevent inner-reload · 0650c0b8
      Yuval Mintz authored
      Submit 909d9faa
      
       ("bnx2x: Prevent inner-reload while VFs exist")
      contained a bug - MTU change was not prevented by it; Instead, it
      `randomally' prevented bnx2x_resume() from running [harmless yet wrong].
      
      This moves the check to its correct spot.
      
      Signed-off-by: default avatarYuval Mintz <Yuval.Mintz@qlogic.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0650c0b8
    • David S. Miller's avatar
      Merge branch 'for-upstream' of... · 73e84313
      David S. Miller authored
      
      Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next
      
      Johan Hedberg says:
      
      ====================
      pull request: bluetooth-next 2015-05-04
      
      Here's the first bluetooth-next pull request for 4.2:
      
       - Various fixes for at86rf230 driver
       - ieee802154: trace events support for rdev->ops
       - HCI UART driver refactoring
       - New Realtek IDs added to btusb driver
       - Off-by-one fix for rtl8723b in btusb driver
       - Refactoring of btbcm driver for both UART & USB use
      
      Please let me know if there are any issues pulling. Thanks.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      73e84313
    • David Ahern's avatar
      net/rds: Fix new sparse warning · e2783717
      David Ahern authored
      c0adf54a
      
       introduced new sparse warnings:
        CHECK   /home/dahern/kernels/linux.git/net/rds/ib_cm.c
      net/rds/ib_cm.c:191:34: warning: incorrect type in initializer (different base types)
      net/rds/ib_cm.c:191:34:    expected unsigned long long [unsigned] [usertype] dp_ack_seq
      net/rds/ib_cm.c:191:34:    got restricted __be64 <noident>
      net/rds/ib_cm.c:194:51: warning: cast to restricted __be64
      
      The temporary variable for sequence number should have been declared as __be64
      rather than u64. Make it so.
      
      Signed-off-by: default avatarDavid Ahern <david.ahern@oracle.com>
      Cc: shamir rabinovitch <shamir.rabinovitch@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e2783717
    • David S. Miller's avatar
      Revert "Revert "smc91x: retrieve IRQ and trigger flags in a modern way"" · a2d4fcb8
      David S. Miller authored
      This reverts commit 8d7d9cca
      
      .
      
      Now that the necessary infrastructure is really all there
      in the tree, we can put this change back in.
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a2d4fcb8
    • Kamlakant Patel's avatar
      net/smsc911x: fix irq resource allocation failure · 965b2aa7
      Kamlakant Patel authored
      When smsc911x uses GPIO as the interrupt controller, and if both are
      loaded as modules, we get following error:
      
      "smsc911x: Could not allocate irq resource"
      
      This issue is because of smsc911x using platform_get_resource to get
      device tree based irq resource.
      
      commit "9ec36caf
      
       (of/irq: do irq resolution in platform_get_irq)" and
      commit "7085a7 (drivers: platform: parse IRQ flags from resources)" add
      support in platform_get_irq to resolve irq and irq_flags respectively
      for both modern device tree and legacy static platform data platforms.
      
      Modify smsc911x driver to use platform_get_irq to pick up irq resource
      correctly and use irq_get_trigger_type to get the IRQ trigger flags.
      
      Signed-off-by: default avatarKamlakant Patel <kamlakant.patel@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      965b2aa7
    • Vlad Yasevich's avatar
      net: core: Correct an over-stringent device loop detection. · d66bf7dd
      Vlad Yasevich authored
      
      
      The code in __netdev_upper_dev_link() has an over-stringent
      loop detection logic that actually prevents valid configurations
      from working correctly.
      
      In particular, the logic returns an error if an upper device
      is already in the list of all upper devices for a given dev.
      This particular check seems to be a overzealous as it disallows
      perfectly valid configurations.  For example:
        # ip l a link eth0 name eth0.10 type vlan id 10
        # ip l a dev br0 typ bridge
        # ip l s eth0.10 master br0
        # ip l s eth0 master br0  <--- Will fail
      
      If you switch the last two commands (add eth0 first), then both
      will succeed.  If after that, you remove eth0 and try to re-add
      it, it will fail!
      
      It appears to be enough to simply check adj_list to keeps things
      safe.
      
      I've tried stacking multiple devices multiple times in all different
      combinations, and either rx_handler registration prevented the stacking
      of the device linking cought the error.
      
      Signed-off-by: default avatarVladislav Yasevich <vyasevic@redhat.com>
      Acked-by: default avatarJiri Pirko <jiri@resnulli.us>
      Acked-by: default avatarVeaceslav Falico <vfalico@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d66bf7dd
    • Tilman Schmidt's avatar
      isdn/gigaset: cede maintainership · 6b096fde
      Tilman Schmidt authored
      
      
      As German phone operators are discontinuing ISDN service, neither
      Hansjörg nor I will be able to maintain the Gigaset ISDN drivers
      any longer. Paul Bolle offered to step into the breach for odd
      fixes.
      
      Signed-off-by: default avatarTilman Schmidt <tilman@imap.cc>
      Acked-by: default avatarPaul Bolle <pebolle@tiscali.nl>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6b096fde
  4. May 04, 2015
  5. May 02, 2015
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 6c3c1eb3
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Receive packet length needs to be adjust by 2 on RX to accomodate
          the two padding bytes in altera_tse driver.  From Vlastimil Setka.
      
       2) If rx frame is dropped due to out of memory in macb driver, we leave
          the receive ring descriptors in an undefined state.  From Punnaiah
          Choudary Kalluri
      
       3) Some netlink subsystems erroneously signal NLM_F_MULTI.  That is
          only for dumps.  Fix from Nicolas Dichtel.
      
       4) Fix mis-use of raw rt->rt_pmtu value in ipv4, one must always go via
          the ipv4_mtu() helper.  From Herbert Xu.
      
       5) Fix null deref in bridge netfilter, and miscalculated lengths in
          jump/goto nf_tables verdicts.  From Florian Westphal.
      
       6) Unhash ping sockets properly.
      
       7) Software implementation of BPF divide did 64/32 rather than 64/64
          bit divide.  The JITs got it right.  Fix from Alexei Starovoitov.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (30 commits)
        ipv4: Missing sk_nulls_node_init() in ping_unhash().
        net: fec: Fix RGMII-ID mode
        net/mlx4_en: Schedule napi when RX buffers allocation fails
        netxen_nic: use spin_[un]lock_bh around tx_clean_lock
        net/mlx4_core: Fix unaligned accesses
        mlx4_en: Use correct loop cursor in error path.
        cxgb4: Fix MC1 memory offset calculation
        bnx2x: Delay during kdump load
        net: Fix Kernel Panic in bonding driver debugfs file: rlb_hash_table
        net: dsa: Fix scope of eeprom-length property
        net: macb: Fix race condition in driver when Rx frame is dropped
        hv_netvsc: Fix a bug in netvsc_start_xmit()
        altera_tse: Correct rx packet length
        mlx4: Fix tx ring affinity_mask creation
        tipc: fix problem with parallel link synchronization mechanism
        tipc: remove wrong use of NLM_F_MULTI
        bridge/nl: remove wrong use of NLM_F_MULTI
        bridge/mdb: remove wrong use of NLM_F_MULTI
        net: sched: act_connmark: don't zap skb->nfct
        trivial: net: systemport: bcmsysport.h: fix 0x0x prefix
        ...
      6c3c1eb3
    • Stefan Hajnoczi's avatar
      virtio: fix typo in vring_need_event() doc comment · e412d3a3
      Stefan Hajnoczi authored
      
      
      Here the "other side" refers to the guest or host.
      
      Signed-off-by: default avatarStefan Hajnoczi <stefanha@redhat.com>
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      e412d3a3
    • Rusty Russell's avatar
      virtio: pass baton to Michael Tsirkin · feda5f93
      Rusty Russell authored
      
      
      With my job change kernel work will be "own time"; I'm keeping lguest
      and modules (and the virtio standards work), but virtio kernel has to
      go.
      
      This makes it clear that Michael is in charge.  He's good, but having
      me watch over his shoulder won't help.
      
      Good luck Michael!
      
      Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      feda5f93
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client · 6fa72720
      Linus Torvalds authored
      Pull Ceph RBD fix from Sage Weil.
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
        rbd: end I/O the entire obj_request on error
      6fa72720
    • David S. Miller's avatar
      ipv4: Missing sk_nulls_node_init() in ping_unhash(). · a134f083
      David S. Miller authored
      
      
      If we don't do that, then the poison value is left in the ->pprev
      backlink.
      
      This can cause crashes if we do a disconnect, followed by a connect().
      
      Tested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Reported-by: default avatarWen Xu <hotdog3645@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a134f083
    • Ilya Dryomov's avatar
      rbd: end I/O the entire obj_request on error · 082a75da
      Ilya Dryomov authored
      
      
      When we end I/O struct request with error, we need to pass
      obj_request->length as @nr_bytes so that the entire obj_request worth
      of bytes is completed.  Otherwise block layer ends up confused and we
      trip on
      
          rbd_assert(more ^ (which == img_request->obj_request_count));
      
      in rbd_img_obj_callback() due to more being true no matter what.  We
      already do it in most cases but we are missing some, in particular
      those where we don't even get a chance to submit any obj_requests, due
      to an early -ENOMEM for example.
      
      A number of obj_request->xferred assignments seem to be redundant but
      I haven't touched any of obj_request->xferred stuff to keep this small
      and isolated.
      
      Cc: Alex Elder <elder@linaro.org>
      Cc: stable@vger.kernel.org # 3.10+
      Reported-by: default avatarShawn Edwards <lesser.evil@gmail.com>
      Reviewed-by: default avatarSage Weil <sage@redhat.com>
      Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
      082a75da
  6. May 01, 2015
    • Linus Torvalds's avatar
      Merge branch 'for-linus-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · 64887b68
      Linus Torvalds authored
      Pull btrfs fixes from Chris Mason:
       "A few more btrfs fixes.
      
        These range from corners Filipe found in the new free space cache
        writeback to a grab bag of fixes from the list"
      
      * 'for-linus-4.1' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
        Btrfs: btrfs_release_extent_buffer_page didn't free pages of dummy extent
        Btrfs: fill ->last_trans for delayed inode in btrfs_fill_inode.
        btrfs: unlock i_mutex after attempting to delete subvolume during send
        btrfs: check io_ctl_prepare_pages return in __btrfs_write_out_cache
        btrfs: fix race on ENOMEM in alloc_extent_buffer
        btrfs: handle ENOMEM in btrfs_alloc_tree_block
        Btrfs: fix find_free_dev_extent() malfunction in case device tree has hole
        Btrfs: don't check for delalloc_bytes in cache_save_setup
        Btrfs: fix deadlock when starting writeback of bg caches
        Btrfs: fix race between start dirty bg cache writeout and bg deletion
      64887b68