Commit 7acfea28 authored by Niklas Neronin's avatar Niklas Neronin Committed by Greg Kroah-Hartman
Browse files

usb: xhci: refactor xhci_td_cleanup() to return void



The function is modified to return 'void' instead of an integer since it
invariably returns '0'. Additionally, multiple functions which only
return xhci_td_cleanup() are also refactored to return void.

This change eliminates the need for callers to handle a return value that
does not convey meaningful information and improve code readability, as it
becomes immediately clear that the function does not produce a significant
output.

Signed-off-by: default avatarNiklas Neronin <niklas.neronin@linux.intel.com>
Signed-off-by: default avatarMathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20241106101459.775897-29-mathias.nyman@linux.intel.com


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 37d39db6
Loading
Loading
Loading
Loading
+28 −31
Original line number Diff line number Diff line
@@ -813,7 +813,7 @@ static void xhci_unmap_td_bounce_buffer(struct xhci_hcd *xhci,
	seg->bounce_offs = 0;
}

static int xhci_td_cleanup(struct xhci_hcd *xhci, struct xhci_td *td,
static void xhci_td_cleanup(struct xhci_hcd *xhci, struct xhci_td *td,
			    struct xhci_ring *ep_ring, int status)
{
	struct urb *urb = NULL;
@@ -857,8 +857,6 @@ static int xhci_td_cleanup(struct xhci_hcd *xhci, struct xhci_td *td,
			status = 0;
		xhci_giveback_urb_in_irq(xhci, td, status);
	}

	return 0;
}


@@ -2187,7 +2185,7 @@ int xhci_is_vendor_info_code(struct xhci_hcd *xhci, unsigned int trb_comp_code)
	return 0;
}

static int finish_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep,
static void finish_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep,
		      struct xhci_ring *ep_ring, struct xhci_td *td,
		      u32 trb_comp_code)
{
@@ -2204,7 +2202,7 @@ static int finish_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep,
		 * stopped TDs. A stopped TD may be restarted, so don't update
		 * the ring dequeue pointer or take this TD off any lists yet.
		 */
		return 0;
		return;
	case COMP_USB_TRANSACTION_ERROR:
	case COMP_BABBLE_DETECTED_ERROR:
	case COMP_SPLIT_TRANSACTION_ERROR:
@@ -2230,7 +2228,7 @@ static int finish_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep,
				xhci_dbg(xhci, "Already resolving halted ep for 0x%llx\n",
					 (unsigned long long)xhci_trb_virt_to_dma(
						 td->start_seg, td->start_trb));
				return 0;
				return;
			}
			/* endpoint not halted, don't reset it */
			break;
@@ -2238,7 +2236,7 @@ static int finish_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep,
		/* Almost same procedure as for STALL_ERROR below */
		xhci_clear_hub_tt_buffer(xhci, td, ep);
		xhci_handle_halted_endpoint(xhci, ep, td, EP_HARD_RESET);
		return 0;
		return;
	case COMP_STALL_ERROR:
		/*
		 * xhci internal endpoint state will go to a "halt" state for
@@ -2255,7 +2253,7 @@ static int finish_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep,

		xhci_handle_halted_endpoint(xhci, ep, td, EP_HARD_RESET);

		return 0; /* xhci_handle_halted_endpoint marked td cancelled */
		return; /* xhci_handle_halted_endpoint marked td cancelled */
	default:
		break;
	}
@@ -2265,7 +2263,7 @@ static int finish_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep,
	ep_ring->deq_seg = td->end_seg;
	inc_deq(xhci, ep_ring);

	return xhci_td_cleanup(xhci, td, ep_ring, td->status);
	xhci_td_cleanup(xhci, td, ep_ring, td->status);
}

/* sum trb lengths from the first trb up to stop_trb, _excluding_ stop_trb */
@@ -2285,7 +2283,7 @@ static u32 sum_trb_lengths(struct xhci_td *td, union xhci_trb *stop_trb)
/*
 * Process control tds, update urb status and actual_length.
 */
static int process_ctrl_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep,
static void process_ctrl_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep,
			    struct xhci_ring *ep_ring,  struct xhci_td *td,
			    union xhci_trb *ep_trb, struct xhci_transfer_event *event)
{
@@ -2366,7 +2364,7 @@ static int process_ctrl_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep,
		td->urb_length_set = true;
		td->urb->actual_length = requested - remaining;
		xhci_dbg(xhci, "Waiting for status stage event\n");
		return 0;
		return;
	}

	/* at status stage */
@@ -2374,13 +2372,13 @@ static int process_ctrl_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep,
		td->urb->actual_length = requested;

finish_td:
	return finish_td(xhci, ep, ep_ring, td, trb_comp_code);
	finish_td(xhci, ep, ep_ring, td, trb_comp_code);
}

/*
 * Process isochronous tds, update urb packet status and actual_length.
 */
static int process_isoc_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep,
static void process_isoc_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep,
			    struct xhci_ring *ep_ring, struct xhci_td *td,
			    union xhci_trb *ep_trb, struct xhci_transfer_event *event)
{
@@ -2476,13 +2474,12 @@ static int process_isoc_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep,
	if (td->error_mid_td && ep_trb != td->end_trb) {
		xhci_dbg(xhci, "Error mid isoc TD, wait for final completion event\n");
		td->urb_length_set = true;
		return 0;
		return;
	}

	return finish_td(xhci, ep, ep_ring, td, trb_comp_code);
	finish_td(xhci, ep, ep_ring, td, trb_comp_code);
}

static int skip_isoc_td(struct xhci_hcd *xhci, struct xhci_td *td,
static void skip_isoc_td(struct xhci_hcd *xhci, struct xhci_td *td,
			 struct xhci_virt_ep *ep, int status)
{
	struct urb_priv *urb_priv;
@@ -2504,13 +2501,13 @@ static int skip_isoc_td(struct xhci_hcd *xhci, struct xhci_td *td,
	ep->ring->deq_seg = td->end_seg;
	inc_deq(xhci, ep->ring);

	return xhci_td_cleanup(xhci, td, ep->ring, status);
	xhci_td_cleanup(xhci, td, ep->ring, status);
}

/*
 * Process bulk and interrupt tds, update urb status and actual_length.
 */
static int process_bulk_intr_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep,
static void process_bulk_intr_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep,
				 struct xhci_ring *ep_ring, struct xhci_td *td,
				 union xhci_trb *ep_trb, struct xhci_transfer_event *event)
{
@@ -2555,7 +2552,7 @@ static int process_bulk_intr_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep,
		td->status = 0;

		xhci_handle_halted_endpoint(xhci, ep, td, EP_SOFT_RESET);
		return 0;
		return;
	default:
		/* do nothing */
		break;
@@ -2574,7 +2571,7 @@ static int process_bulk_intr_td(struct xhci_hcd *xhci, struct xhci_virt_ep *ep,
		td->urb->actual_length = 0;
	}

	return finish_td(xhci, ep, ep_ring, td, trb_comp_code);
	finish_td(xhci, ep, ep_ring, td, trb_comp_code);
}

/* Transfer events which don't point to a transfer TRB, see xhci 4.17.4 */