Loading net/ipc_router/ipc_router_core.c +10 −2 Original line number Diff line number Diff line Loading @@ -3923,6 +3923,7 @@ static int msm_ipc_router_add_xprt(struct msm_ipc_router_xprt *xprt) static void msm_ipc_router_remove_xprt(struct msm_ipc_router_xprt *xprt) { struct msm_ipc_router_xprt_info *xprt_info; struct rr_packet *temp_pkt, *pkt; if (xprt && xprt->priv) { xprt_info = xprt->priv; Loading @@ -3932,6 +3933,15 @@ static void msm_ipc_router_remove_xprt(struct msm_ipc_router_xprt *xprt) mutex_lock(&xprt_info->rx_lock_lhb2); xprt_info->abort_data_read = 1; mutex_unlock(&xprt_info->rx_lock_lhb2); flush_workqueue(xprt_info->workqueue); destroy_workqueue(xprt_info->workqueue); mutex_lock(&xprt_info->rx_lock_lhb2); list_for_each_entry_safe(pkt, temp_pkt, &xprt_info->pkt_list, list) { list_del(&pkt->list); release_pkt(pkt); } mutex_unlock(&xprt_info->rx_lock_lhb2); down_write(&xprt_info_list_lock_lha5); list_del(&xprt_info->list); Loading @@ -3939,8 +3949,6 @@ static void msm_ipc_router_remove_xprt(struct msm_ipc_router_xprt *xprt) msm_ipc_cleanup_routing_table(xprt_info); flush_workqueue(xprt_info->workqueue); destroy_workqueue(xprt_info->workqueue); wakeup_source_trash(&xprt_info->ws); xprt->priv = 0; Loading Loading
net/ipc_router/ipc_router_core.c +10 −2 Original line number Diff line number Diff line Loading @@ -3923,6 +3923,7 @@ static int msm_ipc_router_add_xprt(struct msm_ipc_router_xprt *xprt) static void msm_ipc_router_remove_xprt(struct msm_ipc_router_xprt *xprt) { struct msm_ipc_router_xprt_info *xprt_info; struct rr_packet *temp_pkt, *pkt; if (xprt && xprt->priv) { xprt_info = xprt->priv; Loading @@ -3932,6 +3933,15 @@ static void msm_ipc_router_remove_xprt(struct msm_ipc_router_xprt *xprt) mutex_lock(&xprt_info->rx_lock_lhb2); xprt_info->abort_data_read = 1; mutex_unlock(&xprt_info->rx_lock_lhb2); flush_workqueue(xprt_info->workqueue); destroy_workqueue(xprt_info->workqueue); mutex_lock(&xprt_info->rx_lock_lhb2); list_for_each_entry_safe(pkt, temp_pkt, &xprt_info->pkt_list, list) { list_del(&pkt->list); release_pkt(pkt); } mutex_unlock(&xprt_info->rx_lock_lhb2); down_write(&xprt_info_list_lock_lha5); list_del(&xprt_info->list); Loading @@ -3939,8 +3949,6 @@ static void msm_ipc_router_remove_xprt(struct msm_ipc_router_xprt *xprt) msm_ipc_cleanup_routing_table(xprt_info); flush_workqueue(xprt_info->workqueue); destroy_workqueue(xprt_info->workqueue); wakeup_source_trash(&xprt_info->ws); xprt->priv = 0; Loading