Loading drivers/char/diag/diag_masks.c +26 −15 Original line number Diff line number Diff line Loading @@ -27,9 +27,6 @@ #define DIAG_SET_FEATURE_MASK(x) (feature_bytes[(x)/8] |= (1 << (x & 0x7))) #define diag_check_update(x) \ (!info || (info && (info->peripheral_mask & MD_PERIPHERAL_MASK(x)))) \ struct diag_mask_info msg_mask; struct diag_mask_info msg_bt_mask; struct diag_mask_info log_mask; Loading Loading @@ -64,6 +61,20 @@ static const struct diag_ssid_range_t msg_mask_tbl[] = { { .ssid_first = MSG_SSID_25, .ssid_last = MSG_SSID_25_LAST } }; static int diag_check_update(int md_peripheral, int pid) { int ret; struct diag_md_session_t *info = NULL; mutex_lock(&driver->md_session_lock); info = diag_md_session_get_pid(pid); ret = (!info || (info && (info->peripheral_mask & MD_PERIPHERAL_MASK(md_peripheral)))); mutex_unlock(&driver->md_session_lock); return ret; } static int diag_apps_responds(void) { /* Loading Loading @@ -825,7 +836,7 @@ static int diag_cmd_set_msg_mask(unsigned char *src_buf, int src_len, mutex_unlock(&driver->msg_mask_lock); mutex_unlock(&mask_info->lock); mutex_unlock(&driver->md_session_lock); if (diag_check_update(APPS_DATA)) if (diag_check_update(APPS_DATA, pid)) diag_update_userspace_clients(MSG_MASKS_TYPE); /* Loading @@ -849,7 +860,7 @@ static int diag_cmd_set_msg_mask(unsigned char *src_buf, int src_len, for (i = 0; i < NUM_MD_SESSIONS; i++) { if (i == APPS_DATA) continue; if (!diag_check_update(i)) if (!diag_check_update(i, pid)) continue; if (i > NUM_PERIPHERALS) peripheral = diag_search_peripheral_by_pd(i); Loading Loading @@ -919,7 +930,7 @@ static int diag_cmd_set_all_msg_mask(unsigned char *src_buf, int src_len, mutex_unlock(&driver->msg_mask_lock); mutex_unlock(&mask_info->lock); mutex_unlock(&driver->md_session_lock); if (diag_check_update(APPS_DATA)) if (diag_check_update(APPS_DATA, pid)) diag_update_userspace_clients(MSG_MASKS_TYPE); /* Loading @@ -937,7 +948,7 @@ static int diag_cmd_set_all_msg_mask(unsigned char *src_buf, int src_len, for (i = 0; i < NUM_MD_SESSIONS; i++) { if (i == APPS_DATA) continue; if (!diag_check_update(i)) if (!diag_check_update(i, pid)) continue; if (i > NUM_PERIPHERALS) peripheral = diag_search_peripheral_by_pd(i); Loading Loading @@ -1027,7 +1038,7 @@ static int diag_cmd_update_event_mask(unsigned char *src_buf, int src_len, mask_info->status = DIAG_CTRL_MASK_VALID; mutex_unlock(&mask_info->lock); mutex_unlock(&driver->md_session_lock); if (diag_check_update(APPS_DATA)) if (diag_check_update(APPS_DATA, pid)) diag_update_userspace_clients(EVENT_MASKS_TYPE); /* Loading @@ -1046,7 +1057,7 @@ static int diag_cmd_update_event_mask(unsigned char *src_buf, int src_len, for (i = 0; i < NUM_MD_SESSIONS; i++) { if (i == APPS_DATA) continue; if (!diag_check_update(i)) if (!diag_check_update(i, pid)) continue; if (i > NUM_PERIPHERALS) peripheral = diag_search_peripheral_by_pd(i); Loading Loading @@ -1098,7 +1109,7 @@ static int diag_cmd_toggle_events(unsigned char *src_buf, int src_len, } mutex_unlock(&mask_info->lock); mutex_unlock(&driver->md_session_lock); if (diag_check_update(APPS_DATA)) if (diag_check_update(APPS_DATA, pid)) diag_update_userspace_clients(EVENT_MASKS_TYPE); /* Loading @@ -1110,7 +1121,7 @@ static int diag_cmd_toggle_events(unsigned char *src_buf, int src_len, for (i = 0; i < NUM_MD_SESSIONS; i++) { if (i == APPS_DATA) continue; if (!diag_check_update(i)) if (!diag_check_update(i, pid)) continue; if (i > NUM_PERIPHERALS) peripheral = diag_search_peripheral_by_pd(i); Loading Loading @@ -1373,7 +1384,7 @@ static int diag_cmd_set_log_mask(unsigned char *src_buf, int src_len, } mutex_unlock(&mask_info->lock); mutex_unlock(&driver->md_session_lock); if (diag_check_update(APPS_DATA)) if (diag_check_update(APPS_DATA, pid)) diag_update_userspace_clients(LOG_MASKS_TYPE); /* Loading Loading @@ -1404,7 +1415,7 @@ static int diag_cmd_set_log_mask(unsigned char *src_buf, int src_len, for (i = 0; i < NUM_MD_SESSIONS; i++) { if (i == APPS_DATA) continue; if (!diag_check_update(i)) if (!diag_check_update(i, pid)) continue; if (i > NUM_PERIPHERALS) peripheral = diag_search_peripheral_by_pd(i); Loading Loading @@ -1459,7 +1470,7 @@ static int diag_cmd_disable_log_mask(unsigned char *src_buf, int src_len, } mask_info->status = DIAG_CTRL_MASK_ALL_DISABLED; mutex_unlock(&driver->md_session_lock); if (diag_check_update(APPS_DATA)) if (diag_check_update(APPS_DATA, pid)) diag_update_userspace_clients(LOG_MASKS_TYPE); /* Loading @@ -1477,7 +1488,7 @@ static int diag_cmd_disable_log_mask(unsigned char *src_buf, int src_len, for (i = 0; i < NUM_MD_SESSIONS; i++) { if (i == APPS_DATA) continue; if (!diag_check_update(i)) if (!diag_check_update(i, pid)) continue; if (i > NUM_PERIPHERALS) peripheral = diag_search_peripheral_by_pd(i); Loading Loading
drivers/char/diag/diag_masks.c +26 −15 Original line number Diff line number Diff line Loading @@ -27,9 +27,6 @@ #define DIAG_SET_FEATURE_MASK(x) (feature_bytes[(x)/8] |= (1 << (x & 0x7))) #define diag_check_update(x) \ (!info || (info && (info->peripheral_mask & MD_PERIPHERAL_MASK(x)))) \ struct diag_mask_info msg_mask; struct diag_mask_info msg_bt_mask; struct diag_mask_info log_mask; Loading Loading @@ -64,6 +61,20 @@ static const struct diag_ssid_range_t msg_mask_tbl[] = { { .ssid_first = MSG_SSID_25, .ssid_last = MSG_SSID_25_LAST } }; static int diag_check_update(int md_peripheral, int pid) { int ret; struct diag_md_session_t *info = NULL; mutex_lock(&driver->md_session_lock); info = diag_md_session_get_pid(pid); ret = (!info || (info && (info->peripheral_mask & MD_PERIPHERAL_MASK(md_peripheral)))); mutex_unlock(&driver->md_session_lock); return ret; } static int diag_apps_responds(void) { /* Loading Loading @@ -825,7 +836,7 @@ static int diag_cmd_set_msg_mask(unsigned char *src_buf, int src_len, mutex_unlock(&driver->msg_mask_lock); mutex_unlock(&mask_info->lock); mutex_unlock(&driver->md_session_lock); if (diag_check_update(APPS_DATA)) if (diag_check_update(APPS_DATA, pid)) diag_update_userspace_clients(MSG_MASKS_TYPE); /* Loading @@ -849,7 +860,7 @@ static int diag_cmd_set_msg_mask(unsigned char *src_buf, int src_len, for (i = 0; i < NUM_MD_SESSIONS; i++) { if (i == APPS_DATA) continue; if (!diag_check_update(i)) if (!diag_check_update(i, pid)) continue; if (i > NUM_PERIPHERALS) peripheral = diag_search_peripheral_by_pd(i); Loading Loading @@ -919,7 +930,7 @@ static int diag_cmd_set_all_msg_mask(unsigned char *src_buf, int src_len, mutex_unlock(&driver->msg_mask_lock); mutex_unlock(&mask_info->lock); mutex_unlock(&driver->md_session_lock); if (diag_check_update(APPS_DATA)) if (diag_check_update(APPS_DATA, pid)) diag_update_userspace_clients(MSG_MASKS_TYPE); /* Loading @@ -937,7 +948,7 @@ static int diag_cmd_set_all_msg_mask(unsigned char *src_buf, int src_len, for (i = 0; i < NUM_MD_SESSIONS; i++) { if (i == APPS_DATA) continue; if (!diag_check_update(i)) if (!diag_check_update(i, pid)) continue; if (i > NUM_PERIPHERALS) peripheral = diag_search_peripheral_by_pd(i); Loading Loading @@ -1027,7 +1038,7 @@ static int diag_cmd_update_event_mask(unsigned char *src_buf, int src_len, mask_info->status = DIAG_CTRL_MASK_VALID; mutex_unlock(&mask_info->lock); mutex_unlock(&driver->md_session_lock); if (diag_check_update(APPS_DATA)) if (diag_check_update(APPS_DATA, pid)) diag_update_userspace_clients(EVENT_MASKS_TYPE); /* Loading @@ -1046,7 +1057,7 @@ static int diag_cmd_update_event_mask(unsigned char *src_buf, int src_len, for (i = 0; i < NUM_MD_SESSIONS; i++) { if (i == APPS_DATA) continue; if (!diag_check_update(i)) if (!diag_check_update(i, pid)) continue; if (i > NUM_PERIPHERALS) peripheral = diag_search_peripheral_by_pd(i); Loading Loading @@ -1098,7 +1109,7 @@ static int diag_cmd_toggle_events(unsigned char *src_buf, int src_len, } mutex_unlock(&mask_info->lock); mutex_unlock(&driver->md_session_lock); if (diag_check_update(APPS_DATA)) if (diag_check_update(APPS_DATA, pid)) diag_update_userspace_clients(EVENT_MASKS_TYPE); /* Loading @@ -1110,7 +1121,7 @@ static int diag_cmd_toggle_events(unsigned char *src_buf, int src_len, for (i = 0; i < NUM_MD_SESSIONS; i++) { if (i == APPS_DATA) continue; if (!diag_check_update(i)) if (!diag_check_update(i, pid)) continue; if (i > NUM_PERIPHERALS) peripheral = diag_search_peripheral_by_pd(i); Loading Loading @@ -1373,7 +1384,7 @@ static int diag_cmd_set_log_mask(unsigned char *src_buf, int src_len, } mutex_unlock(&mask_info->lock); mutex_unlock(&driver->md_session_lock); if (diag_check_update(APPS_DATA)) if (diag_check_update(APPS_DATA, pid)) diag_update_userspace_clients(LOG_MASKS_TYPE); /* Loading Loading @@ -1404,7 +1415,7 @@ static int diag_cmd_set_log_mask(unsigned char *src_buf, int src_len, for (i = 0; i < NUM_MD_SESSIONS; i++) { if (i == APPS_DATA) continue; if (!diag_check_update(i)) if (!diag_check_update(i, pid)) continue; if (i > NUM_PERIPHERALS) peripheral = diag_search_peripheral_by_pd(i); Loading Loading @@ -1459,7 +1470,7 @@ static int diag_cmd_disable_log_mask(unsigned char *src_buf, int src_len, } mask_info->status = DIAG_CTRL_MASK_ALL_DISABLED; mutex_unlock(&driver->md_session_lock); if (diag_check_update(APPS_DATA)) if (diag_check_update(APPS_DATA, pid)) diag_update_userspace_clients(LOG_MASKS_TYPE); /* Loading @@ -1477,7 +1488,7 @@ static int diag_cmd_disable_log_mask(unsigned char *src_buf, int src_len, for (i = 0; i < NUM_MD_SESSIONS; i++) { if (i == APPS_DATA) continue; if (!diag_check_update(i)) if (!diag_check_update(i, pid)) continue; if (i > NUM_PERIPHERALS) peripheral = diag_search_peripheral_by_pd(i); Loading