lkml.org 
[lkml]   [2007]   [Nov]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[patch 01/19] Fix sparc64 niagara optimized RAID xor asm
    -stable review patch.  If anyone has any objections, please let us know.

    ------------------
    From: David Miller <davem@davemloft.net>

    patch d060db63fd38a8a75f666576ef9999c28cdc31cf in mainline.

    [SPARC64]: Fix register usage in xor_raid_4().

    Some typos led to using %i6/%i7 instead of %l6/%l7 in loads which is
    really really bad because those are the frame pointer and return PC.

    Based upon a raid5 crash report by Bertrand Joel.

    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    arch/sparc64/lib/xor.S | 12 ++++++------
    1 file changed, 6 insertions(+), 6 deletions(-)

    --- a/arch/sparc64/lib/xor.S
    +++ b/arch/sparc64/lib/xor.S
    @@ -491,12 +491,12 @@ xor_niagara_4: /* %o0=bytes, %o1=dest,
    ldda [%i1 + 0x10] %asi, %i2 /* %i2/%i3 = src1 + 0x10 */
    xor %g2, %i4, %g2
    xor %g3, %i5, %g3
    - ldda [%i7 + 0x10] %asi, %i4 /* %i4/%i5 = src2 + 0x10 */
    + ldda [%l7 + 0x10] %asi, %i4 /* %i4/%i5 = src2 + 0x10 */
    xor %l0, %g2, %l0
    xor %l1, %g3, %l1
    stxa %l0, [%i0 + 0x00] %asi
    stxa %l1, [%i0 + 0x08] %asi
    - ldda [%i6 + 0x10] %asi, %g2 /* %g2/%g3 = src3 + 0x10 */
    + ldda [%l6 + 0x10] %asi, %g2 /* %g2/%g3 = src3 + 0x10 */
    ldda [%i0 + 0x10] %asi, %l0 /* %l0/%l1 = dest + 0x10 */

    xor %i4, %i2, %i4
    @@ -504,12 +504,12 @@ xor_niagara_4: /* %o0=bytes, %o1=dest,
    ldda [%i1 + 0x20] %asi, %i2 /* %i2/%i3 = src1 + 0x20 */
    xor %g2, %i4, %g2
    xor %g3, %i5, %g3
    - ldda [%i7 + 0x20] %asi, %i4 /* %i4/%i5 = src2 + 0x20 */
    + ldda [%l7 + 0x20] %asi, %i4 /* %i4/%i5 = src2 + 0x20 */
    xor %l0, %g2, %l0
    xor %l1, %g3, %l1
    stxa %l0, [%i0 + 0x10] %asi
    stxa %l1, [%i0 + 0x18] %asi
    - ldda [%i6 + 0x20] %asi, %g2 /* %g2/%g3 = src3 + 0x20 */
    + ldda [%l6 + 0x20] %asi, %g2 /* %g2/%g3 = src3 + 0x20 */
    ldda [%i0 + 0x20] %asi, %l0 /* %l0/%l1 = dest + 0x20 */

    xor %i4, %i2, %i4
    @@ -517,12 +517,12 @@ xor_niagara_4: /* %o0=bytes, %o1=dest,
    ldda [%i1 + 0x30] %asi, %i2 /* %i2/%i3 = src1 + 0x30 */
    xor %g2, %i4, %g2
    xor %g3, %i5, %g3
    - ldda [%i7 + 0x30] %asi, %i4 /* %i4/%i5 = src2 + 0x30 */
    + ldda [%l7 + 0x30] %asi, %i4 /* %i4/%i5 = src2 + 0x30 */
    xor %l0, %g2, %l0
    xor %l1, %g3, %l1
    stxa %l0, [%i0 + 0x20] %asi
    stxa %l1, [%i0 + 0x28] %asi
    - ldda [%i6 + 0x30] %asi, %g2 /* %g2/%g3 = src3 + 0x30 */
    + ldda [%l6 + 0x30] %asi, %g2 /* %g2/%g3 = src3 + 0x30 */
    ldda [%i0 + 0x30] %asi, %l0 /* %l0/%l1 = dest + 0x30 */

    prefetch [%i1 + 0x40], #one_read
    --
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-11-15 07:19    [W:0.027 / U:30.468 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site