xhci: Convert timers to use timer_setup()
Subsystems (2)
PATCH 1/1 xhci: Convert timers to use timer_setup()
In preparation for unconditionally passing the struct timer_list pointer to all timer callbacks, switch to using the new timer_setup() and from_timer() to pass the timer pointer explicitly.
Cc Mathias Nyman <[email protected]>
Cc Greg Kroah-Hartman <[email protected]>
Cc Thomas Gleixner <[email protected]>
Signed-off-by Kees Cook <[email protected]>
---
This requires commit 686fef928bba ("timer: Prepare to change timer callback argument type") in v4.14-rc3, but should be otherwise stand-alone.
--- drivers/usb/host/xhci-mem.c | 4 ++-- drivers/usb/host/xhci-ring.c | 9 +++------ drivers/usb/host/xhci.h | 2 +- 3 files changed, 6 insertions(+), 9 deletions(-)
drivers/usb/host/xhci-mem.c +2 -2
@@ -801,8 +801,8 @@ void xhci_free_stream_info(struct xhci_hcd *xhci,static void xhci_init_endpoint_timer (struct xhci_hcd *xhci,struct xhci_virt_ep *ep) { -setup_timer (&ep->stop_cmd_timer, xhci_stop_endpoint_command_watchdog, - (unsigned long )ep); +timer_setup (&ep->stop_cmd_timer, xhci_stop_endpoint_command_watchdog, +0 ); ep->xhci = xhci; }
drivers/usb/host/xhci-ring.c +3 -6
@@ -946,15 +946,12 @@ void xhci_hc_died(struct xhci_hcd *xhci)* Instead we use a combination of that flag and checking if a new timer is * pending. */ -void xhci_stop_endpoint_command_watchdog (unsigned long arg) +void xhci_stop_endpoint_command_watchdog (struct timer_list *t) { -struct xhci_hcd *xhci; -struct xhci_virt_ep *ep; +struct xhci_virt_ep *ep =from_timer (ep, t, stop_cmd_timer); +struct xhci_hcd *xhci = ep->xhci;unsigned long flags; - ep = (struct xhci_virt_ep *) arg; - xhci = ep->xhci; -spin_lock_irqsave (&xhci->lock, flags);/* bail out if cmd completed but raced with stop ep watchdog timer.*/
drivers/usb/host/xhci.h +1 -1
@@ -2066,7 +2066,7 @@ void xhci_queue_new_dequeue_state(struct xhci_hcd *xhci, struct xhci_dequeue_state *deq_state);void xhci_cleanup_stalled_ring (struct xhci_hcd *xhci,unsigned int ep_index,unsigned int stream_id,struct xhci_td *td); -void xhci_stop_endpoint_command_watchdog (unsigned long arg); +void xhci_stop_endpoint_command_watchdog (struct timer_list *t);void xhci_handle_command_timeout (struct work_struct *work); void xhci_ring_ep_doorbell(struct xhci_hcd *xhci, unsigned int slot_id,
Signature · 6 lines
2.7.4 -- Kees Cook Pixel Security