lkml.org 
[lkml]   [2022]   [Jun]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v4 3/3] Staging: rtl8192e: Cleaning up error handling
    Date
    Moved error handling to one common block.
    This removes double checking if all txb->fragments[]
    were initialized.
    The original code worked fine, but this is cleaner.

    Signed-off-by: Felix Schlepper <f3sch.git@outlook.com>
    ---
    drivers/staging/rtl8192e/rtllib_tx.c | 20 ++++++++++----------
    1 file changed, 10 insertions(+), 10 deletions(-)

    diff --git a/drivers/staging/rtl8192e/rtllib_tx.c b/drivers/staging/rtl8192e/rtllib_tx.c
    index 1307cf55741a..42f81b23a144 100644
    --- a/drivers/staging/rtl8192e/rtllib_tx.c
    +++ b/drivers/staging/rtl8192e/rtllib_tx.c
    @@ -214,19 +214,19 @@ static struct rtllib_txb *rtllib_alloc_txb(int nr_frags, int txb_size,

    for (i = 0; i < nr_frags; i++) {
    txb->fragments[i] = dev_alloc_skb(txb_size);
    - if (unlikely(!txb->fragments[i])) {
    - i--;
    - break;
    - }
    + if (unlikely(!txb->fragments[i]))
    + goto err_free;
    memset(txb->fragments[i]->cb, 0, sizeof(txb->fragments[i]->cb));
    }
    - if (unlikely(i != nr_frags)) {
    - while (i >= 0)
    - dev_kfree_skb_any(txb->fragments[i--]);
    - kfree(txb);
    - return NULL;
    - }
    +
    return txb;
    +
    +err_free:
    + while (--i >= 0)
    + dev_kfree_skb_any(txb->fragments[i]);
    + kfree(txb);
    +
    + return NULL;
    }

    static int rtllib_classify(struct sk_buff *skb, u8 bIsAmsdu)
    --
    2.36.1
    \
     
     \ /
      Last update: 2022-06-23 22:30    [W:3.235 / U:0.140 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site