Message ID | 20220804183935.73763-3-gerhard@engleder-embedded.com (mailing list archive) |
---|---|
State | Accepted |
Commit | b3bb8628bf64440065976c71e4ab09186c393597 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | tsnep: Two fixes for the driver | expand |
On Thu, 4 Aug 2022 20:39:35 +0200 Gerhard Engleder wrote: > If tsnep_tx_map() fails, then tsnep_tx_unmap() shall start at the write > index like tsnep_tx_map(). This is different to the normal operation. > Thus, add an additional parameter to tsnep_tx_unmap() to enable start at > different positions for successful TX and failed TX. > > Signed-off-by: Gerhard Engleder <gerhard@engleder-embedded.com> Is this correct: Fixes: 403f69bbdbad ("tsnep: Add TSN endpoint Ethernet MAC driver") ?
On 08.08.22 21:23, Jakub Kicinski wrote: > On Thu, 4 Aug 2022 20:39:35 +0200 Gerhard Engleder wrote: >> If tsnep_tx_map() fails, then tsnep_tx_unmap() shall start at the write >> index like tsnep_tx_map(). This is different to the normal operation. >> Thus, add an additional parameter to tsnep_tx_unmap() to enable start at >> different positions for successful TX and failed TX. >> >> Signed-off-by: Gerhard Engleder <gerhard@engleder-embedded.com> > Is this correct: > > Fixes: 403f69bbdbad ("tsnep: Add TSN endpoint Ethernet MAC driver") > > ? Yes, that's correct. Sorry I forget to add it. Shall I add it and resend?
On 08.08.22 21:23, Jakub Kicinski wrote: > On Thu, 4 Aug 2022 20:39:35 +0200 Gerhard Engleder wrote: >> If tsnep_tx_map() fails, then tsnep_tx_unmap() shall start at the write >> index like tsnep_tx_map(). This is different to the normal operation. >> Thus, add an additional parameter to tsnep_tx_unmap() to enable start at >> different positions for successful TX and failed TX. >> >> Signed-off-by: Gerhard Engleder <gerhard@engleder-embedded.com> > Is this correct: > > Fixes: 403f69bbdbad ("tsnep: Add TSN endpoint Ethernet MAC driver") > > ? Yes, that's correct. Sorry I forget to add it. Shall I add it and resend?
On Mon, 8 Aug 2022 21:30:02 +0200 Gerhard Engleder wrote: > On 08.08.22 21:23, Jakub Kicinski wrote: > > On Thu, 4 Aug 2022 20:39:35 +0200 Gerhard Engleder wrote: > >> If tsnep_tx_map() fails, then tsnep_tx_unmap() shall start at the write > >> index like tsnep_tx_map(). This is different to the normal operation. > >> Thus, add an additional parameter to tsnep_tx_unmap() to enable start at > >> different positions for successful TX and failed TX. > >> > >> Signed-off-by: Gerhard Engleder <gerhard@engleder-embedded.com> > > Is this correct: > > > > Fixes: 403f69bbdbad ("tsnep: Add TSN endpoint Ethernet MAC driver") > > > > ? > Yes, that's correct. Sorry I forget to add it. Shall I add it and resend? It's okay, I'll add it.
diff --git a/drivers/net/ethernet/engleder/tsnep_main.c b/drivers/net/ethernet/engleder/tsnep_main.c index d98199f3414b..a5f7152a1716 100644 --- a/drivers/net/ethernet/engleder/tsnep_main.c +++ b/drivers/net/ethernet/engleder/tsnep_main.c @@ -340,14 +340,14 @@ static int tsnep_tx_map(struct sk_buff *skb, struct tsnep_tx *tx, int count) return 0; } -static void tsnep_tx_unmap(struct tsnep_tx *tx, int count) +static void tsnep_tx_unmap(struct tsnep_tx *tx, int index, int count) { struct device *dmadev = tx->adapter->dmadev; struct tsnep_tx_entry *entry; int i; for (i = 0; i < count; i++) { - entry = &tx->entry[(tx->read + i) % TSNEP_RING_SIZE]; + entry = &tx->entry[(index + i) % TSNEP_RING_SIZE]; if (entry->len) { if (i == 0) @@ -395,7 +395,7 @@ static netdev_tx_t tsnep_xmit_frame_ring(struct sk_buff *skb, retval = tsnep_tx_map(skb, tx, count); if (retval != 0) { - tsnep_tx_unmap(tx, count); + tsnep_tx_unmap(tx, tx->write, count); dev_kfree_skb_any(entry->skb); entry->skb = NULL; @@ -464,7 +464,7 @@ static bool tsnep_tx_poll(struct tsnep_tx *tx, int napi_budget) if (skb_shinfo(entry->skb)->nr_frags > 0) count += skb_shinfo(entry->skb)->nr_frags; - tsnep_tx_unmap(tx, count); + tsnep_tx_unmap(tx, tx->read, count); if ((skb_shinfo(entry->skb)->tx_flags & SKBTX_IN_PROGRESS) && (__le32_to_cpu(entry->desc_wb->properties) &
If tsnep_tx_map() fails, then tsnep_tx_unmap() shall start at the write index like tsnep_tx_map(). This is different to the normal operation. Thus, add an additional parameter to tsnep_tx_unmap() to enable start at different positions for successful TX and failed TX. Signed-off-by: Gerhard Engleder <gerhard@engleder-embedded.com> --- drivers/net/ethernet/engleder/tsnep_main.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)