diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/assoc_array.c | 4 | ||||
| -rw-r--r-- | lib/lz4/lz4defs.h | 25 |
2 files changed, 16 insertions, 13 deletions
diff --git a/lib/assoc_array.c b/lib/assoc_array.c index 03dd576e6773..59fd7c0b119c 100644 --- a/lib/assoc_array.c +++ b/lib/assoc_array.c | |||
| @@ -524,7 +524,9 @@ static bool assoc_array_insert_into_terminal_node(struct assoc_array_edit *edit, | |||
| 524 | free_slot = i; | 524 | free_slot = i; |
| 525 | continue; | 525 | continue; |
| 526 | } | 526 | } |
| 527 | if (ops->compare_object(assoc_array_ptr_to_leaf(ptr), index_key)) { | 527 | if (assoc_array_ptr_is_leaf(ptr) && |
| 528 | ops->compare_object(assoc_array_ptr_to_leaf(ptr), | ||
| 529 | index_key)) { | ||
| 528 | pr_devel("replace in slot %d\n", i); | 530 | pr_devel("replace in slot %d\n", i); |
| 529 | edit->leaf_p = &node->slots[i]; | 531 | edit->leaf_p = &node->slots[i]; |
| 530 | edit->dead_leaf = node->slots[i]; | 532 | edit->dead_leaf = node->slots[i]; |
diff --git a/lib/lz4/lz4defs.h b/lib/lz4/lz4defs.h index abcecdc2d0f2..c79d7ea8a38e 100644 --- a/lib/lz4/lz4defs.h +++ b/lib/lz4/lz4defs.h | |||
| @@ -11,8 +11,7 @@ | |||
| 11 | /* | 11 | /* |
| 12 | * Detects 64 bits mode | 12 | * Detects 64 bits mode |
| 13 | */ | 13 | */ |
| 14 | #if (defined(__x86_64__) || defined(__x86_64) || defined(__amd64__) \ | 14 | #if defined(CONFIG_64BIT) |
| 15 | || defined(__ppc64__) || defined(__LP64__)) | ||
| 16 | #define LZ4_ARCH64 1 | 15 | #define LZ4_ARCH64 1 |
| 17 | #else | 16 | #else |
| 18 | #define LZ4_ARCH64 0 | 17 | #define LZ4_ARCH64 0 |
| @@ -25,9 +24,7 @@ | |||
| 25 | typedef struct _U16_S { u16 v; } U16_S; | 24 | typedef struct _U16_S { u16 v; } U16_S; |
| 26 | typedef struct _U32_S { u32 v; } U32_S; | 25 | typedef struct _U32_S { u32 v; } U32_S; |
| 27 | typedef struct _U64_S { u64 v; } U64_S; | 26 | typedef struct _U64_S { u64 v; } U64_S; |
| 28 | #if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS) \ | 27 | #if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS) |
| 29 | || defined(CONFIG_ARM) && __LINUX_ARM_ARCH__ >= 6 \ | ||
| 30 | && defined(ARM_EFFICIENT_UNALIGNED_ACCESS) | ||
| 31 | 28 | ||
| 32 | #define A16(x) (((U16_S *)(x))->v) | 29 | #define A16(x) (((U16_S *)(x))->v) |
| 33 | #define A32(x) (((U32_S *)(x))->v) | 30 | #define A32(x) (((U32_S *)(x))->v) |
| @@ -35,6 +32,10 @@ typedef struct _U64_S { u64 v; } U64_S; | |||
| 35 | 32 | ||
| 36 | #define PUT4(s, d) (A32(d) = A32(s)) | 33 | #define PUT4(s, d) (A32(d) = A32(s)) |
| 37 | #define PUT8(s, d) (A64(d) = A64(s)) | 34 | #define PUT8(s, d) (A64(d) = A64(s)) |
| 35 | |||
| 36 | #define LZ4_READ_LITTLEENDIAN_16(d, s, p) \ | ||
| 37 | (d = s - A16(p)) | ||
| 38 | |||
| 38 | #define LZ4_WRITE_LITTLEENDIAN_16(p, v) \ | 39 | #define LZ4_WRITE_LITTLEENDIAN_16(p, v) \ |
| 39 | do { \ | 40 | do { \ |
| 40 | A16(p) = v; \ | 41 | A16(p) = v; \ |
| @@ -51,10 +52,13 @@ typedef struct _U64_S { u64 v; } U64_S; | |||
| 51 | #define PUT8(s, d) \ | 52 | #define PUT8(s, d) \ |
| 52 | put_unaligned(get_unaligned((const u64 *) s), (u64 *) d) | 53 | put_unaligned(get_unaligned((const u64 *) s), (u64 *) d) |
| 53 | 54 | ||
| 54 | #define LZ4_WRITE_LITTLEENDIAN_16(p, v) \ | 55 | #define LZ4_READ_LITTLEENDIAN_16(d, s, p) \ |
| 55 | do { \ | 56 | (d = s - get_unaligned_le16(p)) |
| 56 | put_unaligned(v, (u16 *)(p)); \ | 57 | |
| 57 | p += 2; \ | 58 | #define LZ4_WRITE_LITTLEENDIAN_16(p, v) \ |
| 59 | do { \ | ||
| 60 | put_unaligned_le16(v, (u16 *)(p)); \ | ||
| 61 | p += 2; \ | ||
| 58 | } while (0) | 62 | } while (0) |
| 59 | #endif | 63 | #endif |
| 60 | 64 | ||
| @@ -140,9 +144,6 @@ typedef struct _U64_S { u64 v; } U64_S; | |||
| 140 | 144 | ||
| 141 | #endif | 145 | #endif |
| 142 | 146 | ||
| 143 | #define LZ4_READ_LITTLEENDIAN_16(d, s, p) \ | ||
| 144 | (d = s - get_unaligned_le16(p)) | ||
| 145 | |||
| 146 | #define LZ4_WILDCOPY(s, d, e) \ | 147 | #define LZ4_WILDCOPY(s, d, e) \ |
| 147 | do { \ | 148 | do { \ |
| 148 | LZ4_COPYPACKET(s, d); \ | 149 | LZ4_COPYPACKET(s, d); \ |
