]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 5 Sep 2023 10:20:46 +0000 (11:20 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 5 Sep 2023 10:20:46 +0000 (11:20 +0100)
added patches:
lib-ubsan-remove-returns-nonnull-attribute-checks.patch

queue-4.14/lib-ubsan-remove-returns-nonnull-attribute-checks.patch [new file with mode: 0644]
queue-4.14/series

diff --git a/queue-4.14/lib-ubsan-remove-returns-nonnull-attribute-checks.patch b/queue-4.14/lib-ubsan-remove-returns-nonnull-attribute-checks.patch
new file mode 100644 (file)
index 0000000..390669d
--- /dev/null
@@ -0,0 +1,101 @@
+From bac7a1fff7926fb9891a18fe33650884b0e13e41 Mon Sep 17 00:00:00 2001
+From: Andrey Ryabinin <aryabinin@virtuozzo.com>
+Date: Tue, 6 Feb 2018 15:40:45 -0800
+Subject: lib/ubsan: remove returns-nonnull-attribute checks
+
+From: Andrey Ryabinin <aryabinin@virtuozzo.com>
+
+commit bac7a1fff7926fb9891a18fe33650884b0e13e41 upstream.
+
+Similarly to type mismatch checks, new GCC 8.x and Clang also changed for
+ABI for returns_nonnull checks.  While we can update our code to conform
+the new ABI it's more reasonable to just remove it.  Because it's just
+dead code, we don't have any single user of returns_nonnull attribute in
+the whole kernel.
+
+And AFAIU the advantage that this attribute could bring would be mitigated
+by -fno-delete-null-pointer-checks cflag that we use to build the kernel.
+So it's unlikely we will have a lot of returns_nonnull attribute in
+future.
+
+So let's just remove the code, it has no use.
+
+[aryabinin@virtuozzo.com: fix warning]
+  Link: http://lkml.kernel.org/r/20180122165711.11510-1-aryabinin@virtuozzo.com
+Link: http://lkml.kernel.org/r/20180119152853.16806-2-aryabinin@virtuozzo.com
+Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
+Cc: Sodagudi Prasad <psodagud@codeaurora.org>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Cc: Lukas Bulwahn <lukas.bulwahn@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ lib/ubsan.c            |   24 ------------------------
+ lib/ubsan.h            |    5 -----
+ scripts/Makefile.ubsan |    1 -
+ 3 files changed, 30 deletions(-)
+
+--- a/lib/ubsan.c
++++ b/lib/ubsan.c
+@@ -143,11 +143,6 @@ static void val_to_string(char *str, siz
+       }
+ }
+-static bool location_is_valid(struct source_location *loc)
+-{
+-      return loc->file_name != NULL;
+-}
+-
+ static DEFINE_SPINLOCK(report_lock);
+ static void ubsan_prologue(struct source_location *location,
+@@ -354,25 +349,6 @@ void __ubsan_handle_type_mismatch_v1(str
+ }
+ EXPORT_SYMBOL(__ubsan_handle_type_mismatch_v1);
+-void __ubsan_handle_nonnull_return(struct nonnull_return_data *data)
+-{
+-      unsigned long flags;
+-
+-      if (suppress_report(&data->location))
+-              return;
+-
+-      ubsan_prologue(&data->location, &flags);
+-
+-      pr_err("null pointer returned from function declared to never return null\n");
+-
+-      if (location_is_valid(&data->attr_location))
+-              print_source_location("returns_nonnull attribute specified in",
+-                              &data->attr_location);
+-
+-      ubsan_epilogue(&flags);
+-}
+-EXPORT_SYMBOL(__ubsan_handle_nonnull_return);
+-
+ void __ubsan_handle_vla_bound_not_positive(struct vla_bound_data *data,
+                                       void *bound)
+ {
+--- a/lib/ubsan.h
++++ b/lib/ubsan.h
+@@ -57,11 +57,6 @@ struct nonnull_arg_data {
+       int arg_index;
+ };
+-struct nonnull_return_data {
+-      struct source_location location;
+-      struct source_location attr_location;
+-};
+-
+ struct vla_bound_data {
+       struct source_location location;
+       struct type_descriptor *type;
+--- a/scripts/Makefile.ubsan
++++ b/scripts/Makefile.ubsan
+@@ -7,7 +7,6 @@ ifdef CONFIG_UBSAN
+       CFLAGS_UBSAN += $(call cc-option, -fsanitize=signed-integer-overflow)
+       CFLAGS_UBSAN += $(call cc-option, -fsanitize=bounds)
+       CFLAGS_UBSAN += $(call cc-option, -fsanitize=object-size)
+-      CFLAGS_UBSAN += $(call cc-option, -fsanitize=returns-nonnull-attribute)
+       CFLAGS_UBSAN += $(call cc-option, -fsanitize=bool)
+       CFLAGS_UBSAN += $(call cc-option, -fsanitize=enum)
index c6e6557c097331e8e5d230cce9f868a2b3da99ae..072cd18a73e90ba103509a59f0d05c497b84b041 100644 (file)
@@ -10,3 +10,4 @@ serial-sc16is7xx-fix-bug-when-first-setting-gpio-direction.patch
 nilfs2-fix-general-protection-fault-in-nilfs_lookup_dirty_data_buffers.patch
 nilfs2-fix-warning-in-mark_buffer_dirty-due-to-discarded-buffer-reuse.patch
 pinctrl-amd-don-t-show-invalid-config-param-errors.patch
+lib-ubsan-remove-returns-nonnull-attribute-checks.patch