Loading drivers/net/ethernet/qualcomm/rmnet/rmnet_config.h +5 −0 Original line number Diff line number Diff line Loading @@ -110,6 +110,11 @@ struct rmnet_priv { void __rcu *qos_info; }; enum rmnet_dl_marker_prio { RMNET_PERF, RMNET_SHS, }; enum rmnet_trace_func { RMNET_MODULE, NW_STACK_MODULE, Loading drivers/net/ethernet/qualcomm/rmnet/rmnet_map.h +1 −0 Original line number Diff line number Diff line Loading @@ -115,6 +115,7 @@ struct rmnet_map_dl_ind_trl { } __aligned(1); struct rmnet_map_dl_ind { u8 priority; void (*dl_hdr_handler)(struct rmnet_map_dl_ind_hdr *); void (*dl_trl_handler)(struct rmnet_map_dl_ind_trl *); struct list_head list; Loading drivers/net/ethernet/qualcomm/rmnet/rmnet_map_command.c +28 −1 Original line number Diff line number Diff line Loading @@ -270,10 +270,37 @@ void rmnet_map_cmd_init(struct rmnet_port *port) int rmnet_map_dl_ind_register(struct rmnet_port *port, struct rmnet_map_dl_ind *dl_ind) { struct rmnet_map_dl_ind *dl_ind_iterator; bool empty_ind_list = true; if (!port || !dl_ind || !dl_ind->dl_hdr_handler || !dl_ind->dl_trl_handler) return -EINVAL; list_for_each_entry_rcu(dl_ind_iterator, &port->dl_list, list) { empty_ind_list = false; if (dl_ind_iterator->priority < dl_ind->priority) { if (dl_ind_iterator->list.next) { if (dl_ind->priority < list_entry_rcu(dl_ind_iterator->list.next, typeof(*dl_ind_iterator), list)->priority) { list_add_rcu(&dl_ind->list, &dl_ind_iterator->list); break; } } else { list_add_rcu(&dl_ind->list, &dl_ind_iterator->list); break; } } else { list_add_tail_rcu(&dl_ind->list, &dl_ind_iterator->list); break; } } if (empty_ind_list) list_add_rcu(&dl_ind->list, &port->dl_list); return 0; Loading Loading
drivers/net/ethernet/qualcomm/rmnet/rmnet_config.h +5 −0 Original line number Diff line number Diff line Loading @@ -110,6 +110,11 @@ struct rmnet_priv { void __rcu *qos_info; }; enum rmnet_dl_marker_prio { RMNET_PERF, RMNET_SHS, }; enum rmnet_trace_func { RMNET_MODULE, NW_STACK_MODULE, Loading
drivers/net/ethernet/qualcomm/rmnet/rmnet_map.h +1 −0 Original line number Diff line number Diff line Loading @@ -115,6 +115,7 @@ struct rmnet_map_dl_ind_trl { } __aligned(1); struct rmnet_map_dl_ind { u8 priority; void (*dl_hdr_handler)(struct rmnet_map_dl_ind_hdr *); void (*dl_trl_handler)(struct rmnet_map_dl_ind_trl *); struct list_head list; Loading
drivers/net/ethernet/qualcomm/rmnet/rmnet_map_command.c +28 −1 Original line number Diff line number Diff line Loading @@ -270,10 +270,37 @@ void rmnet_map_cmd_init(struct rmnet_port *port) int rmnet_map_dl_ind_register(struct rmnet_port *port, struct rmnet_map_dl_ind *dl_ind) { struct rmnet_map_dl_ind *dl_ind_iterator; bool empty_ind_list = true; if (!port || !dl_ind || !dl_ind->dl_hdr_handler || !dl_ind->dl_trl_handler) return -EINVAL; list_for_each_entry_rcu(dl_ind_iterator, &port->dl_list, list) { empty_ind_list = false; if (dl_ind_iterator->priority < dl_ind->priority) { if (dl_ind_iterator->list.next) { if (dl_ind->priority < list_entry_rcu(dl_ind_iterator->list.next, typeof(*dl_ind_iterator), list)->priority) { list_add_rcu(&dl_ind->list, &dl_ind_iterator->list); break; } } else { list_add_rcu(&dl_ind->list, &dl_ind_iterator->list); break; } } else { list_add_tail_rcu(&dl_ind->list, &dl_ind_iterator->list); break; } } if (empty_ind_list) list_add_rcu(&dl_ind->list, &port->dl_list); return 0; Loading