[PATCH] usb: cdnsp: Use common error handling code in cdnsp_segment_alloc()

From: Markus Elfring

Date: Wed Jun 10 2026 - 07:42:02 EST


From: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 10 Jun 2026 13:30:08 +0200

Use an additional label so that a bit of exception handling can be better
reused at the end of this function implementation.

This issue was detected by using the Coccinelle software.

Signed-off-by: Markus Elfring <elfring@xxxxxxxxxxxxxxxxxxxxx>
---
drivers/usb/cdns3/cdnsp-mem.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/usb/cdns3/cdnsp-mem.c b/drivers/usb/cdns3/cdnsp-mem.c
index 5d8cdc91927d..7696e570f769 100644
--- a/drivers/usb/cdns3/cdnsp-mem.c
+++ b/drivers/usb/cdns3/cdnsp-mem.c
@@ -40,10 +40,8 @@ static struct cdnsp_segment *cdnsp_segment_alloc(struct cdnsp_device *pdev,
return NULL;

seg->trbs = dma_pool_zalloc(pdev->segment_pool, flags, &dma);
- if (!seg->trbs) {
- kfree(seg);
- return NULL;
- }
+ if (!seg->trbs)
+ goto free_seg;

if (max_packet) {
seg->bounce_buf = kzalloc(max_packet, flags | GFP_DMA);
@@ -63,6 +61,7 @@ static struct cdnsp_segment *cdnsp_segment_alloc(struct cdnsp_device *pdev,

free_dma:
dma_pool_free(pdev->segment_pool, seg->trbs, dma);
+free_seg:
kfree(seg);

return NULL;
--
2.54.0