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

Commit 63687a52 authored by Jan Beulich's avatar Jan Beulich Committed by Thomas Gleixner
Browse files

x86: move tracedata to RODATA



.. allowing it to be write-protected just as other read-only data
under CONFIG_DEBUG_RODATA.

Signed-off-by: default avatarJan Beulich <jbeulich@novell.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent 75d3bce2
Loading
Loading
Loading
Loading
+0 −7
Original line number Diff line number Diff line
@@ -60,13 +60,6 @@ SECTIONS

  BUG_TABLE :text

  . = ALIGN(4);
  .tracedata : AT(ADDR(.tracedata) - LOAD_OFFSET) {
  	__tracedata_start = .;
	*(.tracedata)
  	__tracedata_end = .;
  }

  RODATA

  /* writeable */
+0 −7
Original line number Diff line number Diff line
@@ -53,13 +53,6 @@ SECTIONS

  RODATA

  . = ALIGN(4);
  .tracedata : AT(ADDR(.tracedata) - LOAD_OFFSET) {
  	__tracedata_start = .;
	*(.tracedata)
  	__tracedata_end = .;
  }

  . = ALIGN(PAGE_SIZE);		/* Align data segment to page size boundary */
				/* Data */
  .data : AT(ADDR(.data) - LOAD_OFFSET) {
+1 −1
Original line number Diff line number Diff line
@@ -153,7 +153,7 @@ EXPORT_SYMBOL(set_trace_device);
 * it's not any guarantee, but it's a high _likelihood_ that
 * the match is valid).
 */
void generate_resume_trace(void *tracedata, unsigned int user)
void generate_resume_trace(const void *tracedata, unsigned int user)
{
	unsigned short lineno = *(unsigned short *)tracedata;
	const char *file = *(const char **)(tracedata + 2);
+14 −0
Original line number Diff line number Diff line
@@ -93,6 +93,8 @@
		VMLINUX_SYMBOL(__end_rio_route_ops) = .;		\
	}								\
									\
	TRACEDATA							\
									\
	/* Kernel symbol table: Normal symbols */			\
	__ksymtab         : AT(ADDR(__ksymtab) - LOAD_OFFSET) {		\
		VMLINUX_SYMBOL(__start___ksymtab) = .;			\
@@ -318,6 +320,18 @@
		__stop___bug_table = .;					\
	}

#ifdef CONFIG_PM_TRACE
#define TRACEDATA							\
	. = ALIGN(4);							\
	.tracedata : AT(ADDR(.tracedata) - LOAD_OFFSET) {		\
	  	__tracedata_start = .;					\
		*(.tracedata)						\
	  	__tracedata_end = .;					\
	}
#else
#define TRACEDATA
#endif

#define NOTES								\
	.notes : AT(ADDR(.notes) - LOAD_OFFSET) {			\
		VMLINUX_SYMBOL(__start_notes) = .;			\
+1 −1
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@
#define TRACE_RESUME(user)					\
do {								\
	if (pm_trace_enabled) {					\
		void *tracedata;				\
		const void *tracedata;				\
		asm volatile(_ASM_MOV_UL " $1f,%0\n"		\
			     ".section .tracedata,\"a\"\n"	\
			     "1:\t.word %c1\n\t"		\
Loading