Loading drivers/char/diag/diag_masks.c +0 −8 Original line number Diff line number Diff line Loading @@ -2042,14 +2042,6 @@ int diag_copy_to_user_msg_mask(char __user *buf, size_t count, __func__, mask_info->ptr, mask_info->update_buf); return -EINVAL; } mutex_lock(&driver->diag_maskclear_mutex); if (driver->mask_clear) { DIAG_LOG(DIAG_DEBUG_PERIPHERALS, "diag:%s: count = %zu\n", __func__, count); mutex_unlock(&driver->diag_maskclear_mutex); return -EIO; } mutex_unlock(&driver->diag_maskclear_mutex); mutex_lock(&mask_info->lock); mutex_lock(&driver->msg_mask_lock); Loading drivers/char/diag/diagchar.h +0 −2 Original line number Diff line number Diff line Loading @@ -543,8 +543,6 @@ struct diagchar_dev { struct class *diagchar_class; struct device *diag_dev; int ref_count; int mask_clear; struct mutex diag_maskclear_mutex; struct mutex diag_notifier_mutex; struct mutex diagchar_mutex; struct mutex diag_file_mutex; Loading drivers/char/diag/diagchar_core.c +48 −8 Original line number Diff line number Diff line Loading @@ -459,10 +459,6 @@ static void diag_close_logging_process(const int pid) if (diag_mask_clear_param) diag_clear_masks(pid); mutex_lock(&driver->diag_maskclear_mutex); driver->mask_clear = 1; mutex_unlock(&driver->diag_maskclear_mutex); mutex_lock(&driver->diagchar_mutex); p_mask = diag_translate_kernel_to_user_mask(session_mask); Loading Loading @@ -559,9 +555,7 @@ static int diagchar_close(struct inode *inode, struct file *file) DIAG_LOG(DIAG_DEBUG_USERSPACE, "diag: process exit %s\n", current->comm); ret = diag_remove_client_entry(file); mutex_lock(&driver->diag_maskclear_mutex); driver->mask_clear = 0; mutex_unlock(&driver->diag_maskclear_mutex); return ret; } Loading Loading @@ -1673,6 +1667,51 @@ static uint32_t diag_translate_mask(uint32_t peripheral_mask) return ret; } static void diag_switch_logging_clear_mask( struct diag_logging_mode_param_t *param, int pid) { int new_mode; struct diag_md_session_t *session_info = NULL; mutex_lock(&driver->md_session_lock); session_info = diag_md_session_get_pid(pid); if (!session_info) { DIAG_LOG(DIAG_DEBUG_USERSPACE, "Invalid pid: %d\n", pid); mutex_unlock(&driver->md_session_lock); return; } mutex_unlock(&driver->md_session_lock); if (!param) return; if (!param->peripheral_mask) { DIAG_LOG(DIAG_DEBUG_USERSPACE, "asking for mode switch with no peripheral mask set\n"); return; } switch (param->req_mode) { case CALLBACK_MODE: case UART_MODE: case SOCKET_MODE: case MEMORY_DEVICE_MODE: new_mode = DIAG_MEMORY_DEVICE_MODE; break; case USB_MODE: new_mode = DIAG_USB_MODE; break; default: DIAG_LOG(DIAG_DEBUG_USERSPACE, "Request to switch to invalid mode: %d\n", param->req_mode); return; } if ((new_mode == DIAG_USB_MODE) && diag_mask_clear_param) diag_clear_masks(pid); } static int diag_switch_logging(struct diag_logging_mode_param_t *param) { int new_mode, i = 0; Loading Loading @@ -2500,6 +2539,7 @@ long diagchar_compat_ioctl(struct file *filp, if (copy_from_user((void *)&mode_param, (void __user *)ioarg, sizeof(mode_param))) return -EFAULT; diag_switch_logging_clear_mask(&mode_param, current->tgid); mutex_lock(&driver->diagchar_mutex); result = diag_switch_logging(&mode_param); mutex_unlock(&driver->diagchar_mutex); Loading Loading @@ -2631,6 +2671,7 @@ long diagchar_ioctl(struct file *filp, if (copy_from_user((void *)&mode_param, (void __user *)ioarg, sizeof(mode_param))) return -EFAULT; diag_switch_logging_clear_mask(&mode_param, current->tgid); mutex_lock(&driver->diagchar_mutex); result = diag_switch_logging(&mode_param); mutex_unlock(&driver->diagchar_mutex); Loading Loading @@ -3902,7 +3943,6 @@ static int __init diagchar_init(void) non_hdlc_data.len = 0; mutex_init(&driver->hdlc_disable_mutex); mutex_init(&driver->diagchar_mutex); mutex_init(&driver->diag_maskclear_mutex); mutex_init(&driver->diag_notifier_mutex); mutex_init(&driver->diag_file_mutex); mutex_init(&driver->delayed_rsp_mutex); Loading Loading
drivers/char/diag/diag_masks.c +0 −8 Original line number Diff line number Diff line Loading @@ -2042,14 +2042,6 @@ int diag_copy_to_user_msg_mask(char __user *buf, size_t count, __func__, mask_info->ptr, mask_info->update_buf); return -EINVAL; } mutex_lock(&driver->diag_maskclear_mutex); if (driver->mask_clear) { DIAG_LOG(DIAG_DEBUG_PERIPHERALS, "diag:%s: count = %zu\n", __func__, count); mutex_unlock(&driver->diag_maskclear_mutex); return -EIO; } mutex_unlock(&driver->diag_maskclear_mutex); mutex_lock(&mask_info->lock); mutex_lock(&driver->msg_mask_lock); Loading
drivers/char/diag/diagchar.h +0 −2 Original line number Diff line number Diff line Loading @@ -543,8 +543,6 @@ struct diagchar_dev { struct class *diagchar_class; struct device *diag_dev; int ref_count; int mask_clear; struct mutex diag_maskclear_mutex; struct mutex diag_notifier_mutex; struct mutex diagchar_mutex; struct mutex diag_file_mutex; Loading
drivers/char/diag/diagchar_core.c +48 −8 Original line number Diff line number Diff line Loading @@ -459,10 +459,6 @@ static void diag_close_logging_process(const int pid) if (diag_mask_clear_param) diag_clear_masks(pid); mutex_lock(&driver->diag_maskclear_mutex); driver->mask_clear = 1; mutex_unlock(&driver->diag_maskclear_mutex); mutex_lock(&driver->diagchar_mutex); p_mask = diag_translate_kernel_to_user_mask(session_mask); Loading Loading @@ -559,9 +555,7 @@ static int diagchar_close(struct inode *inode, struct file *file) DIAG_LOG(DIAG_DEBUG_USERSPACE, "diag: process exit %s\n", current->comm); ret = diag_remove_client_entry(file); mutex_lock(&driver->diag_maskclear_mutex); driver->mask_clear = 0; mutex_unlock(&driver->diag_maskclear_mutex); return ret; } Loading Loading @@ -1673,6 +1667,51 @@ static uint32_t diag_translate_mask(uint32_t peripheral_mask) return ret; } static void diag_switch_logging_clear_mask( struct diag_logging_mode_param_t *param, int pid) { int new_mode; struct diag_md_session_t *session_info = NULL; mutex_lock(&driver->md_session_lock); session_info = diag_md_session_get_pid(pid); if (!session_info) { DIAG_LOG(DIAG_DEBUG_USERSPACE, "Invalid pid: %d\n", pid); mutex_unlock(&driver->md_session_lock); return; } mutex_unlock(&driver->md_session_lock); if (!param) return; if (!param->peripheral_mask) { DIAG_LOG(DIAG_DEBUG_USERSPACE, "asking for mode switch with no peripheral mask set\n"); return; } switch (param->req_mode) { case CALLBACK_MODE: case UART_MODE: case SOCKET_MODE: case MEMORY_DEVICE_MODE: new_mode = DIAG_MEMORY_DEVICE_MODE; break; case USB_MODE: new_mode = DIAG_USB_MODE; break; default: DIAG_LOG(DIAG_DEBUG_USERSPACE, "Request to switch to invalid mode: %d\n", param->req_mode); return; } if ((new_mode == DIAG_USB_MODE) && diag_mask_clear_param) diag_clear_masks(pid); } static int diag_switch_logging(struct diag_logging_mode_param_t *param) { int new_mode, i = 0; Loading Loading @@ -2500,6 +2539,7 @@ long diagchar_compat_ioctl(struct file *filp, if (copy_from_user((void *)&mode_param, (void __user *)ioarg, sizeof(mode_param))) return -EFAULT; diag_switch_logging_clear_mask(&mode_param, current->tgid); mutex_lock(&driver->diagchar_mutex); result = diag_switch_logging(&mode_param); mutex_unlock(&driver->diagchar_mutex); Loading Loading @@ -2631,6 +2671,7 @@ long diagchar_ioctl(struct file *filp, if (copy_from_user((void *)&mode_param, (void __user *)ioarg, sizeof(mode_param))) return -EFAULT; diag_switch_logging_clear_mask(&mode_param, current->tgid); mutex_lock(&driver->diagchar_mutex); result = diag_switch_logging(&mode_param); mutex_unlock(&driver->diagchar_mutex); Loading Loading @@ -3902,7 +3943,6 @@ static int __init diagchar_init(void) non_hdlc_data.len = 0; mutex_init(&driver->hdlc_disable_mutex); mutex_init(&driver->diagchar_mutex); mutex_init(&driver->diag_maskclear_mutex); mutex_init(&driver->diag_notifier_mutex); mutex_init(&driver->diag_file_mutex); mutex_init(&driver->delayed_rsp_mutex); Loading