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

Commit 266f8dbc authored by Amareswar Reddy Valasa's avatar Amareswar Reddy Valasa
Browse files

Seemp: Logging each Kernel Protect Report only once



KP Report which was sent to Linux from QHEE KP will be processed
by kernel and details of report will be logged into ring buffer.
However each report should be logged once and if the report is
already logged we can skip it from logging again. Also actor name
field of KP report is getting logged now.

Change-Id: I64ca3b9f4acc77db8ffbcc4dec92ebc4031dd2d1
Signed-off-by: default avatarAmareswar Reddy Valasa <avalasa@codeaurora.org>
parent 9ae54a8e
Loading
Loading
Loading
Loading
+20 −18
Original line number Diff line number Diff line
@@ -608,6 +608,9 @@ static int seemp_logk_rtic_thread(void *data)
{
	struct el2_report_header_t *header;
	int i;
	int last_incident_number;

	last_incident_number = 0;
	header = (struct el2_report_header_t *) el2_shared_mem;

	if (header->report_version < KP_EL2_REPORT_REVISION)
@@ -618,7 +621,7 @@ static int seemp_logk_rtic_thread(void *data)

		report = el2_shared_mem +
			sizeof(struct el2_report_header_t);

		if (last_incident_number < report->num_incidents) {
			for (i = 0; i < report->actor_count; i++) {
				struct el2_actor_data_t *actor;

@@ -629,15 +632,14 @@ static int seemp_logk_rtic_thread(void *data)

				seemp_logk_rtic(report->report_type,
					actor->pid,
				/*
				 * leave this empty until
				 * asset id is provided
				 */
				"",
					report->asset_name,
					report->asset_category,
				report->response);
					report->response,
					actor->name);
			}
		}

		last_incident_number = report->num_incidents;
		/* periodically check el2 report every second */
		ssleep(1);
	}
+3 −3
Original line number Diff line number Diff line
@@ -70,7 +70,7 @@ static inline void seemp_logk_sendto(int fd, void __user *buff, size_t len,
}

static inline void seemp_logk_rtic(__u8 type, pid_t pid, __u8 asset_id[0x20],
		__u8 asset_category, __u8 response)
		__u8 asset_category, __u8 response, __u8 process_name[16])
{
	char *buf = NULL;
	void *blck = NULL;
@@ -80,8 +80,8 @@ static inline void seemp_logk_rtic(__u8 type, pid_t pid, __u8 asset_id[0x20],
		return;

	SEEMP_LOGK_RECORD(SEEMP_API_kernel__rtic,
		"app_pid=%d,rtic_type=%u,asset_id=%s,asset_category=%u,response=%u",
		pid, type, asset_id, asset_category, response);
		"app_pid=%d,rtic_type=%u,asset_id=%s,asset_category=%u,response=%u,process_name=%s",
		pid, type, asset_id, asset_category, response, process_name);

	seemp_logk_kernel_end(blck);
}