<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in asm-offsets.c</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>31e9fa2b - arm: vdso: Switch to generic storage implementation</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm/kernel/asm-offsets.c#31e9fa2b</link>
        <description>arm: vdso: Switch to generic storage implementationThe generic storage implementation provides the same features as thecustom one. However it can be shared between architectures, makingmaintenance easier.Co-developed-by: Nam Cao &lt;namcao@linutronix.de&gt;Signed-off-by: Nam Cao &lt;namcao@linutronix.de&gt;Signed-off-by: Thomas Wei&#223;schuh &lt;thomas.weissschuh@linutronix.de&gt;Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;Link: https://lore.kernel.org/all/20250204-vdso-store-rng-v3-11-13a4669dfc8c@linutronix.de

            List of files:
            /linux-6.15/arch/arm/kernel/asm-offsets.c</description>
        <pubDate>Tue, 04 Feb 2025 12:05:43 +0000</pubDate>
        <dc:creator>Thomas Wei&#223;schuh &lt;thomas.weissschuh@linutronix.de&gt;</dc:creator>
    </item>
<item>
        <title>7af5b901 - ARM: 9358/2: Implement PAN for LPAE by TTBR0 page table walks disablement</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm/kernel/asm-offsets.c#7af5b901</link>
        <description>ARM: 9358/2: Implement PAN for LPAE by TTBR0 page table walks disablementWith LPAE enabled, privileged no-access cannot be enforced using CPUdomains as such feature is not available. This patch implements PANby disabling TTBR0 page table walks while in kernel mode.The ARM architecture allows page table walks to be split between TTBR0and TTBR1. With LPAE enabled, the split is defined by a combination ofTTBCR T0SZ and T1SZ bits. Currently, an LPAE-enabled kernel uses TTBR0for user addresses and TTBR1 for kernel addresses with the VMSPLIT_2Gand VMSPLIT_3G configurations. The main advantage for the 3:1 split isthat TTBR1 is reduced to 2 levels, so potentially faster TLB refill(though usually the first level entries are already cached in the TLB).The PAN support on LPAE-enabled kernels uses TTBR0 when running in userspace or in kernel space during user access routines (TTBCR T0SZ andT1SZ are both 0). When running user accesses are disabled in kernelmode, TTBR0 page table walks are disabled by setting TTBCR.EPD0. TTBR1is used for kernel accesses (including loadable modules; anythingcovered by swapper_pg_dir) by reducing the TTBCR.T0SZ to the minimum(2^(32-7) = 32MB). To avoid user accesses potentially hitting stale TLBentries, the ASID is switched to 0 (reserved) by setting TTBCR.A1 andusing the ASID value in TTBR1. The difference from a non-PAN kernel isthat with the 3:1 memory split, TTBR1 always uses 3 levels of pagetables.As part of the change we are using preprocessor elif definied() clausesso balance these clauses by converting relevant precedingt ifdefclauses to if defined() clauses.Signed-off-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;Reviewed-by: Kees Cook &lt;keescook@chromium.org&gt;Tested-by: Florian Fainelli &lt;florian.fainelli@broadcom.com&gt;Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;Signed-off-by: Russell King (Oracle) &lt;rmk+kernel@armlinux.org.uk&gt;

            List of files:
            /linux-6.15/arch/arm/kernel/asm-offsets.c</description>
        <pubDate>Mon, 25 Mar 2024 07:31:13 +0000</pubDate>
        <dc:creator>Linus Walleij &lt;linus.walleij@linaro.org&gt;</dc:creator>
    </item>
<item>
        <title>a0d2fcd6 - vdso/ARM: Make union vdso_data_store available for all architectures</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm/kernel/asm-offsets.c#a0d2fcd6</link>
        <description>vdso/ARM: Make union vdso_data_store available for all architecturesThe vDSO data page &quot;union vdso_data_store&quot; is defined in an ARM specificheader file and also defined in several other places.Move the definition from the ARM header file into the generic vdso datapageheader to make it also usable for others and to prevent code duplication.Signed-off-by: Anna-Maria Behnsen &lt;anna-maria@linutronix.de&gt;Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;Reviewed-by: Vincenzo Frascino &lt;vincenzo.frascino@arm.com&gt;Reviewed-by: Kees Cook &lt;keescook@chromium.org&gt;Link: https://lore.kernel.org/r/20240219153939.75719-5-anna-maria@linutronix.de

            List of files:
            /linux-6.15/arch/arm/kernel/asm-offsets.c</description>
        <pubDate>Mon, 19 Feb 2024 15:39:33 +0000</pubDate>
        <dc:creator>Anna-Maria Behnsen &lt;anna-maria@linutronix.de&gt;</dc:creator>
    </item>
<item>
        <title>a9ff6961 - ARM: mm: Make virt_to_pfn() a static inline</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm/kernel/asm-offsets.c#a9ff6961</link>
        <description>ARM: mm: Make virt_to_pfn() a static inlineMaking virt_to_pfn() a static inline taking a strongly typed(const void *) makes the contract of a passing a pointer of thattype to the function explicit and exposes any misuse of themacro virt_to_pfn() acting polymorphic and accepting many typessuch as (void *), (unitptr_t) or (unsigned long) as argumentswithout warnings.Doing this is a bit intrusive: virt_to_pfn() requiresPHYS_PFN_OFFSET and PAGE_SHIFT to be defined, and this is defined in&lt;asm/page.h&gt;, so this must be included *before* &lt;asm/memory.h&gt;.The use of macros were obscuring the unclear inclusion order here,as the macros would eventually be resolved, but a static inlinelike this cannot be compiled with unresolved macros.The naive solution to include &lt;asm/page.h&gt; at the top of&lt;asm/memory.h&gt; does not work, because &lt;asm/memory.h&gt; sometimesincludes &lt;asm/page.h&gt; at the end of itself, which would create aconfusing inclusion loop. So instead, take the approach to alwaysunconditionally include &lt;asm/page.h&gt; at the end of &lt;asm/memory.h&gt;arch/arm uses &lt;asm/memory.h&gt; explicitly in a lot of places,however it turns out that if we just unconditionally include&lt;asm/memory.h&gt; into &lt;asm/page.h&gt; and switch all inclusions of&lt;asm/memory.h&gt; to &lt;asm/page.h&gt; instead, we enforce the rightorder and &lt;asm/memory.h&gt; will always have access to thedefinitions.Put an inclusion guard in place making it impossible to include&lt;asm/memory.h&gt; explicitly.Link: https://lore.kernel.org/linux-mm/20220701160004.2ffff4e5ab59a55499f4c736@linux-foundation.org/Signed-off-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;

            List of files:
            /linux-6.15/arch/arm/kernel/asm-offsets.c</description>
        <pubDate>Thu, 02 Jun 2022 08:18:32 +0000</pubDate>
        <dc:creator>Linus Walleij &lt;linus.walleij@linaro.org&gt;</dc:creator>
    </item>
<item>
        <title>6ee1e677 - ARM: kernel: Get rid of thread_info::used_cp[] array</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm/kernel/asm-offsets.c#6ee1e677</link>
        <description>ARM: kernel: Get rid of thread_info::used_cp[] arrayWe keep track of which coprocessor triggered a fault in the used_cp[]array in thread_info, but this data is never used anywhere. So let&apos;sremove it.Linus did some digging and found out that the last user of this fieldwas removed in commit bb1a773d5b6b (&quot;kill unused dump_fpu() instances&quot;).Reviewed-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;Signed-off-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;

            List of files:
            /linux-6.15/arch/arm/kernel/asm-offsets.c</description>
        <pubDate>Sun, 19 Mar 2023 22:55:14 +0000</pubDate>
        <dc:creator>Ard Biesheuvel &lt;ardb@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>62b95a7b - ARM: 9282/1: vfp: Manipulate task VFP state with softirqs disabled</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm/kernel/asm-offsets.c#62b95a7b</link>
        <description>ARM: 9282/1: vfp: Manipulate task VFP state with softirqs disabledIn a subsequent patch, we will relax the kernel mode NEON policy, andpermit kernel mode NEON to be used not only from task context, as ispermitted today, but also from softirq context.Given that softirqs may trigger over the back of any IRQ unless they areexplicitly disabled, we need to address the resulting races in the VFPstate handling, by disabling softirq processing in two distinct butrelated cases:- kernel mode NEON will leave the FPU disabled after it completes, so  any kernel code sequence that enables the FPU and subsequently accesses  its registers needs to disable softirqs until it completes;- kernel_neon_begin() will preserve the userland VFP state in memory,  and if it interrupts the ordinary VFP state preserve sequence, the  latter will resume execution with the VFP registers corrupted, and  happily continue saving them to memory.Given that disabling softirqs also disables preemption, we can replacethe existing preempt_disable/enable occurrences in the VFP statehandling asm code with new macros that dis/enable softirqs instead.In the VFP state handling C code, add local_bh_disable/enable() callsin those places where the VFP state is preserved.One thing to keep in mind is that, once we allow NEON use in softirqcontext, the result of any such interruption is that the FPEXC_EN bit inthe FPEXC register will be cleared, and vfp_current_hw_state[cpu] willbe NULL. This means that any sequence that [conditionally] clearsFPEXC_EN and/or sets vfp_current_hw_state[cpu] to NULL does not need torun with softirqs disabled, as the result will be the same. Furthermore,the handling of THREAD_NOTIFY_SWITCH is guaranteed to run with IRQsdisabled, and so it does not need protection from softirq interruptionseither.Tested-by: Martin Willi &lt;martin@strongswan.org&gt;Reviewed-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;Signed-off-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;Signed-off-by: Russell King (Oracle) &lt;rmk+kernel@armlinux.org.uk&gt;

            List of files:
            /linux-6.15/arch/arm/kernel/asm-offsets.c</description>
        <pubDate>Thu, 22 Dec 2022 17:49:51 +0000</pubDate>
        <dc:creator>Ard Biesheuvel &lt;ardb@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>9c46929e - ARM: implement THREAD_INFO_IN_TASK for uniprocessor systems</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm/kernel/asm-offsets.c#9c46929e</link>
        <description>ARM: implement THREAD_INFO_IN_TASK for uniprocessor systemsOn UP systems, only a single task can be &apos;current&apos; at the same time,which means we can use a global variable to track it. This means we canalso enable THREAD_INFO_IN_TASK for those systems, as in that case,thread_info is accessed via current rather than the other way around,removing the need to store thread_info at the base of the task stack.This, in turn, permits us to enable IRQ stacks and vmap&apos;ed stacks on UPsystems as well.To partially mitigate the performance overhead of this arrangement, usea ADD/ADD/LDR sequence with the appropriate PC-relative grouprelocations to load the value of current when needed. This means thataccessing current will still only require a single load as before,avoiding the need for a literal to carry the address of the globalvariable in each function. However, accessing thread_info will nowrequire this load as well.Acked-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;Acked-by: Nicolas Pitre &lt;nico@fluxnic.net&gt;Signed-off-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;Tested-by: Marc Zyngier &lt;maz@kernel.org&gt;Tested-by: Vladimir Murzin &lt;vladimir.murzin@arm.com&gt; # ARMv7M

            List of files:
            /linux-6.15/arch/arm/kernel/asm-offsets.c</description>
        <pubDate>Wed, 24 Nov 2021 13:08:11 +0000</pubDate>
        <dc:creator>Ard Biesheuvel &lt;ardb@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>18ed1c01 - ARM: smp: Enable THREAD_INFO_IN_TASK</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm/kernel/asm-offsets.c#18ed1c01</link>
        <description>ARM: smp: Enable THREAD_INFO_IN_TASKNow that we no longer rely on thread_info living at the base of the taskstack to be able to access the &apos;current&apos; pointer, we can wire up thegeneric support for moving thread_info into the task struct itself.Note that this requires us to update the cpu field in thread_infoexplicitly, now that the core code no longer does so. Ideally, we wouldswitch the percpu code to access the cpu field in task_struct instead,but this unleashes #include circular dependency hell.Co-developed-by: Keith Packard &lt;keithpac@amazon.com&gt;Signed-off-by: Keith Packard &lt;keithpac@amazon.com&gt;Signed-off-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;Reviewed-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;Tested-by: Amit Daniel Kachhap &lt;amit.kachhap@arm.com&gt;

            List of files:
            /linux-6.15/arch/arm/kernel/asm-offsets.c</description>
        <pubDate>Sat, 18 Sep 2021 08:44:38 +0000</pubDate>
        <dc:creator>Ard Biesheuvel &lt;ardb@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>dfbdcda2 - gcc-plugins: arm-ssp: Prepare for THREAD_INFO_IN_TASK support</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm/kernel/asm-offsets.c#dfbdcda2</link>
        <description>gcc-plugins: arm-ssp: Prepare for THREAD_INFO_IN_TASK supportWe will be enabling THREAD_INFO_IN_TASK support for ARM, which meansthat we can no longer load the stack canary value by masking the stackpointer and taking the copy that lives in thread_info. Instead, we willbe able to load it from the task_struct directly, by using the TPIDRUROregister which will hold the current task pointer whenTHREAD_INFO_IN_TASK is in effect. This is much more straight-forward,and allows us to declutter this code a bit while at it.Note that this means that ARMv6 (non-v6K) SMP systems can no longer usethis feature, but those are quite rare to begin with, so this is areasonable trade off.Reviewed-by: Kees Cook &lt;keescook@chromium.org&gt;Signed-off-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;Reviewed-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;Tested-by: Amit Daniel Kachhap &lt;amit.kachhap@arm.com&gt;

            List of files:
            /linux-6.15/arch/arm/kernel/asm-offsets.c</description>
        <pubDate>Sat, 18 Sep 2021 08:44:34 +0000</pubDate>
        <dc:creator>Ard Biesheuvel &lt;ardb@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>8ac6f5d7 - ARM: 9113/1: uaccess: remove set_fs() implementation</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm/kernel/asm-offsets.c#8ac6f5d7</link>
        <description>ARM: 9113/1: uaccess: remove set_fs() implementationThere are no remaining callers of set_fs(), so just remove italong with all associated code that operates onthread_info-&gt;addr_limit.There are still further optimizations that can be done:- In get_user(), the address check could be moved entirely  into the out of line code, rather than passing a constant  as an argument,- I assume the DACR handling can be simplified as we now  only change it during user access when CONFIG_CPU_SW_DOMAIN_PAN  is set, but not during set_fs().Acked-by: Christoph Hellwig &lt;hch@lst.de&gt;Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;Signed-off-by: Russell King (Oracle) &lt;rmk+kernel@armlinux.org.uk&gt;

            List of files:
            /linux-6.15/arch/arm/kernel/asm-offsets.c</description>
        <pubDate>Wed, 11 Aug 2021 07:30:26 +0000</pubDate>
        <dc:creator>Arnd Bergmann &lt;arnd@arndb.de&gt;</dc:creator>
    </item>
<item>
        <title>4e57a4dd - ARM: 9107/1: syscall: always store thread_info-&gt;abi_syscall</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm/kernel/asm-offsets.c#4e57a4dd</link>
        <description>ARM: 9107/1: syscall: always store thread_info-&gt;abi_syscallThe system call number is used in a a couple of places, in particularptrace, seccomp and /proc/&lt;pid&gt;/syscall.The last one apparently never worked reliably on ARM for tasks that arenot currently getting traced.Storing the syscall number in the normal entry path makes it work,as well as allowing us to see if the current system call is for OABIcompat mode, which is the next thing I want to hook into.Since the thread_info-&gt;syscall field is not just the number any more, itis now renamed to abi_syscall. In kernels that enable both OABI and EABI,the upper bits of this field encode 0x900000 (__NR_OABI_SYSCALL_BASE)for OABI tasks, while normal EABI tasks do not set the upper bits. Thismakes it possible to implement the in_oabi_syscall() helper later.All other users of thread_info-&gt;syscall go through the syscall_get_nr()helper, which in turn filters out the ABI bits.Note that the ABI information is lost with PTRACE_SET_SYSCALL, so onecannot set the internal number to a particular version, but this wasalready the case. We could change it to let gdb encode the ABI type alongwith the syscall in a CONFIG_OABI_COMPAT-enabled kernel, but that itselfwould be a (backwards-compatible) ABI change, so I don&apos;t do it here.Acked-by: Christoph Hellwig &lt;hch@lst.de&gt;Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;Signed-off-by: Russell King (Oracle) &lt;rmk+kernel@armlinux.org.uk&gt;

            List of files:
            /linux-6.15/arch/arm/kernel/asm-offsets.c</description>
        <pubDate>Wed, 11 Aug 2021 07:30:21 +0000</pubDate>
        <dc:creator>Arnd Bergmann &lt;arnd@arndb.de&gt;</dc:creator>
    </item>
<item>
        <title>12c3dca2 - ARM: ep93xx: remove MaverickCrunch support</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm/kernel/asm-offsets.c#12c3dca2</link>
        <description>ARM: ep93xx: remove MaverickCrunch supportThe MaverickCrunch support for ep93xx never made it into glibc andwas removed from gcc in its 4.8 release in 2012. It is now one ofthe last parts of arch/arm/ that fails to build with the clangintegrated assembler, which is unlikely to ever want to support it.The two alternatives are to force the use of binutils/gas whenbuilding the crunch support, or to remove it entirely.According to Hartley Sweeten: &quot;Martin Guy did a lot of work trying to get the maverick crunch working  but I was never able to successfully use it for anything. It &quot;kind&quot;  of works but depending on the EP93xx silicon revision there are still  a number of hardware bugs that either give imprecise or garbage results.  I have no problem with removing the kernel support for the maverick  crunch.&quot;Unless someone else comes up with a good reason to keep it around,remove it now. This touches mostly the ep93xx platform, but removesa bit of code from ARM common ptrace and signal frame handling as well.If there are remaining users of MaverickCrunch, they can use LTSkernels for at least another five years before kernel support ends.Link: https://lore.kernel.org/linux-arm-kernel/20210802141245.1146772-1-arnd@kernel.org/Link: https://lore.kernel.org/linux-arm-kernel/20210226164345.3889993-1-arnd@kernel.org/Link: https://github.com/ClangBuiltLinux/linux/issues/1272Link: https://gcc.gnu.org/legacy-ml/gcc/2008-03/msg01063.htmlCc: &quot;Martin Guy&quot; &lt;martinwguy@martinwguy@gmail.com&gt;Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;

            List of files:
            /linux-6.15/arch/arm/kernel/asm-offsets.c</description>
        <pubDate>Sat, 27 Feb 2021 12:40:09 +0000</pubDate>
        <dc:creator>Arnd Bergmann &lt;arnd@arndb.de&gt;</dc:creator>
    </item>
<item>
        <title>57ac5166 - ARM: 9075/1: kernel: Fix interrupted SMC calls</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm/kernel/asm-offsets.c#57ac5166</link>
        <description>ARM: 9075/1: kernel: Fix interrupted SMC callsOn Qualcomm ARM32 platforms, the SMC call can return before it hascompleted. If this occurs, the call can be restarted, but it requiresusing the returned session ID value from the interrupted SMC call.The ARM32 SMCC code already has the provision to add platform specificquirks for things like this. So let&apos;s make use of it and add theQualcomm specific quirk (ARM_SMCCC_QUIRK_QCOM_A6) used by the QCOM_SCMdriver.This change is similar to the below one added for ARM64 a while ago:commit 82bcd087029f (&quot;firmware: qcom: scm: Fix interrupted SCM calls&quot;)Without this change, the Qualcomm ARM32 platforms like SDX55 will return-EINVAL for SMC calls used for modem firmware loading and validation.Signed-off-by: Manivannan Sadhasivam &lt;manivannan.sadhasivam@linaro.org&gt;Reviewed-by: Bjorn Andersson &lt;bjorn.andersson@linaro.org&gt;Signed-off-by: Russell King &lt;rmk+kernel@armlinux.org.uk&gt;

            List of files:
            /linux-6.15/arch/arm/kernel/asm-offsets.c</description>
        <pubDate>Wed, 14 Apr 2021 03:41:16 +0000</pubDate>
        <dc:creator>Manivannan Sadhasivam &lt;manivannan.sadhasivam@linaro.org&gt;</dc:creator>
    </item>
<item>
        <title>4d62e81b - ARM: kexec: fix oops after TLB are invalidated</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm/kernel/asm-offsets.c#4d62e81b</link>
        <description>ARM: kexec: fix oops after TLB are invalidatedGiancarlo Ferrari reports the following oops while trying to use kexec: Unable to handle kernel paging request at virtual address 80112f38 pgd = fd7ef03e [80112f38] *pgd=0001141e(bad) Internal error: Oops: 80d [#1] PREEMPT SMP ARM ...This is caused by machine_kexec() trying to set the kernel text to beread/write, so it can poke values into the relocation code beforecopying it - and an interrupt occuring which changes the page tables.The subsequent writes then hit read-only sections that trigger adata abort resulting in the above oops.Fix this by copying the relocation code, and then writing the variablesinto the destination, thereby avoiding the need to make the kernel textread/write.Reported-by: Giancarlo Ferrari &lt;giancarlo.ferrari89@gmail.com&gt;Tested-by: Giancarlo Ferrari &lt;giancarlo.ferrari89@gmail.com&gt;Signed-off-by: Russell King &lt;rmk+kernel@armlinux.org.uk&gt;

            List of files:
            /linux-6.15/arch/arm/kernel/asm-offsets.c</description>
        <pubDate>Mon, 01 Feb 2021 19:40:01 +0000</pubDate>
        <dc:creator>Russell King &lt;rmk+kernel@armlinux.org.uk&gt;</dc:creator>
    </item>
<item>
        <title>6ec4476a - Raise gcc version requirement to 4.9</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm/kernel/asm-offsets.c#6ec4476a</link>
        <description>Raise gcc version requirement to 4.9I realize that we fairly recently raised it to 4.8, but the fact is, 4.9is a much better minimum version to target.We have a number of workarounds for actual bugs in pre-4.9 gcc versions(including things like internal compiler errors on ARM), but we alsohave some syntactic workarounds for lacking features.In particular, raising the minimum to 4.9 means that we can now justassume _Generic() exists, which is likely the much better replacementfor a lot of very convoluted built-time magic with conditionals onsizeof and/or __builtin_choose_expr() with same_type() etc.Using _Generic also means that you will need to have a very recentversion of &apos;sparse&apos;, but thats easy to build yourself, and much less ofa hassle than some old gcc version can be.The latest (in a long string) of reasons for minimum compiler versionupgrades was commit 5435f73d5c4a (&quot;efi/x86: Fix build with gcc 4&quot;).Ard points out that RHEL 7 uses gcc-4.8, but the people who stay back onold RHEL versions persumably also don&apos;t build their own kernels anyway.And maybe they should cross-built or just have a little side affair witha newer compiler?Acked-by: Ard Biesheuvel &lt;ardb@kernel.org&gt;Acked-by: Peter Zijlstra &lt;peterz@infradead.org&gt;Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;

            List of files:
            /linux-6.15/arch/arm/kernel/asm-offsets.c</description>
        <pubDate>Wed, 08 Jul 2020 17:48:35 +0000</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
<item>
        <title>541ad015 - arm: Remove 32bit KVM host support</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm/kernel/asm-offsets.c#541ad015</link>
        <description>arm: Remove 32bit KVM host supportThat&apos;s it. Remove all references to KVM itself, and documentthat although it is no more, the ABI between SVC and HYP stillexists.Signed-off-by: Marc Zyngier &lt;maz@kernel.org&gt;Acked-by: Olof Johansson &lt;olof@lixom.net&gt;Acked-by: Arnd Bergmann &lt;arnd@arndb.de&gt;Acked-by: Will Deacon &lt;will@kernel.org&gt;Acked-by: Vladimir Murzin &lt;vladimir.murzin@arm.com&gt;Acked-by: Catalin Marinas &lt;catalin.marinas@arm.com&gt;Acked-by: Linus Walleij &lt;linus.walleij@linaro.org&gt;Acked-by: Christoffer Dall &lt;christoffer.dall@arm.com&gt;

            List of files:
            /linux-6.15/arch/arm/kernel/asm-offsets.c</description>
        <pubDate>Fri, 24 Jan 2020 22:42:15 +0000</pubDate>
        <dc:creator>Marc Zyngier &lt;maz@kernel.org&gt;</dc:creator>
    </item>
<item>
        <title>d2912cb1 - treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm/kernel/asm-offsets.c#d2912cb1</link>
        <description>treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500Based on 2 normalized pattern(s):  this program is free software you can redistribute it and or modify  it under the terms of the gnu general public license version 2 as  published by the free software foundation  this program is free software you can redistribute it and or modify  it under the terms of the gnu general public license version 2 as  published by the free software foundation #extracted by the scancode license scanner the SPDX license identifier  GPL-2.0-onlyhas been chosen to replace the boilerplate/reference in 4122 file(s).Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;Reviewed-by: Enrico Weigelt &lt;info@metux.net&gt;Reviewed-by: Kate Stewart &lt;kstewart@linuxfoundation.org&gt;Reviewed-by: Allison Randal &lt;allison@lohutok.net&gt;Cc: linux-spdx@vger.kernel.orgLink: https://lkml.kernel.org/r/20190604081206.933168790@linutronix.deSigned-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

            List of files:
            /linux-6.15/arch/arm/kernel/asm-offsets.c</description>
        <pubDate>Tue, 04 Jun 2019 08:11:33 +0000</pubDate>
        <dc:creator>Thomas Gleixner &lt;tglx@linutronix.de&gt;</dc:creator>
    </item>
<item>
        <title>189af465 - ARM: smp: add support for per-task stack canaries</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm/kernel/asm-offsets.c#189af465</link>
        <description>ARM: smp: add support for per-task stack canariesOn ARM, we currently only change the value of the stack canary whenswitching tasks if the kernel was built for UP. On SMP kernels, thisis impossible since the stack canary value is obtained via a globalsymbol reference, which meansa) all running tasks on all CPUs must use the same valueb) we can only modify the value when no kernel stack frames are live   on any CPU, which is effectively never.So instead, use a GCC plugin to add a RTL pass that replaces eachreference to the address of the __stack_chk_guard symbol with anexpression that produces the address of the &apos;stack_canary&apos; fieldthat is added to struct thread_info. This way, each task will useits own randomized value.Cc: Russell King &lt;linux@armlinux.org.uk&gt;Cc: Kees Cook &lt;keescook@chromium.org&gt;Cc: Emese Revfy &lt;re.emese@gmail.com&gt;Cc: Arnd Bergmann &lt;arnd@arndb.de&gt;Cc: Laura Abbott &lt;labbott@redhat.com&gt;Cc: kernel-hardening@lists.openwall.comAcked-by: Nicolas Pitre &lt;nico@linaro.org&gt;Signed-off-by: Ard Biesheuvel &lt;ard.biesheuvel@linaro.org&gt;Signed-off-by: Kees Cook &lt;keescook@chromium.org&gt;

            List of files:
            /linux-6.15/arch/arm/kernel/asm-offsets.c</description>
        <pubDate>Thu, 06 Dec 2018 08:32:57 +0000</pubDate>
        <dc:creator>Ard Biesheuvel &lt;ard.biesheuvel@linaro.org&gt;</dc:creator>
    </item>
<item>
        <title>815f0ddb - include/linux/compiler*.h: make compiler-*.h mutually exclusive</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm/kernel/asm-offsets.c#815f0ddb</link>
        <description>include/linux/compiler*.h: make compiler-*.h mutually exclusiveCommit cafa0010cd51 (&quot;Raise the minimum required gcc version to 4.6&quot;)recently exposed a brittle part of the build for supporting non-gcccompilers.Both Clang and ICC define __GNUC__, __GNUC_MINOR__, and__GNUC_PATCHLEVEL__ for quick compatibility with code bases that haven&apos;tadded compiler specific checks for __clang__ or __INTEL_COMPILER.This is brittle, as they happened to get compatibility by posing as acertain version of GCC.  This broke when upgrading the minimal versionof GCC required to build the kernel, to a version above what ICC andClang claim to be.Rather than always including compiler-gcc.h then undefining orredefining macros in compiler-intel.h or compiler-clang.h, let&apos;sseparate out the compiler specific macro definitions into mutuallyexclusive headers, do more proper compiler detection, and keep shareddefinitions in compiler_types.h.Fixes: cafa0010cd51 (&quot;Raise the minimum required gcc version to 4.6&quot;)Reported-by: Masahiro Yamada &lt;yamada.masahiro@socionext.com&gt;Suggested-by: Eli Friedman &lt;efriedma@codeaurora.org&gt;Suggested-by: Joe Perches &lt;joe@perches.com&gt;Signed-off-by: Nick Desaulniers &lt;ndesaulniers@google.com&gt;Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;

            List of files:
            /linux-6.15/arch/arm/kernel/asm-offsets.c</description>
        <pubDate>Wed, 22 Aug 2018 23:37:24 +0000</pubDate>
        <dc:creator>Nick Desaulniers &lt;ndesaulniers@google.com&gt;</dc:creator>
    </item>
<item>
        <title>050e9baa - Kbuild: rename CC_STACKPROTECTOR[_STRONG] config variables</title>
        <link>http://172.16.0.5:8080/history/linux-6.15/arch/arm/kernel/asm-offsets.c#050e9baa</link>
        <description>Kbuild: rename CC_STACKPROTECTOR[_STRONG] config variablesThe changes to automatically test for working stack protector compilersupport in the Kconfig files removed the special STACKPROTECTOR_AUTOoption that picked the strongest stack protector that the compilersupported.That was all a nice cleanup - it makes no sense to have the AUTO casenow that the Kconfig phase can just determine the compiler supportdirectly.HOWEVER.It also meant that doing &quot;make oldconfig&quot; would now _disable_ the strongstackprotector if you had AUTO enabled, because in a legacy config file,the sane stack protector configuration would look like  CONFIG_HAVE_CC_STACKPROTECTOR=y  # CONFIG_CC_STACKPROTECTOR_NONE is not set  # CONFIG_CC_STACKPROTECTOR_REGULAR is not set  # CONFIG_CC_STACKPROTECTOR_STRONG is not set  CONFIG_CC_STACKPROTECTOR_AUTO=yand when you ran this through &quot;make oldconfig&quot; with the Kbuild changes,it would ask you about the regular CONFIG_CC_STACKPROTECTOR (that hadbeen renamed from CONFIG_CC_STACKPROTECTOR_REGULAR to justCONFIG_CC_STACKPROTECTOR), but it would think that the STRONG versionused to be disabled (because it was really enabled by AUTO), and woulddisable it in the new config, resulting in:  CONFIG_HAVE_CC_STACKPROTECTOR=y  CONFIG_CC_HAS_STACKPROTECTOR_NONE=y  CONFIG_CC_STACKPROTECTOR=y  # CONFIG_CC_STACKPROTECTOR_STRONG is not set  CONFIG_CC_HAS_SANE_STACKPROTECTOR=yThat&apos;s dangerously subtle - people could suddenly find themselves withthe weaker stack protector setup without even realizing.The solution here is to just rename not just the old RECULAR stackprotector option, but also the strong one.  This does that by justremoving the CC_ prefix entirely for the user choices, because it reallyis not about the compiler support (the compiler support now insteadautomatially impacts _visibility_ of the options to users).This results in &quot;make oldconfig&quot; actually asking the user for theirchoice, so that we don&apos;t have any silent subtle security model changes.The end result would generally look like this:  CONFIG_HAVE_CC_STACKPROTECTOR=y  CONFIG_CC_HAS_STACKPROTECTOR_NONE=y  CONFIG_STACKPROTECTOR=y  CONFIG_STACKPROTECTOR_STRONG=y  CONFIG_CC_HAS_SANE_STACKPROTECTOR=ywhere the &quot;CC_&quot; versions really are about internal compilerinfrastructure, not the user selections.Acked-by: Masahiro Yamada &lt;yamada.masahiro@socionext.com&gt;Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;

            List of files:
            /linux-6.15/arch/arm/kernel/asm-offsets.c</description>
        <pubDate>Thu, 14 Jun 2018 03:21:18 +0000</pubDate>
        <dc:creator>Linus Torvalds &lt;torvalds@linux-foundation.org&gt;</dc:creator>
    </item>
</channel>
</rss>
