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

Commit 3f705f73 authored by David S. Miller's avatar David S. Miller
Browse files

Merge branch 'skb_cow_head'

Francois Romieu says:

====================
remove open-coded skb_cow_head.

As per http://marc.info/?l=linux-netdev&m=139440579104701

.
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents c3f0dd38 b06626b8
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -1973,17 +1973,17 @@ static int atl1c_tso_csum(struct atl1c_adapter *adapter,
			  enum atl1c_trans_queue type)
{
	struct pci_dev *pdev = adapter->pdev;
	unsigned short offload_type;
	u8 hdr_len;
	u32 real_len;
	unsigned short offload_type;
	int err;

	if (skb_is_gso(skb)) {
		if (skb_header_cloned(skb)) {
			err = pskb_expand_head(skb, 0, 0, GFP_ATOMIC);
			if (unlikely(err))
				return -1;
		}
		int err;

		err = skb_cow_head(skb, 0);
		if (err < 0)
			return err;

		offload_type = skb_shinfo(skb)->gso_type;

		if (offload_type & SKB_GSO_TCPV4) {
+7 −7
Original line number Diff line number Diff line
@@ -1641,17 +1641,17 @@ static u16 atl1e_cal_tdp_req(const struct sk_buff *skb)
static int atl1e_tso_csum(struct atl1e_adapter *adapter,
		       struct sk_buff *skb, struct atl1e_tpd_desc *tpd)
{
	unsigned short offload_type;
	u8 hdr_len;
	u32 real_len;
	unsigned short offload_type;
	int err;

	if (skb_is_gso(skb)) {
		if (skb_header_cloned(skb)) {
			err = pskb_expand_head(skb, 0, 0, GFP_ATOMIC);
			if (unlikely(err))
				return -1;
		}
		int err;

		err = skb_cow_head(skb, 0);
		if (err < 0)
			return err;

		offload_type = skb_shinfo(skb)->gso_type;

		if (offload_type & SKB_GSO_TCPV4) {
+7 −8
Original line number Diff line number Diff line
@@ -2122,14 +2122,13 @@ static int atl1_tso(struct atl1_adapter *adapter, struct sk_buff *skb,
{
	u8 hdr_len, ip_off;
	u32 real_len;
	int err;

	if (skb_shinfo(skb)->gso_size) {
		if (skb_header_cloned(skb)) {
			err = pskb_expand_head(skb, 0, 0, GFP_ATOMIC);
			if (unlikely(err))
				return -1;
		}
		int err;

		err = skb_cow_head(skb, 0);
		if (err < 0)
			return err;

		if (skb->protocol == htons(ETH_P_IP)) {
			struct iphdr *iph = ip_hdr(skb);
@@ -2175,7 +2174,7 @@ static int atl1_tso(struct atl1_adapter *adapter, struct sk_buff *skb,
			return 3;
		}
	}
	return false;
	return 0;
}

static int atl1_tx_csum(struct atl1_adapter *adapter, struct sk_buff *skb,
+1 −2
Original line number Diff line number Diff line
@@ -7918,8 +7918,7 @@ static netdev_tx_t tg3_start_xmit(struct sk_buff *skb, struct net_device *dev)
		struct iphdr *iph;
		u32 tcp_opt_len, hdr_len;

		if (skb_header_cloned(skb) &&
		    pskb_expand_head(skb, 0, 0, GFP_ATOMIC))
		if (skb_cow_head(skb, 0))
			goto drop;

		iph = ip_hdr(skb);
+4 −6
Original line number Diff line number Diff line
@@ -2496,13 +2496,11 @@ bnad_tso_prepare(struct bnad *bnad, struct sk_buff *skb)
{
	int err;

	if (skb_header_cloned(skb)) {
		err = pskb_expand_head(skb, 0, 0, GFP_ATOMIC);
		if (err) {
	err = skb_cow_head(skb, 0);
	if (err < 0) {
		BNAD_UPDATE_CTR(bnad, tso_err);
		return err;
	}
	}

	/*
	 * For TSO, the TCP checksum field is seeded with pseudo-header sum
Loading