mirror of
https://github.com/torvalds/linux.git
synced 2024-12-30 14:52:05 +00:00
ixgbe: update all DESC_ADV macros to accept a ring pointer
All of the DESC_ADV macros are currently needing the pointers to be de-referenced before accessing the ring. Instead of having to add all of the asterisks it is easier to just update the macro to expect a pointer to the ring. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
9e10e045f8
commit
31f05a2d87
@ -256,11 +256,11 @@ struct ixgbe_q_vector {
|
|||||||
(R)->next_to_clean - (R)->next_to_use - 1)
|
(R)->next_to_clean - (R)->next_to_use - 1)
|
||||||
|
|
||||||
#define IXGBE_RX_DESC_ADV(R, i) \
|
#define IXGBE_RX_DESC_ADV(R, i) \
|
||||||
(&(((union ixgbe_adv_rx_desc *)((R).desc))[i]))
|
(&(((union ixgbe_adv_rx_desc *)((R)->desc))[i]))
|
||||||
#define IXGBE_TX_DESC_ADV(R, i) \
|
#define IXGBE_TX_DESC_ADV(R, i) \
|
||||||
(&(((union ixgbe_adv_tx_desc *)((R).desc))[i]))
|
(&(((union ixgbe_adv_tx_desc *)((R)->desc))[i]))
|
||||||
#define IXGBE_TX_CTXTDESC_ADV(R, i) \
|
#define IXGBE_TX_CTXTDESC_ADV(R, i) \
|
||||||
(&(((struct ixgbe_adv_tx_context_desc *)((R).desc))[i]))
|
(&(((struct ixgbe_adv_tx_context_desc *)((R)->desc))[i]))
|
||||||
|
|
||||||
#define IXGBE_MAX_JUMBO_FRAME_SIZE 16128
|
#define IXGBE_MAX_JUMBO_FRAME_SIZE 16128
|
||||||
#ifdef IXGBE_FCOE
|
#ifdef IXGBE_FCOE
|
||||||
|
@ -1560,7 +1560,7 @@ static int ixgbe_setup_desc_rings(struct ixgbe_adapter *adapter)
|
|||||||
IXGBE_WRITE_REG(&adapter->hw, IXGBE_TXDCTL(0), reg_data);
|
IXGBE_WRITE_REG(&adapter->hw, IXGBE_TXDCTL(0), reg_data);
|
||||||
|
|
||||||
for (i = 0; i < tx_ring->count; i++) {
|
for (i = 0; i < tx_ring->count; i++) {
|
||||||
union ixgbe_adv_tx_desc *desc = IXGBE_TX_DESC_ADV(*tx_ring, i);
|
union ixgbe_adv_tx_desc *desc = IXGBE_TX_DESC_ADV(tx_ring, i);
|
||||||
struct sk_buff *skb;
|
struct sk_buff *skb;
|
||||||
unsigned int size = 1024;
|
unsigned int size = 1024;
|
||||||
|
|
||||||
@ -1661,7 +1661,7 @@ static int ixgbe_setup_desc_rings(struct ixgbe_adapter *adapter)
|
|||||||
|
|
||||||
for (i = 0; i < rx_ring->count; i++) {
|
for (i = 0; i < rx_ring->count; i++) {
|
||||||
union ixgbe_adv_rx_desc *rx_desc =
|
union ixgbe_adv_rx_desc *rx_desc =
|
||||||
IXGBE_RX_DESC_ADV(*rx_ring, i);
|
IXGBE_RX_DESC_ADV(rx_ring, i);
|
||||||
struct sk_buff *skb;
|
struct sk_buff *skb;
|
||||||
|
|
||||||
skb = alloc_skb(IXGBE_RXBUFFER_2048 + NET_IP_ALIGN, GFP_KERNEL);
|
skb = alloc_skb(IXGBE_RXBUFFER_2048 + NET_IP_ALIGN, GFP_KERNEL);
|
||||||
|
@ -471,7 +471,7 @@ int ixgbe_fso(struct ixgbe_adapter *adapter,
|
|||||||
|
|
||||||
/* write context desc */
|
/* write context desc */
|
||||||
i = tx_ring->next_to_use;
|
i = tx_ring->next_to_use;
|
||||||
context_desc = IXGBE_TX_CTXTDESC_ADV(*tx_ring, i);
|
context_desc = IXGBE_TX_CTXTDESC_ADV(tx_ring, i);
|
||||||
context_desc->vlan_macip_lens = cpu_to_le32(vlan_macip_lens);
|
context_desc->vlan_macip_lens = cpu_to_le32(vlan_macip_lens);
|
||||||
context_desc->seqnum_seed = cpu_to_le32(fcoe_sof_eof);
|
context_desc->seqnum_seed = cpu_to_le32(fcoe_sof_eof);
|
||||||
context_desc->type_tucmd_mlhl = cpu_to_le32(type_tucmd);
|
context_desc->type_tucmd_mlhl = cpu_to_le32(type_tucmd);
|
||||||
|
@ -385,7 +385,7 @@ static void ixgbe_dump(struct ixgbe_adapter *adapter)
|
|||||||
"leng ntw timestamp bi->skb\n");
|
"leng ntw timestamp bi->skb\n");
|
||||||
|
|
||||||
for (i = 0; tx_ring->desc && (i < tx_ring->count); i++) {
|
for (i = 0; tx_ring->desc && (i < tx_ring->count); i++) {
|
||||||
tx_desc = IXGBE_TX_DESC_ADV(*tx_ring, i);
|
tx_desc = IXGBE_TX_DESC_ADV(tx_ring, i);
|
||||||
tx_buffer_info = &tx_ring->tx_buffer_info[i];
|
tx_buffer_info = &tx_ring->tx_buffer_info[i];
|
||||||
u0 = (struct my_u0 *)tx_desc;
|
u0 = (struct my_u0 *)tx_desc;
|
||||||
printk(KERN_INFO "T [0x%03X] %016llX %016llX %016llX"
|
printk(KERN_INFO "T [0x%03X] %016llX %016llX %016llX"
|
||||||
@ -466,7 +466,7 @@ rx_ring_summary:
|
|||||||
|
|
||||||
for (i = 0; i < rx_ring->count; i++) {
|
for (i = 0; i < rx_ring->count; i++) {
|
||||||
rx_buffer_info = &rx_ring->rx_buffer_info[i];
|
rx_buffer_info = &rx_ring->rx_buffer_info[i];
|
||||||
rx_desc = IXGBE_RX_DESC_ADV(*rx_ring, i);
|
rx_desc = IXGBE_RX_DESC_ADV(rx_ring, i);
|
||||||
u0 = (struct my_u0 *)rx_desc;
|
u0 = (struct my_u0 *)rx_desc;
|
||||||
staterr = le32_to_cpu(rx_desc->wb.upper.status_error);
|
staterr = le32_to_cpu(rx_desc->wb.upper.status_error);
|
||||||
if (staterr & IXGBE_RXD_STAT_DD) {
|
if (staterr & IXGBE_RXD_STAT_DD) {
|
||||||
@ -695,7 +695,7 @@ static inline bool ixgbe_check_tx_hang(struct ixgbe_adapter *adapter,
|
|||||||
ixgbe_tx_xon_state(adapter, tx_ring)) {
|
ixgbe_tx_xon_state(adapter, tx_ring)) {
|
||||||
/* detected Tx unit hang */
|
/* detected Tx unit hang */
|
||||||
union ixgbe_adv_tx_desc *tx_desc;
|
union ixgbe_adv_tx_desc *tx_desc;
|
||||||
tx_desc = IXGBE_TX_DESC_ADV(*tx_ring, eop);
|
tx_desc = IXGBE_TX_DESC_ADV(tx_ring, eop);
|
||||||
e_err(drv, "Detected Tx Unit Hang\n"
|
e_err(drv, "Detected Tx Unit Hang\n"
|
||||||
" Tx Queue <%d>\n"
|
" Tx Queue <%d>\n"
|
||||||
" TDH, TDT <%x>, <%x>\n"
|
" TDH, TDT <%x>, <%x>\n"
|
||||||
@ -743,7 +743,7 @@ static bool ixgbe_clean_tx_irq(struct ixgbe_q_vector *q_vector,
|
|||||||
|
|
||||||
i = tx_ring->next_to_clean;
|
i = tx_ring->next_to_clean;
|
||||||
eop = tx_ring->tx_buffer_info[i].next_to_watch;
|
eop = tx_ring->tx_buffer_info[i].next_to_watch;
|
||||||
eop_desc = IXGBE_TX_DESC_ADV(*tx_ring, eop);
|
eop_desc = IXGBE_TX_DESC_ADV(tx_ring, eop);
|
||||||
|
|
||||||
while ((eop_desc->wb.status & cpu_to_le32(IXGBE_TXD_STAT_DD)) &&
|
while ((eop_desc->wb.status & cpu_to_le32(IXGBE_TXD_STAT_DD)) &&
|
||||||
(count < tx_ring->work_limit)) {
|
(count < tx_ring->work_limit)) {
|
||||||
@ -751,7 +751,7 @@ static bool ixgbe_clean_tx_irq(struct ixgbe_q_vector *q_vector,
|
|||||||
rmb(); /* read buffer_info after eop_desc */
|
rmb(); /* read buffer_info after eop_desc */
|
||||||
for ( ; !cleaned; count++) {
|
for ( ; !cleaned; count++) {
|
||||||
struct sk_buff *skb;
|
struct sk_buff *skb;
|
||||||
tx_desc = IXGBE_TX_DESC_ADV(*tx_ring, i);
|
tx_desc = IXGBE_TX_DESC_ADV(tx_ring, i);
|
||||||
tx_buffer_info = &tx_ring->tx_buffer_info[i];
|
tx_buffer_info = &tx_ring->tx_buffer_info[i];
|
||||||
cleaned = (i == eop);
|
cleaned = (i == eop);
|
||||||
skb = tx_buffer_info->skb;
|
skb = tx_buffer_info->skb;
|
||||||
@ -791,7 +791,7 @@ static bool ixgbe_clean_tx_irq(struct ixgbe_q_vector *q_vector,
|
|||||||
}
|
}
|
||||||
|
|
||||||
eop = tx_ring->tx_buffer_info[i].next_to_watch;
|
eop = tx_ring->tx_buffer_info[i].next_to_watch;
|
||||||
eop_desc = IXGBE_TX_DESC_ADV(*tx_ring, eop);
|
eop_desc = IXGBE_TX_DESC_ADV(tx_ring, eop);
|
||||||
}
|
}
|
||||||
|
|
||||||
tx_ring->next_to_clean = i;
|
tx_ring->next_to_clean = i;
|
||||||
@ -1047,7 +1047,7 @@ static void ixgbe_alloc_rx_buffers(struct ixgbe_adapter *adapter,
|
|||||||
bi = &rx_ring->rx_buffer_info[i];
|
bi = &rx_ring->rx_buffer_info[i];
|
||||||
|
|
||||||
while (cleaned_count--) {
|
while (cleaned_count--) {
|
||||||
rx_desc = IXGBE_RX_DESC_ADV(*rx_ring, i);
|
rx_desc = IXGBE_RX_DESC_ADV(rx_ring, i);
|
||||||
|
|
||||||
if (!bi->page_dma &&
|
if (!bi->page_dma &&
|
||||||
(rx_ring->flags & IXGBE_RING_RX_PS_ENABLED)) {
|
(rx_ring->flags & IXGBE_RING_RX_PS_ENABLED)) {
|
||||||
@ -1188,7 +1188,7 @@ static bool ixgbe_clean_rx_irq(struct ixgbe_q_vector *q_vector,
|
|||||||
#endif /* IXGBE_FCOE */
|
#endif /* IXGBE_FCOE */
|
||||||
|
|
||||||
i = rx_ring->next_to_clean;
|
i = rx_ring->next_to_clean;
|
||||||
rx_desc = IXGBE_RX_DESC_ADV(*rx_ring, i);
|
rx_desc = IXGBE_RX_DESC_ADV(rx_ring, i);
|
||||||
staterr = le32_to_cpu(rx_desc->wb.upper.status_error);
|
staterr = le32_to_cpu(rx_desc->wb.upper.status_error);
|
||||||
rx_buffer_info = &rx_ring->rx_buffer_info[i];
|
rx_buffer_info = &rx_ring->rx_buffer_info[i];
|
||||||
|
|
||||||
@ -1263,7 +1263,7 @@ static bool ixgbe_clean_rx_irq(struct ixgbe_q_vector *q_vector,
|
|||||||
if (i == rx_ring->count)
|
if (i == rx_ring->count)
|
||||||
i = 0;
|
i = 0;
|
||||||
|
|
||||||
next_rxd = IXGBE_RX_DESC_ADV(*rx_ring, i);
|
next_rxd = IXGBE_RX_DESC_ADV(rx_ring, i);
|
||||||
prefetch(next_rxd);
|
prefetch(next_rxd);
|
||||||
cleaned_count++;
|
cleaned_count++;
|
||||||
|
|
||||||
@ -5813,7 +5813,7 @@ static int ixgbe_tso(struct ixgbe_adapter *adapter,
|
|||||||
i = tx_ring->next_to_use;
|
i = tx_ring->next_to_use;
|
||||||
|
|
||||||
tx_buffer_info = &tx_ring->tx_buffer_info[i];
|
tx_buffer_info = &tx_ring->tx_buffer_info[i];
|
||||||
context_desc = IXGBE_TX_CTXTDESC_ADV(*tx_ring, i);
|
context_desc = IXGBE_TX_CTXTDESC_ADV(tx_ring, i);
|
||||||
|
|
||||||
/* VLAN MACLEN IPLEN */
|
/* VLAN MACLEN IPLEN */
|
||||||
if (tx_flags & IXGBE_TX_FLAGS_VLAN)
|
if (tx_flags & IXGBE_TX_FLAGS_VLAN)
|
||||||
@ -5872,7 +5872,7 @@ static bool ixgbe_tx_csum(struct ixgbe_adapter *adapter,
|
|||||||
(tx_flags & IXGBE_TX_FLAGS_VLAN)) {
|
(tx_flags & IXGBE_TX_FLAGS_VLAN)) {
|
||||||
i = tx_ring->next_to_use;
|
i = tx_ring->next_to_use;
|
||||||
tx_buffer_info = &tx_ring->tx_buffer_info[i];
|
tx_buffer_info = &tx_ring->tx_buffer_info[i];
|
||||||
context_desc = IXGBE_TX_CTXTDESC_ADV(*tx_ring, i);
|
context_desc = IXGBE_TX_CTXTDESC_ADV(tx_ring, i);
|
||||||
|
|
||||||
if (tx_flags & IXGBE_TX_FLAGS_VLAN)
|
if (tx_flags & IXGBE_TX_FLAGS_VLAN)
|
||||||
vlan_macip_lens |=
|
vlan_macip_lens |=
|
||||||
@ -6101,7 +6101,7 @@ static void ixgbe_tx_queue(struct ixgbe_adapter *adapter,
|
|||||||
i = tx_ring->next_to_use;
|
i = tx_ring->next_to_use;
|
||||||
while (count--) {
|
while (count--) {
|
||||||
tx_buffer_info = &tx_ring->tx_buffer_info[i];
|
tx_buffer_info = &tx_ring->tx_buffer_info[i];
|
||||||
tx_desc = IXGBE_TX_DESC_ADV(*tx_ring, i);
|
tx_desc = IXGBE_TX_DESC_ADV(tx_ring, i);
|
||||||
tx_desc->read.buffer_addr = cpu_to_le64(tx_buffer_info->dma);
|
tx_desc->read.buffer_addr = cpu_to_le64(tx_buffer_info->dma);
|
||||||
tx_desc->read.cmd_type_len =
|
tx_desc->read.cmd_type_len =
|
||||||
cpu_to_le32(cmd_type_len | tx_buffer_info->length);
|
cpu_to_le32(cmd_type_len | tx_buffer_info->length);
|
||||||
|
Loading…
Reference in New Issue
Block a user