Loading drivers/char/diag/diag_masks.c +13 −7 Original line number Diff line number Diff line Loading @@ -922,11 +922,13 @@ static int diag_cmd_set_all_msg_mask(unsigned char *src_buf, int src_len, mask_info->status = (req->rt_mask) ? DIAG_CTRL_MASK_ALL_ENABLED : DIAG_CTRL_MASK_ALL_DISABLED; for (i = 0; i < driver->msg_mask_tbl_count; i++, mask++) { if (mask && mask->ptr) { mutex_lock(&mask->lock); memset(mask->ptr, req->rt_mask, mask->range * sizeof(uint32_t)); mutex_unlock(&mask->lock); } } mutex_unlock(&driver->msg_mask_lock); mutex_unlock(&mask_info->lock); mutex_unlock(&driver->md_session_lock); Loading Loading @@ -1337,6 +1339,8 @@ static int diag_cmd_set_log_mask(unsigned char *src_buf, int src_len, mutex_lock(&mask_info->lock); for (i = 0; i < MAX_EQUIP_ID && !status; i++, mask++) { if (!mask || !mask->ptr) continue; if (mask->equip_id != req->equip_id) continue; mutex_lock(&mask->lock); Loading Loading @@ -1464,10 +1468,12 @@ static int diag_cmd_disable_log_mask(unsigned char *src_buf, int src_len, return -EINVAL; } for (i = 0; i < MAX_EQUIP_ID; i++, mask++) { if (mask && mask->ptr) { mutex_lock(&mask->lock); memset(mask->ptr, 0, mask->range); mutex_unlock(&mask->lock); } } mask_info->status = DIAG_CTRL_MASK_ALL_DISABLED; mutex_unlock(&driver->md_session_lock); if (diag_check_update(APPS_DATA, pid)) Loading drivers/char/diag/diagfwd_cntl.c +20 −4 Original line number Diff line number Diff line Loading @@ -528,9 +528,8 @@ static void process_last_event_report(uint8_t *buf, uint32_t len, header = (struct diag_ctrl_last_event_report *)ptr; event_size = ((header->event_last_id / 8) + 1); if (event_size >= driver->event_mask_size) { DIAG_LOG(DIAG_DEBUG_CONTROL, "diag: In %s, receiving event mask size more that Apps can handle\n", __func__); DIAG_LOG(DIAG_DEBUG_MASKS, "diag: receiving event mask size more that Apps can handle\n"); temp = krealloc(driver->event_mask->ptr, event_size, GFP_KERNEL); if (!temp) { Loading Loading @@ -669,6 +668,10 @@ static void process_ssid_range_report(uint8_t *buf, uint32_t len, mask_ptr = (struct diag_msg_mask_t *)msg_mask.ptr; found = 0; for (j = 0; j < driver->msg_mask_tbl_count; j++, mask_ptr++) { if (!mask_ptr || !ssid_range) { found = 1; break; } if (mask_ptr->ssid_first != ssid_range->ssid_first) continue; mutex_lock(&mask_ptr->lock); Loading @@ -687,6 +690,8 @@ static void process_ssid_range_report(uint8_t *buf, uint32_t len, new_size = (driver->msg_mask_tbl_count + 1) * sizeof(struct diag_msg_mask_t); DIAG_LOG(DIAG_DEBUG_MASKS, "diag: receiving msg mask size more that Apps can handle\n"); temp = krealloc(msg_mask.ptr, new_size, GFP_KERNEL); if (!temp) { pr_err("diag: In %s, Unable to add new ssid table to msg mask, ssid first: %d, last: %d\n", Loading @@ -695,6 +700,7 @@ static void process_ssid_range_report(uint8_t *buf, uint32_t len, continue; } msg_mask.ptr = temp; mask_ptr = (struct diag_msg_mask_t *)msg_mask.ptr; err = diag_create_msg_mask_table_entry(mask_ptr, ssid_range); if (err) { pr_err("diag: In %s, Unable to create a new msg mask table entry, first: %d last: %d err: %d\n", Loading Loading @@ -741,6 +747,10 @@ static void diag_build_time_mask_update(uint8_t *buf, num_items = range->ssid_last - range->ssid_first + 1; for (i = 0; i < driver->bt_msg_mask_tbl_count; i++, build_mask++) { if (!build_mask) { found = 1; break; } if (build_mask->ssid_first != range->ssid_first) continue; found = 1; Loading @@ -751,7 +761,8 @@ static void diag_build_time_mask_update(uint8_t *buf, __func__); } dest_ptr = build_mask->ptr; for (j = 0; j < build_mask->range; j++, mask_ptr++, dest_ptr++) for (j = 0; (j < build_mask->range) && mask_ptr && dest_ptr; j++, mask_ptr++, dest_ptr++) *(uint32_t *)dest_ptr |= *mask_ptr; mutex_unlock(&build_mask->lock); break; Loading @@ -759,8 +770,12 @@ static void diag_build_time_mask_update(uint8_t *buf, if (found) goto end; new_size = (driver->bt_msg_mask_tbl_count + 1) * sizeof(struct diag_msg_mask_t); DIAG_LOG(DIAG_DEBUG_MASKS, "diag: receiving build time mask size more that Apps can handle\n"); temp = krealloc(driver->build_time_mask->ptr, new_size, GFP_KERNEL); if (!temp) { pr_err("diag: In %s, unable to create a new entry for build time mask\n", Loading @@ -768,6 +783,7 @@ static void diag_build_time_mask_update(uint8_t *buf, goto end; } driver->build_time_mask->ptr = temp; build_mask = (struct diag_msg_mask_t *)driver->build_time_mask->ptr; err = diag_create_msg_mask_table_entry(build_mask, range); if (err) { pr_err("diag: In %s, Unable to create a new msg mask table entry, err: %d\n", Loading Loading
drivers/char/diag/diag_masks.c +13 −7 Original line number Diff line number Diff line Loading @@ -922,11 +922,13 @@ static int diag_cmd_set_all_msg_mask(unsigned char *src_buf, int src_len, mask_info->status = (req->rt_mask) ? DIAG_CTRL_MASK_ALL_ENABLED : DIAG_CTRL_MASK_ALL_DISABLED; for (i = 0; i < driver->msg_mask_tbl_count; i++, mask++) { if (mask && mask->ptr) { mutex_lock(&mask->lock); memset(mask->ptr, req->rt_mask, mask->range * sizeof(uint32_t)); mutex_unlock(&mask->lock); } } mutex_unlock(&driver->msg_mask_lock); mutex_unlock(&mask_info->lock); mutex_unlock(&driver->md_session_lock); Loading Loading @@ -1337,6 +1339,8 @@ static int diag_cmd_set_log_mask(unsigned char *src_buf, int src_len, mutex_lock(&mask_info->lock); for (i = 0; i < MAX_EQUIP_ID && !status; i++, mask++) { if (!mask || !mask->ptr) continue; if (mask->equip_id != req->equip_id) continue; mutex_lock(&mask->lock); Loading Loading @@ -1464,10 +1468,12 @@ static int diag_cmd_disable_log_mask(unsigned char *src_buf, int src_len, return -EINVAL; } for (i = 0; i < MAX_EQUIP_ID; i++, mask++) { if (mask && mask->ptr) { mutex_lock(&mask->lock); memset(mask->ptr, 0, mask->range); mutex_unlock(&mask->lock); } } mask_info->status = DIAG_CTRL_MASK_ALL_DISABLED; mutex_unlock(&driver->md_session_lock); if (diag_check_update(APPS_DATA, pid)) Loading
drivers/char/diag/diagfwd_cntl.c +20 −4 Original line number Diff line number Diff line Loading @@ -528,9 +528,8 @@ static void process_last_event_report(uint8_t *buf, uint32_t len, header = (struct diag_ctrl_last_event_report *)ptr; event_size = ((header->event_last_id / 8) + 1); if (event_size >= driver->event_mask_size) { DIAG_LOG(DIAG_DEBUG_CONTROL, "diag: In %s, receiving event mask size more that Apps can handle\n", __func__); DIAG_LOG(DIAG_DEBUG_MASKS, "diag: receiving event mask size more that Apps can handle\n"); temp = krealloc(driver->event_mask->ptr, event_size, GFP_KERNEL); if (!temp) { Loading Loading @@ -669,6 +668,10 @@ static void process_ssid_range_report(uint8_t *buf, uint32_t len, mask_ptr = (struct diag_msg_mask_t *)msg_mask.ptr; found = 0; for (j = 0; j < driver->msg_mask_tbl_count; j++, mask_ptr++) { if (!mask_ptr || !ssid_range) { found = 1; break; } if (mask_ptr->ssid_first != ssid_range->ssid_first) continue; mutex_lock(&mask_ptr->lock); Loading @@ -687,6 +690,8 @@ static void process_ssid_range_report(uint8_t *buf, uint32_t len, new_size = (driver->msg_mask_tbl_count + 1) * sizeof(struct diag_msg_mask_t); DIAG_LOG(DIAG_DEBUG_MASKS, "diag: receiving msg mask size more that Apps can handle\n"); temp = krealloc(msg_mask.ptr, new_size, GFP_KERNEL); if (!temp) { pr_err("diag: In %s, Unable to add new ssid table to msg mask, ssid first: %d, last: %d\n", Loading @@ -695,6 +700,7 @@ static void process_ssid_range_report(uint8_t *buf, uint32_t len, continue; } msg_mask.ptr = temp; mask_ptr = (struct diag_msg_mask_t *)msg_mask.ptr; err = diag_create_msg_mask_table_entry(mask_ptr, ssid_range); if (err) { pr_err("diag: In %s, Unable to create a new msg mask table entry, first: %d last: %d err: %d\n", Loading Loading @@ -741,6 +747,10 @@ static void diag_build_time_mask_update(uint8_t *buf, num_items = range->ssid_last - range->ssid_first + 1; for (i = 0; i < driver->bt_msg_mask_tbl_count; i++, build_mask++) { if (!build_mask) { found = 1; break; } if (build_mask->ssid_first != range->ssid_first) continue; found = 1; Loading @@ -751,7 +761,8 @@ static void diag_build_time_mask_update(uint8_t *buf, __func__); } dest_ptr = build_mask->ptr; for (j = 0; j < build_mask->range; j++, mask_ptr++, dest_ptr++) for (j = 0; (j < build_mask->range) && mask_ptr && dest_ptr; j++, mask_ptr++, dest_ptr++) *(uint32_t *)dest_ptr |= *mask_ptr; mutex_unlock(&build_mask->lock); break; Loading @@ -759,8 +770,12 @@ static void diag_build_time_mask_update(uint8_t *buf, if (found) goto end; new_size = (driver->bt_msg_mask_tbl_count + 1) * sizeof(struct diag_msg_mask_t); DIAG_LOG(DIAG_DEBUG_MASKS, "diag: receiving build time mask size more that Apps can handle\n"); temp = krealloc(driver->build_time_mask->ptr, new_size, GFP_KERNEL); if (!temp) { pr_err("diag: In %s, unable to create a new entry for build time mask\n", Loading @@ -768,6 +783,7 @@ static void diag_build_time_mask_update(uint8_t *buf, goto end; } driver->build_time_mask->ptr = temp; build_mask = (struct diag_msg_mask_t *)driver->build_time_mask->ptr; err = diag_create_msg_mask_table_entry(build_mask, range); if (err) { pr_err("diag: In %s, Unable to create a new msg mask table entry, err: %d\n", Loading