lkml.org 
[lkml]   [2019]   [Apr]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 09/12] net: ll_temac: Fix bug causing buffer descriptor overrun
    Date
    As we are actually using a BD for both the skb and each frag contained in
    it, the oldest TX BD would be overwritten when there was exactly one BD
    less than needed.

    Signed-off-by: Esben Haabendal <esben@geanix.com>
    ---
    drivers/net/ethernet/xilinx/ll_temac_main.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/net/ethernet/xilinx/ll_temac_main.c b/drivers/net/ethernet/xilinx/ll_temac_main.c
    index 72ec338..2d50646 100644
    --- a/drivers/net/ethernet/xilinx/ll_temac_main.c
    +++ b/drivers/net/ethernet/xilinx/ll_temac_main.c
    @@ -745,7 +745,7 @@ temac_start_xmit(struct sk_buff *skb, struct net_device *ndev)
    start_p = lp->tx_bd_p + sizeof(*lp->tx_bd_v) * lp->tx_bd_tail;
    cur_p = &lp->tx_bd_v[lp->tx_bd_tail];

    - if (temac_check_tx_bd_space(lp, num_frag)) {
    + if (temac_check_tx_bd_space(lp, num_frag + 1)) {
    if (!netif_queue_stopped(ndev))
    netif_stop_queue(ndev);
    return NETDEV_TX_BUSY;
    --
    2.4.11
    \
     
     \ /
      Last update: 2019-04-29 10:37    [W:4.400 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site