[PATCH] broadband-modem-mbim: handle if unlock retries info is not available

Ben Chan benchan at chromium.org
Wed Feb 26 14:56:34 PST 2014


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 64f1d7c..554e717 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);
-- 
1.9.0.rc1.175.g0b1dcb5



More information about the ModemManager-devel mailing list