Skip to content

Commit

Permalink
Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/…
Browse files Browse the repository at this point in the history
…linux/kernel/git/tip/linux-2.6-tip

* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  extable, core_kernel_data(): Make sure all archs define _sdata
  core_kernel_data(): Fix architectures that do not define _sdata
  • Loading branch information
Linus Torvalds committed May 20, 2011
2 parents 3ed4c05 + a2d063a commit bc091c9
Show file tree
Hide file tree
Showing 7 changed files with 19 additions and 0 deletions.
1 change: 1 addition & 0 deletions arch/alpha/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ SECTIONS
__init_end = .;
/* Freed after init ends here */

_sdata = .; /* Start of rw data section */
_data = .;
RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)

Expand Down
1 change: 1 addition & 0 deletions arch/m32r/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ SECTIONS
EXCEPTION_TABLE(16)
NOTES

_sdata = .; /* Start of data section */
RODATA
RW_DATA_SECTION(32, PAGE_SIZE, THREAD_SIZE)
_edata = .; /* End of data section */
Expand Down
2 changes: 2 additions & 0 deletions arch/m68k/kernel/vmlinux-std.lds
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ SECTIONS

EXCEPTION_TABLE(16)

_sdata = .; /* Start of data section */

RODATA

RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE)
Expand Down
1 change: 1 addition & 0 deletions arch/m68k/kernel/vmlinux-sun3.lds
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ SECTIONS
_etext = .; /* End of text section */

EXCEPTION_TABLE(16) :data
_sdata = .; /* Start of rw data section */
RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE) :data
/* End of data goes *here* so that freeing init code works properly. */
_edata = .;
Expand Down
1 change: 1 addition & 0 deletions arch/mips/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ SECTIONS
NOTES :text :note
.dummy : { *(.dummy) } :text

_sdata = .; /* Start of data section */
RODATA

/* writeable */
Expand Down
3 changes: 3 additions & 0 deletions arch/parisc/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,9 @@ SECTIONS
/* End of text section */
_etext = .;

/* Start of data section */
_sdata = .;

RODATA

/* writeable */
Expand Down
10 changes: 10 additions & 0 deletions kernel/extable.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,16 @@ int core_kernel_text(unsigned long addr)
return 0;
}

/**
* core_kernel_data - tell if addr points to kernel data
* @addr: address to test
*
* Returns true if @addr passed in is from the core kernel data
* section.
*
* Note: On some archs it may return true for core RODATA, and false
* for others. But will always be true for core RW data.
*/
int core_kernel_data(unsigned long addr)
{
if (addr >= (unsigned long)_sdata &&
Expand Down

0 comments on commit bc091c9

Please sign in to comment.