Loading drivers/char/diag/diag_masks.c +0 −8 Original line number Diff line number Diff line Loading @@ -2025,14 +2025,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 @@ -469,8 +469,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 @@ -451,10 +451,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); for (i = 0; i < NUM_MD_SESSIONS; i++) if (MD_PERIPHERAL_MASK(i) & session_peripheral_mask) Loading Loading @@ -536,9 +532,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 @@ -1615,6 +1609,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; Loading Loading @@ -2185,6 +2224,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 @@ -2320,6 +2360,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 @@ -3589,7 +3630,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 @@ -2025,14 +2025,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 @@ -469,8 +469,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 @@ -451,10 +451,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); for (i = 0; i < NUM_MD_SESSIONS; i++) if (MD_PERIPHERAL_MASK(i) & session_peripheral_mask) Loading Loading @@ -536,9 +532,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 @@ -1615,6 +1609,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; Loading Loading @@ -2185,6 +2224,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 @@ -2320,6 +2360,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 @@ -3589,7 +3630,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