Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 18673533 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull networking fixes from David Miller:

 1) Fix regression in /proc/net/if_inet6, sometimes devices do not get
    listed.  From Eric Dumazet.

 2) Add IPSEC networking sub-section to MAINTAINERS.

 3) S390 networking fixes from Hendrik Brueckner and Stefan Raspl.

 4) Fix enslavement of devices that can't do VLAN properly, from Jiri
    Pirko.

 5) SCTP sack handling fix from Zijie Pan.

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
  ipv6: addrconf: fix /proc/net/if_inet6
  bnx2x: fix handling mf storage modes
  qeth: fix deadlock between recovery and bonding driver
  smsgiucv: reestablish IUCV path after resume
  sctp: fix call to SCTP_CMD_PROCESS_SACK in sctp_cmd_interpreter()
  vlan: fix bond/team enslave of vlan challenged slave/port
  MAINTAINERS: Add explicit section for IPSEC networking.
parents ccbfddb7 9f0d3c27
Loading
Loading
Loading
Loading
+14 −0
Original line number Original line Diff line number Diff line
@@ -5019,6 +5019,20 @@ F: net/ipv6/
F:	include/net/ip*
F:	include/net/ip*
F:	arch/x86/net/*
F:	arch/x86/net/*


NETWORKING [IPSEC]
M:	Steffen Klassert <steffen.klassert@secunet.com>
M:	Herbert Xu <herbert@gondor.apana.org.au>
M:	"David S. Miller" <davem@davemloft.net>
L:	netdev@vger.kernel.org
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git
S:	Maintained
F:	net/xfrm/
F:	net/key/
F:	net/ipv4/xfrm*
F:	net/ipv6/xfrm*
F:	include/uapi/linux/xfrm.h
F:	include/net/xfrm.h

NETWORKING [LABELED] (NetLabel, CIPSO, Labeled IPsec, SECMARK)
NETWORKING [LABELED] (NetLabel, CIPSO, Labeled IPsec, SECMARK)
M:	Paul Moore <paul@paul-moore.com>
M:	Paul Moore <paul@paul-moore.com>
L:	netdev@vger.kernel.org
L:	netdev@vger.kernel.org
+1 −1
Original line number Original line Diff line number Diff line
@@ -1519,7 +1519,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
	/* no need to lock since we're protected by rtnl_lock */
	/* no need to lock since we're protected by rtnl_lock */
	if (slave_dev->features & NETIF_F_VLAN_CHALLENGED) {
	if (slave_dev->features & NETIF_F_VLAN_CHALLENGED) {
		pr_debug("%s: NETIF_F_VLAN_CHALLENGED\n", slave_dev->name);
		pr_debug("%s: NETIF_F_VLAN_CHALLENGED\n", slave_dev->name);
		if (bond_vlan_used(bond)) {
		if (vlan_uses_dev(bond_dev)) {
			pr_err("%s: Error: cannot enslave VLAN challenged slave %s on VLAN enabled bond %s\n",
			pr_err("%s: Error: cannot enslave VLAN challenged slave %s on VLAN enabled bond %s\n",
			       bond_dev->name, slave_dev->name, bond_dev->name);
			       bond_dev->name, slave_dev->name, bond_dev->name);
			return -EPERM;
			return -EPERM;
+7 −3
Original line number Original line Diff line number Diff line
@@ -2957,9 +2957,13 @@ netdev_tx_t bnx2x_start_xmit(struct sk_buff *skb, struct net_device *dev)
			skb_shinfo(skb)->nr_frags +
			skb_shinfo(skb)->nr_frags +
			BDS_PER_TX_PKT +
			BDS_PER_TX_PKT +
			NEXT_CNT_PER_TX_PKT(MAX_BDS_PER_TX_PKT))) {
			NEXT_CNT_PER_TX_PKT(MAX_BDS_PER_TX_PKT))) {
		/* Handle special storage cases separately */
		if (txdata->tx_ring_size != 0) {
			BNX2X_ERR("BUG! Tx ring full when queue awake!\n");
			bnx2x_fp_qstats(bp, txdata->parent_fp)->driver_xoff++;
			bnx2x_fp_qstats(bp, txdata->parent_fp)->driver_xoff++;
			netif_tx_stop_queue(txq);
			netif_tx_stop_queue(txq);
		BNX2X_ERR("BUG! Tx ring full when queue awake!\n");
		}

		return NETDEV_TX_BUSY;
		return NETDEV_TX_BUSY;
	}
	}


+1 −1
Original line number Original line Diff line number Diff line
@@ -126,7 +126,7 @@ static inline int bnx2x_exe_queue_add(struct bnx2x *bp,
		/* Check if this request is ok */
		/* Check if this request is ok */
		rc = o->validate(bp, o->owner, elem);
		rc = o->validate(bp, o->owner, elem);
		if (rc) {
		if (rc) {
			BNX2X_ERR("Preamble failed: %d\n", rc);
			DP(BNX2X_MSG_SP, "Preamble failed: %d\n", rc);
			goto free_and_exit;
			goto free_and_exit;
		}
		}
	}
	}
+6 −5
Original line number Original line Diff line number Diff line
@@ -1141,12 +1141,13 @@ static int qeth_l2_recover(void *ptr)
		dev_info(&card->gdev->dev,
		dev_info(&card->gdev->dev,
			"Device successfully recovered!\n");
			"Device successfully recovered!\n");
	else {
	else {
		rtnl_lock();
		if (rtnl_trylock()) {
			dev_close(card->dev);
			dev_close(card->dev);
			rtnl_unlock();
			rtnl_unlock();
			dev_warn(&card->gdev->dev, "The qeth device driver "
			dev_warn(&card->gdev->dev, "The qeth device driver "
				"failed to recover an error on the device\n");
				"failed to recover an error on the device\n");
		}
		}
	}
	qeth_clear_thread_start_bit(card, QETH_RECOVER_THREAD);
	qeth_clear_thread_start_bit(card, QETH_RECOVER_THREAD);
	qeth_clear_thread_running_bit(card, QETH_RECOVER_THREAD);
	qeth_clear_thread_running_bit(card, QETH_RECOVER_THREAD);
	return 0;
	return 0;
Loading