[ovs-discuss] [PATCH net-next] Revert "fast_hash: avoid indirect function calls"

David Miller davem at davemloft.net
Fri Nov 14 21:36:48 UTC 2014

From: Jay Vosburgh <jay.vosburgh at canonical.com>
Date: Fri, 14 Nov 2014 11:05:06 -0800

> This reverts commit e5a2c899957659cd1a9f789bc462f9c0b35f5150.
> 	Commit e5a2c899 introduced an alternative_call, arch_fast_hash2,
> that selects between __jhash2 and __intel_crc4_2_hash based on the
> 	Unfortunately, the alternative_call system does not appear to be
> suitable for use with C functions, as register usage is not handled
> properly for the called functions.  The __jhash2 function in particular
> clobbers registers that are not preserved when called via
> alternative_call, resulting in a panic for direct callers of
> arch_fast_hash2 on older CPUs lacking sse4_2.  It is possible that
> __intel_crc4_2_hash works merely by chance because it uses fewer
> registers.
> 	This commit was suggested as the source of the problem by Jesse
> Gross <jesse at nicira.com>.
> Signed-off-by: Jay Vosburgh <jay.vosburgh at canonical.com>

Applied, thanks Jay.

More information about the discuss mailing list