public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: stable@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Paul Mackerras <paulus@ozlabs.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	Sasha Levin <sashal@kernel.org>,
	linuxppc-dev@lists.ozlabs.org
Subject: [PATCH AUTOSEL 4.14 02/59] powerpc: Fix COFF zImage booting on old powermacs
Date: Wed, 26 Dec 2018 17:37:42 -0500	[thread overview]
Message-ID: <20181226223839.150262-2-sashal@kernel.org> (raw)
In-Reply-To: <20181226223839.150262-1-sashal@kernel.org>

From: Paul Mackerras <paulus@ozlabs.org>

[ Upstream commit 5564597d51c8ff5b88d95c76255e18b13b760879 ]

Commit 6975a783d7b4 ("powerpc/boot: Allow building the zImage wrapper
as a relocatable ET_DYN", 2011-04-12) changed the procedure descriptor
at the start of crt0.S to have a hard-coded start address of 0x500000
rather than a reference to _zimage_start, presumably because having
a reference to a symbol introduced a relocation which is awkward to
handle in a position-independent executable.  Unfortunately, what is
at 0x500000 in the COFF image is not the first instruction, but the
procedure descriptor itself, that is, a word containing 0x500000,
which is not a valid instruction.  Hence, booting a COFF zImage
results in a "DEFAULT CATCH!, code=FFF00700" message from Open
Firmware.

This fixes the problem by (a) putting the procedure descriptor in the
data section and (b) adding a branch to _zimage_start as the first
instruction in the program.

Fixes: 6975a783d7b4 ("powerpc/boot: Allow building the zImage wrapper as a relocatable ET_DYN")
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 arch/powerpc/boot/crt0.S | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/boot/crt0.S b/arch/powerpc/boot/crt0.S
index 32dfe6d083f3..9b9d17437373 100644
--- a/arch/powerpc/boot/crt0.S
+++ b/arch/powerpc/boot/crt0.S
@@ -15,7 +15,7 @@
 RELA = 7
 RELACOUNT = 0x6ffffff9
 
-	.text
+	.data
 	/* A procedure descriptor used when booting this as a COFF file.
 	 * When making COFF, this comes first in the link and we're
 	 * linked at 0x500000.
@@ -23,6 +23,8 @@ RELACOUNT = 0x6ffffff9
 	.globl	_zimage_start_opd
 _zimage_start_opd:
 	.long	0x500000, 0, 0, 0
+	.text
+	b	_zimage_start
 
 #ifdef __powerpc64__
 .balign 8
-- 
2.19.1


  reply	other threads:[~2018-12-26 22:40 UTC|newest]

Thread overview: 59+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-26 22:37 [PATCH AUTOSEL 4.14 01/59] pinctrl: meson: fix pull enable register calculation Sasha Levin
2018-12-26 22:37 ` Sasha Levin [this message]
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 03/59] powerpc/mm: Fix linux page tables build with some configs Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 04/59] HID: ite: Add USB id match for another ITE based keyboard rfkill key quirk Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 05/59] ARM: imx: update the cpu power up timing setting on i.mx6sx Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 06/59] ARM: dts: imx7d-nitrogen7: Fix the description of the Wifi clock Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 07/59] Input: restore EV_ABS ABS_RESERVED Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 08/59] checkstack.pl: fix for aarch64 Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 09/59] xfrm: Fix error return code in xfrm_output_one() Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 10/59] xfrm: Fix bucket count reported to userspace Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 11/59] xfrm: Fix NULL pointer dereference in xfrm_input when skb_dst_force clears the dst_entry Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 12/59] netfilter: seqadj: re-load tcp header pointer after possible head reallocation Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 13/59] scsi: bnx2fc: Fix NULL dereference in error handling Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 14/59] Input: omap-keypad - fix idle configuration to not block SoC idle states Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 15/59] Input: synaptics - enable RMI on ThinkPad T560 Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 16/59] ibmvnic: Fix non-atomic memory allocation in IRQ context Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 17/59] ieee802154: ca8210: fix possible u8 overflow in ca8210_rx_done Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 18/59] x86/mm: Fix guard hole handling Sasha Levin
2018-12-26 22:37 ` [PATCH AUTOSEL 4.14 19/59] x86/dump_pagetables: Fix LDT remap address marker Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 20/59] i40e: fix mac filter delete when setting mac address Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 21/59] USB: hso: Fix OOB memory access in hso_probe/hso_get_config_data Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 22/59] netfilter: ipset: do not call ipset_nest_end after nla_nest_cancel Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 23/59] netfilter: nat: can't use dst_hold on noref dst Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 24/59] bnx2x: Clear fip MAC when fcoe offload support is disabled Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 25/59] bnx2x: Remove configured vlans as part of unload sequence Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 26/59] bnx2x: Send update-svid ramrod with retry/poll flags enabled Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 27/59] scsi: target: iscsi: cxgbit: fix csk leak Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 28/59] scsi: target: iscsi: cxgbit: add missing spin_lock_init() Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 29/59] x86, hyperv: remove PCI dependency Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 30/59] drivers: net: xgene: Remove unnecessary forward declarations Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 31/59] w90p910_ether: remove incorrect __init annotation Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 32/59] qmi_wwan: Added support for Telit LN940 series Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 33/59] net: hns: Incorrect offset address used for some registers Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 34/59] net: hns: All ports can not work when insmod hns ko after rmmod Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 35/59] net: hns: Some registers use wrong address according to the datasheet Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 36/59] net: hns: Fixed bug that netdev was opened twice Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 37/59] net: hns: Clean rx fbd when ae stopped Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 38/59] net: hns: Free irq when exit from abnormal branch Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 39/59] net: hns: Avoid net reset caused by pause frames storm Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 40/59] net: hns: Fix ntuple-filters status error Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 41/59] net: hns: Add mac pcs config when enable|disable mac Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 42/59] net: hns: Fix ping failed when use net bridge and send multicast Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 43/59] SUNRPC: Fix a race with XPRT_CONNECTING Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 44/59] x86/mtrr: Don't copy uninitialized gentry fields back to userspace Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 45/59] qed: Fix an error code qed_ll2_start_xmit() Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 46/59] net: macb: fix random memory corruption on RX with 64-bit DMA Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 47/59] net: macb: fix dropped RX frames due to a race Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 48/59] lan78xx: Resolve issue with changing MAC address Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 49/59] xen/netfront: tolerate frags with no data Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 50/59] vxge: ensure data0 is initialized in when fetching firmware version information Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 51/59] mac80211: free skb fraglist before freeing the skb Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 52/59] kbuild: fix false positive warning/error about missing libelf Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 53/59] net/mlx5: Typo fix in del_sw_hw_rule Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 54/59] virtio: fix test build after uio.h change Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 55/59] gpio: mvebu: only fail on missing clk if pwm is actually to be used Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 56/59] Input: synaptics - enable SMBus for HP EliteBook 840 G4 Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 57/59] net: netxen: fix a missing check and an uninitialized use Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 58/59] qmi_wwan: Fix qmap header retrieval in qmimux_rx_fixup Sasha Levin
2018-12-26 22:38 ` [PATCH AUTOSEL 4.14 59/59] serial/sunsu: fix refcount leak Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181226223839.150262-2-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mpe@ellerman.id.au \
    --cc=paulus@ozlabs.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox