}
 EXPORT_SYMBOL(mlxsw_core_schedule_dw);
 
-int mlxsw_core_schedule_odw(struct delayed_work *dwork, unsigned long delay)
+bool mlxsw_core_schedule_work(struct work_struct *work)
 {
-       return queue_delayed_work(mlxsw_owq, dwork, delay);
+       return queue_work(mlxsw_owq, work);
 }
-EXPORT_SYMBOL(mlxsw_core_schedule_odw);
+EXPORT_SYMBOL(mlxsw_core_schedule_work);
 
 void mlxsw_core_flush_owq(void)
 {
 
                                                u8 local_port);
 
 int mlxsw_core_schedule_dw(struct delayed_work *dwork, unsigned long delay);
-int mlxsw_core_schedule_odw(struct delayed_work *dwork, unsigned long delay);
+bool mlxsw_core_schedule_work(struct work_struct *work);
 void mlxsw_core_flush_owq(void);
 
 #define MLXSW_CONFIG_PROFILE_SWID_COUNT 8
 
 }
 
 struct mlxsw_sp_fib_event_work {
-       struct delayed_work dw;
+       struct work_struct work;
        struct fib_entry_notifier_info fen_info;
        struct mlxsw_sp *mlxsw_sp;
        unsigned long event;
 static void mlxsw_sp_router_fib_event_work(struct work_struct *work)
 {
        struct mlxsw_sp_fib_event_work *fib_work =
-               container_of(work, struct mlxsw_sp_fib_event_work, dw.work);
+               container_of(work, struct mlxsw_sp_fib_event_work, work);
        struct mlxsw_sp *mlxsw_sp = fib_work->mlxsw_sp;
        int err;
 
        if (WARN_ON(!fib_work))
                return NOTIFY_BAD;
 
-       INIT_DELAYED_WORK(&fib_work->dw, mlxsw_sp_router_fib_event_work);
+       INIT_WORK(&fib_work->work, mlxsw_sp_router_fib_event_work);
        fib_work->mlxsw_sp = mlxsw_sp;
        fib_work->event = event;
 
                break;
        }
 
-       mlxsw_core_schedule_odw(&fib_work->dw, 0);
+       mlxsw_core_schedule_work(&fib_work->work);
 
        return NOTIFY_DONE;
 }