Re: [net-realtek-btcoexist] question about identical code for different branches
On 05/17/2017 04:52 PM, Gustavo A. R. Silva wrote: Hello everybody, While looking into Coverity ID 1362263 I ran into the following piece of code at drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c:1000: 1000void exhalbtc_set_ant_num(struct rtl_priv *rtlpriv, u8 type, u8 ant_num) 1001{ 1002if (BT_COEX_ANT_TYPE_PG == type) { 1003gl_bt_coexist.board_info.pg_ant_num = ant_num; 1004gl_bt_coexist.board_info.btdm_ant_num = ant_num; 1005/* The antenna position: 1006 * Main (default) or Aux for pgAntNum=2 && btdmAntNum =1. 1007 * The antenna position should be determined by 1008 * auto-detect mechanism. 1009 * The following is assumed to main, 1010 * and those must be modified 1011 * if y auto-detect mechanism is ready 1012 */ 1013if ((gl_bt_coexist.board_info.pg_ant_num == 2) && 1014(gl_bt_coexist.board_info.btdm_ant_num == 1)) 1015gl_bt_coexist.board_info.btdm_ant_pos = 1016 BTC_ANTENNA_AT_MAIN_PORT; 1017else 1018gl_bt_coexist.board_info.btdm_ant_pos = 1019 BTC_ANTENNA_AT_MAIN_PORT; 1020} else if (BT_COEX_ANT_TYPE_ANTDIV == type) { 1021gl_bt_coexist.board_info.btdm_ant_num = ant_num; 1022gl_bt_coexist.board_info.btdm_ant_pos = 1023 BTC_ANTENNA_AT_MAIN_PORT; 1024} else if (type == BT_COEX_ANT_TYPE_DETECTED) { 1025gl_bt_coexist.board_info.btdm_ant_num = ant_num; 1026if (rtlpriv->cfg->mod_params->ant_sel == 1) 1027gl_bt_coexist.board_info.btdm_ant_pos = 1028BTC_ANTENNA_AT_AUX_PORT; 1029else 1030gl_bt_coexist.board_info.btdm_ant_pos = 1031BTC_ANTENNA_AT_MAIN_PORT; 1032} 1033} The issue is that lines of code 1015-1016 and 1018-1019 are identical for different branches. My question here is if one of those assignments should be modified, or the entire _if_ statement replaced and the function refactored? I'd really appreciate any comment on this. Thank you! -- Gustavo A. R. Silva Gustavo, Thanks for the notification. I will discuss with Realtek as to the proper fix. Larry
[net-realtek-btcoexist] question about identical code for different branches
Hello everybody, While looking into Coverity ID 1362263 I ran into the following piece of code at drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c:1000: 1000void exhalbtc_set_ant_num(struct rtl_priv *rtlpriv, u8 type, u8 ant_num) 1001{ 1002if (BT_COEX_ANT_TYPE_PG == type) { 1003gl_bt_coexist.board_info.pg_ant_num = ant_num; 1004gl_bt_coexist.board_info.btdm_ant_num = ant_num; 1005/* The antenna position: 1006 * Main (default) or Aux for pgAntNum=2 && btdmAntNum =1. 1007 * The antenna position should be determined by 1008 * auto-detect mechanism. 1009 * The following is assumed to main, 1010 * and those must be modified 1011 * if y auto-detect mechanism is ready 1012 */ 1013if ((gl_bt_coexist.board_info.pg_ant_num == 2) && 1014(gl_bt_coexist.board_info.btdm_ant_num == 1)) 1015gl_bt_coexist.board_info.btdm_ant_pos = 1016 BTC_ANTENNA_AT_MAIN_PORT; 1017else 1018gl_bt_coexist.board_info.btdm_ant_pos = 1019 BTC_ANTENNA_AT_MAIN_PORT; 1020} else if (BT_COEX_ANT_TYPE_ANTDIV == type) { 1021gl_bt_coexist.board_info.btdm_ant_num = ant_num; 1022gl_bt_coexist.board_info.btdm_ant_pos = 1023 BTC_ANTENNA_AT_MAIN_PORT; 1024} else if (type == BT_COEX_ANT_TYPE_DETECTED) { 1025gl_bt_coexist.board_info.btdm_ant_num = ant_num; 1026if (rtlpriv->cfg->mod_params->ant_sel == 1) 1027gl_bt_coexist.board_info.btdm_ant_pos = 1028BTC_ANTENNA_AT_AUX_PORT; 1029else 1030gl_bt_coexist.board_info.btdm_ant_pos = 1031BTC_ANTENNA_AT_MAIN_PORT; 1032} 1033} The issue is that lines of code 1015-1016 and 1018-1019 are identical for different branches. My question here is if one of those assignments should be modified, or the entire _if_ statement replaced and the function refactored? I'd really appreciate any comment on this. Thank you! -- Gustavo A. R. Silva