From: Greg Kroah-Hartman Date: Tue, 5 Sep 2023 10:20:46 +0000 (+0100) Subject: 4.14-stable patches X-Git-Tag: v6.5.2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a6127963ad9a5f167bb696b942c4f0f6c1b1711a;p=thirdparty%2Fkernel%2Fstable-queue.git 4.14-stable patches added patches: lib-ubsan-remove-returns-nonnull-attribute-checks.patch --- 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 index 00000000000..390669d9a05 --- /dev/null +++ b/queue-4.14/lib-ubsan-remove-returns-nonnull-attribute-checks.patch @@ -0,0 +1,101 @@ +From bac7a1fff7926fb9891a18fe33650884b0e13e41 Mon Sep 17 00:00:00 2001 +From: Andrey Ryabinin +Date: Tue, 6 Feb 2018 15:40:45 -0800 +Subject: lib/ubsan: remove returns-nonnull-attribute checks + +From: Andrey Ryabinin + +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 +Cc: Sodagudi Prasad +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Cc: Lukas Bulwahn +Signed-off-by: Greg Kroah-Hartman +--- + 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) + diff --git a/queue-4.14/series b/queue-4.14/series index c6e6557c097..072cd18a73e 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -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