This is a note to let you know that I've just added the patch titled sparc: Use hweight64() in popc emulation.
to the 3.0-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: sparc-use-hweight64-in-popc-emulation.patch and it can be found in the queue-3.0 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <sta...@kernel.org> know about it. >From 54bc60d0d137f801e593a81ffdd3aa2ed43cf271 Mon Sep 17 00:00:00 2001 From: "David S. Miller" <da...@davemloft.net> Date: Mon, 1 Aug 2011 19:41:12 -0700 Subject: sparc: Use hweight64() in popc emulation. From: "David S. Miller" <da...@davemloft.net> [ Upstream commit d600cbed0fe8fceec04500824f638dfe4996c653 ] Signed-off-by: David S. Miller <da...@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gre...@suse.de> --- arch/sparc/kernel/unaligned_64.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) --- a/arch/sparc/kernel/unaligned_64.c +++ b/arch/sparc/kernel/unaligned_64.c @@ -22,6 +22,7 @@ #include <linux/bitops.h> #include <linux/perf_event.h> #include <linux/ratelimit.h> +#include <linux/bitops.h> #include <asm/fpumacro.h> enum direction { @@ -373,16 +374,11 @@ asmlinkage void kernel_unaligned_trap(st } } -static char popc_helper[] = { -0, 1, 1, 2, 1, 2, 2, 3, -1, 2, 2, 3, 2, 3, 3, 4, -}; - int handle_popc(u32 insn, struct pt_regs *regs) { - u64 value; - int ret, i, rd = ((insn >> 25) & 0x1f); int from_kernel = (regs->tstate & TSTATE_PRIV) != 0; + int ret, rd = ((insn >> 25) & 0x1f); + u64 value; perf_sw_event(PERF_COUNT_SW_EMULATION_FAULTS, 1, 0, regs, 0); if (insn & 0x2000) { @@ -392,10 +388,7 @@ int handle_popc(u32 insn, struct pt_regs maybe_flush_windows(0, insn & 0x1f, rd, from_kernel); value = fetch_reg(insn & 0x1f, regs); } - for (ret = 0, i = 0; i < 16; i++) { - ret += popc_helper[value & 0xf]; - value >>= 4; - } + ret = hweight64(value); if (rd < 16) { if (rd) regs->u_regs[rd] = ret; Patches currently in stable-queue which might be from da...@davemloft.net are queue-3.0/ipv4-send-gratuitous-arp-for-secondary-ip-addresses-also.patch queue-3.0/ipv4-constrain-ufo-fragment-sizes-to-multiples-of-8-bytes.patch queue-3.0/sparc-detect-and-handle-ultrasparc-t3-cpu-types.patch queue-3.0/bonding-fix-string-comparison-errors.patch queue-3.0/sparc-use-popc-if-possible-for-hweight-routines.patch queue-3.0/drivers-net-niu.c-adjust-array-index.patch queue-3.0/sparc-set-reboot-cmd-using-reboot-data-hypervisor-call-if-available.patch queue-3.0/net-audit-drivers-to-identify-those-needing-iff_tx_skb_sharing-cleared.patch queue-3.0/sparc-size-mondo-queues-more-sanely.patch queue-3.0/sparc-don-t-leave-sparc_pmu_type-null-on-sun4v.patch queue-3.0/ipv4-use-rt_tos-after-some-rt_tos-conversions.patch queue-3.0/net-cap-number-of-elements-for-sendmmsg.patch queue-3.0/sch_sfq-fix-sfq_enqueue.patch queue-3.0/sparc-sanitize-cpu-feature-detection-and-reporting.patch queue-3.0/sparc-use-popc-when-possible-for-ffs-__ffs-ffz.patch queue-3.0/sparc-add-t3-sun4v-cpu-type-and-hypervisor-group-defines.patch queue-3.0/net-fix-security_socket_sendmsg-bypass-problem.patch queue-3.0/sparc-use-hweight64-in-popc-emulation.patch queue-3.0/0002-net-Compute-protocol-sequence-numbers-and-fragment-I.patch queue-3.0/sparc-add-some-missing-hypervisor-api-groups.patch queue-3.0/fix-cdc-phonet-build.patch queue-3.0/sparc-minor-tweaks-to-niagara-page-copy-clear.patch queue-3.0/ipv4-fix-the-reusing-of-routing-cache-entries.patch queue-3.0/ipv6-make-fragment-identifications-less-predictable.patch queue-3.0/sis190-rx-filter-init-is-needed-for-mac-address-change.patch queue-3.0/net-adjust-array-index.patch queue-3.0/sparc-access-kernel-tsb-using-physical-addressing-when-possible.patch queue-3.0/net-allow-netif_carrier-to-be-called-safely-from-irq.patch queue-3.0/sparc-fix-build-with-debug_pagealloc-enabled.patch queue-3.0/icmp-fix-regression-in-nexthop-resolution-during-replies.patch queue-3.0/xfrm-fix-key-lengths-for-rfc3686-ctr-aes.patch queue-3.0/0001-crypto-Move-md5_transform-to-lib-md5.c.patch queue-3.0/gre-fix-improper-error-handling.patch queue-3.0/net-add-iff_skb_tx_shared-flag-to-priv_flags.patch queue-3.0/r8169-add-support-for-d-link-530t-rev-c1-kernel-bug-38862.patch queue-3.0/sparc-don-t-do-expensive-hypervisor-pcr-write-unless-necessary.patch queue-3.0/net-sendmmsg-should-only-return-an-error-if-no-messages-were-sent.patch queue-3.0/mpt2sas-fixed-big-indian-issues-on-32-bit-ppc.patch _______________________________________________ stable mailing list stable@linux.kernel.org http://linux.kernel.org/mailman/listinfo/stable