Reducing the indentation level helps a bit with the readability of this function. There's also a checkpatch fix here, moving the first argument to kthread_create() onto the same line, as well as a relocation of the statement "char threadname[16];" to the top of the function to avoid a declaration in the middle of code. Signed-off-by: Marcelo Diop-Gonzalez <marcgonzalez@xxxxxxxxxx> --- .../interface/vchiq_arm/vchiq_arm.c | 41 ++++++++++--------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c index b1595b13dea8..e09cc42fe984 100644 --- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c +++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c @@ -3132,31 +3132,32 @@ void vchiq_platform_conn_state_changed(struct vchiq_state *state, VCHIQ_CONNSTATE_T newstate) { struct vchiq_arm_state *arm_state = vchiq_platform_get_arm_state(state); + char threadname[16]; vchiq_log_info(vchiq_susp_log_level, "%d: %s->%s", state->id, get_conn_state_name(oldstate), get_conn_state_name(newstate)); - if (state->conn_state == VCHIQ_CONNSTATE_CONNECTED) { - write_lock_bh(&arm_state->susp_res_lock); - if (!arm_state->first_connect) { - char threadname[16]; + if (state->conn_state != VCHIQ_CONNSTATE_CONNECTED) + return; - arm_state->first_connect = 1; - write_unlock_bh(&arm_state->susp_res_lock); - snprintf(threadname, sizeof(threadname), "vchiq-keep/%d", - state->id); - arm_state->ka_thread = kthread_create( - &vchiq_keepalive_thread_func, - (void *)state, + write_lock_bh(&arm_state->susp_res_lock); + if (arm_state->first_connect) { + write_unlock_bh(&arm_state->susp_res_lock); + return; + } + + arm_state->first_connect = 1; + write_unlock_bh(&arm_state->susp_res_lock); + snprintf(threadname, sizeof(threadname), "vchiq-keep/%d", + state->id); + arm_state->ka_thread = kthread_create(&vchiq_keepalive_thread_func, + (void *)state, + threadname); + if (IS_ERR(arm_state->ka_thread)) { + vchiq_log_error(vchiq_susp_log_level, + "vchiq: FATAL: couldn't create thread %s", threadname); - if (IS_ERR(arm_state->ka_thread)) { - vchiq_log_error(vchiq_susp_log_level, - "vchiq: FATAL: couldn't create thread %s", - threadname); - } else { - wake_up_process(arm_state->ka_thread); - } - } else - write_unlock_bh(&arm_state->susp_res_lock); + } else { + wake_up_process(arm_state->ka_thread); } } -- 2.20.1 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel