• Tom Rix's avatar
    net: mvneta: fix double free of txq->buf · f4544e53
    Tom Rix authored
    clang static analysis reports this problem:
    
    drivers/net/ethernet/marvell/mvneta.c:3465:2: warning:
      Attempt to free released memory
            kfree(txq->buf);
            ^~~~~~~~~~~~~~~
    
    When mvneta_txq_sw_init() fails to alloc txq->tso_hdrs,
    it frees without poisoning txq->buf.  The error is caught
    in the mvneta_setup_txqs() caller which handles the error
    by cleaning up all of the txqs with a call to
    mvneta_txq_sw_deinit which also frees txq->buf.
    
    Since mvneta_txq_sw_deinit is a general cleaner, all of the
    partial cleaning in mvneta_txq_sw_deinit()'s error handling
    is not needed.
    
    Fixes: 2adb719d ("net: mvneta: Implement software TSO")
    Signed-off-by: default avatarTom Rix <trix@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    f4544e53
mvneta.c 148 KB