mirror of https://gitee.com/openkylin/linux.git
"driver core" fixes for 4.6-rc4
Here are 3 small fixes 4.6-rc4. Two fix up some lz4 issues with big endian systems, and the remaining one resolves a minor debugfs issue that was reported. All have been in linux-next with no reported issues. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iEYEABECAAYFAlcS3ucACgkQMUfUDdst+ynw1QCbBGgbY7Xt08whNFcAP81z1Q5X fmsAn1fyrhfsxe+JnybzswsTOjFw99Xd =YX6h -----END PGP SIGNATURE----- Merge tag 'driver-core-4.6-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core Pull misc fixes from Greg KH: "Here are three small fixes for 4.6-rc4. Two fix up some lz4 issues with big endian systems, and the remaining one resolves a minor debugfs issue that was reported. All have been in linux-next with no reported issues" * tag 'driver-core-4.6-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: lib: lz4: cleanup unaligned access efficiency detection lib: lz4: fixed zram with lz4 on big endian machines debugfs: Make automount point inodes permanently empty
This commit is contained in:
commit
e1e22b27ec
|
@ -457,7 +457,7 @@ struct dentry *debugfs_create_automount(const char *name,
|
|||
if (unlikely(!inode))
|
||||
return failed_creating(dentry);
|
||||
|
||||
inode->i_mode = S_IFDIR | S_IRWXU | S_IRUGO | S_IXUGO;
|
||||
make_empty_dir_inode(inode);
|
||||
inode->i_flags |= S_AUTOMOUNT;
|
||||
inode->i_private = data;
|
||||
dentry->d_fsdata = (void *)f;
|
||||
|
|
|
@ -11,8 +11,7 @@
|
|||
/*
|
||||
* Detects 64 bits mode
|
||||
*/
|
||||
#if (defined(__x86_64__) || defined(__x86_64) || defined(__amd64__) \
|
||||
|| defined(__ppc64__) || defined(__LP64__))
|
||||
#if defined(CONFIG_64BIT)
|
||||
#define LZ4_ARCH64 1
|
||||
#else
|
||||
#define LZ4_ARCH64 0
|
||||
|
@ -25,9 +24,7 @@
|
|||
typedef struct _U16_S { u16 v; } U16_S;
|
||||
typedef struct _U32_S { u32 v; } U32_S;
|
||||
typedef struct _U64_S { u64 v; } U64_S;
|
||||
#if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS) \
|
||||
|| defined(CONFIG_ARM) && __LINUX_ARM_ARCH__ >= 6 \
|
||||
&& defined(ARM_EFFICIENT_UNALIGNED_ACCESS)
|
||||
#if defined(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS)
|
||||
|
||||
#define A16(x) (((U16_S *)(x))->v)
|
||||
#define A32(x) (((U32_S *)(x))->v)
|
||||
|
@ -35,6 +32,10 @@ typedef struct _U64_S { u64 v; } U64_S;
|
|||
|
||||
#define PUT4(s, d) (A32(d) = A32(s))
|
||||
#define PUT8(s, d) (A64(d) = A64(s))
|
||||
|
||||
#define LZ4_READ_LITTLEENDIAN_16(d, s, p) \
|
||||
(d = s - A16(p))
|
||||
|
||||
#define LZ4_WRITE_LITTLEENDIAN_16(p, v) \
|
||||
do { \
|
||||
A16(p) = v; \
|
||||
|
@ -51,10 +52,13 @@ typedef struct _U64_S { u64 v; } U64_S;
|
|||
#define PUT8(s, d) \
|
||||
put_unaligned(get_unaligned((const u64 *) s), (u64 *) d)
|
||||
|
||||
#define LZ4_WRITE_LITTLEENDIAN_16(p, v) \
|
||||
do { \
|
||||
put_unaligned(v, (u16 *)(p)); \
|
||||
p += 2; \
|
||||
#define LZ4_READ_LITTLEENDIAN_16(d, s, p) \
|
||||
(d = s - get_unaligned_le16(p))
|
||||
|
||||
#define LZ4_WRITE_LITTLEENDIAN_16(p, v) \
|
||||
do { \
|
||||
put_unaligned_le16(v, (u16 *)(p)); \
|
||||
p += 2; \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
|
@ -140,9 +144,6 @@ typedef struct _U64_S { u64 v; } U64_S;
|
|||
|
||||
#endif
|
||||
|
||||
#define LZ4_READ_LITTLEENDIAN_16(d, s, p) \
|
||||
(d = s - get_unaligned_le16(p))
|
||||
|
||||
#define LZ4_WILDCOPY(s, d, e) \
|
||||
do { \
|
||||
LZ4_COPYPACKET(s, d); \
|
||||
|
|
Loading…
Reference in New Issue