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

Commit 93ef5c02 authored by Dmitry Kravkov's avatar Dmitry Kravkov Committed by David S. Miller
Browse files

bnx2x: put start bd csum in separate function

parent 4b7ed897
Loading
Loading
Loading
Loading
+20 −14
Original line number Original line Diff line number Diff line
@@ -2136,6 +2136,24 @@ static inline u8 bnx2x_set_pbd_csum_e2(struct bnx2x *bp, struct sk_buff *skb,
				sizeof(struct udphdr) - skb->data;
				sizeof(struct udphdr) - skb->data;
}
}


static inline void bnx2x_set_sbd_csum(struct bnx2x *bp, struct sk_buff *skb,
	struct eth_tx_start_bd *tx_start_bd, u32 xmit_type)
{

	tx_start_bd->bd_flags.as_bitfield |= ETH_TX_BD_FLAGS_L4_CSUM;

	if (xmit_type & XMIT_CSUM_V4)
		tx_start_bd->bd_flags.as_bitfield |=
					ETH_TX_BD_FLAGS_IP_CSUM;
	else
		tx_start_bd->bd_flags.as_bitfield |=
					ETH_TX_BD_FLAGS_IPV6;

	if (!(xmit_type & XMIT_CSUM_TCP))
		tx_start_bd->bd_flags.as_bitfield |= ETH_TX_BD_FLAGS_IS_UDP;

}

/**
/**
 * bnx2x_set_pbd_csum - update PBD with checksum and return header length
 * bnx2x_set_pbd_csum - update PBD with checksum and return header length
 *
 *
@@ -2307,20 +2325,8 @@ netdev_tx_t bnx2x_start_xmit(struct sk_buff *skb, struct net_device *dev)
	/* turn on parsing and get a BD */
	/* turn on parsing and get a BD */
	bd_prod = TX_BD(NEXT_TX_IDX(bd_prod));
	bd_prod = TX_BD(NEXT_TX_IDX(bd_prod));


	if (xmit_type & XMIT_CSUM) {
	if (xmit_type & XMIT_CSUM)
		tx_start_bd->bd_flags.as_bitfield |= ETH_TX_BD_FLAGS_L4_CSUM;
		bnx2x_set_sbd_csum(bp, skb, tx_start_bd, xmit_type);

		if (xmit_type & XMIT_CSUM_V4)
			tx_start_bd->bd_flags.as_bitfield |=
						ETH_TX_BD_FLAGS_IP_CSUM;
		else
			tx_start_bd->bd_flags.as_bitfield |=
						ETH_TX_BD_FLAGS_IPV6;

		if (!(xmit_type & XMIT_CSUM_TCP))
			tx_start_bd->bd_flags.as_bitfield |=
						ETH_TX_BD_FLAGS_IS_UDP;
	}


	if (CHIP_IS_E2(bp)) {
	if (CHIP_IS_E2(bp)) {
		pbd_e2 = &fp->tx_desc_ring[bd_prod].parse_bd_e2;
		pbd_e2 = &fp->tx_desc_ring[bd_prod].parse_bd_e2;