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

Commit 7c30b065 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6

* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
  [STRIP]: Fix neighbour table refcount leak.
  [IPV6]: ipv6_add_addr should install dstentry earlier
  [NETLINK]: Call panic if nl_table allocation fails
  [TCP]: Two RFC3465 Appropriate Byte Count fixes.
  [IPV6]: SNMPv2 "ipv6IfStatsInAddrErrors" counter error
  [E100]: Add module option to ignore bad EEPROM checksums.
  [SCTP]: Fix sctp_primitive_ABORT() call in sctp_close().
parents 7288026b ee1377c3
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -173,8 +173,11 @@ MODULE_LICENSE("GPL");
MODULE_VERSION(DRV_VERSION);

static int debug = 3;
static int eeprom_bad_csum_allow = 0;
module_param(debug, int, 0);
module_param(eeprom_bad_csum_allow, int, 0);
MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)");
MODULE_PARM_DESC(eeprom_bad_csum_allow, "Allow bad eeprom checksums");
#define DPRINTK(nlevel, klevel, fmt, args...) \
	(void)((NETIF_MSG_##nlevel & nic->msg_enable) && \
	printk(KERN_##klevel PFX "%s: %s: " fmt, nic->netdev->name, \
@@ -756,6 +759,7 @@ static int e100_eeprom_load(struct nic *nic)
	checksum = le16_to_cpu(0xBABA - checksum);
	if(checksum != nic->eeprom[nic->eeprom_wc - 1]) {
		DPRINTK(PROBE, ERR, "EEPROM corrupted\n");
		if (!eeprom_bad_csum_allow)
			return -EAGAIN;
	}

+4 −2
Original line number Diff line number Diff line
@@ -467,6 +467,7 @@ static int arp_query(unsigned char *haddr, u32 paddr,
		     struct net_device *dev)
{
	struct neighbour *neighbor_entry;
	int ret = 0;

	neighbor_entry = neigh_lookup(&arp_tbl, &paddr, dev);

@@ -474,10 +475,11 @@ static int arp_query(unsigned char *haddr, u32 paddr,
		neighbor_entry->used = jiffies;
		if (neighbor_entry->nud_state & NUD_VALID) {
			memcpy(haddr, neighbor_entry->ha, dev->addr_len);
			return 1;
			ret = 1;
		}
		neigh_release(neighbor_entry);
	}
	return 0;
	return ret;
}

static void DumpData(char *msg, struct strip *strip_info, __u8 * ptr,
+1 −1
Original line number Diff line number Diff line
@@ -189,7 +189,7 @@ void tcp_slow_start(struct tcp_sock *tp)
			return;

		/* We MAY increase by 2 if discovered delayed ack */
		if (sysctl_tcp_abc > 1 && tp->bytes_acked > 2*tp->mss_cache) {
		if (sysctl_tcp_abc > 1 && tp->bytes_acked >= 2*tp->mss_cache) {
			if (tp->snd_cwnd < tp->snd_cwnd_clamp)
				tp->snd_cwnd++;
		}
+7 −2
Original line number Diff line number Diff line
@@ -2505,8 +2505,13 @@ static int tcp_ack(struct sock *sk, struct sk_buff *skb, int flag)
	if (before(ack, prior_snd_una))
		goto old_ack;

	if (sysctl_tcp_abc && icsk->icsk_ca_state < TCP_CA_CWR)
	if (sysctl_tcp_abc) {
		if (icsk->icsk_ca_state < TCP_CA_CWR)
			tp->bytes_acked += ack - prior_snd_una;
		else if (icsk->icsk_ca_state == TCP_CA_Loss)
			/* we assume just one segment left network */
			tp->bytes_acked += min(ack - prior_snd_una, tp->mss_cache);
	}

	if (!(flag&FLAG_SLOWPATH) && after(ack, prior_snd_una)) {
		/* Window is constant, pure forward advance.
+2 −2
Original line number Diff line number Diff line
@@ -578,6 +578,8 @@ ipv6_add_addr(struct inet6_dev *idev, const struct in6_addr *addr, int pfxlen,
	ifa->flags = flags | IFA_F_TENTATIVE;
	ifa->cstamp = ifa->tstamp = jiffies;

	ifa->rt = rt;

	ifa->idev = idev;
	in6_dev_hold(idev);
	/* For caller */
@@ -603,8 +605,6 @@ ipv6_add_addr(struct inet6_dev *idev, const struct in6_addr *addr, int pfxlen,
	}
#endif

	ifa->rt = rt;

	in6_ifa_hold(ifa);
	write_unlock(&idev->lock);
out2:
Loading