From 2204dee91bd1560285b7f0ce8f51b73ffbb364e8 Mon Sep 17 00:00:00 2001 From: Subash Abhinov Kasiviswanathan Date: Sun, 22 Mar 2020 21:02:58 -0600 Subject: [PATCH] core: Remove dl marker v1 usage This removes the unused dl marker v1 definitions, handlers and users since these are no longer used. This also fixes the following CFI warning- CFI failure (target: rmnet_perf_core_handle_map_control_end.cfi_jt+0x0/0x4 [rmnet_perf]): WARNING: CPU: 1 PID: 0 at kernel/cfi.c:29 __ubsan_handle_cfi_check_fail+0x4c/0x54 pstate: 60400005 (nZCv daif +PAN -UAO) pc: __ubsan_handle_cfi_check_fail+0x4c/0x54 lr: __ubsan_handle_cfi_check_fail+0x4c/0x54 Call trace: __ubsan_handle_cfi_check_fail+0x4c/0x54 __cfi_check+0x204/0x220 [rmnet_perf] rmnet_map_dl_trl_notify_v2+0x58/0x88 [rmnet_core] rmnet_frag_flow_command+0x110/0x120 [rmnet_core] rmnet_frag_ingress_handler+0xe0/0x3bc [rmnet_core] rmnet_rx_handler+0x1cc/0x2a4 [rmnet_core] __netif_receive_skb_core+0x554/0xdc4 process_backlog$4cc8cf18b485f47de9fc54109f04daea+0x1a4/0x314 net_rx_action$4cc8cf18b485f47de9fc54109f04daea+0x144/0x578 __do_softirq+0x250/0x580 irq_exit+0xcc/0xd0 handle_IPI+0x228/0x3b0 efi_header_end+0x148/0x17c el1_irq+0x108/0x200 lpm_cpuidle_enter$a9941074ca35bb1f25355cf2ff310eae+0x57c/0x5c8 cpuidle_enter_state+0x130/0x334 cpuidle_enter+0x38/0x50 do_idle.llvm.4847091502713502628+0x1e4/0x2ec cpu_startup_entry+0x24/0x28 __cpu_disable+0x0/0xbc CRs-Fixed: 2647192 Change-Id: I5dc625f0791aff9738b2128f99c79d7e0dadf26d Signed-off-by: Subash Abhinov Kasiviswanathan --- core/rmnet_descriptor.c | 4 ---- core/rmnet_map.h | 22 ++++------------------ core/rmnet_map_command.c | 32 ++------------------------------ 3 files changed, 6 insertions(+), 52 deletions(-) diff --git a/core/rmnet_descriptor.c b/core/rmnet_descriptor.c index 1df9855ef961..34f8ac123f38 100644 --- a/core/rmnet_descriptor.c +++ b/core/rmnet_descriptor.c @@ -237,8 +237,6 @@ rmnet_frag_process_flow_start(struct rmnet_map_control_command_header *cmd, */ if (is_dl_mark_v2) rmnet_map_dl_hdr_notify_v2(port, dlhdr, cmd); - else - rmnet_map_dl_hdr_notify(port, dlhdr); } static void @@ -265,8 +263,6 @@ rmnet_frag_process_flow_end(struct rmnet_map_control_command_header *cmd, */ if (is_dl_mark_v2) rmnet_map_dl_trl_notify_v2(port, dltrl, cmd); - else - rmnet_map_dl_trl_notify(port, dltrl); } /* Process MAP command frame and send N/ACK message as appropriate. Message cmd diff --git a/core/rmnet_map.h b/core/rmnet_map.h index f7116d348a0a..853318da8f2c 100644 --- a/core/rmnet_map.h +++ b/core/rmnet_map.h @@ -180,20 +180,10 @@ struct rmnet_map_dl_ind_trl { struct rmnet_map_dl_ind { u8 priority; - union { - void (*dl_hdr_handler)(struct rmnet_map_dl_ind_hdr *dlhdr); - void (*dl_hdr_handler_v2)(struct rmnet_map_dl_ind_hdr *dlhdr, - struct - rmnet_map_control_command_header - * qcmd); - } __aligned(1); - union { - void (*dl_trl_handler)(struct rmnet_map_dl_ind_trl *dltrl); - void (*dl_trl_handler_v2)(struct rmnet_map_dl_ind_trl *dltrl, - struct - rmnet_map_control_command_header - * qcmd); - } __aligned(1); + void (*dl_hdr_handler_v2)(struct rmnet_map_dl_ind_hdr *dlhdr, + struct rmnet_map_control_command_header *qcmd); + void (*dl_trl_handler_v2)(struct rmnet_map_dl_ind_trl *dltrl, + struct rmnet_map_control_command_header *qcmd); struct list_head list; }; @@ -275,13 +265,9 @@ void rmnet_map_tx_aggregate_init(struct rmnet_port *port); void rmnet_map_tx_aggregate_exit(struct rmnet_port *port); void rmnet_map_update_ul_agg_config(struct rmnet_port *port, u16 size, u8 count, u8 features, u32 time); -void rmnet_map_dl_hdr_notify(struct rmnet_port *port, - struct rmnet_map_dl_ind_hdr *dl_hdr); void rmnet_map_dl_hdr_notify_v2(struct rmnet_port *port, struct rmnet_map_dl_ind_hdr *dl_hdr, struct rmnet_map_control_command_header *qcmd); -void rmnet_map_dl_trl_notify(struct rmnet_port *port, - struct rmnet_map_dl_ind_trl *dltrl); void rmnet_map_dl_trl_notify_v2(struct rmnet_port *port, struct rmnet_map_dl_ind_trl *dltrl, struct rmnet_map_control_command_header *qcmd); diff --git a/core/rmnet_map_command.c b/core/rmnet_map_command.c index ce058d2efedd..be60422c37a9 100644 --- a/core/rmnet_map_command.c +++ b/core/rmnet_map_command.c @@ -107,16 +107,6 @@ rmnet_map_dl_hdr_notify_v2(struct rmnet_port *port, tmp->dl_hdr_handler_v2(dlhdr, qcmd); } -void -rmnet_map_dl_hdr_notify(struct rmnet_port *port, - struct rmnet_map_dl_ind_hdr *dlhdr) -{ - struct rmnet_map_dl_ind *tmp; - - list_for_each_entry(tmp, &port->dl_list, list) - tmp->dl_hdr_handler(dlhdr); -} - void rmnet_map_dl_trl_notify_v2(struct rmnet_port *port, struct rmnet_map_dl_ind_trl *dltrl, @@ -128,16 +118,6 @@ rmnet_map_dl_trl_notify_v2(struct rmnet_port *port, tmp->dl_trl_handler_v2(dltrl, qcmd); } -void -rmnet_map_dl_trl_notify(struct rmnet_port *port, - struct rmnet_map_dl_ind_trl *dltrl) -{ - struct rmnet_map_dl_ind *tmp; - - list_for_each_entry(tmp, &port->dl_list, list) - tmp->dl_trl_handler(dltrl); -} - static void rmnet_map_process_flow_start(struct sk_buff *skb, struct rmnet_port *port, bool rmnet_perf) @@ -160,8 +140,6 @@ static void rmnet_map_process_flow_start(struct sk_buff *skb, port->stats.dl_hdr_last_qmap_vers = qcmd->reserved; port->stats.dl_hdr_last_trans_id = qcmd->transaction_id; pskb_pull(skb, sizeof(struct rmnet_map_control_command_header)); - } else { - pskb_pull(skb, RMNET_MAP_CMD_SIZE); } dlhdr = (struct rmnet_map_dl_ind_hdr *)rmnet_map_data_ptr(skb); @@ -176,8 +154,6 @@ static void rmnet_map_process_flow_start(struct sk_buff *skb, if (is_dl_mark_v2) rmnet_map_dl_hdr_notify_v2(port, dlhdr, qcmd); - else - rmnet_map_dl_hdr_notify(port, dlhdr); if (rmnet_perf) { unsigned int pull_size; @@ -208,8 +184,6 @@ static void rmnet_map_process_flow_end(struct sk_buff *skb, qcmd = (struct rmnet_map_control_command_header *) rmnet_map_data_ptr(skb); pskb_pull(skb, sizeof(struct rmnet_map_control_command_header)); - } else { - pskb_pull(skb, RMNET_MAP_CMD_SIZE); } dltrl = (struct rmnet_map_dl_ind_trl *)rmnet_map_data_ptr(skb); @@ -219,8 +193,6 @@ static void rmnet_map_process_flow_end(struct sk_buff *skb, if (is_dl_mark_v2) rmnet_map_dl_trl_notify_v2(port, dltrl, qcmd); - else - rmnet_map_dl_trl_notify(port, dltrl); if (rmnet_perf) { unsigned int pull_size; @@ -311,8 +283,8 @@ int rmnet_map_dl_ind_register(struct rmnet_port *port, 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) + if (!port || !dl_ind || !dl_ind->dl_hdr_handler_v2 || + !dl_ind->dl_trl_handler_v2) return -EINVAL; list_for_each_entry_rcu(dl_ind_iterator, &port->dl_list, list) {