Revert "dpaa2-eth: configure the cache stashing amount on a queue"
This reverts commit f8b9958534
.
The reverted change instructed the QMan hardware block to fetch
RX frame annotation and beginning of frame data to cache before
the core would read them.
It turns out that in rare cases, it's possible that a QMan
stashing transaction is delayed long enough such that, by the time
it gets executed, the frame in question had already been dequeued
by the core and software processing began on it. If the core
manages to unmap the frame buffer _before_ the stashing transaction
is executed, an SMMU exception will be raised.
Unfortunately there is no easy way to work around this while keeping
the performance advantages brought by QMan stashing, so disable
it altogether.
Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
dcf10ec772
commit
16fa1cf1ed
|
@ -2479,14 +2479,9 @@ static int setup_rx_flow(struct dpaa2_eth_priv *priv,
|
|||
queue.destination.type = DPNI_DEST_DPCON;
|
||||
queue.destination.priority = 1;
|
||||
queue.user_context = (u64)(uintptr_t)fq;
|
||||
queue.flc.stash_control = 1;
|
||||
queue.flc.value &= 0xFFFFFFFFFFFFFFC0;
|
||||
/* 01 01 00 - data, annotation, flow context */
|
||||
queue.flc.value |= 0x14;
|
||||
err = dpni_set_queue(priv->mc_io, 0, priv->mc_token,
|
||||
DPNI_QUEUE_RX, 0, fq->flowid,
|
||||
DPNI_QUEUE_OPT_USER_CTX | DPNI_QUEUE_OPT_DEST |
|
||||
DPNI_QUEUE_OPT_FLC,
|
||||
DPNI_QUEUE_OPT_USER_CTX | DPNI_QUEUE_OPT_DEST,
|
||||
&queue);
|
||||
if (err) {
|
||||
dev_err(dev, "dpni_set_queue(RX) failed\n");
|
||||
|
|
Loading…
Reference in New Issue