From: Greg Kroah-Hartman Date: Wed, 6 Jan 2021 16:56:46 +0000 (+0100) Subject: 4.14-stable patches X-Git-Tag: v4.4.250~22 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b8f0692eeedf0a5b7a5a7b981beabb1d53f79cd2;p=thirdparty%2Fkernel%2Fstable-queue.git 4.14-stable patches added patches: kdev_t-always-inline-major-minor-helper-functions.patch --- diff --git a/queue-4.14/kdev_t-always-inline-major-minor-helper-functions.patch b/queue-4.14/kdev_t-always-inline-major-minor-helper-functions.patch new file mode 100644 index 00000000000..79ddd024fd6 --- /dev/null +++ b/queue-4.14/kdev_t-always-inline-major-minor-helper-functions.patch @@ -0,0 +1,104 @@ +From aa8c7db494d0a83ecae583aa193f1134ef25d506 Mon Sep 17 00:00:00 2001 +From: Josh Poimboeuf +Date: Tue, 29 Dec 2020 15:14:55 -0800 +Subject: kdev_t: always inline major/minor helper functions + +From: Josh Poimboeuf + +commit aa8c7db494d0a83ecae583aa193f1134ef25d506 upstream. + +Silly GCC doesn't always inline these trivial functions. + +Fixes the following warning: + + arch/x86/kernel/sys_ia32.o: warning: objtool: cp_stat64()+0xd8: call to new_encode_dev() with UACCESS enabled + +Link: https://lkml.kernel.org/r/984353b44a4484d86ba9f73884b7306232e25e30.1608737428.git.jpoimboe@redhat.com +Signed-off-by: Josh Poimboeuf +Reported-by: Randy Dunlap +Acked-by: Randy Dunlap [build-tested] +Cc: Peter Zijlstra +Cc: Greg Kroah-Hartman +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Greg Kroah-Hartman + +--- + include/linux/kdev_t.h | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +--- a/include/linux/kdev_t.h ++++ b/include/linux/kdev_t.h +@@ -21,61 +21,61 @@ + }) + + /* acceptable for old filesystems */ +-static inline bool old_valid_dev(dev_t dev) ++static __always_inline bool old_valid_dev(dev_t dev) + { + return MAJOR(dev) < 256 && MINOR(dev) < 256; + } + +-static inline u16 old_encode_dev(dev_t dev) ++static __always_inline u16 old_encode_dev(dev_t dev) + { + return (MAJOR(dev) << 8) | MINOR(dev); + } + +-static inline dev_t old_decode_dev(u16 val) ++static __always_inline dev_t old_decode_dev(u16 val) + { + return MKDEV((val >> 8) & 255, val & 255); + } + +-static inline u32 new_encode_dev(dev_t dev) ++static __always_inline u32 new_encode_dev(dev_t dev) + { + unsigned major = MAJOR(dev); + unsigned minor = MINOR(dev); + return (minor & 0xff) | (major << 8) | ((minor & ~0xff) << 12); + } + +-static inline dev_t new_decode_dev(u32 dev) ++static __always_inline dev_t new_decode_dev(u32 dev) + { + unsigned major = (dev & 0xfff00) >> 8; + unsigned minor = (dev & 0xff) | ((dev >> 12) & 0xfff00); + return MKDEV(major, minor); + } + +-static inline u64 huge_encode_dev(dev_t dev) ++static __always_inline u64 huge_encode_dev(dev_t dev) + { + return new_encode_dev(dev); + } + +-static inline dev_t huge_decode_dev(u64 dev) ++static __always_inline dev_t huge_decode_dev(u64 dev) + { + return new_decode_dev(dev); + } + +-static inline int sysv_valid_dev(dev_t dev) ++static __always_inline int sysv_valid_dev(dev_t dev) + { + return MAJOR(dev) < (1<<14) && MINOR(dev) < (1<<18); + } + +-static inline u32 sysv_encode_dev(dev_t dev) ++static __always_inline u32 sysv_encode_dev(dev_t dev) + { + return MINOR(dev) | (MAJOR(dev) << 18); + } + +-static inline unsigned sysv_major(u32 dev) ++static __always_inline unsigned sysv_major(u32 dev) + { + return (dev >> 18) & 0x3fff; + } + +-static inline unsigned sysv_minor(u32 dev) ++static __always_inline unsigned sysv_minor(u32 dev) + { + return dev & 0x3ffff; + } diff --git a/queue-4.14/series b/queue-4.14/series index 3c360b73cd8..b4bd087c914 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -23,3 +23,4 @@ powerpc-sysdev-add-missing-iounmap-on-error-in-mpic_.patch module-delay-kobject-uevent-until-after-module-init-.patch alsa-pcm-clear-the-full-allocated-memory-at-hw_param.patch dm-verity-skip-verity-work-if-i-o-error-when-system-.patch +kdev_t-always-inline-major-minor-helper-functions.patch