<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/x86/kernel/vmlinux.lds.S, branch linux-3.18.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.18.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.18.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2019-04-27T07:30:24Z</updated>
<entry>
<title>x86/build: Mark per-CPU symbols as absolute explicitly for LLD</title>
<updated>2019-04-27T07:30:24Z</updated>
<author>
<name>Rafael Ávila de Espíndola</name>
</author>
<published>2018-12-19T19:01:43Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1ce302656f6a59ae0f7c9151084d6e88f56e3772'/>
<id>urn:sha1:1ce302656f6a59ae0f7c9151084d6e88f56e3772</id>
<content type='text'>
[ Upstream commit d071ae09a4a1414c1433d5ae9908959a7325b0ad ]

Accessing per-CPU variables is done by finding the offset of the
variable in the per-CPU block and adding it to the address of the
respective CPU's block.

Section 3.10.8 of ld.bfd's documentation states:

  For expressions involving numbers, relative addresses and absolute
  addresses, ld follows these rules to evaluate terms:

  Other binary operations, that is, between two relative addresses
  not in the same section, or between a relative address and an
  absolute address, first convert any non-absolute term to an
  absolute address before applying the operator."

Note that LLVM's linker does not adhere to the GNU ld's implementation
and as such requires implicitly-absolute terms to be explicitly marked
as absolute in the linker script. If not, it fails currently with:

  ld.lld: error: ./arch/x86/kernel/vmlinux.lds:153: at least one side of the expression must be absolute
  ld.lld: error: ./arch/x86/kernel/vmlinux.lds:154: at least one side of the expression must be absolute
  Makefile:1040: recipe for target 'vmlinux' failed

This is not a functional change for ld.bfd which converts the term to an
absolute symbol anyways as specified above.

Based on a previous submission by Tri Vo &lt;trong@android.com&gt;.

Reported-by: Dmitry Golovin &lt;dima@golovin.in&gt;
Signed-off-by: Rafael Ávila de Espíndola &lt;rafael@espindo.la&gt;
[ Update commit message per Boris' and Michael's suggestions. ]
Signed-off-by: Nick Desaulniers &lt;ndesaulniers@google.com&gt;
[ Massage commit message more, fix typos. ]
Signed-off-by: Borislav Petkov &lt;bp@suse.de&gt;
Tested-by: Dmitry Golovin &lt;dima@golovin.in&gt;
Cc: "H. Peter Anvin" &lt;hpa@zytor.com&gt;
Cc: Andy Lutomirski &lt;luto@kernel.org&gt;
Cc: Brijesh Singh &lt;brijesh.singh@amd.com&gt;
Cc: Cao Jin &lt;caoj.fnst@cn.fujitsu.com&gt;
Cc: Ingo Molnar &lt;mingo@redhat.com&gt;
Cc: Joerg Roedel &lt;jroedel@suse.de&gt;
Cc: Masahiro Yamada &lt;yamada.masahiro@socionext.com&gt;
Cc: Masami Hiramatsu &lt;mhiramat@kernel.org&gt;
Cc: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Cc: Tri Vo &lt;trong@android.com&gt;
Cc: dima@golovin.in
Cc: morbo@google.com
Cc: x86-ml &lt;x86@kernel.org&gt;
Link: https://lkml.kernel.org/r/20181219190145.252035-1-ndesaulniers@google.com
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>x86, vdso: Zero-pad the VVAR page</title>
<updated>2014-03-18T19:52:44Z</updated>
<author>
<name>Andy Lutomirski</name>
</author>
<published>2014-03-17T22:22:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=309944be296efbb3ca4737d12ef49d2ba97cbecc'/>
<id>urn:sha1:309944be296efbb3ca4737d12ef49d2ba97cbecc</id>
<content type='text'>
By coincidence, the VVAR page is at the end of an ELF segment.  As a
result, if it ends up being a partial page, the kernel loader will
leave garbage behind at the end of the vvar page.  Zero-pad it to a
full page to fix this issue.

This has probably been broken since the VVAR page was introduced.
On QEMU, if you dump the run-time contents of the VVAR page, you can
find entertaining strings from seabios left behind.

It's remotely possible that this is a security bug -- conceivably
there's some BIOS out there that leaves something sensitive in the
few K of memory that is exposed to userspace.

Signed-off-by: Stefani Seibold &lt;stefani@seibold.net&gt;
Link: http://lkml.kernel.org/r/1395094933-14252-12-git-send-email-stefani@seibold.net
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>x86, vdso: Make vsyscall_gtod_data handling x86 generic</title>
<updated>2014-03-18T19:51:52Z</updated>
<author>
<name>Stefani Seibold</name>
</author>
<published>2014-03-17T22:22:01Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d2312e3379d581d2c3603357a0181046448e1de3'/>
<id>urn:sha1:d2312e3379d581d2c3603357a0181046448e1de3</id>
<content type='text'>
This patch move the vsyscall_gtod_data handling out of vsyscall_64.c
into an additonal file vsyscall_gtod.c to make the functionality
available for x86 32 bit kernel.

It also adds a new vsyscall_32.c which setup the VVAR page.

Reviewed-by: Andy Lutomirski &lt;luto@amacapital.net&gt;
Signed-off-by: Stefani Seibold &lt;stefani@seibold.net&gt;
Link: http://lkml.kernel.org/r/1395094933-14252-2-git-send-email-stefani@seibold.net
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>x86: intel-mid: Add section for sfi device table</title>
<updated>2013-10-17T23:41:04Z</updated>
<author>
<name>David Cohen</name>
</author>
<published>2013-10-17T22:35:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=66ac50137049b3d3fab39e5ae245e1562aee5acd'/>
<id>urn:sha1:66ac50137049b3d3fab39e5ae245e1562aee5acd</id>
<content type='text'>
When Intel mid uses SFI table to enumerate devices, it requires an extra
device table with further information about how to probe such devices.

This patch creates a section where the device table will stay if
CONFIG_X86_INTEL_MID is selected.

Signed-off-by: David Cohen &lt;david.a.cohen@linux.intel.com&gt;
Link: http://lkml.kernel.org/r/1382049336-21316-12-git-send-email-david.a.cohen@linux.intel.com
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>x86: Drop always empty .text..page_aligned section</title>
<updated>2013-03-11T14:07:56Z</updated>
<author>
<name>Jan Beulich</name>
</author>
<published>2013-03-11T10:06:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ec7fd34425f6536ed4b3548e7aa712ee2718189c'/>
<id>urn:sha1:ec7fd34425f6536ed4b3548e7aa712ee2718189c</id>
<content type='text'>
Commit e44b7b7 ("x86: move suspend wakeup code to C") didn't
care to also eliminate the side effects that the earlier 4c49156
("x86: make arch/x86/kernel/acpi/wakeup_32.S use a separate")
had, thus leaving a now pointless, almost page size gap at the
beginning of .text.

Signed-off-by: Jan Beulich &lt;jbeulich@suse.com&gt;
Cc: Eric Dumazet &lt;edumazet@google.com&gt;
Cc: Pavel Machek &lt;pavel@ucw.cz&gt;
Link: http://lkml.kernel.org/r/513DBAA402000078000C4896@nat28.tlf.novell.com
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
</entry>
<entry>
<title>x86, realmode: Move ACPI wakeup to unified realmode code</title>
<updated>2012-05-08T18:46:05Z</updated>
<author>
<name>Jarkko Sakkinen</name>
</author>
<published>2012-05-08T18:22:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c9b77ccb52a5c77233b0e557b7d4417b00ef4012'/>
<id>urn:sha1:c9b77ccb52a5c77233b0e557b7d4417b00ef4012</id>
<content type='text'>
Migrated ACPI wakeup code to the real-mode blob.
Code existing in .x86_trampoline  can be completely
removed. Static descriptor table in wakeup_asm.S is
courtesy of H. Peter Anvin.

Signed-off-by: Jarkko Sakkinen &lt;jarkko.sakkinen@intel.com&gt;
Link: http://lkml.kernel.org/r/1336501366-28617-7-git-send-email-jarkko.sakkinen@intel.com
Cc: Rafael J. Wysocki &lt;rjw@sisk.pl&gt;
Cc: Len Brown &lt;len.brown@intel.com&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>x86-64: Rework vsyscall emulation and add vsyscall= parameter</title>
<updated>2011-08-11T00:26:46Z</updated>
<author>
<name>Andy Lutomirski</name>
</author>
<published>2011-08-10T15:15:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3ae36655b97a03fa1decf72f04078ef945647c1a'/>
<id>urn:sha1:3ae36655b97a03fa1decf72f04078ef945647c1a</id>
<content type='text'>
There are three choices:

vsyscall=native: Vsyscalls are native code that issues the
corresponding syscalls.

vsyscall=emulate (default): Vsyscalls are emulated by instruction
fault traps, tested in the bad_area path.  The actual contents of
the vsyscall page is the same as the vsyscall=native case except
that it's marked NX.  This way programs that make assumptions about
what the code in the page does will not be confused when they read
that code.

vsyscall=none: Trying to execute a vsyscall will segfault.

Signed-off-by: Andy Lutomirski &lt;luto@mit.edu&gt;
Link: http://lkml.kernel.org/r/8449fb3abf89851fd6b2260972666a6f82542284.1312988155.git.luto@mit.edu
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>x86-64: Work around gold bug 13023</title>
<updated>2011-08-04T23:13:38Z</updated>
<author>
<name>Andy Lutomirski</name>
</author>
<published>2011-08-03T13:31:51Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f670bb760e7d32ec9c690e748a1d5d04921363ab'/>
<id>urn:sha1:f670bb760e7d32ec9c690e748a1d5d04921363ab</id>
<content type='text'>
Gold has trouble assigning numbers to the location counter inside of
an output section description.  The bug was triggered by
9fd67b4ed0714ab718f1f9bd14c344af336a6df7, which consolidated all of
the vsyscall sections into a single section.  The workaround is IMO
still nicer than the old way of doing it.

This produces an apparently valid kernel image and passes my vdso
tests on both GNU ld version 2.21.51.0.6-2.fc15 20110118 and GNU
gold (version 2.21.51.0.6-2.fc15 20110118) 1.10 as distributed by
Fedora 15.

Signed-off-by: Andy Lutomirski &lt;luto@mit.edu&gt;
Link: http://lkml.kernel.org/r/0b260cb806f1f9a25c00ce8377a5f035d57f557a.1312378163.git.luto@mit.edu
Reported-by: Arkadiusz Miskiewicz &lt;a.miskiewicz@gmail.com&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>x86-64: Move the "user" vsyscall segment out of the data segment.</title>
<updated>2011-08-04T23:13:35Z</updated>
<author>
<name>Andy Lutomirski</name>
</author>
<published>2011-08-03T13:31:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9c40818da5b39fca236029059ab839857b1ef56c'/>
<id>urn:sha1:9c40818da5b39fca236029059ab839857b1ef56c</id>
<content type='text'>
The kernel's loader doesn't seem to care, but gold complains.

Signed-off-by: Andy Lutomirski &lt;luto@mit.edu&gt;
Link: http://lkml.kernel.org/r/f0716870c297242a841b949953d80c0d87bf3d3f.1312378163.git.luto@mit.edu
Reported-by: Arkadiusz Miskiewicz &lt;a.miskiewicz@gmail.com&gt;
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>x86-64: Move vread_tsc and vread_hpet into the vDSO</title>
<updated>2011-07-15T00:57:05Z</updated>
<author>
<name>Andy Lutomirski</name>
</author>
<published>2011-07-14T10:47:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=98d0ac38ca7b1b7a552c9a2359174ff84decb600'/>
<id>urn:sha1:98d0ac38ca7b1b7a552c9a2359174ff84decb600</id>
<content type='text'>
The vsyscall page now consists entirely of trap instructions.

Cc: John Stultz &lt;johnstul@us.ibm.com&gt;
Signed-off-by: Andy Lutomirski &lt;luto@mit.edu&gt;
Link: http://lkml.kernel.org/r/637648f303f2ef93af93bae25186e9a1bea093f5.1310639973.git.luto@mit.edu
Signed-off-by: H. Peter Anvin &lt;hpa@linux.intel.com&gt;
</content>
</entry>
</feed>
