Description: Use wait_event_interruptible_timeout() instead of custom wait-queue code. Remove the now unused variables in both functions. Signed-off-by: Nishanth Aravamudan Signed-off-by: Domen Puncer --- kj-domen/net/bluetooth/cmtp/capi.c | 41 ++++++------------------------------- 1 files changed, 7 insertions(+), 34 deletions(-) diff -puN net/bluetooth/cmtp/capi.c~wait_event_int_t-net_bluetooth_cmtp_capi net/bluetooth/cmtp/capi.c --- kj/net/bluetooth/cmtp/capi.c~wait_event_int_t-net_bluetooth_cmtp_capi 2005-01-23 00:24:37.000000000 +0100 +++ kj-domen/net/bluetooth/cmtp/capi.c 2005-01-23 00:24:37.000000000 +0100 @@ -35,6 +35,7 @@ #include #include #include +#include #include #include @@ -440,10 +441,8 @@ static void cmtp_register_appl(struct ca static void cmtp_release_appl(struct capi_ctr *ctrl, __u16 appl) { - DECLARE_WAITQUEUE(wait, current); struct cmtp_session *session = ctrl->driverdata; struct cmtp_application *application; - unsigned long timeo = CMTP_INTEROP_TIMEOUT; BT_DBG("ctrl %p appl %d", ctrl, appl); @@ -458,20 +457,8 @@ static void cmtp_release_appl(struct cap cmtp_send_interopmsg(session, CAPI_REQ, application->mapping, application->msgnum, CAPI_FUNCTION_RELEASE, NULL, 0); - add_wait_queue(&session->wait, &wait); - while (timeo) { - set_current_state(TASK_INTERRUPTIBLE); - - if (application->state == BT_CLOSED) - break; - - if (signal_pending(current)) - break; - - timeo = schedule_timeout(timeo); - } - set_current_state(TASK_RUNNING); - remove_wait_queue(&session->wait, &wait); + wait_event_interruptible_timeout(session->wait, + (application->state == BT_CLOSED), CMTP_INTEROP_TIMEOUT); cmtp_application_del(session, application); } @@ -541,8 +528,7 @@ static int cmtp_ctr_read_proc(char *page int cmtp_attach_device(struct cmtp_session *session) { - DECLARE_WAITQUEUE(wait, current); - unsigned long timeo = CMTP_INTEROP_TIMEOUT; + int ret; unsigned char buf[4]; BT_DBG("session %p", session); @@ -552,30 +538,17 @@ int cmtp_attach_device(struct cmtp_sessi cmtp_send_interopmsg(session, CAPI_REQ, 0xffff, CMTP_INITIAL_MSGNUM, CAPI_FUNCTION_GET_PROFILE, buf, 4); - add_wait_queue(&session->wait, &wait); - while (timeo) { - set_current_state(TASK_INTERRUPTIBLE); - - if (session->ncontroller) - break; - - if (signal_pending(current)) - break; - - timeo = schedule_timeout(timeo); - } - set_current_state(TASK_RUNNING); - remove_wait_queue(&session->wait, &wait); + ret = wait_event_interruptible_timeout(session->wait, + session->ncontroller, CMTP_INTEROP_TIMEOUT); BT_INFO("Found %d CAPI controller(s) on device %s", session->ncontroller, session->name); - if (!timeo) + if (!ret) return -ETIMEDOUT; if (!session->ncontroller) return -ENODEV; - if (session->ncontroller > 1) BT_INFO("Setting up only CAPI controller 1"); _