Loading drivers/misc/mediatek/mddp/ctrl/mddp_if.c +26 −40 Original line number Diff line number Diff line Loading @@ -38,8 +38,6 @@ // Private functions. //------------------------------------------------------------------------------ static uint32_t mddp_netdev_notifier_is_init; unsigned long mddp_abnormal_disabled_jiffies = 0; static int mddp_netdev_notify_cb(struct notifier_block *nb, unsigned long event, void *data) { Loading @@ -66,11 +64,9 @@ static struct notifier_block mddp_netdev_notifier __read_mostly = { void mddp_netdev_notifier_init(void) { if (!mddp_netdev_notifier_is_init && (register_netdevice_notifier(&mddp_netdev_notifier) == 0)) { if (register_netdevice_notifier(&mddp_netdev_notifier) == 0) mddp_netdev_notifier_is_init = 1; } } void mddp_netdev_notifier_exit(void) { Loading Loading @@ -131,6 +127,31 @@ int32_t mddp_on_enable(enum mddp_app_type_e in_type) return 0; } int32_t mddp_on_disable(enum mddp_app_type_e in_type) { struct mddp_app_t *app; uint32_t type; uint8_t idx; if (in_type != MDDP_APP_TYPE_ALL) return -EINVAL; /* * MDDP DISABLE command. */ for (idx = 0; idx < MDDP_MOD_CNT; idx++) { type = mddp_sm_module_list_s[idx]; app = mddp_get_app_inst(type); if (!(app->feature & MDDP_FEATURE_MDDP_WH) || !app->drv_reg) continue; mddp_sm_wait_pre(app); mddp_sm_on_event(app, MDDP_EVT_FUNC_DISABLE); mddp_sm_wait(app, MDDP_EVT_FUNC_DISABLE); } return 0; } int32_t mddp_on_activate(enum mddp_app_type_e type, uint8_t *ul_dev_name, uint8_t *dl_dev_name) { Loading Loading @@ -203,41 +224,6 @@ int32_t mddp_on_deactivate(enum mddp_app_type_e type) return 0; } int32_t mddp_on_disable(enum mddp_app_type_e in_type) { struct mddp_app_t *app; uint32_t type; uint8_t idx; if (in_type != MDDP_APP_TYPE_ALL) return -EINVAL; /* If MDDP is not deactivated, * Deactive first to avoid state machine corruption */ if (mddp_f_dev_is_wan_lan_dev()) { int32_t ret = 0; mddp_abnormal_disabled_jiffies = jiffies; ret = mddp_on_deactivate(MDDP_APP_TYPE_WH); } /* * MDDP DISABLE command. */ for (idx = 0; idx < MDDP_MOD_CNT; idx++) { type = mddp_sm_module_list_s[idx]; app = mddp_get_app_inst(type); if (!(app->feature & MDDP_FEATURE_MDDP_WH) || !app->drv_reg) continue; mddp_sm_wait_pre(app); mddp_sm_on_event(app, MDDP_EVT_FUNC_DISABLE); mddp_sm_wait(app, MDDP_EVT_FUNC_DISABLE); } return 0; } int32_t mddp_on_get_offload_stats( enum mddp_app_type_e type, uint8_t *buf, Loading drivers/misc/mediatek/mddp/ctrl/mddp_sm.c +4 −10 Original line number Diff line number Diff line Loading @@ -459,8 +459,6 @@ void mddp_dump_sm_table(struct mddp_app_t *app) } #endif extern unsigned long mddp_abnormal_disabled_jiffies; enum mddp_state_e mddp_sm_on_event(struct mddp_app_t *app, enum mddp_event_e event) { Loading @@ -469,13 +467,11 @@ enum mddp_state_e mddp_sm_on_event(struct mddp_app_t *app, enum mddp_state_e new_state; struct mddp_sm_entry_t *state_machine; struct mddp_sm_entry_t *entry; bool lanWanExist; mutex_lock(&mddp_state_handler_mtx); new_state = old_state = mddp_get_state(app); state_machine = app->state_machines[old_state]; lanWanExist = mddp_f_dev_is_wan_lan_dev(); for (idx = 0; idx < MDDP_EVT_CNT; idx++) { entry = state_machine + idx; Loading @@ -490,9 +486,8 @@ enum mddp_state_e mddp_sm_on_event(struct mddp_app_t *app, mddp_dump_sm_table(app); MDDP_S_LOG(MDDP_LL_WARN, "%s:evt(%d),(%d)->(%d),e(%d),j(%lu)\n", __func__, event, old_state, new_state, lanWanExist,mddp_abnormal_disabled_jiffies); "%s: event(%d), old_state(%d) -> new_state(%d).\n", __func__, event, old_state, new_state); if (entry->action) entry->action(app); Loading @@ -503,9 +498,8 @@ enum mddp_state_e mddp_sm_on_event(struct mddp_app_t *app, * NG. Unexpected event for this state! */ MDDP_S_LOG(MDDP_LL_WARN, "%s: Invalid e(%d) for s(%d)!e(%d),j(%lu)\n", __func__, event, old_state, lanWanExist,mddp_abnormal_disabled_jiffies); "%s: Invalid event(%d) for current state(%d)!\n", __func__, event, old_state); break; } Loading drivers/misc/mediatek/mddp/filter/mddp_f_dev.c +0 −22 Original line number Diff line number Diff line Loading @@ -295,25 +295,3 @@ void mddp_f_dev_del_wan_dev(char *dev_name) __func__, dev_name, i, mddp_f_wan_dev_cnt_g); } bool mddp_f_dev_is_wan_lan_dev(void) { bool exist = false; int i; for (i = 0; i < MDDP_MAX_WAN_DEV_NUM; i++) { if (mddp_f_wan_dev[i].is_valid == true) { exist = true; return exist; } } for (i = 0; i < MDDP_MAX_LAN_DEV_NUM; i++) { if (mddp_f_lan_dev[i].is_valid == true) { exist = true; return exist; } } return exist; } drivers/misc/mediatek/mddp/include/mddp_filter.h +0 −1 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ bool mddp_f_dev_add_lan_dev(char *dev_name, int netif_id); bool mddp_f_dev_add_wan_dev(char *dev_name); void mddp_f_dev_del_lan_dev(char *dev_name); void mddp_f_dev_del_wan_dev(char *dev_name); bool mddp_f_dev_is_wan_lan_dev(void); struct net_device *mddp_f_is_support_lan_dev(int ifindex); struct net_device *mddp_f_is_support_wan_dev(int ifindex); Loading Loading
drivers/misc/mediatek/mddp/ctrl/mddp_if.c +26 −40 Original line number Diff line number Diff line Loading @@ -38,8 +38,6 @@ // Private functions. //------------------------------------------------------------------------------ static uint32_t mddp_netdev_notifier_is_init; unsigned long mddp_abnormal_disabled_jiffies = 0; static int mddp_netdev_notify_cb(struct notifier_block *nb, unsigned long event, void *data) { Loading @@ -66,11 +64,9 @@ static struct notifier_block mddp_netdev_notifier __read_mostly = { void mddp_netdev_notifier_init(void) { if (!mddp_netdev_notifier_is_init && (register_netdevice_notifier(&mddp_netdev_notifier) == 0)) { if (register_netdevice_notifier(&mddp_netdev_notifier) == 0) mddp_netdev_notifier_is_init = 1; } } void mddp_netdev_notifier_exit(void) { Loading Loading @@ -131,6 +127,31 @@ int32_t mddp_on_enable(enum mddp_app_type_e in_type) return 0; } int32_t mddp_on_disable(enum mddp_app_type_e in_type) { struct mddp_app_t *app; uint32_t type; uint8_t idx; if (in_type != MDDP_APP_TYPE_ALL) return -EINVAL; /* * MDDP DISABLE command. */ for (idx = 0; idx < MDDP_MOD_CNT; idx++) { type = mddp_sm_module_list_s[idx]; app = mddp_get_app_inst(type); if (!(app->feature & MDDP_FEATURE_MDDP_WH) || !app->drv_reg) continue; mddp_sm_wait_pre(app); mddp_sm_on_event(app, MDDP_EVT_FUNC_DISABLE); mddp_sm_wait(app, MDDP_EVT_FUNC_DISABLE); } return 0; } int32_t mddp_on_activate(enum mddp_app_type_e type, uint8_t *ul_dev_name, uint8_t *dl_dev_name) { Loading Loading @@ -203,41 +224,6 @@ int32_t mddp_on_deactivate(enum mddp_app_type_e type) return 0; } int32_t mddp_on_disable(enum mddp_app_type_e in_type) { struct mddp_app_t *app; uint32_t type; uint8_t idx; if (in_type != MDDP_APP_TYPE_ALL) return -EINVAL; /* If MDDP is not deactivated, * Deactive first to avoid state machine corruption */ if (mddp_f_dev_is_wan_lan_dev()) { int32_t ret = 0; mddp_abnormal_disabled_jiffies = jiffies; ret = mddp_on_deactivate(MDDP_APP_TYPE_WH); } /* * MDDP DISABLE command. */ for (idx = 0; idx < MDDP_MOD_CNT; idx++) { type = mddp_sm_module_list_s[idx]; app = mddp_get_app_inst(type); if (!(app->feature & MDDP_FEATURE_MDDP_WH) || !app->drv_reg) continue; mddp_sm_wait_pre(app); mddp_sm_on_event(app, MDDP_EVT_FUNC_DISABLE); mddp_sm_wait(app, MDDP_EVT_FUNC_DISABLE); } return 0; } int32_t mddp_on_get_offload_stats( enum mddp_app_type_e type, uint8_t *buf, Loading
drivers/misc/mediatek/mddp/ctrl/mddp_sm.c +4 −10 Original line number Diff line number Diff line Loading @@ -459,8 +459,6 @@ void mddp_dump_sm_table(struct mddp_app_t *app) } #endif extern unsigned long mddp_abnormal_disabled_jiffies; enum mddp_state_e mddp_sm_on_event(struct mddp_app_t *app, enum mddp_event_e event) { Loading @@ -469,13 +467,11 @@ enum mddp_state_e mddp_sm_on_event(struct mddp_app_t *app, enum mddp_state_e new_state; struct mddp_sm_entry_t *state_machine; struct mddp_sm_entry_t *entry; bool lanWanExist; mutex_lock(&mddp_state_handler_mtx); new_state = old_state = mddp_get_state(app); state_machine = app->state_machines[old_state]; lanWanExist = mddp_f_dev_is_wan_lan_dev(); for (idx = 0; idx < MDDP_EVT_CNT; idx++) { entry = state_machine + idx; Loading @@ -490,9 +486,8 @@ enum mddp_state_e mddp_sm_on_event(struct mddp_app_t *app, mddp_dump_sm_table(app); MDDP_S_LOG(MDDP_LL_WARN, "%s:evt(%d),(%d)->(%d),e(%d),j(%lu)\n", __func__, event, old_state, new_state, lanWanExist,mddp_abnormal_disabled_jiffies); "%s: event(%d), old_state(%d) -> new_state(%d).\n", __func__, event, old_state, new_state); if (entry->action) entry->action(app); Loading @@ -503,9 +498,8 @@ enum mddp_state_e mddp_sm_on_event(struct mddp_app_t *app, * NG. Unexpected event for this state! */ MDDP_S_LOG(MDDP_LL_WARN, "%s: Invalid e(%d) for s(%d)!e(%d),j(%lu)\n", __func__, event, old_state, lanWanExist,mddp_abnormal_disabled_jiffies); "%s: Invalid event(%d) for current state(%d)!\n", __func__, event, old_state); break; } Loading
drivers/misc/mediatek/mddp/filter/mddp_f_dev.c +0 −22 Original line number Diff line number Diff line Loading @@ -295,25 +295,3 @@ void mddp_f_dev_del_wan_dev(char *dev_name) __func__, dev_name, i, mddp_f_wan_dev_cnt_g); } bool mddp_f_dev_is_wan_lan_dev(void) { bool exist = false; int i; for (i = 0; i < MDDP_MAX_WAN_DEV_NUM; i++) { if (mddp_f_wan_dev[i].is_valid == true) { exist = true; return exist; } } for (i = 0; i < MDDP_MAX_LAN_DEV_NUM; i++) { if (mddp_f_lan_dev[i].is_valid == true) { exist = true; return exist; } } return exist; }
drivers/misc/mediatek/mddp/include/mddp_filter.h +0 −1 Original line number Diff line number Diff line Loading @@ -19,7 +19,6 @@ bool mddp_f_dev_add_lan_dev(char *dev_name, int netif_id); bool mddp_f_dev_add_wan_dev(char *dev_name); void mddp_f_dev_del_lan_dev(char *dev_name); void mddp_f_dev_del_wan_dev(char *dev_name); bool mddp_f_dev_is_wan_lan_dev(void); struct net_device *mddp_f_is_support_lan_dev(int ifindex); struct net_device *mddp_f_is_support_wan_dev(int ifindex); Loading