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

Commit df8944cf authored by Matt Carlson's avatar Matt Carlson Committed by David S. Miller
Browse files

tg3: Reintroduce tg3_tx_ring_info



The following patches will require the use of an additional flag in the
ring_info structure.  The use of this flag is tx path specific, so this
patch defines a specialized ring_info structure.

Signed-off-by: default avatarMatt Carlson <mcarlson@broadcom.com>
Reviewed-by: default avatarMichael Chan <mchan@broadcom.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent bca0beb9
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -4824,7 +4824,7 @@ static void tg3_tx(struct tg3_napi *tnapi)
	txq = netdev_get_tx_queue(tp->dev, index);

	while (sw_idx != hw_idx) {
		struct ring_info *ri = &tnapi->tx_buffers[sw_idx];
		struct tg3_tx_ring_info *ri = &tnapi->tx_buffers[sw_idx];
		struct sk_buff *skb = ri->skb;
		int i, tx_bug = 0;

@@ -5929,7 +5929,7 @@ static void tg3_skb_error_unmap(struct tg3_napi *tnapi,
{
	int i;
	u32 entry = tnapi->tx_prod;
	struct ring_info *txb = &tnapi->tx_buffers[entry];
	struct tg3_tx_ring_info *txb = &tnapi->tx_buffers[entry];

	pci_unmap_single(tnapi->tp->pdev,
			 dma_unmap_addr(txb, mapping),
@@ -6603,7 +6603,7 @@ static void tg3_free_rings(struct tg3 *tp)
			continue;

		for (i = 0; i < TG3_TX_RING_SIZE; ) {
			struct ring_info *txp;
			struct tg3_tx_ring_info *txp;
			struct sk_buff *skb;
			unsigned int k;

@@ -6762,9 +6762,9 @@ static int tg3_alloc_consistent(struct tg3 *tp)
		 */
		if ((!i && !tg3_flag(tp, ENABLE_TSS)) ||
		    (i && tg3_flag(tp, ENABLE_TSS))) {
			tnapi->tx_buffers = kzalloc(sizeof(struct ring_info) *
						    TG3_TX_RING_SIZE,
						    GFP_KERNEL);
			tnapi->tx_buffers = kzalloc(
					       sizeof(struct tg3_tx_ring_info) *
					       TG3_TX_RING_SIZE, GFP_KERNEL);
			if (!tnapi->tx_buffers)
				goto err_out;

+6 −1
Original line number Diff line number Diff line
@@ -2652,6 +2652,11 @@ struct ring_info {
	DEFINE_DMA_UNMAP_ADDR(mapping);
};

struct tg3_tx_ring_info {
	struct sk_buff			*skb;
	DEFINE_DMA_UNMAP_ADDR(mapping);
};

struct tg3_link_config {
	/* Describes what we're trying to get. */
	u32				advertising;
@@ -2816,7 +2821,7 @@ struct tg3_napi {
	u32				last_tx_cons;
	u32				prodmbox;
	struct tg3_tx_buffer_desc	*tx_ring;
	struct ring_info		*tx_buffers;
	struct tg3_tx_ring_info		*tx_buffers;

	dma_addr_t			status_mapping;
	dma_addr_t			rx_rcb_mapping;