# HG changeset patch # User Space Falcon # Date 1431758049 0 # Node ID c4da570dca83c84bcafcd1c3d436bdb6773790e6 # Parent 3adb4154f02fb387dbbe0c4035d1f3a35423a6b2 int_osx_receive_prim() in gsm-fw/gpf/osx/osx.c: there was an error in the reconstruction of this function from disassembly in the logic that implements special handling for MPHC_RXLEV_REQ messages. The code is now fixed to properly match what the binary object version does; with this fix the firmware now performs the power measurement phase correctly and the initial network registration succeeds. diff -r 3adb4154f02f -r c4da570dca83 gsm-fw/gpf/osx/osx.c --- a/gsm-fw/gpf/osx/osx.c Sat May 16 01:38:49 2015 +0000 +++ b/gsm-fw/gpf/osx/osx.c Sat May 16 06:34:09 2015 +0000 @@ -78,7 +78,7 @@ int_osx_receive_prim(int caller, int queue_handle) { T_QMSG Message; - unsigned opc, len; + unsigned opc; xSignalHeaderRec *message; int status; @@ -98,10 +98,9 @@ message = (xSignalHeaderRec *) Message.Msg.Primitive.Prim; opc = message->SignalCode & 0xFFFF; if (opc == 11 && osx_config & 2) - len = *(unsigned *)(message + 1); + message->SigP = *(DummyStruct **)(message + 1); else - len = sizeof(xSignalHeaderRec); - message->SigP = (DummyStruct *)((char *)message + len); + message->SigP = (DummyStruct *)(message + 1); if (opc != 0x8000) return(message); vsi_c_primitive(caller, message);