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: Valentina Manea <[email protected]>
Cc: Shuah Khan <[email protected]>
Cc: Greg Kroah-Hartman <[email protected]>
Cc: [email protected]
Signed-off-by: Kees Cook <[email protected]>
---
 drivers/usb/usbip/vudc_transfer.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/usb/usbip/vudc_transfer.c 
b/drivers/usb/usbip/vudc_transfer.c
index 4cfd475ee865..718f1595a18e 100644
--- a/drivers/usb/usbip/vudc_transfer.c
+++ b/drivers/usb/usbip/vudc_transfer.c
@@ -311,9 +311,9 @@ static int transfer(struct vudc *udc,
        return sent;
 }
 
-static void v_timer(unsigned long _vudc)
+static void v_timer(struct timer_list *t)
 {
-       struct vudc *udc = (struct vudc *) _vudc;
+       struct vudc *udc = from_timer(udc, t, tr_timer.timer);
        struct transfer_timer *timer = &udc->tr_timer;
        struct urbp *urb_p, *tmp;
        unsigned long flags;
@@ -459,7 +459,7 @@ void v_init_timer(struct vudc *udc)
 {
        struct transfer_timer *t = &udc->tr_timer;
 
-       setup_timer(&t->timer, v_timer, (unsigned long) udc);
+       timer_setup(&t->timer, v_timer, 0);
        t->state = VUDC_TR_STOPPED;
 }
 
-- 
2.7.4


-- 
Kees Cook
Pixel Security

Reply via email to