On Tue, Oct 24, 2017 at 01:25:50AM -0700, Kees Cook wrote: > 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: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > Cc: "Bryan O'Donoghue" <pure.logic@xxxxxxxxxxxxxxxxx> > Cc: Johan Hovold <johan@xxxxxxxxxx> > Cc: Alex Elder <elder@xxxxxxxxxx> > Cc: greybus-dev@xxxxxxxxxxxxxxxx > Cc: devel@xxxxxxxxxxxxxxxxxxxx > Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx> > --- > drivers/staging/greybus/loopback.c | 14 ++++---------- > drivers/staging/greybus/operation.c | 7 +++---- > 2 files changed, 7 insertions(+), 14 deletions(-) > > diff --git a/drivers/staging/greybus/loopback.c b/drivers/staging/greybus/loopback.c > index 08e255884206..045aaf81113a 100644 > --- a/drivers/staging/greybus/loopback.c > +++ b/drivers/staging/greybus/loopback.c > @@ -572,16 +572,11 @@ static void gb_loopback_async_operation_work(struct work_struct *work) > gb_loopback_async_operation_put(op_async); > } > > -static void gb_loopback_async_operation_timeout(unsigned long data) > +static void gb_loopback_async_operation_timeout(struct timer_list *t) > { > - struct gb_loopback_async_operation *op_async; > - u16 id = data; > + struct gb_loopback_async_operation *op_async = > + from_timer(op_async, t, timer); > Since this one needs to be re-sent any way, could you do this instead of breaking up the line? struct gb_loopback_async_operation *op_async; op_async = from_timer(op_async, t, timer); regards, dan carpenter _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel