Loading drivers/char/diag/diag_masks.c +20 −3 Original line number Original line Diff line number Diff line Loading @@ -142,6 +142,9 @@ static void diag_send_log_mask_update(uint8_t peripheral, int equip_id) mutex_lock(&mask_info->lock); mutex_lock(&mask_info->lock); for (i = 0; i < MAX_EQUIP_ID; i++, mask++) { for (i = 0; i < MAX_EQUIP_ID; i++, mask++) { if (!mask->ptr) continue; if (equip_id != i && equip_id != ALL_EQUIP_ID) if (equip_id != i && equip_id != ALL_EQUIP_ID) continue; continue; Loading Loading @@ -344,6 +347,8 @@ static void diag_send_msg_mask_update(uint8_t peripheral, int first, int last) } } for (i = 0; i < msg_mask_tbl_count_local; i++, mask++) { for (i = 0; i < msg_mask_tbl_count_local; i++, mask++) { if (!mask->ptr) continue; mutex_lock(&driver->msg_mask_lock); mutex_lock(&driver->msg_mask_lock); if (((mask->ssid_first > first) || if (((mask->ssid_first > first) || (mask->ssid_last_tools < last)) && first != ALL_SSID) { (mask->ssid_last_tools < last)) && first != ALL_SSID) { Loading Loading @@ -579,6 +584,8 @@ static int diag_cmd_get_build_mask(unsigned char *src_buf, int src_len, rsp.padding = 0; rsp.padding = 0; build_mask = (struct diag_msg_mask_t *)msg_bt_mask.ptr; build_mask = (struct diag_msg_mask_t *)msg_bt_mask.ptr; for (i = 0; i < driver->bt_msg_mask_tbl_count; i++, build_mask++) { for (i = 0; i < driver->bt_msg_mask_tbl_count; i++, build_mask++) { if (!build_mask->ptr) continue; if (build_mask->ssid_first != req->ssid_first) if (build_mask->ssid_first != req->ssid_first) continue; continue; num_entries = req->ssid_last - req->ssid_first + 1; num_entries = req->ssid_last - req->ssid_first + 1; Loading Loading @@ -656,6 +663,8 @@ static int diag_cmd_get_msg_mask(unsigned char *src_buf, int src_len, return -EINVAL; return -EINVAL; } } for (i = 0; i < driver->msg_mask_tbl_count; i++, mask++) { for (i = 0; i < driver->msg_mask_tbl_count; i++, mask++) { if (!mask->ptr) continue; if ((req->ssid_first < mask->ssid_first) || if ((req->ssid_first < mask->ssid_first) || (req->ssid_first > mask->ssid_last_tools)) { (req->ssid_first > mask->ssid_last_tools)) { continue; continue; Loading Loading @@ -725,6 +734,8 @@ static int diag_cmd_set_msg_mask(unsigned char *src_buf, int src_len, return -EINVAL; return -EINVAL; } } for (i = 0; i < driver->msg_mask_tbl_count; i++, mask++) { for (i = 0; i < driver->msg_mask_tbl_count; i++, mask++) { if (!mask->ptr) continue; if (i < (driver->msg_mask_tbl_count - 1)) { if (i < (driver->msg_mask_tbl_count - 1)) { mask_next = mask; mask_next = mask; mask_next++; mask_next++; Loading Loading @@ -1451,7 +1462,8 @@ static int diag_create_msg_mask_table(void) mutex_lock(&msg_mask.lock); mutex_lock(&msg_mask.lock); mutex_lock(&driver->msg_mask_lock); mutex_lock(&driver->msg_mask_lock); driver->msg_mask_tbl_count = MSG_MASK_TBL_CNT; driver->msg_mask_tbl_count = MSG_MASK_TBL_CNT; for (i = 0; i < driver->msg_mask_tbl_count; i++, mask++) { for (i = 0; (i < driver->msg_mask_tbl_count) && mask; i++, mask++) { range.ssid_first = msg_mask_tbl[i].ssid_first; range.ssid_first = msg_mask_tbl[i].ssid_first; range.ssid_last = msg_mask_tbl[i].ssid_last; range.ssid_last = msg_mask_tbl[i].ssid_last; err = diag_create_msg_mask_table_entry(mask, &range); err = diag_create_msg_mask_table_entry(mask, &range); Loading @@ -1476,7 +1488,8 @@ static int diag_create_build_time_mask(void) mutex_lock(&driver->msg_mask_lock); mutex_lock(&driver->msg_mask_lock); driver->bt_msg_mask_tbl_count = MSG_MASK_TBL_CNT; driver->bt_msg_mask_tbl_count = MSG_MASK_TBL_CNT; build_mask = (struct diag_msg_mask_t *)msg_bt_mask.ptr; build_mask = (struct diag_msg_mask_t *)msg_bt_mask.ptr; for (i = 0; i < driver->bt_msg_mask_tbl_count; i++, build_mask++) { for (i = 0; (i < driver->bt_msg_mask_tbl_count) && build_mask; i++, build_mask++) { range.ssid_first = msg_mask_tbl[i].ssid_first; range.ssid_first = msg_mask_tbl[i].ssid_first; range.ssid_last = msg_mask_tbl[i].ssid_last; range.ssid_last = msg_mask_tbl[i].ssid_last; err = diag_create_msg_mask_table_entry(build_mask, &range); err = diag_create_msg_mask_table_entry(build_mask, &range); Loading Loading @@ -1599,7 +1612,7 @@ static int diag_create_log_mask_table(void) mutex_lock(&log_mask.lock); mutex_lock(&log_mask.lock); mask = (struct diag_log_mask_t *)(log_mask.ptr); mask = (struct diag_log_mask_t *)(log_mask.ptr); for (i = 0; i < MAX_EQUIP_ID; i++, mask++) { for (i = 0; (i < MAX_EQUIP_ID) && mask; i++, mask++) { mask->equip_id = i; mask->equip_id = i; mask->num_items = LOG_GET_ITEM_NUM(log_code_last_tbl[i]); mask->num_items = LOG_GET_ITEM_NUM(log_code_last_tbl[i]); mask->num_items_tools = mask->num_items; mask->num_items_tools = mask->num_items; Loading Loading @@ -1994,6 +2007,8 @@ int diag_copy_to_user_msg_mask(char __user *buf, size_t count, return -EINVAL; return -EINVAL; } } for (i = 0; i < driver->msg_mask_tbl_count; i++, mask++) { for (i = 0; i < driver->msg_mask_tbl_count; i++, mask++) { if (!mask->ptr) continue; ptr = mask_info->update_buf; ptr = mask_info->update_buf; len = 0; len = 0; mutex_lock(&mask->lock); mutex_lock(&mask->lock); Loading Loading @@ -2068,6 +2083,8 @@ int diag_copy_to_user_log_mask(char __user *buf, size_t count, return -EINVAL; return -EINVAL; } } for (i = 0; i < MAX_EQUIP_ID; i++, mask++) { for (i = 0; i < MAX_EQUIP_ID; i++, mask++) { if (!mask->ptr) continue; ptr = mask_info->update_buf; ptr = mask_info->update_buf; len = 0; len = 0; mutex_lock(&mask->lock); mutex_lock(&mask->lock); Loading drivers/char/diag/diagfwd_cntl.c +2 −2 Original line number Original line Diff line number Diff line Loading @@ -519,7 +519,7 @@ static void process_ssid_range_report(uint8_t *buf, uint32_t len, mask_ptr = (struct diag_msg_mask_t *)msg_mask.ptr; mask_ptr = (struct diag_msg_mask_t *)msg_mask.ptr; found = 0; found = 0; for (j = 0; j < driver->msg_mask_tbl_count; j++, mask_ptr++) { for (j = 0; j < driver->msg_mask_tbl_count; j++, mask_ptr++) { if (!mask_ptr || !ssid_range) { if (!mask_ptr->ptr || !ssid_range) { found = 1; found = 1; break; break; } } Loading Loading @@ -591,7 +591,7 @@ static void diag_build_time_mask_update(uint8_t *buf, num_items = range->ssid_last - range->ssid_first + 1; num_items = range->ssid_last - range->ssid_first + 1; for (i = 0; i < driver->bt_msg_mask_tbl_count; i++, build_mask++) { for (i = 0; i < driver->bt_msg_mask_tbl_count; i++, build_mask++) { if (!build_mask) { if (!build_mask->ptr) { found = 1; found = 1; break; break; } } Loading Loading
drivers/char/diag/diag_masks.c +20 −3 Original line number Original line Diff line number Diff line Loading @@ -142,6 +142,9 @@ static void diag_send_log_mask_update(uint8_t peripheral, int equip_id) mutex_lock(&mask_info->lock); mutex_lock(&mask_info->lock); for (i = 0; i < MAX_EQUIP_ID; i++, mask++) { for (i = 0; i < MAX_EQUIP_ID; i++, mask++) { if (!mask->ptr) continue; if (equip_id != i && equip_id != ALL_EQUIP_ID) if (equip_id != i && equip_id != ALL_EQUIP_ID) continue; continue; Loading Loading @@ -344,6 +347,8 @@ static void diag_send_msg_mask_update(uint8_t peripheral, int first, int last) } } for (i = 0; i < msg_mask_tbl_count_local; i++, mask++) { for (i = 0; i < msg_mask_tbl_count_local; i++, mask++) { if (!mask->ptr) continue; mutex_lock(&driver->msg_mask_lock); mutex_lock(&driver->msg_mask_lock); if (((mask->ssid_first > first) || if (((mask->ssid_first > first) || (mask->ssid_last_tools < last)) && first != ALL_SSID) { (mask->ssid_last_tools < last)) && first != ALL_SSID) { Loading Loading @@ -579,6 +584,8 @@ static int diag_cmd_get_build_mask(unsigned char *src_buf, int src_len, rsp.padding = 0; rsp.padding = 0; build_mask = (struct diag_msg_mask_t *)msg_bt_mask.ptr; build_mask = (struct diag_msg_mask_t *)msg_bt_mask.ptr; for (i = 0; i < driver->bt_msg_mask_tbl_count; i++, build_mask++) { for (i = 0; i < driver->bt_msg_mask_tbl_count; i++, build_mask++) { if (!build_mask->ptr) continue; if (build_mask->ssid_first != req->ssid_first) if (build_mask->ssid_first != req->ssid_first) continue; continue; num_entries = req->ssid_last - req->ssid_first + 1; num_entries = req->ssid_last - req->ssid_first + 1; Loading Loading @@ -656,6 +663,8 @@ static int diag_cmd_get_msg_mask(unsigned char *src_buf, int src_len, return -EINVAL; return -EINVAL; } } for (i = 0; i < driver->msg_mask_tbl_count; i++, mask++) { for (i = 0; i < driver->msg_mask_tbl_count; i++, mask++) { if (!mask->ptr) continue; if ((req->ssid_first < mask->ssid_first) || if ((req->ssid_first < mask->ssid_first) || (req->ssid_first > mask->ssid_last_tools)) { (req->ssid_first > mask->ssid_last_tools)) { continue; continue; Loading Loading @@ -725,6 +734,8 @@ static int diag_cmd_set_msg_mask(unsigned char *src_buf, int src_len, return -EINVAL; return -EINVAL; } } for (i = 0; i < driver->msg_mask_tbl_count; i++, mask++) { for (i = 0; i < driver->msg_mask_tbl_count; i++, mask++) { if (!mask->ptr) continue; if (i < (driver->msg_mask_tbl_count - 1)) { if (i < (driver->msg_mask_tbl_count - 1)) { mask_next = mask; mask_next = mask; mask_next++; mask_next++; Loading Loading @@ -1451,7 +1462,8 @@ static int diag_create_msg_mask_table(void) mutex_lock(&msg_mask.lock); mutex_lock(&msg_mask.lock); mutex_lock(&driver->msg_mask_lock); mutex_lock(&driver->msg_mask_lock); driver->msg_mask_tbl_count = MSG_MASK_TBL_CNT; driver->msg_mask_tbl_count = MSG_MASK_TBL_CNT; for (i = 0; i < driver->msg_mask_tbl_count; i++, mask++) { for (i = 0; (i < driver->msg_mask_tbl_count) && mask; i++, mask++) { range.ssid_first = msg_mask_tbl[i].ssid_first; range.ssid_first = msg_mask_tbl[i].ssid_first; range.ssid_last = msg_mask_tbl[i].ssid_last; range.ssid_last = msg_mask_tbl[i].ssid_last; err = diag_create_msg_mask_table_entry(mask, &range); err = diag_create_msg_mask_table_entry(mask, &range); Loading @@ -1476,7 +1488,8 @@ static int diag_create_build_time_mask(void) mutex_lock(&driver->msg_mask_lock); mutex_lock(&driver->msg_mask_lock); driver->bt_msg_mask_tbl_count = MSG_MASK_TBL_CNT; driver->bt_msg_mask_tbl_count = MSG_MASK_TBL_CNT; build_mask = (struct diag_msg_mask_t *)msg_bt_mask.ptr; build_mask = (struct diag_msg_mask_t *)msg_bt_mask.ptr; for (i = 0; i < driver->bt_msg_mask_tbl_count; i++, build_mask++) { for (i = 0; (i < driver->bt_msg_mask_tbl_count) && build_mask; i++, build_mask++) { range.ssid_first = msg_mask_tbl[i].ssid_first; range.ssid_first = msg_mask_tbl[i].ssid_first; range.ssid_last = msg_mask_tbl[i].ssid_last; range.ssid_last = msg_mask_tbl[i].ssid_last; err = diag_create_msg_mask_table_entry(build_mask, &range); err = diag_create_msg_mask_table_entry(build_mask, &range); Loading Loading @@ -1599,7 +1612,7 @@ static int diag_create_log_mask_table(void) mutex_lock(&log_mask.lock); mutex_lock(&log_mask.lock); mask = (struct diag_log_mask_t *)(log_mask.ptr); mask = (struct diag_log_mask_t *)(log_mask.ptr); for (i = 0; i < MAX_EQUIP_ID; i++, mask++) { for (i = 0; (i < MAX_EQUIP_ID) && mask; i++, mask++) { mask->equip_id = i; mask->equip_id = i; mask->num_items = LOG_GET_ITEM_NUM(log_code_last_tbl[i]); mask->num_items = LOG_GET_ITEM_NUM(log_code_last_tbl[i]); mask->num_items_tools = mask->num_items; mask->num_items_tools = mask->num_items; Loading Loading @@ -1994,6 +2007,8 @@ int diag_copy_to_user_msg_mask(char __user *buf, size_t count, return -EINVAL; return -EINVAL; } } for (i = 0; i < driver->msg_mask_tbl_count; i++, mask++) { for (i = 0; i < driver->msg_mask_tbl_count; i++, mask++) { if (!mask->ptr) continue; ptr = mask_info->update_buf; ptr = mask_info->update_buf; len = 0; len = 0; mutex_lock(&mask->lock); mutex_lock(&mask->lock); Loading Loading @@ -2068,6 +2083,8 @@ int diag_copy_to_user_log_mask(char __user *buf, size_t count, return -EINVAL; return -EINVAL; } } for (i = 0; i < MAX_EQUIP_ID; i++, mask++) { for (i = 0; i < MAX_EQUIP_ID; i++, mask++) { if (!mask->ptr) continue; ptr = mask_info->update_buf; ptr = mask_info->update_buf; len = 0; len = 0; mutex_lock(&mask->lock); mutex_lock(&mask->lock); Loading
drivers/char/diag/diagfwd_cntl.c +2 −2 Original line number Original line Diff line number Diff line Loading @@ -519,7 +519,7 @@ static void process_ssid_range_report(uint8_t *buf, uint32_t len, mask_ptr = (struct diag_msg_mask_t *)msg_mask.ptr; mask_ptr = (struct diag_msg_mask_t *)msg_mask.ptr; found = 0; found = 0; for (j = 0; j < driver->msg_mask_tbl_count; j++, mask_ptr++) { for (j = 0; j < driver->msg_mask_tbl_count; j++, mask_ptr++) { if (!mask_ptr || !ssid_range) { if (!mask_ptr->ptr || !ssid_range) { found = 1; found = 1; break; break; } } Loading Loading @@ -591,7 +591,7 @@ static void diag_build_time_mask_update(uint8_t *buf, num_items = range->ssid_last - range->ssid_first + 1; num_items = range->ssid_last - range->ssid_first + 1; for (i = 0; i < driver->bt_msg_mask_tbl_count; i++, build_mask++) { for (i = 0; i < driver->bt_msg_mask_tbl_count; i++, build_mask++) { if (!build_mask) { if (!build_mask->ptr) { found = 1; found = 1; break; break; } } Loading