Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 405c8311 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "soc: qcom: Free qmi handle in a worker thread"

parents 70e1d585 fb7aadf1
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -99,6 +99,7 @@ struct ind_req_resp {
 */
struct qmi_client_info {
	int instance_id;
	int subsys_state;
	struct work_struct svc_arrive;
	struct work_struct svc_exit;
	struct work_struct svc_rcv_msg;
@@ -436,7 +437,7 @@ static void root_service_exit_work(struct work_struct *work)
{
	struct qmi_client_info *data = container_of(work,
					struct qmi_client_info, svc_exit);
	root_service_service_exit(data, ROOT_PD_DOWN);
	root_service_service_exit(data, data->subsys_state);
}

static int service_event_notify(struct notifier_block *this,
@@ -453,6 +454,7 @@ static int service_event_notify(struct notifier_block *this,
		break;
	case QMI_SERVER_EXIT:
		pr_debug("Root PD service DOWN\n");
		data->subsys_state = ROOT_PD_DOWN;
		queue_work(data->svc_event_wq, &data->svc_exit);
		break;
	default:
@@ -468,7 +470,6 @@ static int ssr_event_notify(struct notifier_block *this,
	struct qmi_client_info *info = container_of(this,
					struct qmi_client_info, ssr_notifier);
	struct notif_data *notif = data;
	enum pd_subsys_state state;

	switch (code) {
	case	SUBSYS_BEFORE_SHUTDOWN:
@@ -476,16 +477,16 @@ static int ssr_event_notify(struct notifier_block *this,
						notif->crashed);
		switch (notif->crashed) {
		case CRASH_STATUS_ERR_FATAL:
			state = ROOT_PD_ERR_FATAL;
			info->subsys_state = ROOT_PD_ERR_FATAL;
			break;
		case CRASH_STATUS_WDOG_BITE:
			state = ROOT_PD_WDOG_BITE;
			info->subsys_state = ROOT_PD_WDOG_BITE;
			break;
		default:
			state = ROOT_PD_SHUTDOWN;
			info->subsys_state = ROOT_PD_SHUTDOWN;
			break;
		}
		root_service_service_exit(info, state);
		queue_work(info->svc_event_wq, &info->svc_exit);
		break;
	default:
		break;