Hi Lei, >>> + >>> + data->vendor = vendor; >>> + >>> + ofono_cdma_sms_set_data(cdma_sms, data); >>> + >>> + at_sms_initialized(cdma_sms); >> >> Currently it is not possible to call the register method from within >> probe. So you need to either use g_idle_add or run an AT command before >> registering the cdma_sms atom. See how other drivers do this. >> > > Will fix. Could you pls explain why it is not possible to do this sync > way but have to force this into async? I have tested and it worked. Or > this is just a general architecture rule between atom and driver? > This is a general rule. The core atom implementation reserves the right to start calling driver functions as soon as the atom is registered. If the atom is registered within probe, then atom driver is still NULL. This results in a crash. Regards, -Denis