|
@@ -1217,6 +1217,7 @@ static int i40e_set_ringparam(struct net_device *netdev,
|
|
|
{
|
|
|
struct i40e_ring *tx_rings = NULL, *rx_rings = NULL;
|
|
|
struct i40e_netdev_priv *np = netdev_priv(netdev);
|
|
|
+ struct i40e_hw *hw = &np->vsi->back->hw;
|
|
|
struct i40e_vsi *vsi = np->vsi;
|
|
|
struct i40e_pf *pf = vsi->back;
|
|
|
u32 new_rx_count, new_tx_count;
|
|
@@ -1309,10 +1310,6 @@ static int i40e_set_ringparam(struct net_device *netdev,
|
|
|
}
|
|
|
|
|
|
for (i = 0; i < vsi->num_queue_pairs; i++) {
|
|
|
- /* this is to allow wr32 to have something to write to
|
|
|
- * during early allocation of Rx buffers
|
|
|
- */
|
|
|
- u32 __iomem faketail = 0;
|
|
|
struct i40e_ring *ring;
|
|
|
u16 unused;
|
|
|
|
|
@@ -1324,7 +1321,10 @@ static int i40e_set_ringparam(struct net_device *netdev,
|
|
|
*/
|
|
|
rx_rings[i].desc = NULL;
|
|
|
rx_rings[i].rx_bi = NULL;
|
|
|
- rx_rings[i].tail = (u8 __iomem *)&faketail;
|
|
|
+ /* this is to allow wr32 to have something to write to
|
|
|
+ * during early allocation of Rx buffers
|
|
|
+ */
|
|
|
+ rx_rings[i].tail = hw->hw_addr + I40E_PRTGEN_STATUS;
|
|
|
err = i40e_setup_rx_descriptors(&rx_rings[i]);
|
|
|
if (err)
|
|
|
goto rx_unwind;
|