The timer callback argument type has been changed by commit 354b46b1a0ad
("timer: Switch callback prototype to take struct timer_list *
argument") and init_timer_on_stack() is also removed by commit
9c6c273aa424 ("timer: Remove init_timer_on_stack() in favor of
timer_setup_on_stack()"). Adjust the codes in yaffs2 according to
these changes.

Signed-off-by: Kevin Hao <kexin....@windriver.com>
---
 fs/yaffs2/yaffs_vfs.c | 26 ++++++++++++++++----------
 1 file changed, 16 insertions(+), 10 deletions(-)

diff --git a/fs/yaffs2/yaffs_vfs.c b/fs/yaffs2/yaffs_vfs.c
index c7be4cddd1de..c99acf08a0d8 100644
--- a/fs/yaffs2/yaffs_vfs.c
+++ b/fs/yaffs2/yaffs_vfs.c
@@ -136,7 +136,7 @@
 #if (LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 26))
 #define Y_INIT_TIMER(a)        init_timer(a)
 #else
-#define Y_INIT_TIMER(a)        init_timer_on_stack(a)
+#define Y_INIT_TIMER(a)        timer_setup_on_stack(a, NULL, 0)
 #endif
 
 #if (LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 27))
@@ -2065,10 +2065,16 @@ static unsigned yaffs_bg_gc_urgency(struct yaffs_dev 
*dev)
 }
 
 #ifdef YAFFS_COMPILE_BACKGROUND
+struct yaffs_timer {
+       struct timer_list timer;
+       struct task_struct *tsk;
+};
 
-void yaffs_background_waker(unsigned long data)
+void yaffs_background_waker(struct timer_list *t)
 {
-       wake_up_process((struct task_struct *)data);
+       struct yaffs_timer *yt = from_timer(yt, t, timer);
+
+       wake_up_process(yt->tsk);
 }
 
 static int yaffs_bg_thread_fn(void *data)
@@ -2082,7 +2088,7 @@ static int yaffs_bg_thread_fn(void *data)
        unsigned int urgency;
 
        int gc_result;
-       struct timer_list timer;
+       struct yaffs_timer yt;
 
        yaffs_trace(YAFFS_TRACE_BACKGROUND,
                "yaffs_background starting for dev %p", (void *)dev);
@@ -2135,15 +2141,15 @@ static int yaffs_bg_thread_fn(void *data)
                if (time_before(expires, now))
                        expires = now + HZ;
 
-               Y_INIT_TIMER(&timer);
-               timer.expires = expires + 1;
-               timer.data = (unsigned long)current;
-               timer.function = yaffs_background_waker;
+               Y_INIT_TIMER(&yt.timer);
+               yt.timer.function = yaffs_background_waker;
+               yt.timer.expires = expires + 1;
+               yt.tsk = current;
 
                set_current_state(TASK_INTERRUPTIBLE);
-               add_timer(&timer);
+               add_timer(&yt.timer);
                schedule();
-               del_timer_sync(&timer);
+               del_timer_sync(&yt.timer);
 #else
                msleep(10);
 #endif
-- 
2.9.3

-- 
_______________________________________________
linux-yocto mailing list
linux-yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/linux-yocto

Reply via email to