From: Ben Hutchings <ben@decadent.org.uk>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: akpm@linux-foundation.org,
"Benjamin Herrenschmidt" <benh@kernel.crashing.org>,
"Andreas Schwab" <schwab@linux-m68k.org>
Subject: [PATCH 3.2 01/92] powerpc: Add vr save/restore functions
Date: Sat, 07 Jun 2014 02:26:28 +0100 [thread overview]
Message-ID: <lsq.1402104388.558927692@decadent.org.uk> (raw)
In-Reply-To: <lsq.1402104388.385007124@decadent.org.uk>
3.2.60-rc1 review patch. If anyone has any objections, please let me know.
------------------
From: Andreas Schwab <schwab@linux-m68k.org>
commit 8fe9c93e7453e67b8bd09f263ec1bb0783c733fc upstream.
GCC 4.8 now generates out-of-line vr save/restore functions when
optimizing for size. They are needed for the raid6 altivec support.
Signed-off-by: Andreas Schwab <schwab@linux-m68k.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
arch/powerpc/lib/crtsavres.S | 186 +++++++++++++++++++++++++++++++++++++++++++
scripts/mod/modpost.c | 8 +-
2 files changed, 192 insertions(+), 2 deletions(-)
--- a/arch/powerpc/lib/crtsavres.S
+++ b/arch/powerpc/lib/crtsavres.S
@@ -230,6 +230,87 @@ _GLOBAL(_rest32gpr_31_x)
mr 1,11
blr
+#ifdef CONFIG_ALTIVEC
+/* Called with r0 pointing just beyond the end of the vector save area. */
+
+_GLOBAL(_savevr_20)
+ li r11,-192
+ stvx vr20,r11,r0
+_GLOBAL(_savevr_21)
+ li r11,-176
+ stvx vr21,r11,r0
+_GLOBAL(_savevr_22)
+ li r11,-160
+ stvx vr22,r11,r0
+_GLOBAL(_savevr_23)
+ li r11,-144
+ stvx vr23,r11,r0
+_GLOBAL(_savevr_24)
+ li r11,-128
+ stvx vr24,r11,r0
+_GLOBAL(_savevr_25)
+ li r11,-112
+ stvx vr25,r11,r0
+_GLOBAL(_savevr_26)
+ li r11,-96
+ stvx vr26,r11,r0
+_GLOBAL(_savevr_27)
+ li r11,-80
+ stvx vr27,r11,r0
+_GLOBAL(_savevr_28)
+ li r11,-64
+ stvx vr28,r11,r0
+_GLOBAL(_savevr_29)
+ li r11,-48
+ stvx vr29,r11,r0
+_GLOBAL(_savevr_30)
+ li r11,-32
+ stvx vr30,r11,r0
+_GLOBAL(_savevr_31)
+ li r11,-16
+ stvx vr31,r11,r0
+ blr
+
+_GLOBAL(_restvr_20)
+ li r11,-192
+ lvx vr20,r11,r0
+_GLOBAL(_restvr_21)
+ li r11,-176
+ lvx vr21,r11,r0
+_GLOBAL(_restvr_22)
+ li r11,-160
+ lvx vr22,r11,r0
+_GLOBAL(_restvr_23)
+ li r11,-144
+ lvx vr23,r11,r0
+_GLOBAL(_restvr_24)
+ li r11,-128
+ lvx vr24,r11,r0
+_GLOBAL(_restvr_25)
+ li r11,-112
+ lvx vr25,r11,r0
+_GLOBAL(_restvr_26)
+ li r11,-96
+ lvx vr26,r11,r0
+_GLOBAL(_restvr_27)
+ li r11,-80
+ lvx vr27,r11,r0
+_GLOBAL(_restvr_28)
+ li r11,-64
+ lvx vr28,r11,r0
+_GLOBAL(_restvr_29)
+ li r11,-48
+ lvx vr29,r11,r0
+_GLOBAL(_restvr_30)
+ li r11,-32
+ lvx vr30,r11,r0
+_GLOBAL(_restvr_31)
+ li r11,-16
+ lvx vr31,r11,r0
+ blr
+
+#endif /* CONFIG_ALTIVEC */
+
#else /* CONFIG_PPC64 */
.globl _savegpr0_14
@@ -353,6 +434,111 @@ _restgpr0_31:
mtlr r0
blr
+#ifdef CONFIG_ALTIVEC
+/* Called with r0 pointing just beyond the end of the vector save area. */
+
+.globl _savevr_20
+_savevr_20:
+ li r12,-192
+ stvx vr20,r12,r0
+.globl _savevr_21
+_savevr_21:
+ li r12,-176
+ stvx vr21,r12,r0
+.globl _savevr_22
+_savevr_22:
+ li r12,-160
+ stvx vr22,r12,r0
+.globl _savevr_23
+_savevr_23:
+ li r12,-144
+ stvx vr23,r12,r0
+.globl _savevr_24
+_savevr_24:
+ li r12,-128
+ stvx vr24,r12,r0
+.globl _savevr_25
+_savevr_25:
+ li r12,-112
+ stvx vr25,r12,r0
+.globl _savevr_26
+_savevr_26:
+ li r12,-96
+ stvx vr26,r12,r0
+.globl _savevr_27
+_savevr_27:
+ li r12,-80
+ stvx vr27,r12,r0
+.globl _savevr_28
+_savevr_28:
+ li r12,-64
+ stvx vr28,r12,r0
+.globl _savevr_29
+_savevr_29:
+ li r12,-48
+ stvx vr29,r12,r0
+.globl _savevr_30
+_savevr_30:
+ li r12,-32
+ stvx vr30,r12,r0
+.globl _savevr_31
+_savevr_31:
+ li r12,-16
+ stvx vr31,r12,r0
+ blr
+
+.globl _restvr_20
+_restvr_20:
+ li r12,-192
+ lvx vr20,r12,r0
+.globl _restvr_21
+_restvr_21:
+ li r12,-176
+ lvx vr21,r12,r0
+.globl _restvr_22
+_restvr_22:
+ li r12,-160
+ lvx vr22,r12,r0
+.globl _restvr_23
+_restvr_23:
+ li r12,-144
+ lvx vr23,r12,r0
+.globl _restvr_24
+_restvr_24:
+ li r12,-128
+ lvx vr24,r12,r0
+.globl _restvr_25
+_restvr_25:
+ li r12,-112
+ lvx vr25,r12,r0
+.globl _restvr_26
+_restvr_26:
+ li r12,-96
+ lvx vr26,r12,r0
+.globl _restvr_27
+_restvr_27:
+ li r12,-80
+ lvx vr27,r12,r0
+.globl _restvr_28
+_restvr_28:
+ li r12,-64
+ lvx vr28,r12,r0
+.globl _restvr_29
+_restvr_29:
+ li r12,-48
+ lvx vr29,r12,r0
+.globl _restvr_30
+_restvr_30:
+ li r12,-32
+ lvx vr30,r12,r0
+.globl _restvr_31
+_restvr_31:
+ li r12,-16
+ lvx vr31,r12,r0
+ blr
+
+#endif /* CONFIG_ALTIVEC */
+
#endif /* CONFIG_PPC64 */
#endif
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -569,12 +569,16 @@ static int ignore_undef_symbol(struct el
if (strncmp(symname, "_restgpr_", sizeof("_restgpr_") - 1) == 0 ||
strncmp(symname, "_savegpr_", sizeof("_savegpr_") - 1) == 0 ||
strncmp(symname, "_rest32gpr_", sizeof("_rest32gpr_") - 1) == 0 ||
- strncmp(symname, "_save32gpr_", sizeof("_save32gpr_") - 1) == 0)
+ strncmp(symname, "_save32gpr_", sizeof("_save32gpr_") - 1) == 0 ||
+ strncmp(symname, "_restvr_", sizeof("_restvr_") - 1) == 0 ||
+ strncmp(symname, "_savevr_", sizeof("_savevr_") - 1) == 0)
return 1;
if (info->hdr->e_machine == EM_PPC64)
/* Special register function linked on all modules during final link of .ko */
if (strncmp(symname, "_restgpr0_", sizeof("_restgpr0_") - 1) == 0 ||
- strncmp(symname, "_savegpr0_", sizeof("_savegpr0_") - 1) == 0)
+ strncmp(symname, "_savegpr0_", sizeof("_savegpr0_") - 1) == 0 ||
+ strncmp(symname, "_restvr_", sizeof("_restvr_") - 1) == 0 ||
+ strncmp(symname, "_savevr_", sizeof("_savevr_") - 1) == 0)
return 1;
/* Do not ignore this symbol */
return 0;
next prev parent reply other threads:[~2014-06-07 1:44 UTC|newest]
Thread overview: 98+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-07 1:26 [PATCH 3.2 00/92] 3.2.60-rc1 review Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 11/92] net: ipv4: current group_info should be put after using Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 03/92] ACPI / EC: Process rather than discard events in acpi_ec_clear Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 22/92] macvlan: Don't propagate IFF_ALLMULTI changes on down interfaces Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 14/92] rtnetlink: Warn when interface's information won't fit in our packet Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 12/92] filter: prevent nla extensions to peek beyond the end of the message Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 10/92] ipv6: Limit mtu to 65575 bytes Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 25/92] skb: Add inline helper for getting the skb end offset from head Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 13/92] tg3: update rx_jumbo_pending ring param only when jumbo frames are enabled Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 20/92] net: ipv4: ip_forward: fix inverted local_df test Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 09/92] bonding: Remove debug_fs files when module init fails Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 17/92] sctp: reset flowi4_oif parameter on route lookup Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 07/92] l2tp: take PMTU from tunnel UDP socket Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 05/92] netfilter: Can't fail and free after table replacement Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 24/92] ipv4: initialise the itag variable in __mkroute_input Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 30/92] drm/vmwgfx: Make sure user-space can't DMA across buffer object boundaries v2 Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 26/92] net-gro: reset skb->truesize in napi_reuse_skb() Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 28/92] rt2x00: fix beaconing on USB Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 06/92] tracepoint: Do not waste memory on mods with no tracepoints Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 08/92] net: core: don't account for udp header size when computing seglen Ben Hutchings
2014-06-07 1:26 ` Ben Hutchings [this message]
2014-06-07 1:26 ` [PATCH 3.2 19/92] tcp_cubic: fix the range of delayed_ack Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 27/92] thinkpad-acpi: fix issuing duplicated key events for brightness up/down Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 23/92] act_mirred: do not drop packets when fails to mirror it Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 21/92] ipv4: fib_semantics: increment fib_info_cnt after fib_info allocation Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 02/92] ACPI / EC: Clear stale EC events on Samsung systems Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 16/92] bridge: Handle IFLA_ADDRESS correctly when creating bridge device Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 29/92] Input: synaptics - add min/max quirk for ThinkPad Edge E431 Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 15/92] rtnetlink: Only supply IFLA_VF_PORTS information when RTEXT_FILTER_VF is set Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 04/92] tgafb: fix mode setting with fbset Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 18/92] Revert "macvlan : fix checksums error when we are in bridge mode" Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 44/92] [media] media-device: fix infoleak in ioctl media_enum_entities() Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 60/92] mm/page-writeback.c: fix divide by zero in pos_ratio_polynom Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 48/92] USB: Nokia 305 should be treated as unusual dev Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 63/92] NFSD: Call ->set_acl with a NULL ACL structure if no entries Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 42/92] rtlwifi: rtl8192cu: Fix too long disable of IRQs Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 32/92] Bluetooth: Add support for Lite-on [04ca:3007] Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 59/92] Negative (setpoint-dirty) in bdi_position_ratio() Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 71/92] i2c: s3c2410: resume race fix Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 70/92] i2c: designware: Mask all interrupts during i2c controller enable Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 58/92] posix_acl: handle NULL ACL in posix_acl_equiv_mode Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 47/92] drivers/tty/hvc: don't free hvc_console_setup after init Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 65/92] hwmon: (emc1403) fix inverted store_hyst() Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 90/92] futex: Validate atomic acquisition in futex_lock_pi_atomic() Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 66/92] hwmon: (emc1403) Support full range of known chip revision numbers Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 46/92] usb: storage: shuttle_usbat: fix discs being detected twice Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 31/92] Bluetooth: Fix redundant encryption request for reauthentication Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 78/92] drm/radeon: also try GART for CPU accessed buffers Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 36/92] KVM: async_pf: mm->mm_users can not pin apf->mm Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 69/92] x86, mm, hugetlb: Add missing TLB page invalidation for hugetlb_cow() Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 86/92] mm/memory-failure.c: fix memory leak by race between poison and unpoison Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 51/92] HID: usbhid: quirk for Synaptics HD touchscreen Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 55/92] md: avoid possible spinning md thread at shutdown Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 75/92] libceph: fix corruption when using page_count 0 page in rbd Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 49/92] USB: Nokia 5300 should be treated as unusual dev Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 92/92] futex: Make lookup_pi_state more robust Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 62/92] trace: module: Maintain a valid user count Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 72/92] x86-64, modify_ldt: Make support for 16-bit segments a runtime option Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 52/92] HID: usbhid: quirk for Synaptics Quad HD touchscreen Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 83/92] nfsd4: warn on finding lockowner without stateid's Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 57/92] NFSd: call rpc_destroy_wait_queue() from free_client() Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 77/92] perf: Prevent false warning in perf_swevent_add Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 53/92] HID: add NO_INIT_REPORTS quirk for Synaptics Touch Pad V 103S Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 73/92] PCI: shpchp: Check bridge's secondary (not primary) bus speed Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 54/92] Input: elantech - fix touchpad initialization on Gigabyte U2442 Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 67/92] [media] V4L2: ov7670: fix a wrong index, potentially Oopsing the kernel from user-space Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 80/92] can: peak_pci: Fix the way channels are linked together Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 37/92] ftrace/module: Hardcode ftrace_module_init() call into load_module() Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 74/92] libceph: only call kernel_sendpage() via helper Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 33/92] crypto: caam - add allocation failure handling in SPRINTFCAT macro Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 45/92] drm/nouveau/acpi: allow non-optimus setups to load vbios from acpi Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 85/92] hwpoison, hugetlb: lock_page/unlock_page does not match for handling a free hugepage Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 35/92] kvm: remove .done from struct kvm_async_pf Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 34/92] kvm: free resources after canceling async_pf Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 61/92] sched: Use CPUPRI_NR_PRIORITIES instead of MAX_RT_PRIO in cpupri check Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 50/92] HID: usbhid: quirk for Synaptics Large Touchccreen Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 89/92] futex-prevent-requeue-pi-on-same-futex.patch futex: Forbid uaddr == uaddr2 in futex_requeue(..., requeue_pi=1) Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 68/92] [media] V4L2: fix VIDIOC_CREATE_BUFS in 64- / 32-bit compatibility mode Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 40/92] hrtimer: Prevent remote enqueue of leftmost timers Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 79/92] drm/radeon: handle non-VGA class pci devices with ATRM Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 82/92] nfsd4: remove lockowner when removing lock stateid Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 64/92] hrtimer: Set expiry time before switch_hrtimer_base() Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 76/92] perf: Limit perf_event_attr::sample_period to 63 bits Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 41/92] timer: Prevent overflow in apply_slack Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 39/92] hrtimer: Prevent all reprogramming if hang detected Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 81/92] can: peak_pci: prevent use after free at netdev removal Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 91/92] futex: Always cleanup owner tid in unlock_pi Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 38/92] [SCSI] mpt2sas: Don't disable device twice at suspend Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 88/92] futex: Prevent attaching to kernel threads Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 84/92] dma: mv_xor: Flush descriptors before activating a channel Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 56/92] NFSd: Move default initialisers from create_client() to alloc_client() Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 43/92] rtl8192cu: Fix unbalanced irq enable in error path of rtl92cu_hw_init() Ben Hutchings
2014-06-07 1:26 ` [PATCH 3.2 87/92] futex: Add another early deadlock detection check Ben Hutchings
2014-06-07 2:23 ` [PATCH 3.2 00/92] 3.2.60-rc1 review Ben Hutchings
2014-06-07 16:33 ` Guenter Roeck
2014-06-07 17:00 ` Ben Hutchings
2014-06-09 23:25 ` Satoru Takeuchi
2014-06-09 23:48 ` Ben Hutchings
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=lsq.1402104388.558927692@decadent.org.uk \
--to=ben@decadent.org.uk \
--cc=akpm@linux-foundation.org \
--cc=benh@kernel.crashing.org \
--cc=linux-kernel@vger.kernel.org \
--cc=schwab@linux-m68k.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.