From 5d88c2ff8f6bb3a59fa12f35d354eea0e7c26324 Mon Sep 17 00:00:00 2001 From: Ben Chan Date: Wed, 26 Feb 2014 14:56:34 -0800 Subject: [PATCH] broadband-modem-mbim: handle if unlock retries info is not available By setting the 'RemainingAttempts' field of a MBIM_CID_PIN response to 0xffffffff, a MBIM modem indicates that it does not support the information on the number of remaining attempts for pin-related operations. This patch modifies MMBroadbandModemMbim to handle this case properly, instead of reporting a very large unlock retries count. --- src/mm-broadband-modem-mbim.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/mm-broadband-modem-mbim.c b/src/mm-broadband-modem-mbim.c index 64f1d7c3..554e7175 100644 --- a/src/mm-broadband-modem-mbim.c +++ b/src/mm-broadband-modem-mbim.c @@ -726,9 +726,13 @@ pin_query_unlock_retries_ready (MbimDevice *device, MMUnlockRetries *retries; retries = mm_unlock_retries_new (); - mm_unlock_retries_set (retries, - mm_modem_lock_from_mbim_pin_type (pin_type), - remaining_attempts); + /* According to the MBIM specification, RemainingAttempts is set to + * 0xffffffff if the device does not support this information. */ + if (remaining_attempts != G_MAXUINT32) { + mm_unlock_retries_set (retries, + mm_modem_lock_from_mbim_pin_type (pin_type), + remaining_attempts); + } g_simple_async_result_set_op_res_gpointer (simple, retries, g_object_unref); } else g_simple_async_result_take_error (simple, error);