No description
  • C 98.2%
  • Assembly 1%
  • Makefile 0.3%
  • Shell 0.2%
  • Python 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Michael Ellerman e91ba23f55 powerpc/Makefile: Don't pass -mcpu=powerpc64 when building 32-bit
[ Upstream commit 2863dd2db23e0407f6c50b8ba5c0e55abef894f1 ]

When CONFIG_GENERIC_CPU=y (true for all our defconfigs) we pass
-mcpu=powerpc64 to the compiler, even when we're building a 32-bit
kernel.

This happens because we have an ifdef CONFIG_PPC_BOOK3S_64/else block in
the Makefile that was written before 32-bit supported GENERIC_CPU. Prior
to that the else block only applied to 64-bit Book3E.

The GCC man page says -mcpu=powerpc64 "[specifies] a pure ... 64-bit big
endian PowerPC ... architecture machine [type], with an appropriate,
generic processor model assumed for scheduling purposes."

It's unclear how that interacts with -m32, which we are also passing,
although obviously -m32 is taking precedence in some sense, as the
32-bit kernel only contains 32-bit instructions.

This was noticed by inspection, not via any bug reports, but it does
affect code generation. Comparing before/after code generation, there
are some changes to instruction scheduling, and the after case (with
-mcpu=powerpc64 removed) the compiler seems more keen to use r8.

Fix it by making the else case only apply to Book3E 64, which excludes
32-bit.

Fixes: 0e00a8c9fd ("powerpc: Allow CPU selection also on PPC32")
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220215112858.304779-1-mpe@ellerman.id.au
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-04-15 14:18:14 +02:00
arch powerpc/Makefile: Don't pass -mcpu=powerpc64 when building 32-bit 2022-04-15 14:18:14 +02:00
block block: don't delete queue kobject before its children 2022-04-15 14:18:05 +02:00
certs certs: Trigger creation of RSA module signing key if it's not an RSA key 2021-09-15 09:47:29 +02:00
crypto crypto: authenc - Fix sleep in atomic context in decrypt_tail 2022-04-15 14:18:04 +02:00
Documentation Documentation: update stable tree link 2022-04-15 14:17:58 +02:00
drivers drm/bridge: cdns-dsi: Make sure to to create proper aliases for dt 2022-04-15 14:18:14 +02:00
fs ext2: correct max file size computing 2022-04-15 14:18:13 +02:00
include block: don't merge across cgroup boundaries if blkcg is enabled 2022-04-15 14:18:01 +02:00
init bpf: Add kconfig knob for disabling unpriv bpf by default 2022-02-16 12:52:49 +01:00
ipc shm: extend forced shm destroy to support objects from several IPC nses 2021-12-01 09:23:35 +01:00
kernel printk: fix return value of printk.devkmsg __setup handler 2022-04-15 14:18:08 +02:00
lib lib/raid6/test: fix multiple definition linking error 2022-04-15 14:18:02 +02:00
LICENSES
mm mm/kmemleak: reset tag when compare object pointer 2022-04-15 14:18:01 +02:00
net udp: call udp_encap_enable for v6 sockets when enabling encap 2022-04-15 14:18:01 +02:00
samples samples/kretprobes: Fix return value if register_kretprobe() failed 2021-11-17 09:48:39 +01:00
scripts kconfig: fix failing to generate auto.conf 2022-02-23 12:00:01 +01:00
security TOMOYO: fix __setup handlers return values 2022-04-15 14:18:13 +02:00
sound ASoC: msm8916-wcd-analog: Fix error handling in pm8916_wcd_analog_spmi_probe 2022-04-15 14:18:10 +02:00
tools libbpf: Skip forward declaration when counting duplicated type names 2022-04-15 14:18:14 +02:00
usr
virt KVM: arm64: Allow SMCCC_ARCH_WORKAROUND_3 to be discovered and migrated 2022-03-19 13:40:15 +01:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS
Makefile Linux 5.4.188 2022-03-28 08:46:49 +02:00
README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.