static int diag_msg_mask_init(void) { int err = 0; int i; err = __diag_mask_init(&msg_mask, MSG_MASK_SIZE, APPS_BUF_SIZE); if (err) return err; err = diag_create_msg_mask_table(); if (err) { pr_err("diag: Unable to create msg masks, err: %d\n", err); return err; } driver->msg_mask = &msg_mask; for (i = 0; i < NUM_SMD_CONTROL_CHANNELS; i++) driver->max_ssid_count[i] = 0; return 0; }
void diag_masks_init(void) { driver->event_status = DIAG_CTRL_MASK_INVALID; driver->msg_status = DIAG_CTRL_MASK_INVALID; driver->log_status = DIAG_CTRL_MASK_INVALID; if (driver->event_mask == NULL) { driver->event_mask = kzalloc(sizeof( struct diag_ctrl_event_mask), GFP_KERNEL); if (driver->event_mask == NULL) goto err; kmemleak_not_leak(driver->event_mask); } if (driver->msg_mask == NULL) { driver->msg_mask = kzalloc(sizeof( struct diag_ctrl_msg_mask), GFP_KERNEL); if (driver->msg_mask == NULL) goto err; kmemleak_not_leak(driver->msg_mask); } if (driver->log_mask == NULL) { driver->log_mask = kzalloc(sizeof( struct diag_ctrl_log_mask), GFP_KERNEL); if (driver->log_mask == NULL) goto err; kmemleak_not_leak(driver->log_mask); } if (driver->buf_msg_mask_update == NULL) { driver->buf_msg_mask_update = kzalloc(APPS_BUF_SIZE, GFP_KERNEL); if (driver->buf_msg_mask_update == NULL) goto err; kmemleak_not_leak(driver->buf_msg_mask_update); } if (driver->buf_log_mask_update == NULL) { driver->buf_log_mask_update = kzalloc(APPS_BUF_SIZE, GFP_KERNEL); if (driver->buf_log_mask_update == NULL) goto err; kmemleak_not_leak(driver->buf_log_mask_update); } if (driver->buf_event_mask_update == NULL) { driver->buf_event_mask_update = kzalloc(APPS_BUF_SIZE, GFP_KERNEL); if (driver->buf_event_mask_update == NULL) goto err; kmemleak_not_leak(driver->buf_event_mask_update); } if (driver->msg_masks == NULL) { driver->msg_masks = kzalloc(MSG_MASK_SIZE, GFP_KERNEL); if (driver->msg_masks == NULL) goto err; kmemleak_not_leak(driver->msg_masks); } if (driver->buf_feature_mask_update == NULL) { driver->buf_feature_mask_update = kzalloc(sizeof( struct diag_ctrl_feature_mask) + FEATURE_MASK_LEN_BYTES, GFP_KERNEL); if (driver->buf_feature_mask_update == NULL) goto err; kmemleak_not_leak(driver->buf_feature_mask_update); } if (driver->feature_mask == NULL) { driver->feature_mask = kzalloc(sizeof( struct diag_ctrl_feature_mask), GFP_KERNEL); if (driver->feature_mask == NULL) goto err; kmemleak_not_leak(driver->feature_mask); } diag_create_msg_mask_table(); diag_event_num_bytes = 0; if (driver->log_masks == NULL) { driver->log_masks = kzalloc(LOG_MASK_SIZE, GFP_KERNEL); if (driver->log_masks == NULL) goto err; kmemleak_not_leak(driver->log_masks); } diag_log_mask_init(); if (driver->event_masks == NULL) { driver->event_masks = kzalloc(EVENT_MASK_SIZE, GFP_KERNEL); if (driver->event_masks == NULL) goto err; kmemleak_not_leak(driver->event_masks); } return; err: pr_err("diag: Could not initialize diag mask buffers"); kfree(driver->event_mask); kfree(driver->log_mask); kfree(driver->msg_mask); kfree(driver->msg_masks); kfree(driver->log_masks); kfree(driver->event_masks); kfree(driver->feature_mask); kfree(driver->buf_feature_mask_update); }
void diag_masks_init(void) { if (driver->event_mask == NULL) { driver->event_mask = kzalloc(sizeof( struct diag_ctrl_event_mask), GFP_KERNEL); if (driver->event_mask == NULL) goto err; kmemleak_not_leak(driver->event_mask); } if (driver->msg_mask == NULL) { driver->msg_mask = kzalloc(sizeof( struct diag_ctrl_msg_mask), GFP_KERNEL); if (driver->msg_mask == NULL) goto err; kmemleak_not_leak(driver->msg_mask); } if (driver->log_mask == NULL) { driver->log_mask = kzalloc(sizeof( struct diag_ctrl_log_mask), GFP_KERNEL); if (driver->log_mask == NULL) goto err; kmemleak_not_leak(driver->log_mask); } if (driver->buf_msg_mask_update == NULL) { driver->buf_msg_mask_update = kzalloc(APPS_BUF_SIZE, GFP_KERNEL); if (driver->buf_msg_mask_update == NULL) goto err; kmemleak_not_leak(driver->buf_msg_mask_update); } if (driver->buf_log_mask_update == NULL) { driver->buf_log_mask_update = kzalloc(APPS_BUF_SIZE, GFP_KERNEL); if (driver->buf_log_mask_update == NULL) goto err; kmemleak_not_leak(driver->buf_log_mask_update); } if (driver->buf_event_mask_update == NULL) { driver->buf_event_mask_update = kzalloc(APPS_BUF_SIZE, GFP_KERNEL); if (driver->buf_event_mask_update == NULL) goto err; kmemleak_not_leak(driver->buf_event_mask_update); } if (driver->msg_masks == NULL) { driver->msg_masks = kzalloc(MSG_MASK_SIZE, GFP_KERNEL); if (driver->msg_masks == NULL) goto err; kmemleak_not_leak(driver->msg_masks); } diag_create_msg_mask_table(); diag_event_num_bytes = 0; if (driver->log_masks == NULL) { driver->log_masks = kzalloc(LOG_MASK_SIZE, GFP_KERNEL); if (driver->log_masks == NULL) goto err; kmemleak_not_leak(driver->log_masks); } driver->log_masks_length = (sizeof(struct mask_info))*MAX_EQUIP_ID; if (driver->event_masks == NULL) { driver->event_masks = kzalloc(EVENT_MASK_SIZE, GFP_KERNEL); if (driver->event_masks == NULL) goto err; kmemleak_not_leak(driver->event_masks); } #ifdef CONFIG_DIAG_OVER_USB INIT_WORK(&(driver->diag_modem_mask_update_work), diag_modem_mask_update_fn); INIT_WORK(&(driver->diag_lpass_mask_update_work), diag_lpass_mask_update_fn); INIT_WORK(&(driver->diag_wcnss_mask_update_work), diag_wcnss_mask_update_fn); #endif return; err: pr_err("diag: Could not initialize diag mask buffers"); kfree(driver->event_mask); kfree(driver->log_mask); kfree(driver->msg_mask); kfree(driver->msg_masks); kfree(driver->log_masks); kfree(driver->event_masks); }