Commit 8ca869b2 authored by Ard Biesheuvel's avatar Ard Biesheuvel
Browse files

pstore: Add priv field to pstore_record for backend specific use



The EFI pstore backend will need to store per-record variable name data
when we switch away from the efivars layer. Add a priv field to struct
pstore_record, and document it as holding a backend specific pointer
that is assumed to be a kmalloc()d buffer, and will be kfree()d when the
entire record is freed.

Acked-by: default avatarKees Cook <keescook@chromium.org>
Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
parent f662092b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@ static void free_pstore_private(struct pstore_private *private)
		return;
	if (private->record) {
		kfree(private->record->buf);
		kfree(private->record->priv);
		kfree(private->record);
	}
	kfree(private);
+1 −0
Original line number Diff line number Diff line
@@ -769,6 +769,7 @@ void pstore_get_backend_records(struct pstore_info *psi,
		if (rc) {
			/* pstore_mkfile() did not take record, so free it. */
			kfree(record->buf);
			kfree(record->priv);
			kfree(record);
			if (rc != -EEXIST || !quiet)
				failed++;
+4 −0
Original line number Diff line number Diff line
@@ -57,6 +57,9 @@ struct pstore_info;
 * @size:	size of @buf
 * @ecc_notice_size:
 *		ECC information for @buf
 * @priv:	pointer for backend specific use, will be
 *		kfree()d by the pstore core if non-NULL
 *		when the record is freed.
 *
 * Valid for PSTORE_TYPE_DMESG @type:
 *
@@ -74,6 +77,7 @@ struct pstore_record {
	char			*buf;
	ssize_t			size;
	ssize_t			ecc_notice_size;
	void			*priv;

	int			count;
	enum kmsg_dump_reason	reason;