From: Gustavo F. Padovan Date: Fri, 7 Oct 2011 01:05:37 +0000 (-0300) Subject: Bluetooth: Uses test_and_clear_bit() when possible X-Git-Tag: v3.3-rc1~182^2~545^2~134^2~96 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=ab88f7149e0e3284623adcaa60460a9a69d9f131;p=~emulex%2Finfiniband.git Bluetooth: Uses test_and_clear_bit() when possible Signed-off-by: Gustavo F. Padovan --- diff --git a/net/bluetooth/hidp/core.c b/net/bluetooth/hidp/core.c index 7722d834668..f2bec4981b7 100644 --- a/net/bluetooth/hidp/core.c +++ b/net/bluetooth/hidp/core.c @@ -496,10 +496,9 @@ static void hidp_process_handshake(struct hidp_session *session, case HIDP_HSHK_ERR_INVALID_REPORT_ID: case HIDP_HSHK_ERR_UNSUPPORTED_REQUEST: case HIDP_HSHK_ERR_INVALID_PARAMETER: - if (test_bit(HIDP_WAITING_FOR_RETURN, &session->flags)) { - clear_bit(HIDP_WAITING_FOR_RETURN, &session->flags); + if (test_and_clear_bit(HIDP_WAITING_FOR_RETURN, &session->flags)) wake_up_interruptible(&session->report_queue); - } + /* FIXME: Call into SET_ GET_ handlers here */ break; @@ -520,10 +519,8 @@ static void hidp_process_handshake(struct hidp_session *session, } /* Wake up the waiting thread. */ - if (test_bit(HIDP_WAITING_FOR_SEND_ACK, &session->flags)) { - clear_bit(HIDP_WAITING_FOR_SEND_ACK, &session->flags); + if (test_and_clear_bit(HIDP_WAITING_FOR_SEND_ACK, &session->flags)) wake_up_interruptible(&session->report_queue); - } } static void hidp_process_hid_control(struct hidp_session *session,