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

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

Merge changes I02980914,I42adaa31,Ic0508a0d,Ib538a19a into msm-4.14

* changes:
  rpmsg: glink: Put an extra reference during cleanup
  rpmsg: Only invoke announce_create for rpdev with endpoints
  trace: ipc_logging: check for existing ipclog ctxt before creating new one
  defconfig: SM8105: Enable QSEE IPC IRQ bridge
parents 357b3afa 647f1771
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -501,6 +501,7 @@ CONFIG_QCOM_BUS_CONFIG_RPMH=y
CONFIG_QCOM_COMMAND_DB=y
CONFIG_QCOM_EARLY_RANDOM=y
CONFIG_QTI_RPMH_API=y
CONFIG_QSEE_IPC_IRQ_BRIDGE=y
CONFIG_QCOM_GLINK=y
CONFIG_QCOM_GLINK_PKT=y
CONFIG_QTI_RPM_STATS_LOG=y
+1 −0
Original line number Diff line number Diff line
@@ -522,6 +522,7 @@ CONFIG_QCOM_COMMAND_DB=y
CONFIG_QCOM_EARLY_RANDOM=y
CONFIG_MSM_SPSS_UTILS=y
CONFIG_QTI_RPMH_API=y
CONFIG_QSEE_IPC_IRQ_BRIDGE=y
CONFIG_QCOM_GLINK=y
CONFIG_QCOM_GLINK_PKT=y
CONFIG_QTI_RPM_STATS_LOG=y
+4 −0
Original line number Diff line number Diff line
@@ -1845,6 +1845,10 @@ void qcom_glink_native_remove(struct qcom_glink *glink)
	idr_for_each_entry(&glink->lcids, channel, cid)
		kref_put(&channel->refcount, qcom_glink_channel_release);

	/* Release any defunct local channels, waiting for close-req */
	idr_for_each_entry(&glink->lcids, channel, cid)
		kref_put(&channel->refcount, qcom_glink_channel_release);

	idr_destroy(&glink->lcids);
	idr_destroy(&glink->rcids);
	spin_unlock_irqrestore(&glink->idr_lock, flags);
+1 −1
Original line number Diff line number Diff line
@@ -483,7 +483,7 @@ static int rpmsg_dev_probe(struct device *dev)
		goto out;
	}

	if (rpdev->ops->announce_create)
	if (ept && rpdev->ops->announce_create)
		err = rpdev->ops->announce_create(rpdev);
out:
	return err;
+15 −3
Original line number Diff line number Diff line
/* Copyright (c) 2012-2017, The Linux Foundation. All rights reserved.
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -790,7 +790,7 @@ static void *get_deserialization_func(struct ipc_log_context *ilctxt,
}

/**
 * ipc_log_context_create: Create a debug log context
 * ipc_log_context_create: Create a debug log context if context does not exist.
 *                         Should not be called from atomic context
 *
 * @max_num_pages: Number of pages of logging space required (max. 10)
@@ -802,11 +802,23 @@ static void *get_deserialization_func(struct ipc_log_context *ilctxt,
void *ipc_log_context_create(int max_num_pages,
			     const char *mod_name, uint16_t user_version)
{
	struct ipc_log_context *ctxt;
	struct ipc_log_context *ctxt = NULL, *tmp;
	struct ipc_log_page *pg = NULL;
	int page_cnt;
	unsigned long flags;

	/* check if ipc ctxt already exists */
	read_lock_irq(&context_list_lock_lha1);
	list_for_each_entry(tmp, &ipc_log_context_list, list)
		if (!strcmp(tmp->name, mod_name)) {
			ctxt = tmp;
			break;
		}
	read_unlock_irq(&context_list_lock_lha1);

	if (ctxt)
		return ctxt;

	ctxt = kzalloc(sizeof(struct ipc_log_context), GFP_KERNEL);
	if (!ctxt)
		return 0;